Exemple #1
0
 public UDMA(Machine machine)
 {
     engine = new DmaEngine(machine);
     SystemBus = machine.SystemBus;
     channels = new Channel[32];
     IRQ = new GPIO();
     Reset();
 }
Exemple #2
0
 public UDMA(Machine machine)
 {
     engine    = new DmaEngine(machine);
     SystemBus = machine.SystemBus;
     channels  = new Channel[32];
     IRQ       = new GPIO();
     Reset();
 }
Exemple #3
0
 public STM32LDMA(Machine machine)
 {
     engine   = new DmaEngine(machine);
     channels = new Channel[8];
     for (var i = 0; i < channels.Length; i++)
     {
         channels[i] = new Channel(this, i);
     }
 }
Exemple #4
0
 public STM32LDMA(Machine machine)
 {
     engine = new DmaEngine(machine);
     channels = new Channel[8];
     for(var i = 0; i < channels.Length; i++)
     {
         channels[i] = new Channel(this, i);
     }
 }
Exemple #5
0
 public STM32DMA(Machine machine)
 {
     streamFinished = new bool[NumberOfStreams];
     streams = new Stream[NumberOfStreams];
     for(var i = 0; i < streams.Length; i++)
     {
         streams[i] = new Stream(this, i);
     }
     this.machine = machine;
     engine = new DmaEngine(machine);
     Reset();
 }
Exemple #6
0
 public STM32DMA(Machine machine)
 {
     streamFinished = new bool[NumberOfStreams];
     streams        = new Stream[NumberOfStreams];
     for (var i = 0; i < streams.Length; i++)
     {
         streams[i] = new Stream(this, i);
     }
     this.machine = machine;
     engine       = new DmaEngine(machine);
     Reset();
 }
Exemple #7
0
        public VybridDma(Machine mach)
        {
            machine = mach;
            engine = new DmaEngine(machine);

            channels = new Channel[32];
            for (var i = 0; i < 32; i++) 
            {
               channels[i] = new Channel(this, i);
            }

            IRQ = new GPIO();
        }
Exemple #8
0
        public VybridDma(Machine mach)
        {
            machine = mach;
            engine  = new DmaEngine(machine);

            channels = new Channel[32];
            for (var i = 0; i < 32; i++)
            {
                channels[i] = new Channel(this, i);
            }

            IRQ = new GPIO();
        }
Exemple #9
0
        public TegraDma(Machine machine)
        {
            dmaEngine = new DmaEngine(machine);
            channels = new Channel[ChannelNo];

            var innerConnections = new Dictionary<int, IGPIO>();
            for(var i = 0; i < channels.Length; i++)
            {
                channels[i] = new Channel(this, i);
                innerConnections[i] = channels[i].IRQ;
            }

            Connections = new ReadOnlyDictionary<int, IGPIO>(innerConnections);
            Reset();
        }
Exemple #10
0
        public TegraDma(Machine machine)
        {
            dmaEngine = new DmaEngine(machine);
            channels  = new Channel[ChannelNo];

            var innerConnections = new Dictionary <int, IGPIO>();

            for (var i = 0; i < channels.Length; i++)
            {
                channels[i]         = new Channel(this, i);
                innerConnections[i] = channels[i].IRQ;
            }

            Connections = new ReadOnlyDictionary <int, IGPIO>(innerConnections);
            Reset();
        }
 public TegraDmaHost1X(Machine machine)
 {
     dmaEngine = new DmaEngine(machine);
     sysbus    = machine.SystemBus;
 }
Exemple #12
0
            public SunxiDMADescriptor(uint address, DmaEngine dmaEngine)
            {
                Address = address;

                byte[] descriptorData = new byte[16];
                Request getDescriptorData = new Request((long)Address, new Place(descriptorData, 0), 16, 
                    TransferType.DoubleWord, TransferType.DoubleWord);

                dmaEngine.IssueCopy(getDescriptorData);
                Status = BitConverter.ToUInt32(descriptorData, 0);
                BufferSize = BitConverter.ToUInt32(descriptorData, 4);
                BufferAddress = BitConverter.ToUInt32(descriptorData, 8);
                NextDescriptor = BitConverter.ToUInt32(descriptorData, 12);

                if(BufferSize == 0) // the driver assumes 0-sized blocks to be 64kB, which is inconsistent with the Allwinner user manual.
                {
                    BufferSize = 0x10000;
                }
            }
Exemple #13
0
 public SunxiMMC(Machine machine) : base(machine)
 {
     SetupRegisters();
     IRQ = new GPIO();
     dmaEngine = new DmaEngine(machine);
 }
Exemple #14
0
 public TegraDmaHost1X(Machine machine)
 {
     dmaEngine = new DmaEngine(machine);
     sysbus = machine.SystemBus;
 }