lkml.org 
[lkml]   [2004]   [Feb]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
SubjectRE: Intel x86-64 support patch breaks amd64
Date
From
> > After #if 0 out some parts to make it compile, it fails to 
> boot with no
> > output at all. Sorry, don't have low level debugging or
> serial console on
> > this machine configured, let me know if you need further
> information.
>
> It works for me with this patch both UP and SMP. Maybe you
> commented out
> too much?
>
> -Andi

Andi, Appended patch should fix the problem reported by Tony.

thanks,
suresh

diff -Nru linux/arch/x86_64/kernel/head.S linux~/arch/x86_64/kernel/head.S
--- linux/arch/x86_64/kernel/head.S 2004-02-19 03:10:55.000000000 -0800
+++ linux~/arch/x86_64/kernel/head.S 2004-02-19 04:21:51.000000000 -0800
@@ -358,7 +358,7 @@
/* asm/segment.h:GDT_ENTRIES must match this */
/* This should be a multiple of the cache line size */
/* GDTs of other CPUs: */
- .fill (L1_CACHE_BYTES * NR_CPUS) - (gdt_end - cpu_gdt_table)
+ .fill (GDT_SIZE * NR_CPUS) - (gdt_end - cpu_gdt_table)

.align L1_CACHE_BYTES
ENTRY(idt_table)
diff -Nru linux/arch/x86_64/kernel/setup.c linux~/arch/x86_64/kernel/setup.c
--- linux/arch/x86_64/kernel/setup.c 2004-02-19 03:10:55.000000000 -0800
+++ linux~/arch/x86_64/kernel/setup.c 2004-02-19 03:18:58.000000000 -0800
@@ -586,6 +586,7 @@
return r;
}

+#ifdef CONFIG_X86_HT
static void __init detect_ht(void)
{
extern int phys_proc_id[NR_CPUS];
@@ -632,6 +633,7 @@
phys_proc_id[cpu]);
}
}
+#endif

#define LVL_1_INST 1
#define LVL_1_DATA 2
@@ -761,8 +763,10 @@
c->x86_cache_size = l2 ? l2 : (l1i+l1d);
}

+#ifdef CONFIG_X86_HT
if (cpu_has(c, X86_FEATURE_HT))
detect_ht();
+#endif

n = cpuid_eax(0x80000000);
if (n >= 0x80000008) {
diff -Nru linux/arch/x86_64/kernel/x8664_ksyms.c linux~/arch/x86_64/kernel/x8664_ksyms.c
--- linux/arch/x86_64/kernel/x8664_ksyms.c 2004-02-19 03:10:55.000000000 -0800
+++ linux~/arch/x86_64/kernel/x8664_ksyms.c 2004-02-19 03:20:04.000000000 -0800
@@ -194,7 +194,10 @@

EXPORT_SYMBOL(die_chain);

+#ifdef CONFIG_X86_HT
+EXPORT_SYMBOL(smp_num_siblings);
EXPORT_SYMBOL(cpu_sibling_map);
+#endif

extern void do_softirq_thunk(void);
EXPORT_SYMBOL_NOVERS(do_softirq_thunk);
diff -Nru linux/include/asm-x86_64/segment.h linux~/include/asm-x86_64/segment.h
--- linux/include/asm-x86_64/segment.h 2004-02-19 03:11:05.000000000 -0800
+++ linux~/include/asm-x86_64/segment.h 2004-02-19 04:21:17.000000000 -0800
@@ -40,7 +40,7 @@
#define FS_TLS_SEL ((GDT_ENTRY_TLS_MIN+FS_TLS)*8 + 3)

#define IDT_ENTRIES 256
-#define GDT_ENTRIES (L1_CACHE_BYTES / 8)
+#define GDT_ENTRIES 16
#define GDT_SIZE (GDT_ENTRIES * 8)
#define TLS_SIZE (GDT_ENTRY_TLS_ENTRIES * 8)
[unhandled content-type:application/octet-stream]
\
 
 \ /
  Last update: 2005-03-22 14:01    [W:0.338 / U:0.168 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site