Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Sep 2008 16:50:38 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        "Pascal Hofstee" <caelian@gmail.com>
Cc:        freebsd-current@freebsd.org, Christian Weisgerber <naddy@mips.inka.de>
Subject:   Re: No root filesystem
Message-ID:  <200809081650.38774.jhb@freebsd.org>
In-Reply-To: <d8a0b7620809021041i5e9f4ea0y99090affa681c34e@mail.gmail.com>
References:  <g8nl1b$279$1@lorvorc.mips.inka.de> <200809021033.55033.jhb@freebsd.org> <d8a0b7620809021041i5e9f4ea0y99090affa681c34e@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 02 September 2008 01:41:24 pm Pascal Hofstee wrote:
> On Tue, Sep 2, 2008 at 4:33 PM, John Baldwin <jhb@freebsd.org> wrote:
> > This explains k8temp.  So my earlier test patch to Christian only checked
> > on i386 which is why it didn't find an issue before.  Try the updated
> > patch at http://www.FreeBSD.org/~jhb/patches/pcie.patch
> >
> > This does PCI config reads using both methods and panics if it doesn't
> > get the same result.
>
> I had to adjust the patch slightly by actually initializing edata to
> -1 to get the kernel to actually build (WARNS was complaining about
> possibly uninitialized variable edata). I then booted the resulting
> kernel and got the following boot log:
>
> [snip earlier parts of boot log]
> acpi0: <090607 RSDT1001> on motherboard
> PCIe: Memory Mapped configuration base @ 0xe0000000
> ioapic0: routing intpin 9 (ISA IRQ 9) to vector 48
> acpi0: [MPSAFE]
> acpi0: [ITHREAD]
> acpi0: Power Button (fixed)
> panic: pci_cfgread(0:24:0, 11, 1) => 0x6, 0xff
> cpuid = 0
>
> According to pciconf -lv on a working kernel device 0:24:0 is the
> following: hostb0@pci0:0:24:0:     class=0x060000 card=0x00000000
> chip=0x11001022 rev=0x00 hdr=0x00
>     vendor     = 'Advanced Micro Devices (AMD)'
>     device     = '(K8) Athlon 64/Opteron HyperTransport Technology
> Configuration'
>     class      = bridge
>     subclass   = HOST-PCI
>
> Which matches perfectly with the first previously mentioned missing
> devices that are normally attached to pcib0.

So Linux has a rather gross work-around for this (it's a hardware bug) where 
they check all the slots on bus 0, and if a device isn't found via MCFG, it 
falls back to using the old style config access.  That still doesn't explain 
the ata issue though.  Let me see if I can come up with a patch for this 
issue first, and then we can move on to the ATA one. :-(

Try http://www.FreeBSD.org/~jhb/patches/pcie_mcfg_k8.patch

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200809081650.38774.jhb>