[coreboot] r855 - coreboot-v3/arch/x86/amd/k8

svn at coreboot.org svn at coreboot.org
Tue Sep 2 17:25:07 CEST 2008


Author: rminnich
Date: 2008-09-02 17:25:06 +0200 (Tue, 02 Sep 2008)
New Revision: 855

Modified:
   coreboot-v3/arch/x86/amd/k8/stage1.c
Log:
With this change, we get all the way to stage 2 and this output, at 
which point we hang:
Show all devs...
root(Root Device): enabled 1 have_resources 0 initialized 0
cpus: Unknown device path type: 0
cpus(): enabled 1 have_resources 0 initialized 0
apic_0(APIC: 00): enabled 1 have_resources 0 initialized 0
pci_1_0(PCI: 00:01.0): enabled 1 have_resources 0 initialized 0
pci_0_0(PCI: 00:00.0): enabled 1 have_resources 0 initialized 0
pci_4_0(PCI: 00:04.0): enabled 1 have_resources 0 initialized 0
pci_5_0(PCI: 00:05.0): enabled 1 have_resources 0 initialized 0
pci_18_0(PCI: 00:18.0): enabled 1 have_resources 0 initialized 0
ioport_2e(IOPORT: 2e): enabled 1 have_resources 0 initialized 0
domain_0(PCI_DOMAIN: 0000): enabled 1 have_resources 0 initialized 0
Phase 6: Initializing devices...
Phase 6: Root Device init.
Phase 6: PCI: 00:04.0 init.

The dts is quite incomplete and that is part of the problem. Doubtless 
there are other problems :-)

But training is indeed working in simnow, and memory is working, and we 
can return from disable_car as on the geode. 

Signed-off-by: Ronald G. Minnich <rminnich at gmail.com>
Acked-by: Ronald G. Minnich <rminnich at gmail.com>



Modified: coreboot-v3/arch/x86/amd/k8/stage1.c
===================================================================
--- coreboot-v3/arch/x86/amd/k8/stage1.c	2008-09-01 02:44:08 UTC (rev 854)
+++ coreboot-v3/arch/x86/amd/k8/stage1.c	2008-09-02 15:25:06 UTC (rev 855)
@@ -38,8 +38,16 @@
 	 * the data back over itself, and the wbinvd should then 
 	 * flush to memory. Let's see. 
 	 */
+	/* nope. 
 	__asm__ __volatile__("cld; rep movsl" ::"D" (CONFIG_CARBASE), "S" (CONFIG_CARBASE), "c" (CONFIG_CARSIZE/4): "memory");
+	 */
+	/* call the inlined function */
+	disable_cache_as_ram();
+
+	/* copy it down, wbinvd, copy it back? */
+	__asm__ __volatile__("cld; rep movsl" ::"D" (0x88000), "S" (CONFIG_CARBASE), "c" (CONFIG_CARSIZE/4): "memory");
 	__asm__ __volatile__ ("wbinvd\n");
+	__asm__ __volatile__("cld; rep movsl" ::"D" (CONFIG_CARBASE), "S" (0x88000), "c" (CONFIG_CARSIZE/4): "memory");
 	banner(BIOS_DEBUG, "Disable_car: done wbinvd");
 	banner(BIOS_DEBUG, "disable_car: done");
 }





More information about the coreboot mailing list