public inbox for ecos-patches@sourceware.org
 help / color / mirror / Atom feed
* [Bug 1001174] New: i386 PC floppy boot fails in Bochs and with some real BIOSes
@ 2011-03-16 17:49 bugzilla-daemon
  2011-03-18  8:22 ` [Bug 1001174] " bugzilla-daemon
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: bugzilla-daemon @ 2011-03-16 17:49 UTC (permalink / raw)
  To: ecos-patches

Please do not reply to this email. Use the web interface provided at:
http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001174

           Summary: i386 PC floppy boot fails in Bochs and with some real
                    BIOSes
           Product: eCos
           Version: CVS
          Platform: pc (i386 PC target)
        OS/Version: IA32
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: low
         Component: Patches and contributions
        AssignedTo: unassigned@bugs.ecos.sourceware.org
        ReportedBy: horst@schirmeier.com
                CC: ecos-patches@ecos.sourceware.org
             Class: Advice Request


Created an attachment (id=1175)
 --> (http://bugs.ecos.sourceware.org/attachment.cgi?id=1175)
pcmb.inc: enable interrupts before waiting for the BIOS

In Bochs (releases 2.3.7 and 2.4.5, and current SVN head -r10265) and on some
(but by far not all) tested PCs, eCos (2.0, 3.0, and CVS head as of 2011-03-16)
does not boot but stalls after printing a line of dots.  Further analysis
showed that the boot process is stuck in
packages/hal/i386/pcmb/current/include/pcmb.inc in this loop beginning at line
223 (as of eCos 3.0):

        /* Lets be nice and wait for the diskette drive motor to go off
         * before continuing. */

        movw    $0x40, %ax
        movw    %ax, %es
        movl    $0x40, %ebx
2:      es
        movb    (%bx), %al
        cmpb    $0, %al
        jne     2b

eCos polls for the BIOS data area variable at 0040:0040 to become zero, as an
indication that the INT08 handler has switched off the floppy drive motor. 
Unfortunately, the Bochs BIOS (and supposedly a number of real-world BIOSes,
too) passes control to boot sector with the Interrupt Enable Flag (IF) in
EFLAGS disabled, and the timer interrupt is never triggered.  Therefore the
variable won't turn 0, the drive motor never gets switched off, and eCos
stalls.

One fix is to enable interrupts right before entering the polling loop (see
attached patch), or to switch off the drive motor by yourself (out 0x0 to the
floppy drive's Digital Output Register 0x3F2, cf.
http://wiki.osdev.org/Floppy_Disk_Controller).  The latter variant would remove
the 2s waiting time until the BIOS counter times out.

-- 
Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

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

* [Bug 1001174] i386 PC floppy boot fails in Bochs and with some real BIOSes
  2011-03-16 17:49 [Bug 1001174] New: i386 PC floppy boot fails in Bochs and with some real BIOSes bugzilla-daemon
  2011-03-18  8:22 ` [Bug 1001174] " bugzilla-daemon
@ 2011-03-18  8:22 ` bugzilla-daemon
  2011-03-20 15:29 ` bugzilla-daemon
  2011-07-02 10:04 ` bugzilla-daemon
  3 siblings, 0 replies; 5+ messages in thread
From: bugzilla-daemon @ 2011-03-18  8:22 UTC (permalink / raw)
  To: ecos-patches

Please do not reply to this email. Use the web interface provided at:
http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001174

--- Comment #1 from Sergei Gavrikov <sergei.gavrikov@gmail.com> 2011-03-18 08:22:02 GMT ---
Created an attachment (id=1177)
 --> (http://bugs.ecos.sourceware.org/attachment.cgi?id=1177)
floppy-boot-sti-2.diff

pcmb.inc: enable interrupts before waiting for the BIOS

-- 
Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

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

* [Bug 1001174] i386 PC floppy boot fails in Bochs and with some real BIOSes
  2011-03-16 17:49 [Bug 1001174] New: i386 PC floppy boot fails in Bochs and with some real BIOSes bugzilla-daemon
@ 2011-03-18  8:22 ` bugzilla-daemon
  2011-03-18  8:22 ` bugzilla-daemon
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: bugzilla-daemon @ 2011-03-18  8:22 UTC (permalink / raw)
  To: ecos-patches

Please do not reply to this email. Use the web interface provided at:
http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001174

--- Comment #2 from Sergei Gavrikov <sergei.gavrikov@gmail.com> 2011-03-18 08:22:48 GMT ---
Hi Horst,

Thank you for the catch, explanation and the patch. I added CL entry for
you and if you do not avoid the used e-mail address I will check-in it.

Thank you,
Sergei

-- 
Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

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

* [Bug 1001174] i386 PC floppy boot fails in Bochs and with some real BIOSes
  2011-03-16 17:49 [Bug 1001174] New: i386 PC floppy boot fails in Bochs and with some real BIOSes bugzilla-daemon
  2011-03-18  8:22 ` [Bug 1001174] " bugzilla-daemon
  2011-03-18  8:22 ` bugzilla-daemon
@ 2011-03-20 15:29 ` bugzilla-daemon
  2011-07-02 10:04 ` bugzilla-daemon
  3 siblings, 0 replies; 5+ messages in thread
From: bugzilla-daemon @ 2011-03-20 15:29 UTC (permalink / raw)
  To: ecos-patches

Please do not reply to this email. Use the web interface provided at:
http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001174

--- Comment #3 from Sergei Gavrikov <sergei.gavrikov@gmail.com> 2011-03-20 15:29:01 GMT ---
Checked-in.

Thank you for your contribution to eCos.

-- 
Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

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

* [Bug 1001174] i386 PC floppy boot fails in Bochs and with some real BIOSes
  2011-03-16 17:49 [Bug 1001174] New: i386 PC floppy boot fails in Bochs and with some real BIOSes bugzilla-daemon
                   ` (2 preceding siblings ...)
  2011-03-20 15:29 ` bugzilla-daemon
@ 2011-07-02 10:04 ` bugzilla-daemon
  3 siblings, 0 replies; 5+ messages in thread
From: bugzilla-daemon @ 2011-07-02 10:04 UTC (permalink / raw)
  To: ecos-patches

Please do not reply to this email. Use the web interface provided at:
http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001174

Sergei Gavrikov <sergei.gavrikov@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
                 CC|                            |sergei.gavrikov@gmail.com
         Resolution|                            |CURRENTRELEASE

--- Comment #4 from Sergei Gavrikov <sergei.gavrikov@gmail.com> 2011-07-02 11:03:53 BST ---
As the patch is in CVS, mark bug as RESOLVED.

-- 
Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

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

end of thread, other threads:[~2011-07-02 10:04 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-16 17:49 [Bug 1001174] New: i386 PC floppy boot fails in Bochs and with some real BIOSes bugzilla-daemon
2011-03-18  8:22 ` [Bug 1001174] " bugzilla-daemon
2011-03-18  8:22 ` bugzilla-daemon
2011-03-20 15:29 ` bugzilla-daemon
2011-07-02 10:04 ` bugzilla-daemon

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 read-only IMAP folder(s) and NNTP newsgroup(s).