qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Blue Swirl" <blauwirbel@gmail.com>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v3 1/6] Use IO port for qemu<->guest BIOS communication.
Date: Sat, 30 Aug 2008 22:57:34 +0300	[thread overview]
Message-ID: <f43fc5580808301257m3da6adael800c0c8493057b5e@mail.gmail.com> (raw)
In-Reply-To: <20080829190041.GA18301@minantech.com>

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

On 8/29/08, Gleb Natapov <gleb@qumranet.com> wrote:
> On Thu, Aug 28, 2008 at 09:04:11PM +0300, Blue Swirl wrote:
>  > On 8/28/08, Gleb Natapov <gleb@qumranet.com> wrote:
>  > >  +    fw_cfg_add(fw_cfg, FW_CFG_ID, (uint8_t *)&bios_cfg_id,
>  > >  +               sizeof(bios_cfg_id));
>  >
>  > On second thought, this is in host byte order, which is not a good idea.
>  >
>
> Is there some function to convert from host byte order to target byte
>  order?

I made an updated version of the patch 1/6, with explicit little
endian conversions. I'm not very happy with that. Another way would be
to add functions just to put different size numbers into device and
they would hide the conversion.

The second patch (after 6/6) adds keys for ram size, nographic flag,
number of CPUs and machine ID. I noticed that the other fields like
preloaded kernel location, initrd and command line should not be in
read-only storage so that BIOS can clear them and they will not be
valid after next reset. We could add a writable part to the
configuration device or a way to delete some entries but I think NVRAM
variables could be used instead.

Then I made a patch that takes the new device into use on
OpenBIOS/Sparc64. I found some bugs in the implementation, save and
load were wrong and FWCfgEntry.data should be const. The prototypes
with target_phys_addr_t cause compile failure on OpenBIOS, so
protecting them with something else than __ASSEMBLY__ should be added.
Maybe a PCI bridge or something between CPU and the device should do
byte swapping for outw.

But all in all, it seems to work. Sparc64 boots, UUID gets printed
correctly and added to OF tree:

OpenBIOS for Sparc64
Initializing PCI devices...
ide0: [io ports 0x1f0-0x1f7,0x3f6]
ide1: [io ports 0x170-0x177,0x376]
    drive0 [ATAPI cdrom]: QEMU DVD-ROM
floppy_init
FDC is a S82078B
floppy_reset
floppy_motor_off
SENSEI 20 00
status = 80, reply_buffer= 20 0
fdc_specify
FD_SPECIFY(c1, 11)
set_drive status = 80, new_dor = 10
floppy_recalibrate
fdc_state.version = 0062
Configuration device id QEMU version 1
kernel addr 404000 size 0
CPUs: 1 x SUNW,UltraSPARC-II
UUID: 10000000-2000-3000-4000-500000000000

No disk found.
Welcome to OpenBIOS v1.0RC1 built on Aug 30 2008 15:58
  Type 'help' for detailed information

[sparc64] Booting file 'disk' with parameters ''

0 > cd /  ok
0 > .properties
name                      "OpenBiosTeam,OpenBIOS"
#address-cells            2
#size-cells               2
compatible                "sun4u"
uuid                      -- 10 : 10 0 0 0 20 0 30 0 40 0 50 0 0 0 0 0
idprom                    -- 20 : 1 80 52 54 0 12 34 56 0 0 0 0 0 0 0
f7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
clock-frequency           1dcd6500
 ok

[-- Attachment #2: new_fw_abi.diff --]
[-- Type: plain/text, Size: 11966 bytes --]

[-- Attachment #3: fw_cfg_add_common_keys.diff --]
[-- Type: plain/text, Size: 12188 bytes --]

[-- Attachment #4: openbios_new_fw_abi.diff --]
[-- Type: plain/text, Size: 8896 bytes --]

  parent reply	other threads:[~2008-08-30 19:57 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-28 16:52 [Qemu-devel] [PATCH v3 0/6] Add UUID command-line option Gleb Natapov
2008-08-28 16:52 ` [Qemu-devel] [PATCH v3 1/6] Use IO port for qemu<->guest BIOS communication Gleb Natapov
2008-08-28 17:57   ` Blue Swirl
2008-08-28 18:04   ` Blue Swirl
2008-08-29 19:00     ` Gleb Natapov
2008-08-29 19:26       ` Blue Swirl
2008-08-30 19:57       ` Blue Swirl [this message]
2008-08-31 11:12         ` Gleb Natapov
2008-08-31 11:40           ` Blue Swirl
2008-08-31 12:45           ` Blue Swirl
2008-08-31 13:02             ` Gleb Natapov
2008-08-31 13:39               ` Blue Swirl
2008-08-31 14:18                 ` Gleb Natapov
2008-08-31 18:41                   ` Blue Swirl
2008-08-31 19:24                     ` Gleb Natapov
2008-08-28 16:52 ` [Qemu-devel] [PATCH v3 2/6] Add -uuid command line option Gleb Natapov
2008-08-28 16:52 ` [Qemu-devel] [PATCH v3 3/6] Add "info uuid" command to monitor Gleb Natapov
2008-08-28 16:52 ` [Qemu-devel] [PATCH v3 4/6] Use libuuid if available Gleb Natapov
2008-08-28 16:52 ` [Qemu-devel] [PATCH v3 5/6] Add UUID to firmware configuration info Gleb Natapov
2008-08-28 16:53 ` [Qemu-devel] [PATCH v3 6/6] Pass cpu speed into SM BIOS Gleb Natapov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f43fc5580808301257m3da6adael800c0c8493057b5e@mail.gmail.com \
    --to=blauwirbel@gmail.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).