2008/10/16 Myles Watson mylesgw@gmail.com:
The last output on the serial port is: biosint: INT# 0x1a biosint: eax 0xb102 ebx 0xc002e ecx 0xc2067 edx 0xf1022 biosint: ebp 0xcf0d8 esp 0xfe4 edi 0xd0000 esi 0x10000 biosint: ip 0x3246 cs 0xc000 flags 0x46 dev_find_device: find PCI: 1022:2067 Check Root Device Check CPU: 00 Check APIC: 00 Check PCI: 00:01.0 Check PCI: 1022:7462 Check PCI: 1022:7464 Check PCI: 1022:7464 Check PCI: 1022:7464 Check PCI: 1022:7458 Check PCI: 1022:7468 Check PCI: 1022:7469 Check PCI: 1022:746a Check PCI: 1022:746e Check PCI: 1022:746e Check PCI: 1022:746e Check PCI: 1022:1100 Check PCI: 1022:1100 Check PCI: 00:02.0 Check PCI: 1022:1100 Check PCI: 1022:1101 Check PCI: 1022:1102 Check PCI: 1022:1103 Check IOPORT: 2e Check APIC_CLUSTER: 1022:1100 Check PNP: 0000 Check PNP: 0000 Check PNP: 0000 Check PNP: 0000 Check PNP: 0000 Check PNP: 0000 Check PNP: 0000 Check PNP: 0000 Check PNP: 0000 Check PNP: 0000 Check PNP: 0000 Check PCI: 1022:7460 Check PCI: 1022:7468 Check PCI: 1022:7469 Check PCI: 1022:746a Check PCI: 1022:746b Check PCI: 1022:746d Check PCI: 1022:746e Check PCI: 1022:746f Check PCI: 1022:7459 Check PCI: 1022:7458 Check PCI: 1022:7459 Check PCI: 1022:7464 Check PCI: 1022:7464 Check PCI: 1022:7463 Check PCI: 1022:7462 Check PCI: 1022:2067 found 0xb102: return 0x120
the wrong # here?
so that worked.
biosint: INT# 0x1a biosint: eax 0xb108 ebx 0x120 ecx 0xc2067 edx 0xf1022 biosint: ebp 0xcf0d8 esp 0xfe4 edi 0xd000a esi 0x10000 biosint: ip 0x325a cs 0xc000 flags 0x46 0xb108: bus 1 devfn 0x20 reg 0xa val 0x0 biosint: INT# 0x1a biosint: eax 0xb109 ebx 0x120 ecx 0x0 edx 0xf1022 biosint: ebp 0xcf0d8 esp 0xfe4 edi 0xd0008 esi 0x10000 biosint: ip 0x3269 cs 0xc000 flags 0x46 0xb109: bus 1 devfn 0x20 reg 0x8 val 0x3 biosint: INT# 0x1a biosint: eax 0xb10a ebx 0x120 ecx 0x3 edx 0xf1022 biosint: ebp 0xcf0d8 esp 0xfe4 edi 0xd0018 esi 0x10000 biosint: ip 0x3283 cs 0xc000 flags 0x46 0xb10a: bus 1 devfn 0x20 reg 0x18 val 0x1001 biosint: INT# 0x1a biosint: eax 0xb10a ebx 0x120 ecx 0x1000 edx 0xf1022 biosint: ebp 0xcf0d8 esp 0xfe4 edi 0xd0014 esi 0x100b1 biosint: ip 0x3294 cs 0xc000 flags 0x46 0xb10a: bus 1 devfn 0x20 reg 0x14 val 0xfe055000 biosint: INT# 0x1a biosint: eax 0xb10a ebx 0x120 ecx 0xfe055000 edx 0xf1022 biosint: ebp 0xcf0d8 esp 0xfe4 edi 0xd0010 esi 0x100ad biosint: ip 0x32a2 cs 0xc000 flags 0x46 0xb10a: bus 1 devfn 0x20 reg 0x10 val 0xfd000000 biosint: INT# 0x1a biosint: eax 0xb10d ebx 0x120 ecx 0xffffffff edx 0xf1022 biosint: ebp 0xcf0d8 esp 0xfe4 edi 0xd0010 esi 0x100a9 biosint: ip 0x32b3 cs 0xc000 flags 0x46
or here?
It looks like the problem is that coreboot is giving the VGA BIOS the wrong device number. I don't know why the reads succeed, but the device number should be 4 for the VGA controller, not 2. When it writes to the non-existant device, it triple faults.
at what point is it giving the wrong #?
nice detective work
ron