I haven't used ROACH DRAM in a long while, but I do recall testing it beyond 256MB (not very thoroughly though; wrote a counter from fabric and read back 1024MB... took many minutes) when I implemented the read_dram function in corr:
def read_dram(self, size, offset=0,verbose=False): """Reads data from a ROACH's DRAM. Reads are done up to 1MB at a time. The 64MB indirect address register is automatically incremented as necessary. It returns a string, as per the normal 'read' function. ROACH has a fixed device name for the DRAM (dram memory). Uses bulkread internally. @param self This object. @param size Integer: amount of data to read (in bytes). @param offset Integer: offset to read data from (in bytes). @return Binary string: data read. """ According to my notes, DRAM represents a 64MB chunk of the 256MB FPGA block. An offset (indirect page address register) is auto-incremented by this python function as needed. So you should be able to read beyond 256MB. You can tell this function's old though... it pre-dates the whole logging infrastructure! YMMV. Jason On 25 Feb 2014, at 9:30, Marc Welz <m...@ska.ac.za> wrote: > On Mon, Feb 24, 2014 at 7:57 PM, G Jones <glenn.calt...@gmail.com> wrote: >> Hi, >> Sorry to repost this. Just curious if anyone has experience using more than >> 256 MB of FPGA DRAM on the ROACH, in particular through the PPC interface. > > The PowerPC's virtual memory subsystem maps things in 256Mb regions/segments, > and only one is used to access the FPGA(*) - so you will probably have > to implement > some sort of windowing/base+offset scheme. > > (The address space of the PowerPC is pretty constrained) > > regards > > marc >