On Thu, Aug 28, 2008 at 06:46:03AM +0100, Chris Lamb wrote:
Package: bochsbios
Version: 2.3.7-1
This is a bug that has been discussed somewhat privately until now; I think
it deserves a real bug report so we can track it better.
The issue is that a syslinux template is displayed with the Debian logo but
the text is cut off:
Press F1 for help, or ENTER to
It should, obviously, append boot: and allow the user to press enter or
enter parameters, etc. I don't know the full details but I can easily
reproduce this with Qemu using a Debian Live image.
Simply waiting about 60 seconds results in the boot prompt appearing. I have
heard of some workarounds (including setting a high screen resolution!).
Using GRUB does not cause similar problems.
I believe aurel32 will reply to this bug adding some more details:
lamby aurel32: Is there are bug report open for that qemu/syslinux
timing issue? If not, could you file one; it is difficult to
track.
aurel32 lamby: it's actually not a qemu issue, but a bochsbios issue
aurel32 lamby: please open one, I'll add some details here
aurel32 lamby: though some people are able to reproduce the problem with
real bios
Here are some details. This has been broken by commit 1.187 of
rombios.c:
| revision 1.187
| date: 2007/10/14 08:11:05; author: vruppert; state: Exp; lines: +194 -84
| - improved HD recognition and CD boot (patches by Myles Watson)
| * fixed minor error from printf patch confusion (negation based on wrong
word)
| * added helper function await_ide
| * changed lba calculation to not corrupt lba (for debugging and clarity)
| * added support for partial completions of ata_cmd_packet (never happens in
| the simulator, but happens all the time in hardware)
| * update atapi_request_sense and atapi_is_ready - based on FILO
| * correct an int 15 call that should have been int 0x15
| * trivial fix when BX_PCIBIOS and BX_ROMBIOS32 not defined
| - implemented %X in bios_printf (patch by Sebastian)
And more specifically this part of the commit:
--- rombios.c.orig
+++ rombios.c
@@ -2956,28 +2994,34 @@
ASM_END
if (inout == ATA_DATA_NO) {
+await_ide(NOT_BSY, iobase1, IDE_TIMEOUT);
status = inb(iobase1 + ATA_CB_STAT);
}
else {
+Bit16u loops = 0;
+Bit8u sc;
while (1) {
+ if (loops == 0) {//first time through
+status = inb(iobase2 + ATA_CB_ASTAT);
+await_ide(NOT_BSY_DRQ, iobase1, IDE_TIMEOUT);
+ }
+ else
+await_ide(NOT_BSY, iobase1, IDE_TIMEOUT);
+ loops++;
+
status = inb(iobase1 + ATA_CB_STAT);
+ sc = inb(iobase1 + ATA_CB_SC);
// Check if command completed
- if ( (status (ATA_CB_STAT_BSY | ATA_CB_STAT_DRQ) ) ==0 ) break;
+ if(((inb(iobase1 + ATA_CB_SC)0x7)==0x3)
+ ((status (ATA_CB_STAT_RDY | ATA_CB_STAT_ERR)) == ATA_CB_STAT_RDY))
break;
if (status ATA_CB_STAT_ERR) {
BX_DEBUG_ATA(ata_cmd_packet : error (status %02x)\n,status);
return 3;
}
- // Device must be ready to send data
- if ( (status (ATA_CB_STAT_BSY | ATA_CB_STAT_RDY | ATA_CB_STAT_DRQ |
ATA_CB_STAT_ERR) )
-!= (ATA_CB_STAT_RDY | ATA_CB_STAT_DRQ) ) {
-BX_DEBUG_ATA(ata_cmd_packet : not ready (status %02x)\n, status);
-return 4;
-}
-
// Normalize address
bufseg += (bufoff / 16);
bufoff %= 16;
--
.''`. Aurelien Jarno | GPG: 1024D/F1BCDB73
: :' : Debian developer | Electrical Engineer
`. `' [EMAIL PROTECTED] | [EMAIL PROTECTED]
`-people.debian.org/~aurel32 | www.aurel32.net
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]