qemu/hw/arm
Schspa Shi 990f49cfd7 hw/arm/boot: set initrd with #address-cells type in fdt
We use 32bit value for linux,initrd-[start/end], when we have
loader_start > 4GB, there will be a wrong initrd_start passed
to the kernel, and the kernel will report the following warning.

[    0.000000] ------------[ cut here ]------------
[    0.000000] initrd not fully accessible via the linear mapping -- please check your bootloader ...
[    0.000000] WARNING: CPU: 0 PID: 0 at arch/arm64/mm/init.c:355 arm64_memblock_init+0x158/0x244
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper Tainted: G        W          6.1.0-rc3-13250-g30a0b95b1335-dirty #28
[    0.000000] Hardware name: Horizon Sigi Virtual development board (DT)
[    0.000000] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    0.000000] pc : arm64_memblock_init+0x158/0x244
[    0.000000] lr : arm64_memblock_init+0x158/0x244
[    0.000000] sp : ffff800009273df0
[    0.000000] x29: ffff800009273df0 x28: 0000001000cc0010 x27: 0000800000000000
[    0.000000] x26: 000000000050a3e2 x25: ffff800008b46000 x24: ffff800008b46000
[    0.000000] x23: ffff800008a53000 x22: ffff800009420000 x21: ffff800008a53000
[    0.000000] x20: 0000000004000000 x19: 0000000004000000 x18: 00000000ffff1020
[    0.000000] x17: 6568632065736165 x16: 6c70202d2d20676e x15: 697070616d207261
[    0.000000] x14: 656e696c20656874 x13: 0a2e2e2e20726564 x12: 0000000000000000
[    0.000000] x11: 0000000000000000 x10: 00000000ffffffff x9 : 0000000000000000
[    0.000000] x8 : 0000000000000000 x7 : 796c6c756620746f x6 : 6e20647274696e69
[    0.000000] x5 : ffff8000093c7c47 x4 : ffff800008a2102f x3 : ffff800009273a88
[    0.000000] x2 : 80000000fffff038 x1 : 00000000000000c0 x0 : 0000000000000056
[    0.000000] Call trace:
[    0.000000]  arm64_memblock_init+0x158/0x244
[    0.000000]  setup_arch+0x164/0x1cc
[    0.000000]  start_kernel+0x94/0x4ac
[    0.000000]  __primary_switched+0xb4/0xbc
[    0.000000] ---[ end trace 0000000000000000 ]---
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000001000000000-0x0000001007ffffff]

This doesn't affect any machine types we currently support, because
for all of our machine types the RAM starts well below the 4GB
mark, but it does demonstrate that we're not currently writing
the device-tree properties quite as intended.

To fix it, we can change it to write these values to the dtb using a
type width matching #address-cells.  This is the intended size for
these dtb properties, and is how u-boot, for instance, writes them,
although in practice the Linux kernel will cope with them being any
width as long as they're big enough to fit the value.

Signed-off-by: Schspa Shi <schspa@gmail.com>
Message-id: 20221129160724.75667-1-schspa@gmail.com
[PMM: tweaked commit message]
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2022-12-15 11:18:20 +00:00
..
allwinner-a10.c arm/allwinner-a10: replace snprintf() with g_strdup_printf() 2022-04-21 17:03:51 +04:00
allwinner-h3.c block: Change blk_{pread,pwrite}() param order 2022-07-12 12:14:56 +02:00
armsse.c
armv7m.c target/arm: Make boards pass base address to armv7m_load_kernel() 2022-09-14 11:19:40 +01:00
aspeed_ast10x0.c aspeed: Refactor UART init for multi-SoC machines 2022-07-14 16:24:38 +02:00
aspeed_ast2600.c ast2600: Drop NEON from the CPU features 2022-10-24 11:20:15 +02:00
aspeed_soc.c aspeed: Refactor UART init for multi-SoC machines 2022-07-14 16:24:38 +02:00
aspeed.c reset: allow registering handlers that aren't called by snapshot loading 2022-10-27 11:34:31 +01:00
bcm2835_peripherals.c Align Raspberry Pi DMA interrupts with Linux DTS 2022-07-18 13:25:13 +01:00
bcm2836.c
boot.c hw/arm/boot: set initrd with #address-cells type in fdt 2022-12-15 11:18:20 +00:00
collie.c
cubieboard.c
digic_boards.c
digic.c arm/digic: replace snprintf() with g_strdup_printf() 2022-04-21 17:03:51 +04:00
exynos4_boards.c hw/arm/boot: Drop nb_cpus field from arm_boot_info 2022-02-08 10:56:28 +00:00
exynos4210.c hw/arm/exynos4210: Drop Exynos4210Irq struct 2022-04-21 11:37:04 +01:00
fby35.c aspeed/fby35: Fix owner of the BMC RAM memory region 2022-08-01 15:24:15 +02:00
fsl-imx6.c
fsl-imx6ul.c
fsl-imx7.c
fsl-imx25.c
fsl-imx31.c
gumstix.c
highbank.c hw/arm/boot: Drop nb_cpus field from arm_boot_info 2022-02-08 10:56:28 +00:00
imx25_pdk.c hw/arm/boot: Drop nb_cpus field from arm_boot_info 2022-02-08 10:56:28 +00:00
integratorcp.c
Kconfig hw/arm/virt: Enable HMAT on arm virt machine 2022-11-07 14:08:17 -05:00
kzm.c hw/arm/boot: Drop nb_cpus field from arm_boot_info 2022-02-08 10:56:28 +00:00
mainstone.c
mcimx6ul-evk.c hw/arm/boot: Drop nb_cpus field from arm_boot_info 2022-02-08 10:56:28 +00:00
mcimx7d-sabre.c hw/arm/boot: Drop nb_cpus field from arm_boot_info 2022-02-08 10:56:28 +00:00
meson.build aspeed: Add fby35 skeleton 2022-07-14 16:24:38 +02:00
microbit.c target/arm: Make boards pass base address to armv7m_load_kernel() 2022-09-14 11:19:40 +01:00
mps2-tz.c reset: allow registering handlers that aren't called by snapshot loading 2022-10-27 11:34:31 +01:00
mps2.c target/arm: Make boards pass base address to armv7m_load_kernel() 2022-09-14 11:19:40 +01:00
msf2-soc.c
msf2-som.c target/arm: Make boards pass base address to armv7m_load_kernel() 2022-09-14 11:19:40 +01:00
musca.c target/arm: Make boards pass base address to armv7m_load_kernel() 2022-09-14 11:19:40 +01:00
musicpal.c ptimer: Rename PTIMER_POLICY_DEFAULT to PTIMER_POLICY_LEGACY 2022-05-19 16:19:03 +01:00
netduino2.c target/arm: Make boards pass base address to armv7m_load_kernel() 2022-09-14 11:19:40 +01:00
netduinoplus2.c target/arm: Make boards pass base address to armv7m_load_kernel() 2022-09-14 11:19:40 +01:00
npcm7xx_boards.c hw/arm: Use bit fields for NPCM7XX PWRON STRAPs 2022-04-21 11:37:05 +01:00
npcm7xx.c hw/arm/boot: Drop nb_cpus field from arm_boot_info 2022-02-08 10:56:28 +00:00
nrf51_soc.c
nseries.c Drop useless casts from g_malloc() & friends to pointer 2022-10-22 23:15:40 +02:00
omap1.c exec/exec-all: Move 'qemu/log.h' include in units requiring it 2022-02-21 10:18:06 +01:00
omap2.c trivial: Fix duplicated words 2022-08-01 11:58:02 +02:00
omap_sx1.c
orangepi.c hw/arm/boot: Drop nb_cpus field from arm_boot_info 2022-02-08 10:56:28 +00:00
palm.c
pxa2xx_gpio.c
pxa2xx_pic.c target/arm: Replace sentinels with ARRAY_SIZE in cpregs.h 2022-05-05 09:35:50 +01:00
pxa2xx.c hw/i2c: add asynchronous send 2022-06-30 09:21:14 +02:00
raspi.c hw/arm/boot: Drop nb_cpus field from arm_boot_info 2022-02-08 10:56:28 +00:00
realview.c hw/arm/realview: replace 'qemu_split_irq' with 'TYPE_SPLIT_IRQ' 2022-04-21 11:37:04 +01:00
sabrelite.c hw/arm/boot: Drop nb_cpus field from arm_boot_info 2022-02-08 10:56:28 +00:00
sbsa-ref.c hw/arm: add versioning to sbsa-ref machine DT 2022-05-09 11:47:54 +01:00
smmu-common.c hw/arm: Convert TYPE_ARM_SMMU to 3-phase reset 2022-12-15 11:18:20 +00:00
smmu-internal.h
smmuv3-internal.h hw/arm/smmuv3: Advertise support for SMMUv3.2-BBML2 2022-04-28 13:59:23 +01:00
smmuv3.c hw/arm: Convert TYPE_ARM_SMMUV3 to 3-phase reset 2022-12-15 11:18:20 +00:00
spitz.c
stellaris.c target/arm: Make boards pass base address to armv7m_load_kernel() 2022-09-14 11:19:40 +01:00
stm32f100_soc.c
stm32f205_soc.c
stm32f405_soc.c
stm32vldiscovery.c target/arm: Make boards pass base address to armv7m_load_kernel() 2022-09-14 11:19:40 +01:00
strongarm.c
strongarm.h
tosa.c
trace-events
trace.h
versatilepb.c
vexpress.c hw/arm/boot: Drop nb_cpus field from arm_boot_info 2022-02-08 10:56:28 +00:00
virt-acpi-build.c hw/arm/virt: Enable HMAT on arm virt machine 2022-11-07 14:08:17 -05:00
virt.c target/arm: Add Cortex-A55 CPU 2022-12-15 11:18:19 +00:00
xilinx_zynq.c hw/arm/boot: Drop nb_cpus field from arm_boot_info 2022-02-08 10:56:28 +00:00
xlnx-versal-virt.c hw/core: Move the ARM sysbus-fdt to core 2022-04-29 10:48:26 +10:00
xlnx-versal.c hw/arm: versal: Connect the CRL 2022-04-21 11:37:03 +01:00
xlnx-zcu102.c
xlnx-zynqmp.c hw/arm/xlnx-zynqmp: Connect ZynqMP's USB controllers 2022-09-29 17:40:01 +01:00
z2.c