On 04/09/15 16:43, Paolo Bonzini wrote:
> 
> 
> On 09/04/2015 15:58, Edgar E. Iglesias wrote:
>> Hi Paulo,
>>
>> How would this work with XIP off the romd region?
>> Without s/ns address spaces,  CPUs in NS state will be able to execute
>> and access data while in ROMD state won't they?
> 
> Good point!  In fact, even with S/NS address spaces, the ROMD state is
> global across all CPUs, so if one CPU does a secure write all other CPUs
> would fail to access the ROM in non-secure mode.  Even if I modified
> pflash_mem_read to return ROM contents, it would fail to execute.
> 
> This works for UEFI because the reset vector is the only executable code
> in the flash.  The actual firmware volumes are compressed.

In OVMF, the reset vector and the SEC phase code run from (read-only)
flash. SEC decompresses everything else to RAM. Also, SEC does not
access read-write flash (the varstore) at all.

The above is a specialty of OVMF. In ArmVirtualizationQemu (aka AAVMF),
two further module types run from flash, after SEC: PEI_CORE, and some
PEIMs (ie. the PEI phase comes into the picture). During PEI, read-only
access to the varstore should be supported.

... I'm providing the above as "standalone facts", neither as
confirmation nor as disproof for what you wrote. I don't know enough to
combine these edk2 bits with what you wrote myself, but my hope is that
*you* can maybe combine them, if I point them out. :)

>> I may be missing something...
> 
> You may also be missing (I didn't say it) that this is for x86 not ARM. :->

Right; as long as we're focusing on OVMF "only", then everything after
SEC runs from RAM.

Thanks!
Laszlo

Reply via email to