Hi
I keep getting "ILLEGAL EXTENDED X86 OPCODE!" from my VGA ROM while trying run VGA ROM in coreboot.
I tried x86emu, yabel and real mode for running VGA ROM with no luck. But the same VGA ROM is running with seabios.
I am attaching the boot logs with x86emu, real mode and with seabios.
Any help?
What is the big difference while executing VGA ROM in coreboot and seabios?
Why coreboot can't run a VGA ROM which seabios can?
Thanks
Mansoor
------------------------------------------------------------------------------- DISCLAIMER: This e-mail and any attachment (s) is for authorised use by the intended recipient (s) only. It may contain proprietary material, confidential information and/or be subject to the legal privilege of iWave Systems Technologies Private Limited. If you have received this message in error, please notify the originator immediately. If you are not the intended recipient, you are notified that you are strictly prohibited from retaining, using, copying, alerting or disclosing the content of this message. Thank you for your co-operation. ------------------------------------------------------------------------------
On 10/29/2009 07:38 AM, Mansoor wrote:
Hi
I keep getting “ILLEGAL EXTENDED X86 OPCODE!” from my VGA ROM while trying run VGA ROM in coreboot.
I tried x86emu, yabel and real mode for running VGA ROM with no luck. But the same VGA ROM is running with seabios.
I am attaching the boot logs with x86emu, real mode and with seabios.
Any help?
What is the big difference while executing VGA ROM in coreboot and seabios?
Why coreboot can’t run a VGA ROM which seabios can?
Hmm looks like your getting Unexpected Exception errors. Something is not initializing correctly. Memory maybe?
-----Original Message----- From: Joe [mailto:joe@settoplinux.org] Sent: Thursday, October 29, 2009 7:32 PM To: Mansoor Cc: 'coreboot' Subject: Re: [coreboot] Error executing VGA ROM with coreboot
On 10/29/2009 07:38 AM, Mansoor wrote:
Hi
I keep getting "ILLEGAL EXTENDED X86 OPCODE!" from my VGA ROM while trying run VGA ROM in coreboot.
I tried x86emu, yabel and real mode for running VGA ROM with no luck. But the same VGA ROM is running with seabios.
I am attaching the boot logs with x86emu, real mode and with seabios.
Any help?
What is the big difference while executing VGA ROM in coreboot and
seabios?
Why coreboot can't run a VGA ROM which seabios can?
Hmm looks like your getting Unexpected Exception errors. Something is not initializing correctly. Memory maybe?
I don't think so, because with seabios I am able to load Linux in GUI mode. Only with coreboot I am facing these issues for initializing VGA ROM.
-- Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org
DISCLAIMER: This e-mail and any attachment (s) is for authorised use by the intended recipient (s) only. It may contain proprietary material, confidential information and/or be subject to the legal privilege of iWave Systems Technologies Private Limited. If you have received this message in error, please notify the originator immediately. If you are not the intended recipient, you are notified that you are strictly prohibited from retaining, using, copying, alerting or disclosing the content of this message. Thank you for your co-operation.
------------------------------------------------------------------------------- DISCLAIMER: This e-mail and any attachment (s) is for authorised use by the intended recipient (s) only. It may contain proprietary material, confidential information and/or be subject to the legal privilege of iWave Systems Technologies Private Limited. If you have received this message in error, please notify the originator immediately. If you are not the intended recipient, you are notified that you are strictly prohibited from retaining, using, copying, alerting or disclosing the content of this message. Thank you for your co-operation. ------------------------------------------------------------------------------
On Fri, 30 Oct 2009 10:11:36 +0530, "Mansoor" mansoor@iwavesystems.com wrote:
-----Original Message----- From: Joe [mailto:joe@settoplinux.org] Sent: Thursday, October 29, 2009 7:32 PM To: Mansoor Cc: 'coreboot' Subject: Re: [coreboot] Error executing VGA ROM with coreboot
On 10/29/2009 07:38 AM, Mansoor wrote:
Hi
I keep getting "ILLEGAL EXTENDED X86 OPCODE!" from my VGA ROM while trying run VGA ROM in coreboot.
I tried x86emu, yabel and real mode for running VGA ROM with no luck. But the same VGA ROM is running with seabios.
I am attaching the boot logs with x86emu, real mode and with seabios.
Any help?
What is the big difference while executing VGA ROM in coreboot and
seabios?
Why coreboot can't run a VGA ROM which seabios can?
Hmm looks like your getting Unexpected Exception errors. Something is not initializing correctly. Memory maybe?
I don't think so, because with seabios I am able to load Linux in GUI
mode.
Only with coreboot I am facing these issues for initializing VGA ROM.
You could always try Debugging the Unexpected Exception errors with GDB, this may give you a clue on what the problem is.
http://www.coreboot.org/Debugging
On Fri, 30 Oct 2009 10:11:36 +0530, "Mansoor" mansoor@iwavesystems.com wrote:
-----Original Message----- From: Joe [mailto:joe@settoplinux.org] Sent: Thursday, October 29, 2009 7:32 PM To: Mansoor Cc: 'coreboot' Subject: Re: [coreboot] Error executing VGA ROM with coreboot
On 10/29/2009 07:38 AM, Mansoor wrote:
Hi
I keep getting "ILLEGAL EXTENDED X86 OPCODE!" from my VGA ROM while trying run VGA ROM in coreboot.
I tried x86emu, yabel and real mode for running VGA ROM with no luck. But the same VGA ROM is running with seabios.
I am attaching the boot logs with x86emu, real mode and with seabios.
Any help?
What is the big difference while executing VGA ROM in coreboot and
seabios?
Why coreboot can't run a VGA ROM which seabios can?
Hmm looks like your getting Unexpected Exception errors. Something is not initializing correctly. Memory maybe?
I don't think so, because with seabios I am able to load Linux in GUI
mode.
Only with coreboot I am facing these issues for initializing VGA ROM.
You could always try Debugging the Unexpected Exception errors with GDB, this may give you a clue on what the problem is.
Actually i tried GDB and failed to build the image.. I got section overlap error and was not able to solve it.
What i didnt understand is
Why coreboot can't run a VGA ROM which seabios can? What is the big difference while executing VGA ROM in coreboot and seabios?
From the log you can see seabios emits some warning messages(fail
handle_155fXX) but still it continues to run the VGA ROM, where x86emu or realmode hangs with error messages
in seabios fail handle_155fXX:23(86):
a=a0005f38 b=000008c1 c=00000003 d=0000c000 ds=a000 es=c000 ss=a000
si=00000000 di=00000003 bp=000077cc sp=000077be cs=c000 ip=3115 f=0002
Real mode
Real mode stub @00000500: 422 bytes
Calling Option ROM...
oprom: INT# 0x8e41a854
oprom: eax: 8a000885 ebx: 0e21e039 ecx: 00028101 edx: 2989b606
oprom: ebp: 58000a58 esp: c0010004 edi: c668404c esi: c2650304
oprom: ip: e6b0 cs: 8831 flags: 00002900
Unexpected Exception: 6 @ 10:f6fdd07d - Halting
Code: 0 eflags: 00010012
eax: 00007776 ebx: 00008831 ecx: 0010ef73 edx: 001059b1
edi: c0010004 esi: 8e41a854 ebp: 00002900 esp: 0000774a
-- Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org
DISCLAIMER: This e-mail and any attachment (s) is for authorised use by the intended recipient (s) only. It may contain proprietary material, confidential information and/or be subject to the legal privilege of iWave Systems Technologies Private Limited. If you have received this message in error, please notify the originator immediately. If you are not the intended recipient, you are notified that you are strictly prohibited from retaining, using, copying, alerting or disclosing the content of this message. Thank you for your co-operation.
------------------------------------------------------------------------------- DISCLAIMER: This e-mail and any attachment (s) is for authorised use by the intended recipient (s) only. It may contain proprietary material, confidential information and/or be subject to the legal privilege of iWave Systems Technologies Private Limited. If you have received this message in error, please notify the originator immediately. If you are not the intended recipient, you are notified that you are strictly prohibited from retaining, using, copying, alerting or disclosing the content of this message. Thank you for your co-operation. ------------------------------------------------------------------------------
On Fri, 30 Oct 2009 17:32:03 +0530 (IST), mansoor@iwavesystems.com wrote:
On Fri, 30 Oct 2009 10:11:36 +0530, "Mansoor" mansoor@iwavesystems.com wrote:
-----Original Message----- From: Joe [mailto:joe@settoplinux.org] Sent: Thursday, October 29, 2009 7:32 PM To: Mansoor Cc: 'coreboot' Subject: Re: [coreboot] Error executing VGA ROM with coreboot
On 10/29/2009 07:38 AM, Mansoor wrote:
Hi
I keep getting "ILLEGAL EXTENDED X86 OPCODE!" from my VGA ROM while trying run VGA ROM in coreboot.
I tried x86emu, yabel and real mode for running VGA ROM with no
luck.
But the same VGA ROM is running with seabios.
I am attaching the boot logs with x86emu, real mode and with
seabios.
Any help?
What is the big difference while executing VGA ROM in coreboot and
seabios?
Why coreboot can't run a VGA ROM which seabios can?
Hmm looks like your getting Unexpected Exception errors. Something is not initializing correctly. Memory maybe?
I don't think so, because with seabios I am able to load Linux in GUI
mode.
Only with coreboot I am facing these issues for initializing VGA ROM.
You could always try Debugging the Unexpected Exception errors with GDB, this may give you a clue on what the problem is.
Actually i tried GDB and failed to build the image.. I got section overlap error and was not able to solve it.
What i didnt understand is
Why coreboot can't run a VGA ROM which seabios can? What is the big difference while executing VGA ROM in coreboot and seabios?
From the log you can see seabios emits some warning messages(fail handle_155fXX) but still it continues to run the VGA ROM, where x86emu or realmode hangs with error messages
in seabios fail handle_155fXX:23(86):
a=a0005f38 b=000008c1 c=00000003 d=0000c000 ds=a000 es=c000 ss=a000
si=00000000 di=00000003 bp=000077cc sp=000077be cs=c000 ip=3115 f=0002
Real mode
Real mode stub @00000500: 422 bytes
Calling Option ROM...
oprom: INT# 0x8e41a854
oprom: eax: 8a000885 ebx: 0e21e039 ecx: 00028101 edx: 2989b606
oprom: ebp: 58000a58 esp: c0010004 edi: c668404c esi: c2650304
oprom: ip: e6b0 cs: 8831 flags: 00002900
Unexpected Exception: 6 @ 10:f6fdd07d - Halting
Code: 0 eflags: 00010012
eax: 00007776 ebx: 00008831 ecx: 0010ef73 edx: 001059b1
edi: c0010004 esi: 8e41a854 ebp: 00002900 esp: 0000774a
well lets see, The coreboot rom emulators are completely different beasts than seabios. Perhaps you take a look at the differences in the interrupt handlers to find out the differences?
I would suggest running YABEL in full DEBUG mode, YABEL is able to output rom PCI accesses, io accesses, interrupt calls etc. I would also suggest if you do this to output your bootlog to a text file in minicom, because it may run for several hours and get quite large. I would be glad to take a look at it and see if I can see what is going on.
Hi All
I have attached the YABEL output.
Even though coreboot does only the hardware initialization, it has to do a VGA rom init for payloads other than seabios? I my case I was planning to use FILO as payload to boot Linux. FILO doesn't do any VGA init.
-----Original Message----- From: Joseph Smith [mailto:joe@settoplinux.org] Sent: Friday, October 30, 2009 6:22 PM To: mansoor@iwavesystems.com Cc: coreboot Subject: Re: [coreboot] Error executing VGA ROM with coreboot Importance: Low
On Fri, 30 Oct 2009 17:32:03 +0530 (IST), mansoor@iwavesystems.com wrote:
On Fri, 30 Oct 2009 10:11:36 +0530, "Mansoor"
wrote:
-----Original Message----- From: Joe [mailto:joe@settoplinux.org] Sent: Thursday, October 29, 2009 7:32 PM To: Mansoor Cc: 'coreboot' Subject: Re: [coreboot] Error executing VGA ROM with coreboot
On 10/29/2009 07:38 AM, Mansoor wrote:
Hi
I keep getting "ILLEGAL EXTENDED X86 OPCODE!" from my VGA ROM while trying run VGA ROM in coreboot.
I tried x86emu, yabel and real mode for running VGA ROM with no
luck.
But the same VGA ROM is running with seabios.
I am attaching the boot logs with x86emu, real mode and with
seabios.
Any help?
What is the big difference while executing VGA ROM in coreboot and
seabios?
Why coreboot can't run a VGA ROM which seabios can?
Hmm looks like your getting Unexpected Exception errors. Something is not initializing correctly. Memory maybe?
I don't think so, because with seabios I am able to load Linux in GUI
mode.
Only with coreboot I am facing these issues for initializing VGA ROM.
You could always try Debugging the Unexpected Exception errors with
GDB,
this may give you a clue on what the problem is.
Actually i tried GDB and failed to build the image.. I got section overlap error and was not able to solve it.
What i didnt understand is
Why coreboot can't run a VGA ROM which seabios can? What is the big difference while executing VGA ROM in coreboot and seabios?
From the log you can see seabios emits some warning messages(fail handle_155fXX) but still it continues to run the VGA ROM, where x86emu
or
realmode hangs with error messages
in seabios fail handle_155fXX:23(86):
a=a0005f38 b=000008c1 c=00000003 d=0000c000 ds=a000 es=c000
ss=a000
si=00000000 di=00000003 bp=000077cc sp=000077be cs=c000 ip=3115
f=0002
Real mode
Real mode stub @00000500: 422 bytes
Calling Option ROM...
oprom: INT# 0x8e41a854
oprom: eax: 8a000885 ebx: 0e21e039 ecx: 00028101 edx: 2989b606
oprom: ebp: 58000a58 esp: c0010004 edi: c668404c esi: c2650304
oprom: ip: e6b0 cs: 8831 flags: 00002900
Unexpected Exception: 6 @ 10:f6fdd07d - Halting
Code: 0 eflags: 00010012
eax: 00007776 ebx: 00008831 ecx: 0010ef73 edx: 001059b1
edi: c0010004 esi: 8e41a854 ebp: 00002900 esp: 0000774a
well lets see, The coreboot rom emulators are completely different beasts than seabios. Perhaps you take a look at the differences in the interrupt handlers to find out the differences?
I would suggest running YABEL in full DEBUG mode, YABEL is able to output rom PCI accesses, io accesses, interrupt calls etc. I would also suggest if you do this to output your bootlog to a text file in minicom, because it may run for several hours and get quite large. I would be glad to take a look at it and see if I can see what is going on.
-- Thanks, Joseph Smith Set-Top-Linux www.settoplinux.org
DISCLAIMER: This e-mail and any attachment (s) is for authorised use by the intended recipient (s) only. It may contain proprietary material, confidential information and/or be subject to the legal privilege of iWave Systems Technologies Private Limited. If you have received this message in error, please notify the originator immediately. If you are not the intended recipient, you are notified that you are strictly prohibited from retaining, using, copying, alerting or disclosing the content of this message. Thank you for your co-operation.
------------------------------------------------------------------------------- DISCLAIMER: This e-mail and any attachment (s) is for authorised use by the intended recipient (s) only. It may contain proprietary material, confidential information and/or be subject to the legal privilege of iWave Systems Technologies Private Limited. If you have received this message in error, please notify the originator immediately. If you are not the intended recipient, you are notified that you are strictly prohibited from retaining, using, copying, alerting or disclosing the content of this message. Thank you for your co-operation. ------------------------------------------------------------------------------
On Sat, Oct 31, 2009 at 01:14:21PM +0530, Mansoor wrote: [...]
c000:0087 0f01 ILLEGAL EXTENDED X86 OPCODE c000:0087: 01 ILLEGAL EXTENDED X86 OPCODE! halt_sys: file /prdmd/coreboot-v2/src/devices/../../util/x86emu/x86emu/ops2.c, line 60 halted AX=0000 BX=0000 CX=0000 DX=0080 SP=ffec BP=0000 SI=0000 DI=0057 DS=c000 ES=0000 SS=1000 CS=c000 IP=0089 NV UP EI PL NZ NA PO NC c000:0089 e0 ILLEGAL EXTENDED X86 OPCODE
If I dissasemble 0f01e0 I get:
0: 0f 01 e0 smsww %ax
Though, that might differ depending on the next bytes?
In any case, I get the feeling your rom may be about to enter 32bit mode..
You might want to try running:
objdump -m i386 -M i8086 -M suffix -D -b binary myvgarom.rom
and see what it says is at offset 0x0087.
-Kevin
On 10/31/2009 10:29 AM, Kevin O'Connor wrote:
On Sat, Oct 31, 2009 at 01:14:21PM +0530, Mansoor wrote: [...]
c000:0087 0f01 ILLEGAL EXTENDED X86 OPCODE c000:0087: 01 ILLEGAL EXTENDED X86 OPCODE! halt_sys: file /prdmd/coreboot-v2/src/devices/../../util/x86emu/x86emu/ops2.c, line 60 halted AX=0000 BX=0000 CX=0000 DX=0080 SP=ffec BP=0000 SI=0000 DI=0057 DS=c000 ES=0000 SS=1000 CS=c000 IP=0089 NV UP EI PL NZ NA PO NC c000:0089 e0 ILLEGAL EXTENDED X86 OPCODE
If I dissasemble 0f01e0 I get:
0: 0f 01 e0 smsww %ax
Though, that might differ depending on the next bytes?
In any case, I get the feeling your rom may be about to enter 32bit mode..
You might want to try running:
objdump -m i386 -M i8086 -M suffix -D -b binary myvgarom.rom
and see what it says is at offset 0x0087.
Interesting, the Atom has a 32-bit vga bios? Mansoor please let us know what 0x0087 says.
Mansoor wrote:
I have attached the YABEL output.
Thanks. I think it is helpful. Please follow Kevin's suggestions to find out more about what the ROM is trying to do.
Even though coreboot does only the hardware initialization, it has to do a VGA rom init for payloads other than seabios?
VGA is often not very important for payloads, and option ROMs in general fundamentally require a BIOS, which coreboot does not, and shall not, offer. If a BIOS environment is needed, then SeaBIOS is the way to go.
I my case I was planning to use FILO as payload to boot Linux. FILO doesn't do any VGA init.
In theory it can, if libpayload has native support for your graphics hardware. Since this isn't the case, there is no init done. There exists only very few graphics drivers in libpayload, which would support the idea that graphics is not very important for payloads.
I think there are a few options that you can explore further. First, maybe the graphics driver in Linux has the ability to initialize hardware completely? Because Linux will be started pretty quickly with coreboot+FILO, the delay from power on until graphics enabled will not be very long even if it is postponed to Linux.
Second, you can use both SeaBIOS and FILO together. SeaBIOS supports booting using another payload file than itself in CBFS. Normally this is used as a last resort when there is no local storage or option ROM to boot from, but that behavior should be very easy to change in SeaBIOS, so that FILO is always used for booting.
Using multiple payloads will increase boot time, but if legacy VGA ROM initialization is a hard requirement then I'm afraid there is no substitute for a BIOS environment, such as provided by SeaBIOS.
But, don't rule out the Linux graphics driver alternative. There exists at least one driver (for AMD Geode) which does this, one or several of the VIA hardware drivers may also be able to do it. Linux 2.6.31 got kernel modesetting support in the Intel framebuffer driver so there is a chance. Also, the Intel graphics drivers developers are very active in the Linux community, and maybe they can quickly add any features that are discovered to be missing at the moment.
//Peter
-----Original Message----- From: coreboot-bounces+mansoor=iwavesystems.com@coreboot.org [mailto:coreboot-bounces+mansoor=iwavesystems.com@coreboot.org] On Behalf Of Peter Stuge Sent: Sunday, November 01, 2009 4:14 AM To: coreboot@coreboot.org Subject: Re: [coreboot] Error executing VGA ROM with coreboot
Mansoor wrote:
I have attached the YABEL output.
Thanks. I think it is helpful. Please follow Kevin's suggestions to find out more about what the ROM is trying to do.
Yes. I will do it
Even though coreboot does only the hardware initialization, it has to do a VGA rom init for payloads other than seabios?
VGA is often not very important for payloads, and option ROMs in general fundamentally require a BIOS, which coreboot does not, and shall not, offer. If a BIOS environment is needed, then SeaBIOS is the way to go.
I my case I was planning to use FILO as payload to boot Linux. FILO doesn't do any VGA init.
In theory it can, if libpayload has native support for your graphics hardware. Since this isn't the case, there is no init done. There exists only very few graphics drivers in libpayload, which would support the idea that graphics is not very important for payloads.
I don't think libpayload has support for my hardware
I think there are a few options that you can explore further. First, maybe the graphics driver in Linux has the ability to initialize hardware completely? Because Linux will be started pretty quickly with coreboot+FILO, the delay from power on until graphics enabled will not be very long even if it is postponed to Linux.
I tried this option. But it didn't initialize VGA
Second, you can use both SeaBIOS and FILO together. SeaBIOS supports booting using another payload file than itself in CBFS. Normally this is used as a last resort when there is no local storage or option ROM to boot from, but that behavior should be very easy to change in SeaBIOS, so that FILO is always used for booting.
Using multiple payloads will increase boot time, but if legacy VGA ROM initialization is a hard requirement then I'm afraid there is no substitute for a BIOS environment, such as provided by SeaBIOS.
Thanks for the detailed explanation. I am using this method as an alternative (coreboot loads SeaBIOS then SeaBIOS loads FILO, FILO loads Linux) now. And it works fine. I am using FILO because I need USB mass storage support. Extra boot time is the seaBIOS hardware initialization time... and I say it is negligible compared to the 20-30 sec delay of factory BIOS.
But, don't rule out the Linux graphics driver alternative. There exists at least one driver (for AMD Geode) which does this, one or several of the VIA hardware drivers may also be able to do it. Linux 2.6.31 got kernel modesetting support in the Intel framebuffer driver so there is a chance. Also, the Intel graphics drivers developers are very active in the Linux community, and maybe they can quickly add any features that are discovered to be missing at the moment.
//Peter
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
DISCLAIMER: This e-mail and any attachment (s) is for authorised use by the intended recipient (s) only. It may contain proprietary material, confidential information and/or be subject to the legal privilege of iWave Systems Technologies Private Limited. If you have received this message in error, please notify the originator immediately. If you are not the intended recipient, you are notified that you are strictly prohibited from retaining, using, copying, alerting or disclosing the content of this message. Thank you for your co-operation.
------------------------------------------------------------------------------- DISCLAIMER: This e-mail and any attachment (s) is for authorised use by the intended recipient (s) only. It may contain proprietary material, confidential information and/or be subject to the legal privilege of iWave Systems Technologies Private Limited. If you have received this message in error, please notify the originator immediately. If you are not the intended recipient, you are notified that you are strictly prohibited from retaining, using, copying, alerting or disclosing the content of this message. Thank you for your co-operation. ------------------------------------------------------------------------------
Mansoor wrote:
maybe the graphics driver in Linux has the ability to initialize hardware completely?
I tried this option. But it didn't initialize VGA
Ok. If you prefer this solution you could, as I mentioned, try to contact the Linux graphics driver developers. There are people from Intel working actively there. Search keyword is drm-intel
Second, you can use both SeaBIOS and FILO together.
Thanks for the detailed explanation. I am using this method as an alternative (coreboot loads SeaBIOS then SeaBIOS loads FILO, FILO loads Linux) now. And it works fine.
Nice!
Extra boot time is the seaBIOS hardware initialization time... and I say it is negligible compared to the 20-30 sec delay of factory BIOS.
He-he. :)
//Peter
mansoor@iwavesystems.com wrote:
Why coreboot can't run a VGA ROM which seabios can? What is the big difference while executing VGA ROM in coreboot and seabios?
Joe already mentioned it, but there is a big different in the amount and quality of legacy BIOS interrupt services available at VGA ROM run time depending on if it is run by coreboot, or by SeaBIOS.
coreboot doesn't want to have any BIOS services, while SeaBIOS strives to be a fully featured BIOS.
Real mode stub @00000500: 422 bytes Calling Option ROM... oprom: INT# 0x8e41a854 oprom: eax: 8a000885 ebx: 0e21e039 ecx: 00028101 edx: 2989b606 oprom: ebp: 58000a58 esp: c0010004 edi: c668404c esi: c2650304 oprom: ip: e6b0 cs: 8831 flags: 00002900 Unexpected Exception: 6 @ 10:f6fdd07d - Halting Code: 0 eflags: 00010012 eax: 00007776 ebx: 00008831 ecx: 0010ef73 edx: 001059b1 edi: c0010004 esi: 8e41a854 ebp: 00002900 esp: 0000774a
8831:eb60 doesn't look like a place where the VGA ROM should be executing.
Joe's suggestion to trace what is actually going on in the VGA ROM is really good. You can use YABEL, or you can use SerialICE together with QEMU. YABEL might be faster than SerialICE though.
//Peter
well how about this as a first step. We're getting exception 6. What is that again? Also: is 0x8e41a854 even remotely valid as a bios int? And: 8831:eb60 -- 96E70 -- is that a sensible place for the CPU to be?
It looks to me like the stack is somewhere odd: 774a. Is that right? Where does the stack start out? Finally ... as pointed out, if the VGA bios uses services that coreboot does not supply, it's not going to work. Some of these VGA bioses are very badly written, and this problem can occur.
Just a few questions.
ron
ron minnich wrote:
well how about this as a first step. We're getting exception 6. What is that again? Also: is 0x8e41a854 even remotely valid as a bios int? And: 8831:eb60 -- 96E70 -- is that a sensible place for the CPU to be?
It looks to me like the stack is somewhere odd: 774a. Is that right? Where does the stack start out? Finally ... as pointed out, if the VGA bios uses services that coreboot does not supply, it's not going to work. Some of these VGA bioses are very badly written, and this problem can occur.
All those values look pretty far off.. Mansoor, you could enable instruction level logging in YABEL and see where it stops looking sane..
Stefan
BTW this sort of thing can happen when the code calls a function, the stack is bad, and it returns to la-la land. That's why I'm curious about %esp.
ron
On Fri, Oct 30, 2009 at 05:32:03PM +0530, mansoor@iwavesystems.com wrote:
From the log you can see seabios emits some warning messages(fail handle_155fXX) but still it continues to run the VGA ROM, where x86emu or realmode hangs with error messages
in seabios fail handle_155fXX:23(86): a=a0005f38 b=000008c1 c=00000003 d=0000c000 ds=a000 es=c000 ss=a000 si=00000000 di=00000003 bp=000077cc sp=000077be cs=c000 ip=3115 f=0002
The "fail" messages from seabios just indicate that seabios is returning an error code to the caller. It's not indicating any kind of failure within seabios. This particular messages means the vga rom tried to call "int 0x15 ax=5f38" and seabios didn't know anything about it. (It looks like some internal vga/bios callback thing.)
[...]
Why coreboot can't run a VGA ROM which seabios can? What is the big difference while executing VGA ROM in coreboot and seabios?
Sorry, but I don't know either. It's possible the vga rom is relying on some obscure bios functionality (like fixed code locations) that the emulators don't handle.
-Kevin