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.032 / U:0.132 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site