diff options
| author | Matt Jacob <mjacob@FreeBSD.org> | 2000-07-04 01:43:31 +0000 |
|---|---|---|
| committer | Matt Jacob <mjacob@FreeBSD.org> | 2000-07-04 01:43:31 +0000 |
| commit | d25c830c8d79e258b91fde13cf209dd2e5d9af73 (patch) | |
| tree | b0e5948ed76c7f08e0d0b7ab052b3b8d21af6f96 /sys/alpha | |
| parent | 4d5cde0e88b159f85a641671cbfcad0f4dfdc078 (diff) | |
Notes
Diffstat (limited to 'sys/alpha')
| -rw-r--r-- | sys/alpha/alpha/cpuconf.c | 54 |
1 files changed, 50 insertions, 4 deletions
diff --git a/sys/alpha/alpha/cpuconf.c b/sys/alpha/alpha/cpuconf.c index 5773de76bdae..7f7da4f2bac7 100644 --- a/sys/alpha/alpha/cpuconf.c +++ b/sys/alpha/alpha/cpuconf.c @@ -86,6 +86,12 @@ extern void dec_eb164_init __P((int)); #define dec_eb164_init platform_not_configured #endif +#ifdef DEC_KN300 +extern void dec_kn300_init __P((int)); +#else +#define dec_kn300_init platform_not_configured +#endif + #ifdef AVALON_A12 extern void avalon_a12_init __P((int)); #else @@ -110,6 +116,18 @@ extern void dec_1000a_init __P((int)); #define dec_1000a_init platform_not_configured #endif +#ifdef DEC_2100_A500 +extern void dec_2100_a500_init __P((int)); +#else +#define dec_2100_a500_init platform_not_configured +#endif + +#ifdef API_UP1000 +extern void api_up1000_init __P((int)); +#else +#define api_up1000_init platform_not_configured +#endif + struct cpuinit cpuinit[] = { cpu_notsupp("???"), /* 0: ??? */ cpu_notsupp("ST_ADU"), /* 1: ST_ADU */ @@ -120,7 +138,7 @@ struct cpuinit cpuinit[] = { cpu_notsupp("ST_DEC_2000_300"), /* 6: ST_DEC_2000_300 */ cpu_init(dec_3000_300_init,"DEC_3000_300"), /* 7: ST_DEC_3000_300 */ cpu_init(avalon_a12_init,"ST_AVALON_A12"), /* 8: ST_AVALON_A12 */ - cpu_notsupp("ST_DEC_2100_A500"), /* 9: ST_DEC_2100_A500 */ + cpu_init(dec_2100_a500_init, "ST_DEC_2100_A500"), /* 9: ST_DEC_2100_A500 */ cpu_notsupp("ST_DEC_APXVME_64"), /* 10: ST_DEC_APXVME_64 */ cpu_init(dec_axppci_33_init,"DEC_AXPPCI_33"),/* 11: ST_DEC_AXPPCI_33 */ cpu_init(dec_kn8ae_init,"DEC_KN8AE"), /* 12: ST_DEC_21000 */ @@ -133,9 +151,9 @@ struct cpuinit cpuinit[] = { cpu_notsupp("ST_EB66"), /* 19: ST_EB66 */ cpu_init(dec_eb64plus_init,"DEC_EB64PLUS"), /* 20: ST_EB64P */ cpu_notsupp("ST_ALPHABOOK1"), /* 21: ST_ALPHABOOK1 */ - cpu_notsupp("ST_DEC_4100"), /* 22: ST_DEC_4100 */ + cpu_init(dec_kn300_init,"DEC_KN300"), /* 22: ST_DEC_4100 */ cpu_notsupp("ST_DEC_EV45_PBP"), /* 23: ST_DEC_EV45_PBP */ - cpu_notsupp("ST_DEC_2100A_A500"), /* 24: ST_DEC_2100A_A500 */ + cpu_init(dec_2100_a500_init, "ST_DEC_2100A_A500"), /* 24: ST_DEC_2100A_A500 */ cpu_notsupp("???"), /* 25: ??? */ cpu_init(dec_eb164_init,"DEC_EB164"), /* 26: ST_EB164 */ cpu_init(dec_1000a_init,"ST_DEC_1000A"), /* 27: ST_DEC_1000A */ @@ -149,14 +167,37 @@ struct cpuinit cpuinit[] = { }; int ncpuinit = (sizeof(cpuinit) / sizeof(cpuinit[0])); +struct cpuinit api_cpuinit[] = { + cpu_notsupp("???"), /* 0: ??? */ + cpu_init(api_up1000_init,"API_UP1000"), /* 1: ST_API_UP1000 */ +}; +int napi_cpuinit = (sizeof(api_cpuinit) / sizeof(api_cpuinit[0])); + + void platform_not_configured(int cputype) { + struct cpuinit *cpu; + int cpuidx; + + cputype = hwrpb->rpb_type; + + if (cputype < 1) + cputype *= -1; + + if (cputype >= API_ST_BASE) { + cpuidx = cputype - API_ST_BASE; + cpu = api_cpuinit; + } else { + cpuidx = cputype; + cpu = cpuinit; + } + printf("\n"); printf("Support for system type %d is not present in this kernel.\n", cputype); printf("Please build a kernel with \"options %s\" and reboot.\n", - cpuinit[cputype].option); + cpu[cpuidx].option); printf("\n"); panic("platform not configured\n"); } @@ -166,6 +207,11 @@ platform_not_supported(int cputype) { const char *typestr; + cputype = hwrpb->rpb_type; + + if (cputype < 1) + cputype *= -1; + if (cputype >= ncpuinit) typestr = "???"; else |
