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
> 


Reply via email to