[coreboot] fam10/newconfig on supermicro h8dme - early hang

Ward Vandewege ward at gnu.org
Tue Dec 22 23:43:11 CET 2009


On Tue, Dec 22, 2009 at 02:30:21PM -0700, Myles Watson wrote:
> 
> > On Fri, Dec 18, 2009 at 11:38:46AM -0700, Myles Watson wrote:
> > > I would check the early startup code for the remote nodes.  It looks
> > like
> > > you hang right where it gets garbled for Knut.
> > 
> > Hmm, yeah. So I tried enabling just one core by setting
> > 
> > default CONFIG_MAX_PHYSICAL_CPUS=1
> > default CONFIG_MAX_CPUS=1 * CONFIG_MAX_PHYSICAL_CPUS
> > default CONFIG_LOGICAL_CPUS=1
> I think you need to set CONFIG_LOGICAL_CPUS=0 to disable the siblings.  I
> got it to compile by moving the nb_ function it can't find into the #endif
> above it.
> 
> * AP 02 didn't start timeout:00000001
> * AP 03 didn't start timeout:00000001
> 
> 
> Begin FIDVID MSR 0xc0010071 0x30ae00a3 0x40034c40 
> FIDVID on BSP, APIC_id: 00
> BSP fid = 10600
> Wait for AP stage 1: ap_apicid = 1
> fidvid_bsp_stage1: time out while reading from ap 01
> Wait for AP stage 1: ap_apicid = 2
> fidvid_bsp_stage1: time out while reading from ap 02
> Wait for AP stage 1: ap_apicid = 3
> 
> It's still trying to start the APs.

Right. Setting CONFIG_LOGICAL_CPUS to zero and making sure that conditional
on CONFIG_LOGICAL_CPUS at the top of northbridge.c does not apply fixed that.

Should this go into the tree?

--- northbridge/amd/amdfam10/northbridge.c (revision 4978)
+++ northbridge/amd/amdfam10/northbridge.c (working copy)
@@ -31,10 +31,10 @@
 
 #include <cpu/x86/lapic.h>
 
-#if CONFIG_LOGICAL_CPUS==1
 #include <cpu/amd/quadcore.h>
 #include <pc80/mc146818rtc.h>
-#endif
 
 #include "chip.h"
 #include "root_complex/chip.h"

> > and by adding a return at the very beginning of start_other_cores in
> > 
> >   cpu/amd/quadcore/quadcore.c
> > 
> > which gets me a bit further, but not much. It hangs in the
> > mcp55_early_pcie_setup function in
> > 
> >   southbridge/nvidia/mcp55/mcp55_early_setup_car.c
> > 
> > Log attached. Anything else I should try?
> 
> If inl and outl are hanging, I would dump the routing registers and read the
> device's IDs to see what's going wrong.  I'm not very familiar with how the
> fam10 code works, but dumping the routing registers should be mostly cut and
> paste from the k8/util.c code.

Right. I've done that - log attached. I'm dumping with

    showallroutes(BIOS_DEBUG, PCI_DEV(0, 0x18, 1));

I'm not sure what to make of the dump though (attached).

Thanks,
Ward.
 
-- 
Ward Vandewege <ward at fsf.org>
Free Software Foundation - Senior Systems Administrator
-------------- next part --------------
A non-text attachment was scrubbed...
Name: minicom-20091222ad-ram-on-both-cpus.cap
Type: application/cap
Size: 1761 bytes
Desc: not available
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20091222/976c4ac3/attachment.bin>


More information about the coreboot mailing list