[v2022.10.0] initcall of of_probe_memory failed (EBUSY)

Ahmad Fatoum a.fatoum at pengutronix.de
Mon Oct 17 06:41:26 PDT 2022

Hello Ian,

On 17.10.22 15:10, Ian Abbott wrote:
> On 17/10/2022 13:24, Ahmad Fatoum wrote:
>> On 17.10.22 14:03, Ian Abbott wrote:
>>> Barebox v2022.10.0 seems to work for me, but I now get this (harmless?) error during initialization:
>>> initcall of_probe_memory+0x1/0x34 failed: Device or resource busy
>>> (This is on a 32-bit ARM SoCFPGA/CycloneV based system.)
>>> git bisect is blaming commit d0b5f6bde15b ("of: reserved-mem: reserve regions prior to mmu_initcall()").
>> Can you define #define DEBUG at the top of common/resource.c and paste
>> the output?
> Here is what I get for a Terasic DE0-Nano-SoC.  (I was using a custom board for the original report, but the symptoms are the same.)

Thanks for the debug output.

> Board: Terasic DE-0(Atlas)
> __request_region ok: 0x00000000:0x3fffffff flags=0x0

Here socfpga_detect_sdram() will register ram0 after reading it
from hardware.

> __request_region ok: 0xffd04000:0xffd04fff flags=0x0
> __request_region ok: 0xffd05000:0xffd05fff flags=0x0
> __request_region ok: 0xffc02000:0xffc02fff flags=0x0
> __request_region ok: 0xffc03000:0xffc03fff flags=0x0
> __request_region: 0x00000000:0x3fffffff (ram0) conflicts with 0x00000000:0x3fffffff (ram0)

And then when device-tree is parsed, of_probe_memory()
will register the same memory bank again. The error reports this unexpected
situation, but as you noted should not break the boot.

The correct solution would be removing the memory at 0 node from the
device tree. After all, if barebox has read it from hardware,
why hardcode it in the device tree?

Still, barebox was supposed to have logic to fuse identical and
overlapping memory banks. Can you try the patch I just sent out?


> initcall of_probe_memory+0x1/0x34 failed: Device or resource busy
> __request_region ok: 0x00000000:0x00000fff flags=0x80000200
> __request_region ok: 0x3ffe4000:0x3ffe7fff flags=0x200
> __request_region: 0x00000000:0x00000fff (zero page) conflicts with 0x00000000:0x00000fff (fdt-memreserve-0)
> __request_region ok: 0x1fefd960:0x3fdfb2bf flags=0x200
> __request_region ok: 0x3fe00000:0x3fe71e0b flags=0x200
> __request_region ok: 0x3fe71e0c:0x3fe8272f flags=0x200
> __request_region ok: 0x3fe82730:0x3fe85d1f flags=0x200
> __request_region ok: 0xffc04000:0xffc04fff flags=0x0
> __request_region ok: 0xfffec600:0xfffec6ff flags=0x0
> __request_region ok: 0x3ffe8000:0x3ffeffff flags=0x200
> __request_region ok: 0xff702000:0xff703fff flags=0x0
> socfpga_designware_eth ff702000.ethernet at ff702000.of: user ID: 0x10, Synopsys ID: 0x37
> mdio_bus: miibus0: probed
> __request_region ok: 0xff704000:0xff704fff flags=0x0
> dw_mmc ff704000.dwmmc0 at ff704000.of: registered as mmc0
> __request_region ok: 0xffd02000:0xffd02fff flags=0x0
> __request_region ok: 0xff706000:0xff706fff flags=0x0
> __request_region ok: 0xffb90000:0xffb90003 flags=0x0
> __request_region ok: 0x3fdfb2c0:0x3fdfffc9 flags=0x200
> malloc space: 0x1fefd960 -> 0x3fdfb2bf (size 511 MiB)
> mmc0: detected SD card version 2.0
> mmc0: registered mmc0
> Hit any to stop autoboot:    3

Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

More information about the barebox mailing list