[Oberon] Project Oberon running from LPDDR memory on Pipistrello

Magnus Karlsson magnus at saanlima.com
Mon May 11 03:22:24 CEST 2020


I should clarify:
On power-up the cache is targeting the lower 128KB of the 1MB address space.

Magnus

On 5/10/2020 6:12 PM, Magnus Karlsson wrote:
> FYI, I have worked the last week with Jörg Straube on getting Project 
> Oberon running from DRAM on the Pipistrello board and I just checked 
> in the code on github:
> See 
> https://github.com/Saanlima/Pipistrello/tree/master/Projects/Oberon_lpddr
>
> It's using a 128KB cache organized as a 2-way 256-set cache with 256 
> byte cache lines.  The interface between the cache and the memory 
> controller is 128 bits wide @100 MHz, and the memory controller itself 
> has 800 MB/s peak memory bandwidth.
> On power-up the lower 128KB of the 1MB address space is covered by the 
> cache.  The main code for the cache is a simple state machine using 
> about 150 lines of code with 4 states.
>
> The cache actually covers the lower 8MB address space so in theory we 
> could have an 8MB Oberon system, but due to a bug somewhere in the 
> Oberon code it crashes after about 1.25 sec with a trap (C2H on the 
> LEDs) with more than 1MB of memory.  The solution is to have the 
> non-io address space aliased to the first 1MB.  It seems like there 
> are memory access cycles above 1MB that needs to actually affect the 
> memory at the first 1MB.  I did discover this way back when I did the 
> 2MB version of Pepino and had the tie address bit 20 to 0 for it to 
> boot (i.e. alias the second MB to the first MB) but never got around 
> to pinpoint the problem.  The same problem popped up again and I was 
> able to trace it down.
>
> Video memory is in dual-port BRAM and can be relocated by writing to a 
> new register.  At power-up the video is a the normal spot (0E7F00H) 
> but can be moved up above the 8MB boundary to have a continuous 8MB 
> memory section for program and data by simply writing to a register 
> with the new video base address.
>
> Cheers,
> Magnus
> -- 
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon




More information about the Oberon mailing list