diff options
Diffstat (limited to 'arch/powerpc/kernel/prom_init.c')
| -rw-r--r-- | arch/powerpc/kernel/prom_init.c | 75 | 
1 files changed, 6 insertions, 69 deletions
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c index 13f8d168b3f..4a9e50cf8ab 100644 --- a/arch/powerpc/kernel/prom_init.c +++ b/arch/powerpc/kernel/prom_init.c @@ -627,16 +627,11 @@ static void __init early_cmdline_parse(void)  #if defined(CONFIG_PPC_PSERIES) || defined(CONFIG_PPC_POWERNV)  /* - * There are two methods for telling firmware what our capabilities are. - * Newer machines have an "ibm,client-architecture-support" method on the - * root node.  For older machines, we have to call the "process-elf-header" - * method in the /packages/elf-loader node, passing it a fake 32-bit - * ELF header containing a couple of PT_NOTE sections that contain - * structures that contain various information. - */ - -/* - * New method - extensible architecture description vector. + * The architecture vector has an array of PVR mask/value pairs, + * followed by # option vectors - 1, followed by the option vectors. + * + * See prom.h for the definition of the bits specified in the + * architecture vector.   *   * Because the description vector contains a mix of byte and word   * values, we declare it as an unsigned char array, and use this @@ -645,65 +640,7 @@ static void __init early_cmdline_parse(void)  #define W(x)	((x) >> 24) & 0xff, ((x) >> 16) & 0xff, \  		((x) >> 8) & 0xff, (x) & 0xff -/* Option vector bits - generic bits in byte 1 */ -#define OV_IGNORE		0x80	/* ignore this vector */ -#define OV_CESSATION_POLICY	0x40	/* halt if unsupported option present*/ - -/* Option vector 1: processor architectures supported */ -#define OV1_PPC_2_00		0x80	/* set if we support PowerPC 2.00 */ -#define OV1_PPC_2_01		0x40	/* set if we support PowerPC 2.01 */ -#define OV1_PPC_2_02		0x20	/* set if we support PowerPC 2.02 */ -#define OV1_PPC_2_03		0x10	/* set if we support PowerPC 2.03 */ -#define OV1_PPC_2_04		0x08	/* set if we support PowerPC 2.04 */ -#define OV1_PPC_2_05		0x04	/* set if we support PowerPC 2.05 */ -#define OV1_PPC_2_06		0x02	/* set if we support PowerPC 2.06 */ -#define OV1_PPC_2_07		0x01	/* set if we support PowerPC 2.07 */ - -/* Option vector 2: Open Firmware options supported */ -#define OV2_REAL_MODE		0x20	/* set if we want OF in real mode */ - -/* Option vector 3: processor options supported */ -#define OV3_FP			0x80	/* floating point */ -#define OV3_VMX			0x40	/* VMX/Altivec */ -#define OV3_DFP			0x20	/* decimal FP */ - -/* Option vector 4: IBM PAPR implementation */ -#define OV4_MIN_ENT_CAP		0x01	/* minimum VP entitled capacity */ - -/* Option vector 5: PAPR/OF options supported */ -#define OV5_LPAR		0x80	/* logical partitioning supported */ -#define OV5_SPLPAR		0x40	/* shared-processor LPAR supported */ -/* ibm,dynamic-reconfiguration-memory property supported */ -#define OV5_DRCONF_MEMORY	0x20 -#define OV5_LARGE_PAGES		0x10	/* large pages supported */ -#define OV5_DONATE_DEDICATE_CPU 0x02	/* donate dedicated CPU support */ -/* PCIe/MSI support.  Without MSI full PCIe is not supported */ -#ifdef CONFIG_PCI_MSI -#define OV5_MSI			0x01	/* PCIe/MSI support */ -#else -#define OV5_MSI			0x00 -#endif /* CONFIG_PCI_MSI */ -#ifdef CONFIG_PPC_SMLPAR -#define OV5_CMO			0x80	/* Cooperative Memory Overcommitment */ -#define OV5_XCMO			0x40	/* Page Coalescing */ -#else -#define OV5_CMO			0x00 -#define OV5_XCMO			0x00 -#endif -#define OV5_TYPE1_AFFINITY	0x80	/* Type 1 NUMA affinity */ -#define OV5_PFO_HW_RNG		0x80	/* PFO Random Number Generator */ -#define OV5_PFO_HW_842		0x40	/* PFO Compression Accelerator */ -#define OV5_PFO_HW_ENCR		0x20	/* PFO Encryption Accelerator */ -#define OV5_SUB_PROCESSORS	0x01    /* 1,2,or 4 Sub-Processors supported */ - -/* Option Vector 6: IBM PAPR hints */ -#define OV6_LINUX		0x02	/* Linux is our OS */ - -/* - * The architecture vector has an array of PVR mask/value pairs, - * followed by # option vectors - 1, followed by the option vectors. - */ -static unsigned char ibm_architecture_vec[] = { +unsigned char ibm_architecture_vec[] = {  	W(0xfffe0000), W(0x003a0000),	/* POWER5/POWER5+ */  	W(0xffff0000), W(0x003e0000),	/* POWER6 */  	W(0xffff0000), W(0x003f0000),	/* POWER7 */  |