[Balloon] Bootldr and Balloon3

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Nick Bane
Date:  
To: balloon@balloonboard.org
Subject: [Balloon] Bootldr and Balloon3
The large memory model is enabled in bootldr. Binaries on balloonboard and
husaberg distro with sources in balloonboard svn.

We now have n banks of up to 256MB SDRAM available. In the current P2 build
we can have 3 banks fitted. There exist only 64MB ram chips in our form
factor (2 each per bank so 128MB is max per bank).
I have an fpga board with 3x2x64MB in banks 0 1 and 3.
In small memory mode these map to a0000000 a4000000 and ac000000.
In large memory mode they map to a0000000 b0000000 and 80000000.
Note how bank0 always maps to a0000000 which just happens to suit linux as
that is the default start of physical pxa ram address. We can therefore
have one kernel for both models.

One curiosity is that linux seems to hate the third bank. This is the same
with the small memory model. I assume that this is because the memory
partition exists below the start of "physical ram" at a0000000.
I can so far boot with "only" 256MB ram.

If I manually force the third bank to be 4095 bytes or less in size (in
bootldr >set dram2_size=4095), booting is fine. If it is 4096 or higher, no
console messages are reported after the kernel is decompressed. The memory
manager rounds down all memory blocks to the page size as it adds mem32
tags, hence why a ram partition of 4095 permits booting as it is a zero
size partition and ignored. Has anyone come across this before and if so is
there a workaround? If not then Balloon3 is a bit stuck unless we make a
kernel linked at 80000000 which seems a bit non-standard and will break the
small memory model thus needing 2 kernels if we support both.

Nick Bane