On Thu, Mar 10, 2011 at 13:41, Carl-Daniel Hailfinger <c-d.hailfinger.devel.2...@gmx.net> wrote: > Auf 10.03.2011 12:48, Gleb Natapov schrieb: >> Yes we can make memory slot that will be treated as memory on read and >> IO on write, but first relying on that will prevent using flash interface >> on older kernels and second it is not enough to implement the proposal. >> When magic value is written into an address, the address become IO for >> reading too, but KVM slot granularity is page, not byte, so KVM will >> have to remove the slot to make it IO, but KVM can't execute code from >> IO region (yet), so we will not be able to run firmware from flash and >> simultaneously write into the flash. >> > > If you have a Parallel/LPC/FWH flash chip in your mainboard, it is > technically impossible to execute code from flash while you are writing > to _any_ part of the flash chip because every single read from the flash > chip during an active write will toggle one bit of the read data. > So if your code already runs on real x86, you will never hit that problem. > > (SPI flash is an exception, but it uses out-of-band access anyway, > usually via some southbridge interface, and that means the IO vs. > execution conflict won't happen there either.)
I've not seen a firmware that attempts to update flash while also executing from flash. For OVMF or UEFI, I don't would not think this should be a requirement. (Although, my proposal would support this.) -Jordan