qemu/hw
Samuel Holland 55c136599f hw/riscv: Respect firmware ELF entry point
When riscv_load_firmware() loads an ELF, the ELF segment addresses are
used, not the passed-in firmware_load_addr. The machine models assume
the firmware entry point is what they provided for firmware_load_addr,
and use that address to generate the boot ROM, so if the ELF is linked
at any other address, the boot ROM will jump to empty memory.

Pass back the ELF entry point to use when generating the boot ROM, so
the boot ROM can jump to firmware loaded anywhere in RAM. For example,
on the virt machine, this allows using an OpenSBI fw_dynamic.elf built
with FW_TEXT_START values other than 0x80000000.

Signed-off-by: Samuel Holland <samuel.holland@sifive.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20240817002651.3209701-1-samuel.holland@sifive.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
2024-10-02 15:11:51 +10:00
..
9pfs hw/xen: Make XenDevOps structures const 2024-06-04 11:53:43 +02:00
acpi hw/acpi: remove break after g_assert_not_reached() 2024-09-24 13:53:35 +02:00
adc hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
alpha alpha: switch boards to "default y" 2024-05-03 15:47:47 +02:00
arm * Convert more Avocado tests to the new functional test framework 2024-09-28 12:34:38 +01:00
audio hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
avr avr: switch boards to "default y" 2024-05-03 15:47:47 +02:00
block hw/block: fix uint32 overflow 2024-09-17 12:12:30 +02:00
char hw/char/stm32l4x5_usart.c: Enable USART ACK bit response 2024-09-19 12:58:58 +01:00
core Hi, 2024-09-26 17:10:39 +01:00
cpu hw: Add a Kconfig switch for the TYPE_CPU_CLUSTER device 2024-04-25 12:48:12 +02:00
cxl hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
display hw/display: Fix mirrored output in dm163 2024-09-20 08:06:57 +03:00
dma hw/dma: Remove ETRAX_FS DMA device 2024-09-13 20:11:13 +02:00
fsi hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
gpio hw/gpio/aspeed_gpio: Avoid shift into sign bit 2024-09-16 17:44:07 +02:00
hppa reset: Use ResetType for qemu_devices_reset() and MachineClass::reset() 2024-09-24 11:33:34 +02:00
hyperv hw/hyperv: remove return after g_assert_not_reached() 2024-09-24 13:53:35 +02:00
i2c hw/i2c/aspeed: Add support for 64 bit addresses 2024-09-16 17:44:08 +02:00
i386 reset: Add RESET_TYPE_WAKEUP 2024-09-24 11:33:35 +02:00
ide mac_dbdma: Remove leftover dma_memory_unmap calls 2024-09-18 09:31:56 +01:00
input hw/input/adb-mouse: convert to use QemuInputHandler 2024-09-13 20:11:13 +02:00
intc hw/intc: Remove TYPE_ETRAX_FS_PIC device 2024-09-13 20:10:50 +02:00
ipack hw/ipack: Constify VMState 2023-12-29 11:17:30 +11:00
ipmi hw/ipmi: Constify VMState 2023-12-29 11:17:30 +11:00
isa hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
loongarch hw/loongarch/virt: Add description for virt machine type 2024-09-20 08:06:56 +03:00
m68k license: Update deprecated SPDX tag GPL-2.0 to GPL-2.0-only 2024-09-20 10:11:59 +03:00
mem hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
microblaze microblaze: switch boards to "default y" 2024-05-03 15:47:47 +02:00
mips hw/mips/jazz: fix typo in in-built NIC alias 2024-09-20 08:06:56 +03:00
misc hw/misc: remove break after g_assert_not_reached() 2024-09-13 20:12:16 +02:00
net * Convert more Avocado tests to the new functional test framework 2024-09-28 12:34:38 +01:00
nubus hw/nubus/nubus-device: Range check 'slot' property 2024-09-08 11:49:49 +02:00
nvme hw/nvme: add atomic write support 2024-10-01 09:02:05 +02:00
nvram license: Update deprecated SPDX tag GPL-2.0+ to GPL-2.0-or-later 2024-09-20 10:11:59 +03:00
openrisc kconfig: express dependency of individual boards on libfdt 2024-05-10 15:45:15 +02:00
pci hw/pci: remove return after g_assert_not_reached() 2024-09-24 13:53:35 +02:00
pci-bridge hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
pci-host hw/pci-host: remove break after g_assert_not_reached() 2024-09-13 20:12:16 +02:00
pcmcia hw/pcmcia/pxa2xx: Inline pxa2xx_pcmcia_init() 2023-10-27 12:48:57 +01:00
ppc * Convert more Avocado tests to the new functional test framework 2024-09-28 12:34:38 +01:00
remote hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
riscv hw/riscv: Respect firmware ELF entry point 2024-10-02 15:11:51 +10:00
rtc hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
rx kconfig: express dependency of individual boards on libfdt 2024-05-10 15:45:15 +02:00
s390x reset: Use ResetType for qemu_devices_reset() and MachineClass::reset() 2024-09-24 11:33:34 +02:00
scsi hw/scsi: remove break after g_assert_not_reached() 2024-09-24 13:53:35 +02:00
sd hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
sensor hw/sensor/tmp105: Lower 4 bit of limit registers are always 0 2024-09-13 20:11:13 +02:00
sh4 hw/sh4: Remove sh7750_register_io_device() helper 2024-09-13 20:10:49 +02:00
smbios smbios: make memory device size configurable per Machine 2024-07-22 20:15:41 -04:00
sparc hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
sparc64 hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
ssi hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
timer hw/timer: Remove TYPE_ETRAX_FS_TIMER device 2024-09-13 20:11:13 +02:00
tpm hw/tpm: remove break after g_assert_not_reached() 2024-09-24 13:53:35 +02:00
tricore hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
ufs hw/ufs: minor bug fixes related to ufs-test 2024-09-06 18:04:16 +09:00
usb hw: Use device_class_set_legacy_reset() instead of opencoding 2024-09-13 15:31:44 +01:00
vfio vfio/igd: correctly calculate stolen memory size for gen 9 and later 2024-09-17 10:37:55 +02:00
virtio Hi, 2024-09-26 17:10:39 +01:00
watchdog hw/watchdog: replace assert(0) with g_assert_not_reached() 2024-09-13 20:12:16 +02:00
xen hw/xen: pvh-common: Add support for creating PCIe/GPEX 2024-09-04 16:50:43 +02:00
xenpv hw/xen: Register framebuffer backend via xen_backend_init() 2024-06-04 11:53:43 +02:00
xtensa hw/xtensa: require libfdt 2024-05-10 15:45:15 +02:00
Kconfig hw/timer: Remove TYPE_ETRAX_FS_TIMER device 2024-09-13 20:11:13 +02:00
meson.build hw/cris: Remove image loader helper 2024-09-13 20:10:50 +02:00