diff options
Diffstat (limited to 'include/asm-powerpc/processor.h')
| -rw-r--r-- | include/asm-powerpc/processor.h | 70 |
1 files changed, 38 insertions, 32 deletions
diff --git a/include/asm-powerpc/processor.h b/include/asm-powerpc/processor.h index 1dc4bf7b52b3..f6f186b56b0f 100644 --- a/include/asm-powerpc/processor.h +++ b/include/asm-powerpc/processor.h | |||
| @@ -17,65 +17,71 @@ | |||
| 17 | #include <linux/compiler.h> | 17 | #include <linux/compiler.h> |
| 18 | #include <asm/ptrace.h> | 18 | #include <asm/ptrace.h> |
| 19 | #include <asm/types.h> | 19 | #include <asm/types.h> |
| 20 | #ifdef CONFIG_PPC64 | ||
| 21 | #include <asm/systemcfg.h> | ||
| 22 | #endif | ||
| 23 | 20 | ||
| 24 | #ifdef CONFIG_PPC32 | 21 | /* We do _not_ want to define new machine types at all, those must die |
| 25 | /* 32-bit platform types */ | 22 | * in favor of using the device-tree |
| 26 | /* We only need to define a new _MACH_xxx for machines which are part of | 23 | * -- BenH. |
| 27 | * a configuration which supports more than one type of different machine. | ||
| 28 | * This is currently limited to CONFIG_PPC_MULTIPLATFORM and CHRP/PReP/PMac. | ||
| 29 | * -- Tom | ||
| 30 | */ | 24 | */ |
| 31 | #define _MACH_prep 0x00000001 | ||
| 32 | #define _MACH_Pmac 0x00000002 /* pmac or pmac clone (non-chrp) */ | ||
| 33 | #define _MACH_chrp 0x00000004 /* chrp machine */ | ||
| 34 | 25 | ||
| 35 | /* see residual.h for these */ | 26 | /* Platforms codes (to be obsoleted) */ |
| 27 | #define PLATFORM_PSERIES 0x0100 | ||
| 28 | #define PLATFORM_PSERIES_LPAR 0x0101 | ||
| 29 | #define PLATFORM_ISERIES_LPAR 0x0201 | ||
| 30 | #define PLATFORM_LPAR 0x0001 | ||
| 31 | #define PLATFORM_POWERMAC 0x0400 | ||
| 32 | #define PLATFORM_MAPLE 0x0500 | ||
| 33 | #define PLATFORM_PREP 0x0600 | ||
| 34 | #define PLATFORM_CHRP 0x0700 | ||
| 35 | #define PLATFORM_CELL 0x1000 | ||
| 36 | |||
| 37 | /* Compat platform codes for 32 bits */ | ||
| 38 | #define _MACH_prep PLATFORM_PREP | ||
| 39 | #define _MACH_Pmac PLATFORM_POWERMAC | ||
| 40 | #define _MACH_chrp PLATFORM_CHRP | ||
| 41 | |||
| 42 | /* PREP sub-platform types see residual.h for these */ | ||
| 36 | #define _PREP_Motorola 0x01 /* motorola prep */ | 43 | #define _PREP_Motorola 0x01 /* motorola prep */ |
| 37 | #define _PREP_Firm 0x02 /* firmworks prep */ | 44 | #define _PREP_Firm 0x02 /* firmworks prep */ |
| 38 | #define _PREP_IBM 0x00 /* ibm prep */ | 45 | #define _PREP_IBM 0x00 /* ibm prep */ |
| 39 | #define _PREP_Bull 0x03 /* bull prep */ | 46 | #define _PREP_Bull 0x03 /* bull prep */ |
| 40 | 47 | ||
| 41 | /* these are arbitrary */ | 48 | /* CHRP sub-platform types. These are arbitrary */ |
| 42 | #define _CHRP_Motorola 0x04 /* motorola chrp, the cobra */ | 49 | #define _CHRP_Motorola 0x04 /* motorola chrp, the cobra */ |
| 43 | #define _CHRP_IBM 0x05 /* IBM chrp, the longtrail and longtrail 2 */ | 50 | #define _CHRP_IBM 0x05 /* IBM chrp, the longtrail and longtrail 2 */ |
| 44 | #define _CHRP_Pegasos 0x06 /* Genesi/bplan's Pegasos and Pegasos2 */ | 51 | #define _CHRP_Pegasos 0x06 /* Genesi/bplan's Pegasos and Pegasos2 */ |
| 45 | 52 | ||
| 46 | #ifdef CONFIG_PPC_MULTIPLATFORM | 53 | #define platform_is_pseries() (_machine == PLATFORM_PSERIES || \ |
| 54 | _machine == PLATFORM_PSERIES_LPAR) | ||
| 55 | #define platform_is_lpar() (!!(_machine & PLATFORM_LPAR)) | ||
| 56 | |||
| 57 | #if defined(CONFIG_PPC_MULTIPLATFORM) | ||
| 47 | extern int _machine; | 58 | extern int _machine; |
| 48 | 59 | ||
| 60 | #ifdef CONFIG_PPC32 | ||
| 61 | |||
| 49 | /* what kind of prep workstation we are */ | 62 | /* what kind of prep workstation we are */ |
| 50 | extern int _prep_type; | 63 | extern int _prep_type; |
| 51 | extern int _chrp_type; | 64 | extern int _chrp_type; |
| 52 | 65 | ||
| 53 | /* | 66 | /* |
| 54 | * This is used to identify the board type from a given PReP board | 67 | * This is used to identify the board type from a given PReP board |
| 55 | * vendor. Board revision is also made available. | 68 | * vendor. Board revision is also made available. This will be moved |
| 69 | * elsewhere soon | ||
| 56 | */ | 70 | */ |
| 57 | extern unsigned char ucSystemType; | 71 | extern unsigned char ucSystemType; |
| 58 | extern unsigned char ucBoardRev; | 72 | extern unsigned char ucBoardRev; |
| 59 | extern unsigned char ucBoardRevMaj, ucBoardRevMin; | 73 | extern unsigned char ucBoardRevMaj, ucBoardRevMin; |
| 74 | |||
| 75 | #endif /* CONFIG_PPC32 */ | ||
| 76 | |||
| 77 | #elif defined(CONFIG_PPC_ISERIES) | ||
| 78 | /* | ||
| 79 | * iSeries is soon to become MULTIPLATFORM hopefully ... | ||
| 80 | */ | ||
| 81 | #define _machine PLATFORM_ISERIES_LPAR | ||
| 60 | #else | 82 | #else |
| 61 | #define _machine 0 | 83 | #define _machine 0 |
| 62 | #endif /* CONFIG_PPC_MULTIPLATFORM */ | 84 | #endif /* CONFIG_PPC_MULTIPLATFORM */ |
| 63 | #endif /* CONFIG_PPC32 */ | ||
| 64 | |||
| 65 | #ifdef CONFIG_PPC64 | ||
| 66 | /* Platforms supported by PPC64 */ | ||
| 67 | #define PLATFORM_PSERIES 0x0100 | ||
| 68 | #define PLATFORM_PSERIES_LPAR 0x0101 | ||
| 69 | #define PLATFORM_ISERIES_LPAR 0x0201 | ||
| 70 | #define PLATFORM_LPAR 0x0001 | ||
| 71 | #define PLATFORM_POWERMAC 0x0400 | ||
| 72 | #define PLATFORM_MAPLE 0x0500 | ||
| 73 | #define PLATFORM_CELL 0x1000 | ||
| 74 | |||
| 75 | /* Compatibility with drivers coming from PPC32 world */ | ||
| 76 | #define _machine (systemcfg->platform) | ||
| 77 | #define _MACH_Pmac PLATFORM_POWERMAC | ||
| 78 | #endif | ||
| 79 | 85 | ||
| 80 | /* | 86 | /* |
| 81 | * Default implementation of macro that returns current | 87 | * Default implementation of macro that returns current |
