As a first time coreboot user, I thought that I should first try it out on a supported board. That way I would learn the ropes a bit before even thinking about doing something more challenging.
Naturally I am having troubles. I suspect that as a newbie I am probably doing something stupid. But then I've heard that mb manufacturers like to change things around without notice, so maybe I'm doing things right and what was once a supported mb, no longer is.
The hardware: SuperMicro H8DME-2. Four 1Gbyte DDR2-667/533/400 Registered ECC SDRAM sticks from Crucial. Two Quad-Core AMD 2378 2.4 GHz Processors. Onboard video. One SATA disk. One PATA DVD-ROM reader. NULL modem serial cable from COM1 to COM1 on another PC.
The details: When booting coreboot, nothing happens for about 45 seconds. Then the fans speed up to high and some messages start appearing on the serial line. These messages print rather slowly (maybe 1 second/message). They are:
coreboot-4.0-r5521M Wed May 5 10:53:42 EDT 2010 starting... *sysinfo range: [000cf000,000cf730] bsp_apicid=00 Enabling routing table for node 00 done. Enabling SMP settings (0,1) link=00
At this point coreboot ceases to make forward progress. The fans remain spinning at their highest settings. The VGA screen is blank throughout.
I put some printk's in setup_smb2, the crashing routine. They show that setup_temp_row is called by setup_smb2 but never returns.
Anyways, I've attached the entire build procedure I used to achieve these results. Perhaps there is something in this sequence that I am doing wrong??? And, what kind of luck have others had with recent H8DME-2 boards?
Regards, Joe
# install RHEL5 32-bit on H8DME-2 test stand # log in as myself
# --- make flashrom(1) tool
cd svn co svn://coreboot.org/flashrom/trunk flashrom cd flashrom make sudo make install
# --- get latest coreboot sources
cd .. svn co svn://coreboot.org/coreboot/trunk coreboot cd coreboot
# --- get pre-built SeaBIOS coreboot payload
wget -O payload.elf http://linuxtogo.org/~kevin/SeaBIOS/bios.bin.elf-0.6.0
# --- extract H8DME-2's onboard Video ROM
fgrep 'Video ROM' /proc/iomem # displays "000c0000-000cafff : Video ROM" sudo dd if=/dev/mem of=/tmp/vgabios.bin bs=4k skip=$((0xc0)) count=$((0xb))
# --- figure out the Video ROM's PCI Vendor,Device ID # --- I _think_ the numbers I want are the second set shown, ie "15d9:1611".
lspci -v | fgrep VGA # displays "01:05.0 VGA compatible controller: ATI Technologies Inc ES1000 ..."
lspci -vn | fgrep -A1 01:05.0 # displays "01:05.0 0300: 1002:515e (rev 02) Subsystem: 15d9:1611"
# --- build-n-burn coreboot
make menuconfig # select Mainboard -> SuperMicro -> H8DME-2 # select Payload -> Add A Payload -> ELF # select VGA Bios -> Add A VGA BIOS -> VGA Device PCI IDS -> "15d9,1611" make /usr/local/sbin/flashrom -w build/coreboot.rom
On Wed, May 5, 2010 at 2:06 PM, Joe Korty joe.korty@ccur.com wrote:
As a first time coreboot user, I thought that I should first try it out on a supported board. That way I would learn the ropes a bit before even thinking about doing something more challenging.
Naturally I am having troubles. I suspect that as a newbie I am probably doing something stupid. But then I've heard that mb manufacturers like to change things around without notice, so maybe I'm doing things right and what was once a supported mb, no longer is.
It looks like you're doing things right. It's dying really early, though.
The details: When booting coreboot, nothing happens for about 45 seconds. Then the fans speed up to high and some messages start appearing on the serial line. These messages print rather slowly (maybe 1 second/message). They are:
coreboot-4.0-r5521M Wed May 5 10:53:42 EDT 2010 starting... *sysinfo range: [000cf000,000cf730] bsp_apicid=00 Enabling routing table for node 00 done. Enabling SMP settings (0,1) link=00
You could try an earlier revision. I can't think of what would slow it down that much.
At this point coreboot ceases to make forward progress. The fans remain spinning at their highest settings. The VGA screen is blank throughout.
I put some printk's in setup_smb2, the crashing routine. They show that setup_temp_row is called by setup_smb2 but never returns.
Since it takes so long to get there, I think you'll have better luck trying to figure out what's wrong before that.
# --- extract H8DME-2's onboard Video ROM
fgrep 'Video ROM' /proc/iomem # displays "000c0000-000cafff : Video ROM" sudo dd if=/dev/mem of=/tmp/vgabios.bin bs=4k skip=$((0xc0)) count=$((0xb))
# --- figure out the Video ROM's PCI Vendor,Device ID # --- I _think_ the numbers I want are the second set shown, ie "15d9:1611".
You want the first set. The second set is Supermicro's board ID.
lspci -v | fgrep VGA # displays "01:05.0 VGA compatible controller: ATI Technologies Inc ES1000 ..."
lspci -vn | fgrep -A1 01:05.0 # displays "01:05.0 0300: 1002:515e (rev 02) Subsystem: 15d9:1611"
Good luck, Myles
On Wed, May 05, 2010 at 04:26:15PM -0400, Myles Watson wrote:
On Wed, May 5, 2010 at 2:06 PM, Joe Korty joe.korty@ccur.comwrote:
Naturally I am having troubles. I suspect that as a newbie I am probably doing something stupid. But then I've heard that mb manufacturers like to change things around without notice, so maybe I'm doing things right and what was once a supported mb, no longer is.
It looks like you're doing things right. It's dying really early, though.
When booting coreboot, nothing happens for about 45 seconds. Then the fans speed up to high and some messages start appearing on the serial line. These messages print rather slowly (maybe 1 second/message). They are:
coreboot-4.0-r5521M Wed May 5 10:53:42 EDT 2010 starting... *sysinfo range: [000cf000,000cf730] bsp_apicid=00 Enabling routing table for node 00 done. Enabling SMP settings (0,1) link=00
You could try an earlier revision. I can't think of what would slow it down that much.
I put some printk's in setup_smb2, the crashing routine. They show that setup_temp_row is called by setup_smb2 but never returns.
Since it takes so long to get there, I think you'll have better luck trying to figure out what's wrong before that.
fgrep 'Video ROM' /proc/iomem # displays "000c0000-000cafff : Video ROM" sudo dd if=/dev/mem of=/tmp/vgabios.bin bs=4k skip=$((0xc0)) count=$((0xb))
# --- figure out the Video ROM's PCI Vendor,Device ID # --- I _think_ the numbers I want are the second set shown, ie "15d9:1611".
You want the first set. The second set is Supermicro's board ID.
Hi Myles, Thanks for the pointers. I'm going to try some earlier releases of coreboot and if I can find one that lacks the slowdown. If that fails I am going to have to figure out how to debug the earliest stages of coreboot, when nothing is visible and little can be saved.
Joe
Joe Korty joe.korty@ccur.com writes:
As a first time coreboot user, I thought that I should first try it out on a supported board. That way I would learn the ropes a bit before even thinking about doing something more challenging.
Naturally I am having troubles. I suspect that as a newbie I am probably doing something stupid. But then I've heard that mb manufacturers like to change things around without notice, so maybe I'm doing things right and what was once a supported mb, no longer is.
The hardware: SuperMicro H8DME-2. Four 1Gbyte DDR2-667/533/400 Registered ECC SDRAM sticks from Crucial. Two Quad-Core AMD 2378 2.4 GHz Processors. Onboard video. One SATA disk. One PATA DVD-ROM reader. NULL modem serial cable from COM1 to COM1 on another PC.
The details: When booting coreboot, nothing happens for about 45 seconds. Then the fans speed up to high and some messages start appearing on the serial line. These messages print rather slowly (maybe 1 second/message). They are:
coreboot-4.0-r5521M Wed May 5 10:53:42 EDT 2010 starting... *sysinfo range: [000cf000,000cf730] bsp_apicid=00 Enabling routing table for node 00 done. Enabling SMP settings (0,1) link=00
This looks like the bootup code for gen f Opterons. It doesn't look like the h8dme has a fam10 variant yet, which is what you need for the 2378 CPUs.
Hi Everyone, Well, I've replaced the AMD 2378 CPUs on my SuperMicro H8DME-2 mb with a pair of AMD 2212 CPUs, and I get much much further along in the boot. But it still locks up. The starting and ending messages on the serial console are:
<30 second wait before first message, here> oreboot-4.0-r5543 Tue May 11 09:42:01 EDT 2010 starting... *sysinfo range: [000cf000,000cf730] bsp_apicid=00 Enabling routing table for node 00 done. Enabling SMP settings (0,1) link=00 (1,0) link=01 setup_remote_node: done Renaming current temporary node to 01 done. Enabling routing table for node 01 done. 02 nodes initialized. coherent_ht_finalize done core0 started: 01 started ap apicid: * AP 01started * AP 03started
<10 second wait, here> SBLink=02 NC node|link=02 begin msr fid, vid 31081212080c0202 Current fid_cur: 0x2, fid_max: 0xc Requested fid_new: 0xc FidVid table step fidvid: 0xc Current fid_cur: 0x2, fid_max: 0xc Requested fid_new: 0xc FidVid table step fidvid: 0xc end msr fid, vid 31081208080c020c entering optimize_link_incoherent_ht sysinfo->link_pair_num=0x1 entering ht_optimize_link pos=0xca, unfiltered freq_cap=0x8075 pos=0xca, filtered freq_cap=0x75 pos=0x52, unfiltered freq_cap=0x807f pos=0x52, filtered freq_cap=0x7f freq_cap1=0x75, freq_cap2=0x7f dev1 old_freq=0x0, freq=0x6, needs_reset=0x1 ... IOAPIC: reg 0x0000000f value 0x00000000 0x00010000 IOAPIC: reg 0x00000010 value 0x00000000 0x00010000 IOAPIC: reg 0x00000011 value 0x00000000 0x00010000 IOAPIC: reg 0x00000012 value 0x00000000 0x00010000 IOAPIC: reg 0x00000013 value 0x00000000 0x00010000 IOAPIC: reg 0x00000014 value 0x00000000 0x00010000 IOAPIC: reg 0x00000015 value 0x00000000 0x00010000 IOAPIC: reg 0x00000016 value 0x00000000 0x00010000 set power on after power fail RTC Init RTC: Checksum invalid zeroing cmos Invalid CMOS LB checksum enabling HPET @0xfed00000 PNP: 002e.2 init PNP: 002e.5 init Keyboard init... Keyboard controller output buffer result timeout PNP: 002e.b init PCI: 00:01.1 init PCI: 00:02.1 init PCI: 00:04.0 init IDE0 Check CBFS header at fffeffe0 magic is 4f524243 Found CBFS header at fffeffe0 Check fallback/coreboot_ram CBFS: follow chain: fff00000 + 38 + b018 + align -> fff0b080 Check fallback/payload CBFS: follow chain: fff0b080 + 38 + 9dfb + align -> fff14ec0 Check pci10de,0363.rom CBFS: follow chain: fff14ec0 + 38 + b000 + align -> fff1ff00 Check CBFS: follow chain: fff1ff00 + 28 + d00b8 + align -> ffff0000 CBFS: Could not find file pci10de,036e.rom PCI: 00:05.0 init SATA S SATA P PCI: 00:05.1 init SATA S SATA P PCI: 00:05.2 init SATA S SATA P PCI: 00:06.0 init PCI DOMAIN mem base = 0x00f0000000 [0x50] <-- 0xf0000000 PCI: 00:06.1 init base = 0xfc140000 codec_mask = 01
That 'CBFS: Could not find file pci10d3,036e.rom' really bothers me. AFAICS, 10d3,036e is a IDE controller on the MCP55 southbridge; the VGA is at 1002,515e. Am I reading everything wrong? My lspci -vn is:
00:00.0 0500: 10de:0369 (rev a2) Subsystem: 15d9:1611 Flags: bus master, 66MHz, fast devsel, latency 0 Capabilities: [44] HyperTransport: Slave or Primary Interface Capabilities: [dc] HyperTransport: MSI Mapping
00:01.0 0601: 10de:0364 (rev a3) Subsystem: 15d9:1611 Flags: bus master, 66MHz, fast devsel, latency 0
00:01.1 0c05: 10de:0368 (rev a3) Subsystem: 15d9:1611 Flags: 66MHz, fast devsel, IRQ 11 I/O ports at dc00 [size=64] I/O ports at 2d00 [size=64] I/O ports at 2e00 [size=64] Capabilities: [44] Power Management version 2
00:02.0 0c03: 10de:036c (rev a1) (prog-if 10) Subsystem: 15d9:1611 Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 22 Memory at feabf000 (32-bit, non-prefetchable) [size=4K] Capabilities: [44] Power Management version 2
00:02.1 0c03: 10de:036d (rev a2) (prog-if 20) Subsystem: 15d9:1611 Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 23 Memory at feabec00 (32-bit, non-prefetchable) [size=256] Capabilities: [44] Debug port Capabilities: [80] Power Management version 2
00:04.0 0101: 10de:036e (rev a1) (prog-if 8a) Subsystem: 15d9:1611 Flags: bus master, 66MHz, fast devsel, latency 0 [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [disabled] [size=8] [virtual] Memory at 000003f0 (type 3, non-prefetchable) [disabled] [size=1] [virtual] Memory at 00000170 (32-bit, non-prefetchable) [disabled] [size=8] [virtual] Memory at 00000370 (type 3, non-prefetchable) [disabled] [size=1] I/O ports at ffa0 [size=16] Capabilities: [44] Power Management version 2
00:05.0 0101: 10de:037f (rev a3) (prog-if 85) Subsystem: 15d9:1611 Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 23 I/O ports at d480 [size=8] I/O ports at d400 [size=4] I/O ports at d080 [size=8] I/O ports at d000 [size=4] I/O ports at cc00 [size=16] Memory at feabd000 (32-bit, non-prefetchable) [size=4K] Capabilities: [44] Power Management version 2 Capabilities: [b0] Message Signalled Interrupts: 64bit+ Queue=0/2 Enable- Capabilities: [cc] HyperTransport: MSI Mapping
00:05.1 0101: 10de:037f (rev a3) (prog-if 85) Subsystem: 15d9:1611 Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 22 I/O ports at c880 [size=8] I/O ports at c800 [size=4] I/O ports at c480 [size=8] I/O ports at c400 [size=4] I/O ports at c080 [size=16] Memory at feabc000 (32-bit, non-prefetchable) [size=4K] Capabilities: [44] Power Management version 2 Capabilities: [b0] Message Signalled Interrupts: 64bit+ Queue=0/2 Enable- Capabilities: [cc] HyperTransport: MSI Mapping
00:05.2 0101: 10de:037f (rev a3) (prog-if 85) Subsystem: 15d9:1611 Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 21 I/O ports at c000 [size=8] I/O ports at bc00 [size=4] I/O ports at b880 [size=8] I/O ports at b800 [size=4] I/O ports at b480 [size=16] Memory at feabb000 (32-bit, non-prefetchable) [size=4K] Capabilities: [44] Power Management version 2 Capabilities: [b0] Message Signalled Interrupts: 64bit+ Queue=0/2 Enable- Capabilities: [cc] HyperTransport: MSI Mapping
00:06.0 0604: 10de:0370 (rev a2) (prog-if 01) Flags: bus master, 66MHz, fast devsel, latency 0 Bus: primary=00, secondary=01, subordinate=01, sec-latency=64 I/O behind bridge: 0000e000-0000efff Memory behind bridge: feb00000-febfffff Prefetchable memory behind bridge: f0000000-f7ffffff Capabilities: [b8] #0d [0000] Capabilities: [8c] HyperTransport: MSI Mapping
00:08.0 0680: 10de:0373 (rev a3) Subsystem: 15d9:1611 Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 29 Memory at feaba000 (32-bit, non-prefetchable) [size=4K] I/O ports at b400 [size=8] Memory at feabe800 (32-bit, non-prefetchable) [size=256] Memory at feabe400 (32-bit, non-prefetchable) [size=16] Capabilities: [44] Power Management version 2 Capabilities: [70] MSI-X: Enable- Mask- TabSize=8 Capabilities: [50] Message Signalled Interrupts: 64bit+ Queue=0/3 Enable+ Capabilities: [6c] HyperTransport: MSI Mapping
00:09.0 0680: 10de:0373 (rev a3) Subsystem: 15d9:1611 Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 28 Memory at feab9000 (32-bit, non-prefetchable) [size=4K] I/O ports at b080 [size=8] Memory at feabe000 (32-bit, non-prefetchable) [size=256] Memory at feab8c00 (32-bit, non-prefetchable) [size=16] Capabilities: [44] Power Management version 2 Capabilities: [70] MSI-X: Enable- Mask- TabSize=8 Capabilities: [50] Message Signalled Interrupts: 64bit+ Queue=0/3 Enable+ Capabilities: [6c] HyperTransport: MSI Mapping
00:0a.0 0604: 10de:0376 (rev a3) Flags: bus master, fast devsel, latency 0 Bus: primary=00, secondary=02, subordinate=04, sec-latency=0 Capabilities: [40] #0d [0000] Capabilities: [48] Power Management version 2 Capabilities: [50] Message Signalled Interrupts: 64bit+ Queue=0/1 Enable+ Capabilities: [60] HyperTransport: MSI Mapping Capabilities: [80] Express Root Port (Slot+) IRQ 0 Capabilities: [100] Virtual Channel Capabilities: [160] Advanced Error Reporting
00:0d.0 0604: 10de:0378 (rev a3) Flags: bus master, fast devsel, latency 0 Bus: primary=00, secondary=05, subordinate=05, sec-latency=0 Capabilities: [40] #0d [0000] Capabilities: [48] Power Management version 2 Capabilities: [50] Message Signalled Interrupts: 64bit+ Queue=0/1 Enable+ Capabilities: [60] HyperTransport: MSI Mapping Capabilities: [80] Express Root Port (Slot+) IRQ 0 Capabilities: [100] Virtual Channel Capabilities: [160] Advanced Error Reporting
00:0e.0 0604: 10de:0375 (rev a3) Flags: bus master, fast devsel, latency 0 Bus: primary=00, secondary=06, subordinate=06, sec-latency=0 Capabilities: [40] #0d [0000] Capabilities: [48] Power Management version 2 Capabilities: [50] Message Signalled Interrupts: 64bit+ Queue=0/1 Enable+ Capabilities: [60] HyperTransport: MSI Mapping Capabilities: [80] Express Root Port (Slot+) IRQ 0 Capabilities: [100] Virtual Channel Capabilities: [160] Advanced Error Reporting
00:0f.0 0604: 10de:0377 (rev a3) Flags: bus master, fast devsel, latency 0 Bus: primary=00, secondary=07, subordinate=07, sec-latency=0 Capabilities: [40] #0d [0000] Capabilities: [48] Power Management version 2 Capabilities: [50] Message Signalled Interrupts: 64bit+ Queue=0/1 Enable+ Capabilities: [60] HyperTransport: MSI Mapping Capabilities: [80] Express Root Port (Slot+) IRQ 0 Capabilities: [100] Virtual Channel Capabilities: [160] Advanced Error Reporting
00:18.0 0600: 1022:1100 Flags: fast devsel Capabilities: [80] HyperTransport: Host or Secondary Interface Capabilities: [a0] HyperTransport: Host or Secondary Interface Capabilities: [c0] HyperTransport: Host or Secondary Interface
00:18.1 0600: 1022:1101 Flags: fast devsel
00:18.2 0600: 1022:1102 Flags: fast devsel
00:18.3 0600: 1022:1103 Flags: fast devsel Capabilities: [f0] #0f [0010]
00:19.0 0600: 1022:1100 Flags: fast devsel Capabilities: [80] HyperTransport: Host or Secondary Interface Capabilities: [a0] HyperTransport: Host or Secondary Interface Capabilities: [c0] HyperTransport: Host or Secondary Interface
00:19.1 0600: 1022:1101 Flags: fast devsel
00:19.2 0600: 1022:1102 Flags: fast devsel
00:19.3 0600: 1022:1103 Flags: fast devsel Capabilities: [f0] #0f [0010]
01:05.0 0300: 1002:515e (rev 02) Subsystem: 15d9:1611 Flags: bus master, stepping, medium devsel, latency 64, IRQ 10 Memory at f0000000 (32-bit, prefetchable) [size=128M] I/O ports at e000 [size=256] Memory at febf0000 (32-bit, non-prefetchable) [size=64K] Expansion ROM at feb00000 [disabled] [size=128K] Capabilities: [50] Power Management version 2
02:00.0 0604: 1033:0125 (rev 08) Flags: bus master, fast devsel, latency 0 Bus: primary=02, secondary=03, subordinate=03, sec-latency=64 Capabilities: [40] Express PCI/PCI-X Bridge IRQ 0 Capabilities: [54] PCI-X bridge device Capabilities: [64] Power Management version 2 Capabilities: [100] Advanced Error Reporting
02:00.1 0604: 1033:0125 (rev 08) Flags: bus master, fast devsel, latency 0 Bus: primary=02, secondary=04, subordinate=04, sec-latency=64 Capabilities: [40] Express PCI/PCI-X Bridge IRQ 0 Capabilities: [54] PCI-X bridge device Capabilities: [64] Power Management version 2 Capabilities: [100] Advanced Error Reporting
Any advice on what I am doing wrong here, or what I need to do right or what I need to do to find out how to get further along, would be appreciated.
Regards, Joe
On Tue, May 11, 2010 at 03:56:20PM -0400, Joe Korty wrote:
Hi Everyone, Well, I've replaced the AMD 2378 CPUs on my SuperMicro H8DME-2 mb with a pair of AMD 2212 CPUs, and I get much much further along in the boot. But it still locks up. The starting and ending messages on the serial console are:
[0x50] <-- 0xf0000000 PCI: 00:06.1 init base = 0xfc140000 codec_mask = 01
It boots!!!!!
I applied the below patch to skip 'codec' initialization (whatever that is) and I was able to boot up to linux.
Can anyone explain what the codec is; perhaps we can turn this 'feature' off permanently? (or make it a .config option).
Joe
Index: trunk/src/southbridge/nvidia/mcp55/mcp55_aza.c =================================================================== --- trunk.orig/src/southbridge/nvidia/mcp55/mcp55_aza.c 2010-05-06 10:54:13.000000000 -0400 +++ trunk/src/southbridge/nvidia/mcp55/mcp55_aza.c 2010-05-11 13:57:59.000000000 -0400 @@ -237,7 +237,7 @@
if(codec_mask) { printk(BIOS_DEBUG, "codec_mask = %02x\n", codec_mask); - codecs_init(base, codec_mask); + // codecs_init(base, codec_mask); } }
Joe Korty wrote:
I applied the below patch to skip 'codec' initialization (whatever that is) and I was able to boot up to linux.
Where did you find the suggestion to do it?
Can anyone explain what the codec is; perhaps we can turn this 'feature' off permanently? (or make it a .config option).
The codec in this case is the chip that converts digital signals into audible sound. It's part of the integrated soundcard in the chipset. It should certainly not cause a hang..
The bad part is that we have no docs for MCP55.
In any case, there is code like this in southbridge/nvidia/mcp55/mcp55_aza.c:
do { dword = read32(base + 0x68); } while (dword & 1);
And that's bad. We shouldn't have code like this anywhere in coreboot. It should get a timeout of some sort, so that it doesn't hang forever.
A simple counter would be a great start, but it would of course be best to understand why the code doesn't work on your system..
Can you check which codec you have please? Linux reports this. From my laptop:
[ 3.509587] ALSA device list: [ 3.509593] #0: Intel 82801DB-ICH4 with AD1981B at irq 17
AD1981B is the codec.
//Peter
On Tue, May 11, 2010 at 08:01:28PM -0400, Peter Stuge wrote:
Joe Korty wrote:
I applied the below patch to skip 'codec' initialization (whatever that is) and I was able to boot up to linux.
Where did you find the suggestion to do it?
I merely looked at the code around the last message to be printed. There was another printk a few lines down that wasn't being reached. As the 'codec' feature sounded worthless (at least at boot time), I decided to comment it out and see how much further in the boot I proceeded.
Can anyone explain what the codec is; perhaps we can turn this 'feature' off permanently? (or make it a .config option).
The codec in this case is the chip that converts digital signals into audible sound. It's part of the integrated soundcard in the chipset. It should certainly not cause a hang..
Thanks! Now I as least know what it is.
The bad part is that we have no docs for MCP55.
In any case, there is code like this in southbridge/nvidia/mcp55/mcp55_aza.c:
do { dword = read32(base + 0x68); } while (dword & 1);
And that's bad. We shouldn't have code like this anywhere in coreboot. It should get a timeout of some sort, so that it doesn't hang forever.
I'll write up a patch to do that, if no one else beats me to it first.
Regards, Joe
Joe Korty wrote:
do { dword = read32(base + 0x68); } while (dword & 1);
And that's bad. We shouldn't have code like this anywhere in coreboot. It should get a timeout of some sort, so that it doesn't hang forever.
I'll write up a patch to do that, if no one else beats me to it first.
Awesome! Go for it!
(Btw what codec is on your board?)
//Peter
On Tue, May 11, 2010 at 08:01:28PM -0400, Peter Stuge wrote:
Can you check which codec you have please? Linux reports this. From my laptop:
[ 3.509587] ALSA device list: [ 3.509593] #0: Intel 82801DB-ICH4 with AD1981B at irq 17
AD1981B is the codec.
Hi Peter, Sorry, I didn't see your request in this, your earlier email.
I don't have an 'ALSA' labeled line in either dmesg or in /var/log/messages. I've grepped for other strings that might indicate the sound card used (eg, sound, audio, nvidia, mcp55, ICH) but nothing has come up yet.
lspci says: 00:06.1 Audio device: nVidia Corporation MCP55 High Definition Audio (rev a2)
Joe
Hi Joe,
Joe Korty wrote:
Can you check which codec you have please? Linux reports this. From my laptop:
[ 3.509587] ALSA device list: [ 3.509593] #0: Intel 82801DB-ICH4 with AD1981B at irq 17
AD1981B is the codec.
Hi Peter, Sorry, I didn't see your request in this, your earlier email.
No problem - thanks for checking this!
I don't have an 'ALSA' labeled line in either dmesg or in /var/log/messages.
Ahh - then the sound drivers simply aren't loaded. There's noone else in the system that would care about the codec so then the info isn't to be found.
Unfortunately they manual doesn't mention audio hardware at all. :\
Thanks!
//Peter
On Thu, May 13, 2010 at 01:17:23PM -0400, Peter Stuge wrote:
Can you check which codec you have please? Linux reports this. From my laptop:
[ 3.509587] ALSA device list: [ 3.509593] #0: Intel 82801DB-ICH4 with AD1981B at irq 17
Joe Korty wrote:
I don't have an 'ALSA' labeled line in either dmesg or in /var/log/messages.
Ahh - then the sound drivers simply aren't loaded. There's noone else in the system that would care about the codec so then the info isn't to be found.
Unfortunately they manual doesn't mention audio hardware at all. :\
Hi Peter, I just booted with the original flash rather than with coreboot. This is to get the audio properly initialized by BIOS as Sefan mentions is required. Although I don't have the ALSA line (still), I do have these lines in /var/log/messages from the Linux azalia driver:
mount used greatest stack depth: 5960 bytes left HDA Intel 0000:00:06.1: PCI->APIC IRQ transform: INT B -> IRQ 23 input: PC Speaker as /class/input/input2 eth1: no link during initialization. hda-intel: azx_get_response timeout, switching to polling mode: last cmd=0x000f0000 hda-intel: Codec #0 probe error; disabling it... hda_intel: azx_get_response timeout, switching to single_cmd mode: last cmd=0x000f0000 hda-intel: no codecs initialized
Also, my mainboard has no audio-out jack....
Regards, Joe
Hi Joe, I'm not much help, but I made a couple comments below.
On Tue, May 11, 2010 at 1:56 PM, Joe Korty joe.korty@ccur.com wrote:
Hi Everyone, Well, I've replaced the AMD 2378 CPUs on my SuperMicro H8DME-2 mb with a pair of AMD 2212 CPUs, and I get much much further along in the boot. But it still locks up. The starting and ending messages on the serial console are:
<30 second wait before first message, here>
This wait is bad. I guess it is off spinning in CAR somewhere. You might try using a port80 card to get more debug information.
CBFS: follow chain: fff1ff00 + 28 + d00b8 + align -> ffff0000 CBFS: Could not find file pci10de,036e.rom That 'CBFS: Could not find file pci10d3,036e.rom' really bothers me. AFAICS, 10d3,036e is a IDE controller on the MCP55 southbridge; the VGA is at 1002,515e. Am I reading everything wrong? My lspci -vn is:
This is ok. It is a normal part of the scan for some devices to not have a PCI ROM in coreboot. Filo, SeaBIOS, and/or Linux should handle the IDE for you.
Marc
On Tue, May 11, 2010 at 09:42:55PM -0400, Marc Jones wrote:
Hi Joe, I'm not much help, but I made a couple comments below.
On Tue, May 11, 2010 at 1:56 PM, Joe Korty joe.korty@ccur.com wrote:
Hi Everyone, Well, I've replaced the AMD 2378 CPUs on my SuperMicro H8DME-2 mb with a pair of AMD 2212 CPUs, and I get much much further along in the boot. But it still locks up. ?The starting and ending messages on the serial console are:
<30 second wait before first message, here>
This wait is bad. I guess it is off spinning in CAR somewhere. You might try using a port80 card to get more debug information.
Thanks, Marc. I'll try pinning this down again tommorrow morning. My first attempts to do so (bisection) have been inconclusive. Regards, Joe