All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jamie Lokier <jamie@shareable.org>
To: Gleb Natapov <gleb@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Re: POST failure (loop) with isapc and seabios
Date: Mon, 30 Nov 2009 20:53:35 +0000	[thread overview]
Message-ID: <20091130205335.GD5560@shareable.org> (raw)
In-Reply-To: <20091130071257.GC30150@redhat.com>

Gleb Natapov wrote:
> On Sun, Nov 29, 2009 at 10:53:40PM +0000, Natalia Portillo wrote:
> > >>
> > >We already concluded that "return to PM by triple fault" is not
> > >something
> > >we want to support. It was needed only on 286 and QEMU doesn't even
> > >support 286 cpu emulation.
> > 
> > It is used by a whole kind of operating systems (all the 16-bit OS/2
> > tree) and who knows by how many DOS extenders.
> I suppose none. But if you know any please mansion it by name here. Note
> that is should support i386 CPU since QMEU does not emulate i286.
> 
> I386 has native way to switch to PM, no need triple fault trick and it
> was introduced by Intel in 1985. For those who wanted to be compatible
> with 286 there was a trick invented back then to switch to PM in a
> portable way between i386 and i286:
> http://www.rcollins.org/ftp/source/3fault/reset.asm
> 
> I doubt that OS/2 was not updated to use something like this.

I can't test 16-bit OS/2, so if someone would like to give it a try
that'd be great.  It'd be interesting to see what method it uses.

I will try 16-bit Windows 3, and MS-DOS with HIMEM.SYS and Turbo C++ to
see if (a) they still work and (b) what method they use.

> > It is supported by Pentium processors, so it should be by QEMU, no
> > matter it does not emulate the 286 but a later CPU.
> Most chipsets can be configured to do full reset on CPU shutdown cycle.
> You simple can't rely on certain behaviour of triple fault. 

I wouldn't be surprised if, for ancient 286 app compatibility, real
BIOSes always set the chipset to do a soft reset, but I've no idea
really what they do.

286 era PCs didn't do much on soft reset :-)

The triple fault and keyboard reset methods, when BIOS is told it's
for PM->RM switch, don't disturb the video output, lose keyboard input
or have to do a slow reinitialisation of hard disk or memory, because
those things all carry on working.

The PM->RM switch is used as a slow context switch or method for
calling the BIOS in multitasking environments.  Even though it's slow
(especially when done through a keyboard controller request), it's
fast enough to use for context switching.

> BTW QEMU today does full reset on triple fault and I haven't noticed any
> complains.

Those OSes we've just talked about don't care about the ACPI (etc)
tables getting wiped in the BIOS, do they? :-)

I'm getting the impression all the BIOS self-modification is in areas
which aren't used by ancient OSes using the triple fault or keyboard
methods for PM->RM switch.  Is that right?

It would still be unfortunate if you could boot DOS, run a few things
that use the old PM->RM methods, then run LOADLIN to boot a modern
Linux (from DOS) and find Linux needs something that's messed up in
the BIOS.

-- Jamie

  reply	other threads:[~2009-11-30 20:53 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
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 [this message]
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=20091130205335.GD5560@shareable.org \
    --to=jamie@shareable.org \
    --cc=gleb@redhat.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 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.