On Sun, 15 Mar 2020 at 13:49, Philippe Mathieu-Daudé <f4...@amsat.org> wrote: > > From: Philippe Mathieu-Daudé <phi...@redhat.com> > > The RX code flash is not a Masked ROM but a EEPROM (electrically > erasable programmable flash memory). > When implementing the flash hardware, the rom_ptr() returns NULL > and the reset vector is not set. > Instead, use the address_space ld/st API to fetch the reset vector > address from the code flash. > > Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> > --- > Based-on: <20200315132810.7022-1-f4...@amsat.org> > > Same issue might occurs in Cortex-M arm_cpu_reset()
rom_ptr() does not mean "I'm trying to get this from ROM", it means "I'm trying to get this from a user-supplied ELF file or similar which hasn't been loaded into guest memory yet". (This is a workaround for a reset ordering issue where CPU reset happens before rom_reset() runs.) Removing the usage of rom_ptr() altogether here doesn't look right -- have you tested the case where the initial reset vector contents are provided via -kernel or -device loader,... ? thanks -- PMM