diff options
Diffstat (limited to 'arch/powerpc/cpu/ppc4xx/cpu.c')
| -rw-r--r-- | arch/powerpc/cpu/ppc4xx/cpu.c | 146 | 
1 files changed, 69 insertions, 77 deletions
| diff --git a/arch/powerpc/cpu/ppc4xx/cpu.c b/arch/powerpc/cpu/ppc4xx/cpu.c index 851065cbd..6009b0ce0 100644 --- a/arch/powerpc/cpu/ppc4xx/cpu.c +++ b/arch/powerpc/cpu/ppc4xx/cpu.c @@ -35,7 +35,7 @@  #include <watchdog.h>  #include <command.h>  #include <asm/cache.h> -#include <ppc4xx.h> +#include <asm/ppc4xx.h>  #include <netdev.h>  DECLARE_GLOBAL_DATA_PTR; @@ -98,8 +98,8 @@ int pci_arbiter_enabled(void)  #if defined(CONFIG_440GX) || defined(CONFIG_440SP) || defined(CONFIG_440SPE)  	unsigned long val; -	mfsdr(SDR0_XCR, val); -	return (val & 0x80000000); +	mfsdr(SDR0_XCR0, val); +	return (val & SDR0_XCR0_PAE_MASK);  #endif  #if defined(CONFIG_440EP) || defined(CONFIG_440GR) || \      defined(CONFIG_440EPX) || defined(CONFIG_440GRX) || \ @@ -107,7 +107,7 @@ int pci_arbiter_enabled(void)  	unsigned long val;  	mfsdr(SDR0_PCI0, val); -	return (val & 0x80000000); +	return (val & SDR0_PCI0_PAE_MASK);  #endif  }  #endif @@ -262,7 +262,7 @@ static int bootstrap_option(void)  #endif /* SDR0_PINSTP_SHIFT */ -#if defined(CONFIG_440) +#if defined(CONFIG_440GP)  static int do_chip_reset (unsigned long sys0, unsigned long sys1)  {  	/* Changes to CPC0_SYS0 and CPC0_SYS1 require chip @@ -276,7 +276,7 @@ static int do_chip_reset (unsigned long sys0, unsigned long sys1)  	return 1;  } -#endif +#endif /* CONFIG_440GP */  int checkcpu (void) @@ -303,122 +303,113 @@ int checkcpu (void)  	get_sys_info(&sys_info);  #if defined(CONFIG_XILINX_440) -	puts("IBM PowerPC 4"); +	puts("IBM PowerPC ");  #else -	puts("AMCC PowerPC 4"); -#endif - -#if defined(CONFIG_405GP) || defined(CONFIG_405CR) || \ -    defined(CONFIG_405EP) || defined(CONFIG_405EZ) || \ -    defined(CONFIG_405EX) -	puts("05"); -#endif -#if defined(CONFIG_440) -#if defined(CONFIG_460EX) || defined(CONFIG_460GT) -	puts("60"); -#else -	puts("40"); -#endif +	puts("AMCC PowerPC ");  #endif  	switch (pvr) { + +#if !defined(CONFIG_440)  	case PVR_405GP_RB: -		puts("GP Rev. B"); +		puts("405GP Rev. B");  		break;  	case PVR_405GP_RC: -		puts("GP Rev. C"); +		puts("405GP Rev. C");  		break;  	case PVR_405GP_RD: -		puts("GP Rev. D"); +		puts("405GP Rev. D");  		break;  #ifdef CONFIG_405GP  	case PVR_405GP_RE: /* 405GP rev E and 405CR rev C have same PVR */ -		puts("GP Rev. E"); +		puts("405GP Rev. E");  		break;  #endif  	case PVR_405CR_RA: -		puts("CR Rev. A"); +		puts("405CR Rev. A");  		break;  	case PVR_405CR_RB: -		puts("CR Rev. B"); +		puts("405CR Rev. B");  		break;  #ifdef CONFIG_405CR  	case PVR_405CR_RC: /* 405GP rev E and 405CR rev C have same PVR */ -		puts("CR Rev. C"); +		puts("405CR Rev. C");  		break;  #endif  	case PVR_405GPR_RB: -		puts("GPr Rev. B"); +		puts("405GPr Rev. B");  		break;  	case PVR_405EP_RB: -		puts("EP Rev. B"); +		puts("405EP Rev. B");  		break;  	case PVR_405EZ_RA: -		puts("EZ Rev. A"); +		puts("405EZ Rev. A");  		break;  	case PVR_405EX1_RA: -		puts("EX Rev. A"); +		puts("405EX Rev. A");  		strcpy(addstr, "Security support");  		break;  	case PVR_405EXR2_RA: -		puts("EXr Rev. A"); +		puts("405EXr Rev. A");  		strcpy(addstr, "No Security support");  		break;  	case PVR_405EX1_RC: -		puts("EX Rev. C"); +		puts("405EX Rev. C");  		strcpy(addstr, "Security support");  		break;  	case PVR_405EX2_RC: -		puts("EX Rev. C"); +		puts("405EX Rev. C");  		strcpy(addstr, "No Security support");  		break;  	case PVR_405EXR1_RC: -		puts("EXr Rev. C"); +		puts("405EXr Rev. C");  		strcpy(addstr, "Security support");  		break;  	case PVR_405EXR2_RC: -		puts("EXr Rev. C"); +		puts("405EXr Rev. C");  		strcpy(addstr, "No Security support");  		break;  	case PVR_405EX1_RD: -		puts("EX Rev. D"); +		puts("405EX Rev. D");  		strcpy(addstr, "Security support");  		break;  	case PVR_405EX2_RD: -		puts("EX Rev. D"); +		puts("405EX Rev. D");  		strcpy(addstr, "No Security support");  		break;  	case PVR_405EXR1_RD: -		puts("EXr Rev. D"); +		puts("405EXr Rev. D");  		strcpy(addstr, "Security support");  		break;  	case PVR_405EXR2_RD: -		puts("EXr Rev. D"); +		puts("405EXr Rev. D");  		strcpy(addstr, "No Security support");  		break; -#if defined(CONFIG_440) +#else /* CONFIG_440 */ + +#if defined(CONFIG_440GP)  	case PVR_440GP_RB: -		puts("GP Rev. B"); +		puts("440GP Rev. B");  		/* See errata 1.12: CHIP_4 */  		if ((mfdcr(CPC0_SYS0) != mfdcr(CPC0_STRP0)) ||  		    (mfdcr(CPC0_SYS1) != mfdcr(CPC0_STRP1)) ){ @@ -431,127 +422,127 @@ int checkcpu (void)  		break;  	case PVR_440GP_RC: -		puts("GP Rev. C"); +		puts("440GP Rev. C");  		break; +#endif /* CONFIG_440GP */  	case PVR_440GX_RA: -		puts("GX Rev. A"); +		puts("440GX Rev. A");  		break;  	case PVR_440GX_RB: -		puts("GX Rev. B"); +		puts("440GX Rev. B");  		break;  	case PVR_440GX_RC: -		puts("GX Rev. C"); +		puts("440GX Rev. C");  		break;  	case PVR_440GX_RF: -		puts("GX Rev. F"); +		puts("440GX Rev. F");  		break;  	case PVR_440EP_RA: -		puts("EP Rev. A"); +		puts("440EP Rev. A");  		break;  #ifdef CONFIG_440EP  	case PVR_440EP_RB: /* 440EP rev B and 440GR rev A have same PVR */ -		puts("EP Rev. B"); +		puts("440EP Rev. B");  		break;  	case PVR_440EP_RC: /* 440EP rev C and 440GR rev B have same PVR */ -		puts("EP Rev. C"); +		puts("440EP Rev. C");  		break;  #endif /*  CONFIG_440EP */  #ifdef CONFIG_440GR  	case PVR_440GR_RA: /* 440EP rev B and 440GR rev A have same PVR */ -		puts("GR Rev. A"); +		puts("440GR Rev. A");  		break;  	case PVR_440GR_RB: /* 440EP rev C and 440GR rev B have same PVR */ -		puts("GR Rev. B"); +		puts("440GR Rev. B");  		break;  #endif /* CONFIG_440GR */ -#endif /* CONFIG_440 */  #ifdef CONFIG_440EPX  	case PVR_440EPX1_RA: /* 440EPx rev A and 440GRx rev A have same PVR */ -		puts("EPx Rev. A"); +		puts("440EPx Rev. A");  		strcpy(addstr, "Security/Kasumi support");  		break;  	case PVR_440EPX2_RA: /* 440EPx rev A and 440GRx rev A have same PVR */ -		puts("EPx Rev. A"); +		puts("440EPx Rev. A");  		strcpy(addstr, "No Security/Kasumi support");  		break;  #endif /* CONFIG_440EPX */  #ifdef CONFIG_440GRX  	case PVR_440GRX1_RA: /* 440EPx rev A and 440GRx rev A have same PVR */ -		puts("GRx Rev. A"); +		puts("440GRx Rev. A");  		strcpy(addstr, "Security/Kasumi support");  		break;  	case PVR_440GRX2_RA: /* 440EPx rev A and 440GRx rev A have same PVR */ -		puts("GRx Rev. A"); +		puts("440GRx Rev. A");  		strcpy(addstr, "No Security/Kasumi support");  		break;  #endif /* CONFIG_440GRX */  	case PVR_440SP_6_RAB: -		puts("SP Rev. A/B"); +		puts("440SP Rev. A/B");  		strcpy(addstr, "RAID 6 support");  		break;  	case PVR_440SP_RAB: -		puts("SP Rev. A/B"); +		puts("440SP Rev. A/B");  		strcpy(addstr, "No RAID 6 support");  		break;  	case PVR_440SP_6_RC: -		puts("SP Rev. C"); +		puts("440SP Rev. C");  		strcpy(addstr, "RAID 6 support");  		break;  	case PVR_440SP_RC: -		puts("SP Rev. C"); +		puts("440SP Rev. C");  		strcpy(addstr, "No RAID 6 support");  		break;  	case PVR_440SPe_6_RA: -		puts("SPe Rev. A"); +		puts("440SPe Rev. A");  		strcpy(addstr, "RAID 6 support");  		break;  	case PVR_440SPe_RA: -		puts("SPe Rev. A"); +		puts("440SPe Rev. A");  		strcpy(addstr, "No RAID 6 support");  		break;  	case PVR_440SPe_6_RB: -		puts("SPe Rev. B"); +		puts("440SPe Rev. B");  		strcpy(addstr, "RAID 6 support");  		break;  	case PVR_440SPe_RB: -		puts("SPe Rev. B"); +		puts("440SPe Rev. B");  		strcpy(addstr, "No RAID 6 support");  		break;  #if defined(CONFIG_460EX) || defined(CONFIG_460GT)  	case PVR_460EX_RA: -		puts("EX Rev. A"); +		puts("460EX Rev. A");  		strcpy(addstr, "No Security/Kasumi support");  		break;  	case PVR_460EX_SE_RA: -		puts("EX Rev. A"); +		puts("460EX Rev. A");  		strcpy(addstr, "Security/Kasumi support");  		break;  	case PVR_460EX_RB: -		puts("EX Rev. B"); +		puts("460EX Rev. B");  		mfsdr(SDR0_ECID3, reg);  		if (reg & 0x00100000)  			strcpy(addstr, "No Security/Kasumi support"); @@ -560,17 +551,17 @@ int checkcpu (void)  		break;  	case PVR_460GT_RA: -		puts("GT Rev. A"); +		puts("460GT Rev. A");  		strcpy(addstr, "No Security/Kasumi support");  		break;  	case PVR_460GT_SE_RA: -		puts("GT Rev. A"); +		puts("460GT Rev. A");  		strcpy(addstr, "Security/Kasumi support");  		break;  	case PVR_460GT_RB: -		puts("GT Rev. B"); +		puts("460GT Rev. B");  		mfsdr(SDR0_ECID3, reg);  		if (reg & 0x00100000)  			strcpy(addstr, "No Security/Kasumi support"); @@ -580,28 +571,29 @@ int checkcpu (void)  #endif  	case PVR_460SX_RA: -		puts("SX Rev. A"); +		puts("460SX Rev. A");  		strcpy(addstr, "Security support");  		break;  	case PVR_460SX_RA_V1: -		puts("SX Rev. A"); +		puts("460SX Rev. A");  		strcpy(addstr, "No Security support");  		break;  	case PVR_460GX_RA: -		puts("GX Rev. A"); +		puts("460GX Rev. A");  		strcpy(addstr, "Security support");  		break;  	case PVR_460GX_RA_V1: -		puts("GX Rev. A"); +		puts("460GX Rev. A");  		strcpy(addstr, "No Security support");  		break;  	case PVR_VIRTEX5: -		puts("x5 VIRTEX5"); +		puts("440x5 VIRTEX5");  		break; +#endif /* CONFIG_440 */  	default:  		printf (" UNKNOWN (PVR=%08x)", pvr); |