PRAM and reserved memory for Linux

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?
Jocke

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.

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

On Wed, Jul 13, 2022 at 04:13:27PM +0000, Joakim Tjernlund wrote:
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.
Yes it is, and SUPPORT_PASSING_ATAGS is somewhat new in that I added it when converting CMDLINE_TAG, etc, to Kconfig and making it be easier to say "this platform is new enough to never ever need this".
participants (2)
-
Joakim Tjernlund
-
Tom Rini