qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [qemu PATCH] hw/i386/pc_sysfw: support more than one fl


From: Markus Armbruster
Subject: Re: [Qemu-devel] [qemu PATCH] hw/i386/pc_sysfw: support more than one flash drive
Date: Fri, 22 Nov 2013 13:21:06 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux)

Laszlo Ersek <address@hidden> writes:

> This patch allows the user to usefully specify
>
>   -drive file=img_1,if=pflash,format=raw,readonly \
>   -drive file=img_2,if=pflash,format=raw
>
> on the command line. The flash images will be mapped under 4G in their
> reverse unit order -- that is, with their base addresses progressing
> downwards, in increasing unit order.
>
> (The unit number increases with command line order if not explicitly
> specified.)
>
> This accommodates the following use case: suppose that OVMF is split in
> two parts, a writeable host file for non-volatile variable storage, and a
> read-only part for bootstrap and decompressible executable code.
>
> The binary code part would be read-only, centrally managed on the host
> system, and passed in as unit 0. The variable store would be writeable,
> VM-specific, and passed in as unit 1.
>
>   00000000ffe00000-00000000ffe1ffff (prio 0, R-): system.flash1
>   00000000ffe20000-00000000ffffffff (prio 0, R-): system.flash0
>
> (If the guest tries to write to the flash range that is backed by the
> read-only drive, bdrv_write() in pflash_update() will correctly deny the
> write with -EACCES, and pflash_update() won't care, which suits us well.)

Before this patch:

You can define as many if=pflash drives as you want.  Any with non-zero
index are silently ignored.

If you don't specify one with index=0, you get a ROM at the top of the
32 bit address space, contents taken from -bios (default "bios.bin").
Up to its last 128KiB are aliased at the top of the ISA address space.

If you do specify one with index=0, you get a pflash device at the top
of the 32 bit address space, with contents from the drive, and -bios is
silently ignored.  Up to its last 128KiB are copied to a ROM at the top
of the (20 bit) ISA address space.

After this patch (please correct misunderstandings):

Now the drives after the first unused index are silently ignored.

If you don't specify one with index=0, no change.

If you do, you now get N pflash devices, where N is the first unused
index.  Each pflash's contents is taken from the respective drive.  The
flashes are mapped at the top of the 32 bit address space in reverse
index order.  -bios is silently ignored, as before.  Up to the last
128KiB of the index=0 flash are copied to a ROM at the top of the ISA
address space.

Thus, no change for index=0.  For index=1..N, we now get additional
flash devices.

Correct?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]