On 26/10/20 15:44, Peter Maydell wrote:
> Anyway, rather than stashing the firmware filename in the
> DigicState, you could lift the "decide whether to use
> machine->firmware or the def_filename" choice up to
> the callsites in digic4_board_init():
>
> if (board->add_rom0) {
> board->add_rom0(s, DIGIC4_ROM0_BASE,
> machine->firmware ?: board->rom0_def_filename);
> }
> (and similarly for rom1).
>
> Then you can delete the
> if (bios_name) {
> filename = bios_name;
> } else {
> filename = def_filename;
> }
> block from digic_load_rom() and rename the arguments of
> digic_load_rom() and digic4_add_k8p3215uqb_rom() to just
> "filename" rather than "def_filename".
>
> Doing it that way avoids passing things around that we don't
> need to, and makes it clear in the digic4_board_init() code
> that we're doing something a bit suspect in possibly using
> the machine->firmware file twice -- if we ever need to fix
> that bug then it'll be a simple change to the logic in that
> one function.
Much better indeed, thanks!
Paolo