On 12 June 2015 at 09:53, Eric Auger <eric.au...@linaro.org> wrote: > On 06/12/2015 10:25 AM, Eric Auger wrote: >>> I think it is because this is now delaying >>> arm_load_kernel_notify call until after rom_load_all. From vl.c: >>> >>> if (rom_load_all() != 0) { >>> fprintf(stderr, "rom loading failed\n"); >>> exit(1); >>> } >>> >>> /* TODO: once all bus devices are qdevified, this should be done >>> * when bus is created by qdev.c */ >>> qemu_register_reset(qbus_reset_all_fn, sysbus_get_default()); >>> qemu_run_machine_init_done_notifiers(); >>> >>> the machine_init_done_notifiers are called after the rom_load_all() >>> call which does the image loading. > > Isn't the actual rom loading done in a reset notifier? If confirmed the > problem comes from the fact the order of registration of reset notifiers > for rom_reset and do_cpu_reset has swapped?
Yes, actual writing of rom data to ram happens in rom_reset_all(). This does seem to be called after arm_load_kernel_notify and before do_cpu_reset, which is the order I would expect we require... -- PMM