diff options
author | Matt Wilson <msw@redhat.com> | 2002-07-17 13:15:31 +0000 |
---|---|---|
committer | Matt Wilson <msw@redhat.com> | 2002-07-17 13:15:31 +0000 |
commit | 14f76ec3d6851d95009c891dc86083d28e9b2ccc (patch) | |
tree | a5f66f5ce150631f2bb59f73b8d7eae798c32427 /isys/smp.c | |
parent | 3365968c0067cdd781efe666222cb84ee9434afd (diff) | |
download | anaconda-14f76ec3d6851d95009c891dc86083d28e9b2ccc.tar.gz anaconda-14f76ec3d6851d95009c891dc86083d28e9b2ccc.tar.xz anaconda-14f76ec3d6851d95009c891dc86083d28e9b2ccc.zip |
implement summit test
Diffstat (limited to 'isys/smp.c')
-rw-r--r-- | isys/smp.c | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/isys/smp.c b/isys/smp.c index dc6213324..32c42575b 100644 --- a/isys/smp.c +++ b/isys/smp.c @@ -249,7 +249,10 @@ readType() return (int)type; } -static int intelDetectSMP(void) +#define MODE_SMP_CHECK 1 +#define MODE_SUMMIT_CHECK 2 + +static int groupForSMP(int mode) { vm_offset_t paddr; int where; @@ -290,6 +293,15 @@ static int intelDetectSMP(void) close (pfd); return 0; } + + if (mode == MODE_SUMMIT_CHECK) { + if (!strncmp(cth.oem_id, "IBM ENSW", 8) && + (!strncmp(cth.product_id, "NF 6000R", 8) || + !strncmp(cth.product_id, "VIGIL SMP", 9))) + return 1; + return 0; + } + count = cth.entry_count; for (i = 0; i < count; i++) { if ( readType() == 0 ) { @@ -490,9 +502,12 @@ readEntry( void* entry, int size ) } } -#endif /* __i386__ */ +static int intelDetectSMP(void) +{ + return groupForSMP(MODE_SMP_CHECK); +} -#ifdef __i386__ +/* ---- end mptable mess ---- */ static inline void cpuid(int op, int *eax, int *ebx, int *ecx, int *edx) { @@ -501,6 +516,8 @@ static inline void cpuid(int op, int *eax, int *ebx, int *ecx, int *edx) : "a" (op)); } +/* XXX: rewrite using /proc/cpuinfo info if it there. Only fall + back to inline asm if it is not */ int detectHT(void) { FILE *f; @@ -536,6 +553,11 @@ int detectHT(void) return 0; } +int detectSummit(void) +{ + return groupForSMP(MODE_SUMMIT_CHECK); +} + #else /* ndef __i386__ */ int detectHT(void) @@ -543,6 +565,11 @@ int detectHT(void) return 0; } +int detectSummit(void) +{ + return 0; +} + #endif /* __i386__ */ int detectSMP(void) |