PRAM and reserved memory for Linux
Joakim Tjernlund
Joakim.Tjernlund at infinera.com
Wed Jul 13 18:13:27 CEST 2022
On Wed, 2022-07-13 at 10:21 -0400, Tom Rini wrote:
> On Wed, Jul 13, 2022 at 10:08:38AM +0000, Joakim Tjernlund wrote:
>
> > I added CONFIG_PRAM 4 and a reserved-memory DTS node for the same space but
> > now u-boot complains when booting:
> > ERROR: reserving fdt memory region failed (addr=703ff000 size=1000)
> > The error is caused by arch_lmb_reserve() in arm which seem
> > to reserve command line and board info ?
> >
> > If I remove the reserved-memory DTS node I don't get a reserved area in Linux,
> > don't quite understand how PRAM is supposed to work?
>
> The first likely problem is that CONFIG_PRAM stuff isn't often used
> these days so might be glitchy / buggy, as you've found here. Next, I
> bet that area in arch_lmb_reserve() is about ATAGS/related and should be
> guarded with CONFIG_SUPPORT_PASSING_ATAGS.
>
The arch_lmb_reserve() comment reads(lots of archs has similar code):
/*
* Booting a (Linux) kernel image
*
* Allocate space for command line and board info - the
* address should be as high as possible within the reach of
* the kernel (see CONFIG_SYS_BOOTMAPSZ settings), but in unused
* memory, which means far enough below the current stack
* pointer.
You still think this cmdline/board info is just for the old ATAGS ?
I have an older boot and it des not have CONFIG_SUPPORT_PASSING_ATAGS but
CMDLINE_TAG etc. is here though.
Jocke
More information about the U-Boot
mailing list