All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gleb Natapov <gleb@redhat.com>
To: Sebastian Herbszt <herbszt@gmx.de>
Cc: Kevin O'Connor <kevin@koconnor.net>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Re: POST failure (loop) with isapc and seabios
Date: Thu, 26 Nov 2009 08:45:33 +0200	[thread overview]
Message-ID: <20091126064533.GR2999@redhat.com> (raw)
In-Reply-To: <B9C7B0B7FA754BCDAF5F0400566D4620@FSCPC>

On Wed, Nov 25, 2009 at 11:04:20PM +0100, Sebastian Herbszt wrote:
> Gleb Natapov wrote:
> >On Wed, Nov 25, 2009 at 06:09:51AM +0000, Jamie Lokier wrote:
> >>Gleb Natapov wrote:
> >>> > But QEMU is used to run old OSes too.
> >>> > > That's OK. I don't expect BIOS to be reloaded if OS
> >>restart by jumping
> >>> to BIOS reset code.
> >>
> >>That's good then.
> >>
> >>What about DOS and DOS-extender programs which do a soft reset by
> >>triple-faulting the CPU (see Sebastian's notes on i440FX behaviour),
> >>and asking the keyboard controller?
> >>
> >>Both of those methods are used by DOS and DOS-extender programs to
> >>switch from protected mode to real mode.  Keyboard controller was used
> >>originally, but then someone figured out that triple fault can be used
> >>(on most PCs) and is faster.
> >>
> >>The switch to real mode is done by writing somewhere the BIOS checks,
> >>so the BIOS just branches back to the application.
> >>
> >If offset 0x0f in CMOS contains 0x0a then BIOS jumps to address stored
> >in memory address 0x467.
> >
> >>I think that may imply it has to be a "soft reset" as described by
> >>Sebastian in the i440FX description, and I would think the BIOS must
> >>not be reloaded.
> >Reading ich9 spec I see that on this chipset it is possible to configure
> >what kind of reset triple fault generates. Make it not very reliable. Was
> >this triple fault trick only needed on 286 anyway?
> 
> It seems to be INIT# vs. PLTRST# (Platform Reset). On the latter all devices
> are reset. Table 5-40 is pretty descriptive and there seem to be way too many
> ways to trigger a reset. I think PLTRST# is used when a reset is triggered by
> the ACPI method. Fortunatelly we don't have to implement this (yet) since
> it's not available on  the 440fx.
> 
> Using triple fault to reset is used on 286+.
> 
Triple fault use as a reset is widely used today. Use of triple fault to
switch from protected mode to real mode was specific for 286.

> >>
> >>But the BIOS must be reloaded from ROM, I'm guessing, if the keyboard
> >>controller method is used and the word asking for a branch back to the
> >>application has not been set.  Because that's how a modern OS (if not
> >>using ACPI) asks for a system reset.
> >>
> >>Do you think the above is (a) correct, and (b) what's implemented?
> >>
> >Do different things during reset depending on CMOS values doesn't sound
> >right to me. I don't know what is implemented right now. I thought that
> >we reload BIOS on reset.
> 
> Currently the BIOS seems to be only loaded once and not reloaded during the life
> time of a VM.
> I don't think there is a notion of BIOS reload on real hardware. CPU access to it is
> either directed to the rom (power-up configuration, all those fancy reset conditions)
> or to ram.
Reloading BIOS in QEMU is needed for a reason not present on real HW. Think
about migration from old QEMU to new QEMU. Suppose old BIOS can't
properly initialize new QEMU. Then next reboot after migration will fail
since old BIOS will be used.

> How is shadowing currently implemented in qemu? Is the only BIOS copy overwritten
> or is the rom copy separate from the ram copy?
> 

--
			Gleb.

  parent reply	other threads:[~2009-11-26  6:45 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-19 21:30 [Qemu-devel] POST failure (loop) with isapc and seabios Sebastian Herbszt
2009-11-20 22:51 ` [Qemu-devel] " Kevin O'Connor
2009-11-21 14:37   ` Sebastian Herbszt
2009-11-22 12:35   ` Gleb Natapov
2009-11-22 15:07     ` Sebastian Herbszt
2009-11-22 15:10       ` Gleb Natapov
2009-11-22 15:31         ` Sebastian Herbszt
2009-11-22 15:38           ` Gleb Natapov
2009-11-22 17:40             ` Kevin O'Connor
2009-11-22 21:15               ` Sebastian Herbszt
2009-11-22 22:04               ` Sebastian Herbszt
2009-11-23 11:14                 ` Gleb Natapov
2009-11-23 11:17               ` Gleb Natapov
2009-11-22 20:01             ` Sebastian Herbszt
2009-11-23 11:11               ` Gleb Natapov
2009-11-23 19:19                 ` Sebastian Herbszt
2009-11-23 19:43                   ` Gleb Natapov
2009-11-23 21:30                     ` Sebastian Herbszt
2009-11-24  6:28                       ` Gleb Natapov
2009-11-24 14:38                         ` Jamie Lokier
2009-11-24 14:40                           ` Gleb Natapov
2009-11-25  6:09                             ` Jamie Lokier
2009-11-25 12:20                               ` Gleb Natapov
2009-11-25 15:31                                 ` Kevin O'Connor
2009-11-25 16:42                                   ` Gleb Natapov
2009-11-25 22:11                                   ` Sebastian Herbszt
2009-11-27  3:00                                     ` Jamie Lokier
2009-11-27 19:13                                       ` Sebastian Herbszt
2009-11-25 22:04                                 ` Sebastian Herbszt
2009-11-25 22:53                                   ` Kevin O'Connor
2009-11-26  6:49                                     ` Gleb Natapov
2009-11-26  7:15                                       ` Kevin O'Connor
2009-11-26  7:20                                         ` Gleb Natapov
2009-11-26  7:48                                           ` Kevin O'Connor
2009-11-26  7:56                                             ` Gleb Natapov
2009-11-26  8:12                                               ` Kevin O'Connor
2009-11-26  8:19                                                 ` Gleb Natapov
2009-11-26 16:03                                                   ` Kevin O'Connor
2009-11-26 22:35                                     ` Sebastian Herbszt
2009-11-27  5:39                                       ` Kevin O'Connor
2009-11-26  6:45                                   ` Gleb Natapov [this message]
2009-11-26 20:55                                     ` Sebastian Herbszt
2009-11-27  7:44                                       ` Gleb Natapov
2009-11-27 20:42                                         ` Sebastian Herbszt
2009-11-29  8:20                                           ` Gleb Natapov
2009-11-29 22:53                                             ` Natalia Portillo
2009-11-30  7:12                                               ` Gleb Natapov
2009-11-30 20:53                                                 ` Jamie Lokier
2009-11-30 21:02                                                   ` Natalia Portillo
2009-12-01  2:16                                                   ` Kevin O'Connor
2009-11-30 20:34                                             ` Sebastian Herbszt
2009-12-01  9:37                                               ` Gleb Natapov
2009-11-25 21:08                               ` Sebastian Herbszt
2009-11-24 23:27                         ` Sebastian Herbszt
2009-11-25 10:48                           ` Gleb Natapov
2009-11-22 15:38         ` Kevin O'Connor
2009-11-23 11:16           ` Gleb Natapov
2009-11-23 17:57             ` Sebastian Herbszt
2009-11-23 18:07               ` Gleb Natapov
2009-11-23 19:12                 ` Sebastian Herbszt
2009-11-23 19:18                   ` 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=20091126064533.GR2999@redhat.com \
    --to=gleb@redhat.com \
    --cc=herbszt@gmx.de \
    --cc=kevin@koconnor.net \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.