[flashrom] [PATCH 6/8] use getpagesize() to determine physmap's length in nicintel_spi.c

Stefan Tauner stefan.tauner at student.tuwien.ac.at
Thu Mar 31 13:03:54 CEST 2011


On Thu, 31 Mar 2011 08:45:39 +0200
Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net> wrote:

> Could you patch physmap instead to round down the requested address
> and round up the end of the range? Then we could just request the
> amount we need without having to care in each programmer driver about
> page size. I think somewhere in flashrom we even have rounding code
> for physmap, it just needs to be moved from a driver to the generic
> physmap.

oh. steep learning curve there. :)
not because the rounding is complicated, but because i am not sure i am
aware of all side effects.
i guess the existing rounding code you was referring to is that in
sb600spi.c?

what i can do/propose for now:
change physmap_common as follows:
instead of the two check including getpagesize():
- round down the physical address requested later from phys_to_virt to
  the nearest getpagesize()-aligned address
- round up the length requested later accordingly i.e. request a
  physical window that is aligned to pages and includes at least the
  memory described by phys_addr + len
- return virt_addr after adding the offset from rounding down the
  physical address
- change nicintel_spi.c accordingly

i would rather not touch the other drivers for now. i think i know what
we are doing here in theory, but i fear i would break something :)

ps: i can't fully test this, because i broke my intel nic when i tried
to unsolder the flash (to add a smd zif socket for further tinkering).
-- 
Kind regards/Mit freundlichen Grüßen, Stefan Tauner




More information about the flashrom mailing list