On 8 September 2017 at 21:32, William Mahoney <wmaho...@unomaha.edu> wrote: > "digic_load_rom()" knows the filename via an extern “bios_name” which is at > “include/sysemu/sysemu.h” but really lives in “vl.c”. It is set based on > “machine_ops” that comes from “qemu_get_machine_opts()” which in turn comes > from “emu_find_opts_singleton()” which is in "util/qemu-config.c”… > > Shortcut time. Presumably there is a way to specify some command line switch, > described as “-bios”, and have the filename end up at “digit_load_rom()”. But > I don’t see the direct path, or a header with all the options listed for the > specific machine, or… Can you walk me through how a “-bios” command line > switch is actually supposed to appear (it doesn’t on qemu-system-arm)?
This should all just work and you don't need to care about the details of our command line parsing. (Feel free to dig into it if you want to, but generally QEMU is big enough that you'll make more progress if you take on trust the parts of the code that you don't immediately need to deal with. Nobody completely understands the entire system. In this case what happens is that in vl.c we handle the -bios option via the QEMU_option_bios: case in the option processing switch by setting the value of the "firmware" option in the "machine" options set, and then later on we pull it back out again to set the bios_name global.) As an ARM example, hw/arm/vexpress.c reads bios_name to get the filename that the user specified with -bios (if any). thanks -- PMM