Markus Armbruster <arm...@redhat.com> writes:
> pflash_cfi01_register() takes a size in bytes, a block size in bytes > and a number of blocks. mips_malta_init() passes BIOS_SIZE, 65536, > FLASH_SIZE >> 16. Actually consistent only because BIOS_SIZE (defined > in include/hw/mips/bios.h as (4 * MiB)) matches FLASH_SIZE (defined > locally as 0x400000). Confusing all the same. > > Pass FLASH_SIZE instead of BIOS_SIZE. > > There are more uses of BIOS_SIZE, but I don't sufficiently understand > them to attempt cleanup. > > Cc: Aurelien Jarno <aurel...@aurel32.net> > Cc: Aleksandar Rikalo <arik...@wavecomp.com> > Signed-off-by: Markus Armbruster <arm...@redhat.com> > --- > hw/mips/mips_malta.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c > index 172ee033af..c2a5c65a24 100644 > --- a/hw/mips/mips_malta.c > +++ b/hw/mips/mips_malta.c > @@ -1269,12 +1269,12 @@ void mips_malta_init(MachineState *machine) > if (dinfo) { > printf("Register parallel flash %d size " TARGET_FMT_lx " at " > "addr %08llx '%s' %x\n", > - fl_idx, bios_size, FLASH_ADDRESS, > + fl_idx, FLASH_SIZE, FLASH_ADDRESS, bios_size == FLASH_SIZE at this point, but is then overwritten later in the function *if* the flash is loaded (and not already set via a dinfo). I'd say you could move bios_size down to were it's used but then you confused the byte swapping machinery which expects something to be set. All that said these changes so far are not wrong: Reviewed-by: Alex Bennée <alex.ben...@linaro.org> > blk_name(dinfo->bdrv), fl_sectors); > } > #endif > fl = pflash_cfi01_register(FLASH_ADDRESS, NULL, "mips_malta.bios", > - BIOS_SIZE, > + FLASH_SIZE, > dinfo ? blk_by_legacy_dinfo(dinfo) : NULL, > 65536, fl_sectors, > 4, 0x0000, 0x0000, 0x0000, 0x0000, be); -- Alex Bennée