[Arm-netbook] 3.0.8 kernel only detects 512 MB RAM on 1 GB device

Henrik Nordström henrik at henriknordstrom.net
Sun May 20 00:40:48 BST 2012


tis 2012-05-15 klockan 11:33 +0200 skrev Alejandro Mery:
> On Tue, May 15, 2012 at 9:32 AM, Henrik Nordström
> <henrik at henriknordstrom.net> wrote:
> > tis 2012-05-15 klockan 00:53 +0000 skrev Steven Pledger:
> >
> >> So I guess I'll try loading the kernel from NAND using the u-boot that came with
> >> my device.
> >
> > Would not help. It's the allwinner kernel that overrides u-boot memory
> > detection.
> >
> > What we need to do is to make u-boot correctly detect the ram so it can
> > give the right info to the kernel.
> 
> but why not making the kernel detect the ram correctly?

The kernel do not detect memory. The boot loader / BIOS do.

The official method:

Bootloader/BIOS detects & configures memory and passes information about
the configured memory regions to the kernel. The details on how memory
is detected varies but usually involves reading some ROM of some kind
and a bit of probing (i.e. SPD roms on your memory modules in a PC,
boot0 settings embedded in flash/sdcard in A10)

Allwinner method:

boot0 bootloader configures memory based on embedded information from
the fex, but the chain-loaded u-boot do not know and gives faked memory
information to kernel.

kernel ignores the faked memory information and instead reads SDRAM
controller settings to figure out how boot0 configured the memory.

Situation with uboot-mmc:

boot0 is not used. replaced by u-boot spl loader.

There is currently no mechanism to configure memory hardware parameters
for the A10 u-boot spl loader. There is a hardcoded memory confiuration
of a single 512MB bank at fixed speed. 

Regards
Henrik




More information about the arm-netbook mailing list