- Announcement about May 10th, 2018 update and your password.
P1V with 2MB of hub visible RAM and now 32MB of SDRAM
was wondering if anyone has done anything like this before (perhaps I'm the first to try to go down this path) -
I now have built myself a P1V setup with 2MB of hub SRAM on an MAX10 FPGA. I have made modifications to the P1V verilog and can access this extra RAM directly via the hub from both SPIN and COG PASM at full hub speed from each COG. It appears from $10000-$1FFFFF and works perfectly well with RDLONG/WRLONG when reading/writing in this address range.
I am now trying to get PropGCC code to run on it using the LMM model even though I have more than 32kB of HUB RAM. I don't intend to use any cache driver with the XMM model because of the additional unnecessary penalty involved. I've downloaded/installed PropGCC on Ubuntu and got the basic fibo demo loaded and working on my setup but that only uses the lower 32kB by design. I'm also still trying to learn more about PropGCC.
So I am guessing I have to do something like this...
1) modify a linker script somewhere to make the LMM mode make use of this external hub RAM (but where ? I only see XMM linker scripts)
2) use an SD card to hold my PropGCC programs and somehow get the files onto this SD card, using propeller-load tool perhaps.
3) figure out a way to boot my large C LMM programs and run them - I'm imagining I need to develop some sort of initialization boot code that can be loaded in the low 32kB hub RAM when the Prop boots and then have a way to load more code into higher hub RAM from the SD card like some basic OS would do but there might be alternatives or PropGCC may be able to do some of this work for me... TBD.
Has anyone done anything similar or used PropGCC like this and have ideas of what else I might need to do, or sees other issues here? Are there lots of 32kB dependencies in PropGCC for LMM code generation?