[v9,0/3] PC system flash support

Submitted by Jordan Justen on Dec. 15, 2011, 9:02 p.m.

Details

Message ID CAFe8ug8LJFyYzYMhTk5T+3=EOdeD5eFH7JF-nrcPF795iz_12g@mail.gmail.com
State New
Headers show

Commit Message

Jordan Justen Dec. 15, 2011, 9:02 p.m.
I verified that 'info mtree' and 'info qdev' are equivalent for pc-1.0
when using master and with my patches.

However, I did discover that v1.0 seems to differ from master for this
same test.

I've attached the logs.

   00000000fee00000-00000000feefffff (prio 0): apic
   4000000000000000-7fffffffffffffff (prio 0): alias pci-hole64 @pci
4000000000000000-7fffffffffffffff
 pc.ram
@@ -56,6 +58,7 @@
   00000000000003f8-00000000000003ff (prio 0): serial
   00000000000004d0-00000000000004d0 (prio 0): elcr
   00000000000004d1-00000000000004d1 (prio 0): elcr
+  0000000000000510-0000000000000511 (prio 0): fwcfg
   0000000000000cf8-0000000000000cfb (prio 0): pci-conf-idx
   0000000000000cfc-0000000000000cff (prio 0): pci-conf-data
   0000000000005658-0000000000005658 (prio 0): vmport
@@ -126,7 +129,7 @@
             dev-prop: opt_io_size = 0
             dev-prop: bootindex = -1
             dev-prop: discard_granularity = 0
-            dev-prop: ver = "1.0"
+            dev-prop: ver = "1.0.50"
             dev-prop: serial = "QM00003"
             bus-prop: unit = 0
         bus: ide.0
@@ -218,7 +221,7 @@
     dev-prop: data_iobase = 0x511
     irq 0
     mmio ffffffffffffffff/0000000000000002
-    mmio ffffffffffffffff/0000000000000002
+    mmio ffffffffffffffff/0000000000000001
   dev: apic, id ""
     dev-prop: id = 0
     irq 0

Thanks,

-Jordan

On Thu, Dec 15, 2011 at 12:51, Jordan Justen <jordan.l.justen@intel.com> wrote:
> Enable flash emulation in a PC system using pflash_cfi01.
>
> v9:
> * Add pc-1.1
> * pc-1.0 uses previous rom firmware init code path
>
> v8:
> * Cleanup two chunks of debug code (printf messages)
> * Fix comment in pc.h (pcflash.c => pc_sysfw.c)
>
> v7:
> * Do not add system firmware to qemu roms
> * If kvm is enabled, copy pflash drive contents into a
>  read-only ram region, since kvm cannot currently execute
>  code from a pflash device.
> * Rename pcflash.c to pc_sysfw.c
>
> v6:
> * Rebase for memory API
> * pflash_cfi01: Set error in status register when a write to
>  erase is attempted in read-only mode.
> * Add system firmware to qemu roms
>
> v5:
> * Enable pflash read-only mode
> * Enable -drive with if=pflash to define system firmware image
>
> v4:
> * Rebase
>
> v3:
> * Fix code style issues
> * Add additional comments
>
> v2:
> * Convert debug printf to DPRINTF
>
> Jordan Justen (3):
>  pc: Add pc-1.1 machine type
>  pflash: Support read-only mode
>  pc: Support system flash memory with pflash
>
>  Makefile.target                    |    1 +
>  blockdev.c                         |    3 +-
>  default-configs/i386-softmmu.mak   |    1 +
>  default-configs/x86_64-softmmu.mak |    1 +
>  hw/boards.h                        |    1 +
>  hw/pc.c                            |   58 +-------
>  hw/pc.h                            |    7 +-
>  hw/pc_piix.c                       |   40 +++++-
>  hw/pc_sysfw.c                      |  255 ++++++++++++++++++++++++++++++++++++
>  hw/pflash_cfi01.c                  |   44 ++++--
>  hw/pflash_cfi02.c                  |   83 +++++++------
>  vl.c                               |    2 +-
>  12 files changed, 382 insertions(+), 114 deletions(-)
>  create mode 100644 hw/pc_sysfw.c
>
>

Comments

Avi Kivity Dec. 18, 2011, 10:04 a.m.
On 12/15/2011 11:02 PM, Jordan Justen wrote:
> I verified that 'info mtree' and 'info qdev' are equivalent for pc-1.0
> when using master and with my patches.
>
> However, I did discover that v1.0 seems to differ from master for this
> same test.
>

That's are fine; pre-memory-API devices don't show up in info mtree.

> @@ -218,7 +221,7 @@
>      dev-prop: data_iobase = 0x511
>      irq 0
>      mmio ffffffffffffffff/0000000000000002
> -    mmio ffffffffffffffff/0000000000000002
> +    mmio ffffffffffffffff/0000000000000001
>

This one isn't nice.  Doesn't affect pc though.
Jordan Justen Dec. 19, 2011, 6:27 p.m.
On Sun, Dec 18, 2011 at 02:04, Avi Kivity <avi@redhat.com> wrote:
> On 12/15/2011 11:02 PM, Jordan Justen wrote:
>> I verified that 'info mtree' and 'info qdev' are equivalent for pc-1.0
>> when using master and with my patches.
>>
>> However, I did discover that v1.0 seems to differ from master for this
>> same test.
>>
>
> That's are fine; pre-memory-API devices don't show up in info mtree.
>
>> @@ -218,7 +221,7 @@
>>      dev-prop: data_iobase = 0x511
>>      irq 0
>>      mmio ffffffffffffffff/0000000000000002
>> -    mmio ffffffffffffffff/0000000000000002
>> +    mmio ffffffffffffffff/0000000000000001
>>
>
> This one isn't nice.  Doesn't affect pc though.

Thanks Avi.  Does this patch series now address your concerns about
qtree/mtree and pc-1.0 with regards to the x86 flash feature?

-Jordan
Avi Kivity Dec. 20, 2011, 10:53 a.m.
On 12/19/2011 08:27 PM, Jordan Justen wrote:
> On Sun, Dec 18, 2011 at 02:04, Avi Kivity <avi@redhat.com> wrote:
> > On 12/15/2011 11:02 PM, Jordan Justen wrote:
> >> I verified that 'info mtree' and 'info qdev' are equivalent for pc-1.0
> >> when using master and with my patches.
> >>
> >> However, I did discover that v1.0 seems to differ from master for this
> >> same test.
> >>
> >
> > That's are fine; pre-memory-API devices don't show up in info mtree.
> >
> >> @@ -218,7 +221,7 @@
> >>      dev-prop: data_iobase = 0x511
> >>      irq 0
> >>      mmio ffffffffffffffff/0000000000000002
> >> -    mmio ffffffffffffffff/0000000000000002
> >> +    mmio ffffffffffffffff/0000000000000001
> >>
> >
> > This one isn't nice.  Doesn't affect pc though.
>
> Thanks Avi.  Does this patch series now address your concerns about
> qtree/mtree and pc-1.0 with regards to the x86 flash feature?
>

It's hard to review, since you move a large function and edit it in the
same patch.  Usually we separate this into two patches so the changes
are visible.

The test however indicates that it's probably fine.

Patch hide | download patch | download mbox

--- v1.0-pc.log	2011-12-15 12:14:53.000000000 -0800
+++ master-pc-1.0.log	2011-12-15 12:25:04.000000000 -0800
@@ -1,4 +1,4 @@ 
-QEMU 1.0 monitor - type 'help' for more information
+QEMU 1.0.50 monitor - type 'help' for more information
 (qemu) info mtree
 memory
 0000000000000000-7ffffffffffffffe (prio 0): system
@@ -18,6 +18,8 @@ 
   00000000000ec000-00000000000effff (prio 1): alias pam-ram @pc.ram
00000000000ec000-00000000000effff
   00000000000f0000-00000000000fffff (prio 1): alias pam-rom @pc.ram
00000000000f0000-00000000000fffff
   0000000008000000-00000000ffffffff (prio 0): alias pci-hole @pci
0000000008000000-00000000ffffffff
+  00000000fec00000-00000000fec00fff (prio 0): ioapic
+  00000000fed00000-00000000fed003ff (prio 0): hpet