All of lore.kernel.org
 help / color / mirror / Atom feed
From: Randolph Sapp <rs@ti.com>
To: Jonas Karlman <jonas@kwiboo.se>, Randolph Sapp <rs@ti.com>
Cc: Tom Rini <trini@konsulko.com>, Simon Glass <sjg@chromium.org>,
	"Ilias Apalodimas" <ilias.apalodimas@linaro.org>,
	Quentin Schulz <quentin.schulz@cherry.de>, <u-boot@lists.denx.de>
Subject: Re: [PATCH] boot: image-fdt: Restore suppression of irrelevant ERROR message
Date: Mon, 29 Jun 2026 13:37:10 -0500	[thread overview]
Message-ID: <DJLR1SYPDTS4.2ZVE5UPMD7COE@ti.com> (raw)
In-Reply-To: <1080aff7-c678-424e-9b33-a56f7b0d7be4@kwiboo.se>

On Mon Jun 29, 2026 at 1:14 PM CDT, Jonas Karlman wrote:
> Hi Randolph,
>
> On 6/29/2026 7:33 PM, Randolph Sapp wrote:
>> Hey, glad people are testing this. 
>> 
>> On Sat Jun 27, 2026 at 3:48 PM CDT, Jonas Karlman wrote:
>>> The commit 623f6c5b6ab7 ("boot: image-fdt: free old dtb reservations")
>>> removed the suppression of ERROR messages when -EINVAL is returned due
>>> to the memory region not being part of the LMB memory map.
>>>
>>> This causes an irrelevant ERROR message during boot, e.g.:
>>>
>>>   Model: Radxa ROCK 3B
>>>   [...]
>>>   ERROR: reserving fdt memory region failed (addr=10f000 size=100 flags=2): -22
>>>
>>> or
>>>
>>>   Model: Rockchip RK3288 Asus Tinker Board S
>>>   [...]
>>>   ERROR: reserving fdt memory region failed (addr=fe000000 size=1000000 flags=4): -22
>>>
>>> FDT correctly contains reserved-memory for 10f000 or fe000000 and U-Boot
>>> correctly does not make these regions available in the LMB memory map:
>>>
>>>   memory[0]      [0x200000-0xefffffff], 0xefe00000 bytes, flags: none
>>>   memory[1]      [0x100000000-0x1ffffffff], 0x100000000 bytes, flags: none
>>>
>>> or
>>>
>>>   memory[0]      [0x0-0x7fffffff], 0x80000000 bytes, flags: none
>>>
>>> Ignore -EINVAL errors to restore suppression of this irrelevant ERROR
>>> message when memory region is not part of the LMB memory map.
>>>
>>> Fixes: 623f6c5b6ab7 ("boot: image-fdt: free old dtb reservations")
>>> Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
>>> ---
>>>  boot/image-fdt.c | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/boot/image-fdt.c b/boot/image-fdt.c
>>> index 9e0e0f93edd3..603294215b89 100644
>>> --- a/boot/image-fdt.c
>>> +++ b/boot/image-fdt.c
>>> @@ -95,7 +95,7 @@ static void boot_fdt_handle_region(u64 addr, u64 size, u32 flags, bool free)
>>>  		debug("   %s fdt memory region: addr=%llx size=%llx flags=%x\n",
>>>  		      free ? "freed" : "reserved", (unsigned long long)addr,
>>>  		      (unsigned long long)size, flags);
>>> -	} else {
>>> +	} else if (free || ret != -EINVAL) {
>> 
>> Seems like you messed up the free error reporting here.
>
> Not sure what you mean, it is only lmb_alloc_mem() that documents:
>
>   -EINVAL if the requested memory region is not part of the LMB memory map
>
> and seems to now help print an verbose ERROR message during normal boot.
>
> But maybe we should also ignore free errors?
>
>> 
>>>  		printf("ERROR: %s fdt memory region failed (addr=%llx size=%llx flags=%x): %ld\n",
>>>  		       free ? "freeing" : "reserving", (unsigned long long)addr,
>>>  		       (unsigned long long)size, flags, ret);
>> 
>> Got a few questions about this particular case though if you don't mind:
>> 
>> Why do you have reserved regions defined in areas that don't overlap with DDR?
>
> E.g. fe000000-ffffffff or similar region is reserved for hw regs, on
> boards with e.g. 4 GiB DRAM this area is typically unreachable, on a
> 2 GiB DRAM board there is no overlap.
>
> The 10f000 is shmem used for SCMI, so should be defined in DT.
>
>> Shouldn't those areas be unused anyway? Why don't we just explicitly ignore
>> those reservations instead of forwarding them to an allocator that doesn't care?
>
> That is what the net effect was prior to the changes in 623f6c5b6ab7
> ("boot: image-fdt: free old dtb reservations"). Rockchip platform
> dynamically declare DRAM banks excluding the unusable ranges, and the
> LMB allocator ignores ranges outside the declared DRAM banks.

Not quite. I mean, we should ignore the region explicitly. As in, we should
never even request to reserve regions outside of LMB.

>> Why mask a bunch of potentially valid error cases for this explicit case?
>
> That is what the code have been doing up until now, a different option
> could be to change the error message to a debug message? Here I just
> tried to do a limited revert to the old behavior.
>
> Why should we print verbose ERROR messages for something that is not
> always considered an error?

Because under normal circumstances it should always be an error. Occasionally
asking for a reservation you know is going to fail and assuming all failures of
that type are OK is a little odd.

>> 
>> Why do none of the examples listed above have a memory node in dts? I've seen
>> platforms that expect memory length to be defined by the bootloader, but they
>> normally still place a dummy node in the tree at the correct starting address.
>
> Rockchip platform dynamically check size of DRAM at runtime and declare
> DRAM banks for the usable areas. Possible a fixup adds a memory node as
> part of boot into OS.
>
> Regards,
> Jonas

Ah, thanks for the information.

  reply	other threads:[~2026-06-29 18:38 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-27 20:48 [PATCH] boot: image-fdt: Restore suppression of irrelevant ERROR message Jonas Karlman
2026-06-29 17:33 ` Randolph Sapp
2026-06-29 18:14   ` Jonas Karlman
2026-06-29 18:37     ` Randolph Sapp [this message]
2026-06-29 19:08       ` Jonas Karlman
2026-06-29 20:19         ` Randolph Sapp
2026-06-29 20:57           ` Jonas Karlman
2026-06-29 22:29             ` Randolph Sapp

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DJLR1SYPDTS4.2ZVE5UPMD7COE@ti.com \
    --to=rs@ti.com \
    --cc=ilias.apalodimas@linaro.org \
    --cc=jonas@kwiboo.se \
    --cc=quentin.schulz@cherry.de \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.