From 72be710b4b5263b21a23cd9badd2123bd04ed604 Mon Sep 17 00:00:00 2001 From: "Ronald G. Minnich" Date: Tue, 2 Sep 2008 15:25:06 +0000 Subject: [PATCH] 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 Acked-by: Ronald G. Minnich git-svn-id: svn://coreboot.org/repository/coreboot-v3@855 f3766cd6-281f-0410-b1cd-43a5c92072e9 --- arch/x86/amd/k8/stage1.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/x86/amd/k8/stage1.c b/arch/x86/amd/k8/stage1.c index 7f233ea8b2..17d9a94565 100644 --- a/arch/x86/amd/k8/stage1.c +++ b/arch/x86/amd/k8/stage1.c @@ -38,8 +38,16 @@ void disable_car(void) * 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"); }