On 9/25/19 2:55 AM, Alistair Francis wrote: > On Tue, Sep 24, 2019 at 2:32 AM Philippe Mathieu-Daudé > <phi...@redhat.com> wrote: >> >> On 9/23/19 11:46 PM, Peter Maydell wrote: >>> On Fri, 20 Sep 2019 at 23:23, Alistair Francis <alistai...@gmail.com> wrote: >>>> On Thu, Sep 19, 2019 at 10:15 PM Bin Meng <bmeng...@gmail.com> wrote: >>>>> I don't think we should mirror what is used on ARM virt board to >>>>> create 2 flash for sifive_u. For ARM virt, there are 2 flashes because >>>>> they need distinguish secure and non-secure. For sifive_u, only one is >>>>> enough. >>>> >>>> I went back and forward about 1 or 2. Two seems more usable as maybe >>>> someone wants to include two pflash files? The Xilinx machine also has >>>> two so I'm kind of used to 2, but I'm not really fussed. >> >> The Xilinx machine has 2 because it matches the hardware. >> >>> One of the reasons for having 2 on the Arm board (we do this >>> even if we're not supporting secure vs non-secure) is that >>> then you can use one for a fixed read-only BIOS image (backed >>> by a file on the host filesystem shared between all VMs), and >>> one backed by a read-write per-VM file providing permanent >>> storage for BIOS environment variables. Notably UEFI likes to >>> work this way, but the idea applies in theory to other >>> boot loader or BIOSes I guess. >> >> IIRC Laszlo's explanation, the only reason it is that way is because the >> pflash_cfi01 model still doesn't implement sector locking. At the OVMF >> emerged from EDK2, to have a safe ROM vs DATA storage it was decided to >> use 2 different flashes. >> When I understood when this config layout started, I suggested Laszlo to >> use a real ROM to store the OVMF CODE since it is pointless to do >> firmware upgrade in virtualized environment, but he said it was too late >> to change the design. >> >> If you don't plan to run UEFI "Capsule Update" on your Virt board, I >> suggest using memory_region_init_rom() with your firmware CODE, and a >> parallel/SPI flash for the data VARStore. > > We might run that one day, who knows :)
You certainly want to run EDK2, I'm following RISCV progress on the list. What doesn't make sense on a virtualized platform is the "Capsule Update" feature IMO. Where it makes sense is on the SiFive E/U boards models. >>> I would suggest also checking with Markus that your code >>> for instantiating the flash devices follows the current >>> recommendations so the backing storage can be configured >>> via -blockdev. (This is a fairly recent change from June or >>> so; current-in-master virt and sbsa boards provide an example >>> of doing the right thing, I think.) >>> >>> thanks >>> -- PMM >>>