qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] ISA BIOS mapping for system flash emulation
@ 2012-10-31  6:14 Jan Kiszka
  2012-11-01  2:55 ` Jordan Justen
  0 siblings, 1 reply; 5+ messages in thread
From: Jan Kiszka @ 2012-10-31  6:14 UTC (permalink / raw)
  To: Jordan Justen; +Cc: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 480 bytes --]

Hi Jordan,

I was starring at pc_isa_bios_init and wondering why you are creating a
copy of the system flash for the low ISA range instead of using an alias
here as well, just like old_pc_system_rom_init does. That means the ISA
BIOS range can run out of sync when the system flash is updated during
runtime and requires a restart of QEMU then. Switching to an alias would
also allow some code consolidation. Can you explain the idea behind the
current version?

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 259 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] ISA BIOS mapping for system flash emulation
  2012-10-31  6:14 [Qemu-devel] ISA BIOS mapping for system flash emulation Jan Kiszka
@ 2012-11-01  2:55 ` Jordan Justen
  2012-11-01  6:57   ` Jan Kiszka
  0 siblings, 1 reply; 5+ messages in thread
From: Jordan Justen @ 2012-11-01  2:55 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: qemu-devel

On Tue, Oct 30, 2012 at 11:14 PM, Jan Kiszka <jan.kiszka@web.de> wrote:
> Hi Jordan,
>
> I was starring at pc_isa_bios_init and wondering why you are creating a
> copy of the system flash for the low ISA range instead of using an alias
> here as well, just like old_pc_system_rom_init does. That means the ISA
> BIOS range can run out of sync when the system flash is updated during
> runtime and requires a restart of QEMU then. Switching to an alias would
> also allow some code consolidation. Can you explain the idea behind the
> current version?

I'm pretty sure I tried this and found that it did not work on the flash device.

I wrote an email to the list on Oct 17, 2011 about this, but I didn't
get a response. (Re: [Qemu-devel] [PATCH 2/4] pc: Support system flash
memory with pflash)

-Jordan

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] ISA BIOS mapping for system flash emulation
  2012-11-01  2:55 ` Jordan Justen
@ 2012-11-01  6:57   ` Jan Kiszka
  2012-11-01 16:13     ` Jordan Justen
  0 siblings, 1 reply; 5+ messages in thread
From: Jan Kiszka @ 2012-11-01  6:57 UTC (permalink / raw)
  To: Jordan Justen; +Cc: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 980 bytes --]

On 2012-11-01 03:55, Jordan Justen wrote:
> On Tue, Oct 30, 2012 at 11:14 PM, Jan Kiszka <jan.kiszka@web.de> wrote:
>> Hi Jordan,
>>
>> I was starring at pc_isa_bios_init and wondering why you are creating a
>> copy of the system flash for the low ISA range instead of using an alias
>> here as well, just like old_pc_system_rom_init does. That means the ISA
>> BIOS range can run out of sync when the system flash is updated during
>> runtime and requires a restart of QEMU then. Switching to an alias would
>> also allow some code consolidation. Can you explain the idea behind the
>> current version?
> 
> I'm pretty sure I tried this and found that it did not work on the flash device.
> 
> I wrote an email to the list on Oct 17, 2011 about this, but I didn't
> get a response. (Re: [Qemu-devel] [PATCH 2/4] pc: Support system flash
> memory with pflash)

Can you be more specific how/when it failed? A trivial test cannot
confirm this so far.

Jan



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 259 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] ISA BIOS mapping for system flash emulation
  2012-11-01  6:57   ` Jan Kiszka
@ 2012-11-01 16:13     ` Jordan Justen
  2012-11-01 16:28       ` Jan Kiszka
  0 siblings, 1 reply; 5+ messages in thread
From: Jordan Justen @ 2012-11-01 16:13 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 1279 bytes --]

On Wed, Oct 31, 2012 at 11:57 PM, Jan Kiszka <jan.kiszka@web.de> wrote:
> On 2012-11-01 03:55, Jordan Justen wrote:
>> On Tue, Oct 30, 2012 at 11:14 PM, Jan Kiszka <jan.kiszka@web.de> wrote:
>>> Hi Jordan,
>>>
>>> I was starring at pc_isa_bios_init and wondering why you are creating a
>>> copy of the system flash for the low ISA range instead of using an alias
>>> here as well, just like old_pc_system_rom_init does. That means the ISA
>>> BIOS range can run out of sync when the system flash is updated during
>>> runtime and requires a restart of QEMU then. Switching to an alias would
>>> also allow some code consolidation. Can you explain the idea behind the
>>> current version?
>>
>> I'm pretty sure I tried this and found that it did not work on the flash device.
>>
>> I wrote an email to the list on Oct 17, 2011 about this, but I didn't
>> get a response. (Re: [Qemu-devel] [PATCH 2/4] pc: Support system flash
>> memory with pflash)
>
> Can you be more specific how/when it failed? A trivial test cannot
> confirm this so far.

I reproduced this on 1b89fafe (where x86-flash was introduced). When I
setup the alias, I saw random data in the F000 segment.

When I tried the same thing on the current master (patch attached), it
appeared to work correctly.

-Jordan

[-- Attachment #2: enable-f000-alias.diff --]
[-- Type: application/octet-stream, Size: 1325 bytes --]

diff --git a/hw/pc_sysfw.c b/hw/pc_sysfw.c
index 9d7c5f4..c540e61 100644
--- a/hw/pc_sysfw.c
+++ b/hw/pc_sysfw.c
@@ -47,7 +47,6 @@ static void pc_isa_bios_init(MemoryRegion *rom_memory,
     int isa_bios_size;
     MemoryRegion *isa_bios;
     uint64_t flash_size;
-    void *flash_ptr, *isa_bios_ptr;
 
     flash_size = memory_region_size(flash_mem);
 
@@ -57,20 +56,12 @@ static void pc_isa_bios_init(MemoryRegion *rom_memory,
         isa_bios_size = 128 * 1024;
     }
     isa_bios = g_malloc(sizeof(*isa_bios));
-    memory_region_init_ram(isa_bios, "isa-bios", isa_bios_size);
-    vmstate_register_ram_global(isa_bios);
+    memory_region_init_alias(isa_bios, "isa-bios", flash_mem,
+                             ram_size - isa_bios_size, isa_bios_size);
     memory_region_add_subregion_overlap(rom_memory,
                                         0x100000 - isa_bios_size,
                                         isa_bios,
                                         1);
-
-    /* copy ISA rom image from top of flash memory */
-    flash_ptr = memory_region_get_ram_ptr(flash_mem);
-    isa_bios_ptr = memory_region_get_ram_ptr(isa_bios);
-    memcpy(isa_bios_ptr,
-           ((uint8_t*)flash_ptr) + (flash_size - isa_bios_size),
-           isa_bios_size);
-
     memory_region_set_readonly(isa_bios, true);
 }
 

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] ISA BIOS mapping for system flash emulation
  2012-11-01 16:13     ` Jordan Justen
@ 2012-11-01 16:28       ` Jan Kiszka
  0 siblings, 0 replies; 5+ messages in thread
From: Jan Kiszka @ 2012-11-01 16:28 UTC (permalink / raw)
  To: Jordan Justen; +Cc: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 1574 bytes --]

On 2012-11-01 17:13, Jordan Justen wrote:
> On Wed, Oct 31, 2012 at 11:57 PM, Jan Kiszka <jan.kiszka@web.de> wrote:
>> On 2012-11-01 03:55, Jordan Justen wrote:
>>> On Tue, Oct 30, 2012 at 11:14 PM, Jan Kiszka <jan.kiszka@web.de> wrote:
>>>> Hi Jordan,
>>>>
>>>> I was starring at pc_isa_bios_init and wondering why you are creating a
>>>> copy of the system flash for the low ISA range instead of using an alias
>>>> here as well, just like old_pc_system_rom_init does. That means the ISA
>>>> BIOS range can run out of sync when the system flash is updated during
>>>> runtime and requires a restart of QEMU then. Switching to an alias would
>>>> also allow some code consolidation. Can you explain the idea behind the
>>>> current version?
>>>
>>> I'm pretty sure I tried this and found that it did not work on the flash device.
>>>
>>> I wrote an email to the list on Oct 17, 2011 about this, but I didn't
>>> get a response. (Re: [Qemu-devel] [PATCH 2/4] pc: Support system flash
>>> memory with pflash)
>>
>> Can you be more specific how/when it failed? A trivial test cannot
>> confirm this so far.
> 
> I reproduced this on 1b89fafe (where x86-flash was introduced). When I
> setup the alias, I saw random data in the F000 segment.
> 
> When I tried the same thing on the current master (patch attached), it
> appeared to work correctly.

I vaguely remember issues with aliasing in the early memory region days,
maybe that was causing it. As there is no conceptual reason to avoid an
alias, let's file a refactoring patch.

Jan



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 259 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-11-01 16:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-31  6:14 [Qemu-devel] ISA BIOS mapping for system flash emulation Jan Kiszka
2012-11-01  2:55 ` Jordan Justen
2012-11-01  6:57   ` Jan Kiszka
2012-11-01 16:13     ` Jordan Justen
2012-11-01 16:28       ` Jan Kiszka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).