diff options
| -rw-r--r-- | board/freescale/common/p_corenet/tlb.c | 18 | ||||
| -rw-r--r-- | boards.cfg | 8 | ||||
| -rw-r--r-- | common/env_remote.c | 4 | ||||
| -rw-r--r-- | drivers/misc/fsl_law.c | 39 | ||||
| -rw-r--r-- | include/configs/P2041RDB.h | 28 | ||||
| -rw-r--r-- | include/configs/corenet_ds.h | 28 | 
6 files changed, 76 insertions, 49 deletions
| diff --git a/board/freescale/common/p_corenet/tlb.c b/board/freescale/common/p_corenet/tlb.c index da2162728..e5cf208a9 100644 --- a/board/freescale/common/p_corenet/tlb.c +++ b/board/freescale/common/p_corenet/tlb.c @@ -66,13 +66,13 @@ struct fsl_e_tlb_entry tlb_table[] = {  	SET_TLB_ENTRY(1, CONFIG_SYS_INIT_L3_ADDR, CONFIG_SYS_INIT_L3_ADDR,  			MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G,  			0, 0, BOOKE_PAGESZ_1M, 1), -#elif defined(CONFIG_SRIOBOOT_SLAVE) +#elif defined(CONFIG_SRIO_PCIE_BOOT_SLAVE)  	/* -	 * SRIOBOOT-SLAVE. When slave boot, the address of the +	 * SRIO_PCIE_BOOT-SLAVE. When slave boot, the address of the  	 * space is at 0xfff00000, it covered the 0xfffff000.  	 */ -	SET_TLB_ENTRY(1, CONFIG_SYS_SRIOBOOT_SLAVE_ADDR, -			CONFIG_SYS_SRIOBOOT_SLAVE_ADDR_PHYS, +	SET_TLB_ENTRY(1, CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR, +			CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR_PHYS,  			MAS3_SX|MAS3_SW|MAS3_SR, MAS2_W|MAS2_G,  			0, 0, BOOKE_PAGESZ_1M, 1),  #else @@ -147,13 +147,13 @@ struct fsl_e_tlb_entry tlb_table[] = {  			MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G,  			0, 16, BOOKE_PAGESZ_1M, 1),  #endif -#ifdef CONFIG_SRIOBOOT_SLAVE +#ifdef CONFIG_SRIO_PCIE_BOOT_SLAVE  	/* -	 * SRIOBOOT-SLAVE. 1M space from 0xffe00000 for fetching ucode -	 * and ENV from master +	 * SRIO_PCIE_BOOT-SLAVE. 1M space from 0xffe00000 for +	 * fetching ucode and ENV from master  	 */ -	SET_TLB_ENTRY(1, CONFIG_SYS_SRIOBOOT_UCODE_ENV_ADDR, -		CONFIG_SYS_SRIOBOOT_UCODE_ENV_ADDR_PHYS, +	SET_TLB_ENTRY(1, CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR, +		CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR_PHYS,  		MAS3_SX|MAS3_SW|MAS3_SR, MAS2_G,  		0, 17, BOOKE_PAGESZ_1M, 1),  #endif diff --git a/boards.cfg b/boards.cfg index a408405e6..f102f7a70 100644 --- a/boards.cfg +++ b/boards.cfg @@ -787,13 +787,13 @@ P2041RDB_NAND	             powerpc     mpc85xx     p2041rdb            freescale  P2041RDB_SDCARD              powerpc     mpc85xx     p2041rdb            freescale      -           P2041RDB:RAMBOOT_PBL,SDCARD,SYS_TEXT_BASE=0xFFF80000  P2041RDB_SECURE_BOOT         powerpc     mpc85xx     p2041rdb            freescale      -           P2041RDB:SECURE_BOOT  P2041RDB_SPIFLASH            powerpc     mpc85xx     p2041rdb            freescale      -           P2041RDB:RAMBOOT_PBL,SPIFLASH,SYS_TEXT_BASE=0xFFF80000 -P2041RDB_SRIOBOOT_SLAVE          powerpc     mpc85xx     p2041rdb          freescale      -           P2041RDB:SRIOBOOT_SLAVE,SYS_TEXT_BASE=0xFFF80000 +P2041RDB_SRIO_PCIE_BOOT          powerpc     mpc85xx     p2041rdb          freescale      -           P2041RDB:SRIO_PCIE_BOOT_SLAVE,SYS_TEXT_BASE=0xFFF80000  P3041DS                      powerpc     mpc85xx     corenet_ds          freescale  P3041DS_NAND		     powerpc     mpc85xx     corenet_ds          freescale      -           P3041DS:RAMBOOT_PBL,NAND,SYS_TEXT_BASE=0xFFF80000  P3041DS_SDCARD		     powerpc     mpc85xx     corenet_ds          freescale      -           P3041DS:RAMBOOT_PBL,SDCARD,SYS_TEXT_BASE=0xFFF80000  P3041DS_SECURE_BOOT          powerpc     mpc85xx     corenet_ds          freescale      -           P3041DS:SECURE_BOOT  P3041DS_SPIFLASH	     powerpc     mpc85xx     corenet_ds          freescale      -           P3041DS:RAMBOOT_PBL,SPIFLASH,SYS_TEXT_BASE=0xFFF80000 -P3041DS_SRIOBOOT_SLAVE          powerpc     mpc85xx     corenet_ds          freescale      -           P3041DS:SRIOBOOT_SLAVE,SYS_TEXT_BASE=0xFFF80000 +P3041DS_SRIO_PCIE_BOOT          powerpc     mpc85xx     corenet_ds          freescale      -           P3041DS:SRIO_PCIE_BOOT_SLAVE,SYS_TEXT_BASE=0xFFF80000  P3060QDS		     powerpc	 mpc85xx     p3060qds		 freescale  P3060QDS_NAND		     powerpc     mpc85xx     p3060qds		 freescale	-	    P3060QDS:RAMBOOT_PBL,NAND,SYS_TEXT_BASE=0xFFF80000  P3060QDS_SECURE_BOOT         powerpc     mpc85xx     p3060qds            freescale      -           P3060QDS:SECURE_BOOT @@ -801,13 +801,13 @@ P4080DS                      powerpc     mpc85xx     corenet_ds          freesca  P4080DS_SDCARD		     powerpc     mpc85xx     corenet_ds          freescale      -           P4080DS:RAMBOOT_PBL,SDCARD,SYS_TEXT_BASE=0xFFF80000  P4080DS_SECURE_BOOT          powerpc     mpc85xx     corenet_ds          freescale      -           P4080DS:SECURE_BOOT  P4080DS_SPIFLASH	     powerpc     mpc85xx     corenet_ds          freescale      -           P4080DS:RAMBOOT_PBL,SPIFLASH,SYS_TEXT_BASE=0xFFF80000 -P4080DS_SRIOBOOT_SLAVE          powerpc     mpc85xx     corenet_ds          freescale      -           P4080DS:SRIOBOOT_SLAVE,SYS_TEXT_BASE=0xFFF80000 +P4080DS_SRIO_PCIE_BOOT          powerpc     mpc85xx     corenet_ds          freescale      -           P4080DS:SRIO_PCIE_BOOT_SLAVE,SYS_TEXT_BASE=0xFFF80000  P5020DS                      powerpc     mpc85xx     corenet_ds          freescale  P5020DS_NAND		     powerpc     mpc85xx     corenet_ds          freescale      -           P5020DS:RAMBOOT_PBL,NAND,SYS_TEXT_BASE=0xFFF80000  P5020DS_SDCARD		     powerpc     mpc85xx     corenet_ds          freescale      -           P5020DS:RAMBOOT_PBL,SDCARD,SYS_TEXT_BASE=0xFFF80000  P5020DS_SECURE_BOOT          powerpc     mpc85xx     corenet_ds          freescale      -           P5020DS:SECURE_BOOT  P5020DS_SPIFLASH	     powerpc     mpc85xx     corenet_ds          freescale      -           P5020DS:RAMBOOT_PBL,SPIFLASH,SYS_TEXT_BASE=0xFFF80000 -P5020DS_SRIOBOOT_SLAVE          powerpc     mpc85xx     corenet_ds          freescale      -           P5020DS:SRIOBOOT_SLAVE,SYS_TEXT_BASE=0xFFF80000 +P5020DS_SRIO_PCIE_BOOT          powerpc     mpc85xx     corenet_ds          freescale      -           P5020DS:SRIO_PCIE_BOOT_SLAVE,SYS_TEXT_BASE=0xFFF80000  BSC9131RDB_SPIFLASH          powerpc     mpc85xx     bsc9131rdb          freescale      -           BSC9131RDB:BSC9131RDB,SPIFLASH  stxgp3                       powerpc     mpc85xx     stxgp3              stx  stxssa                       powerpc     mpc85xx     stxssa              stx            -           stxssa diff --git a/common/env_remote.c b/common/env_remote.c index 3bf0f957b..a7b147b20 100644 --- a/common/env_remote.c +++ b/common/env_remote.c @@ -62,8 +62,8 @@ int env_init(void)  #ifdef CONFIG_CMD_SAVEENV  int saveenv(void)  { -#ifdef CONFIG_SRIOBOOT_SLAVE -	printf("Can not support the 'saveenv' when boot from SRIO!\n"); +#ifdef CONFIG_SRIO_PCIE_BOOT_SLAVE +	printf("Can not support the 'saveenv' when boot from SRIO or PCIE!\n");  	return 1;  #else  	return 0; diff --git a/drivers/misc/fsl_law.c b/drivers/misc/fsl_law.c index a71a0ce42..223cd5d65 100644 --- a/drivers/misc/fsl_law.c +++ b/drivers/misc/fsl_law.c @@ -275,25 +275,52 @@ void init_laws(void)  				law_table[i].size, law_table[i].trgt_id);  	} -#ifdef CONFIG_SRIOBOOT_SLAVE +#ifdef CONFIG_SRIO_PCIE_BOOT_SLAVE  	/* check RCW to get which port is used for boot */  	ccsr_gur_t *gur = (void *)CONFIG_SYS_MPC85xx_GUTS_ADDR;  	u32 bootloc = in_be32(&gur->rcwsr[6]); -	/* in SRIO boot we need to set specail LAWs for SRIO interfaces */ +	/* +	 * in SRIO or PCIE boot we need to set specail LAWs for +	 * SRIO or PCIE interfaces. +	 */  	switch ((bootloc & FSL_CORENET_RCWSR6_BOOT_LOC) >> 23) { +	case 0x0: /* boot from PCIE1 */ +		set_next_law(CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR_PHYS, +				LAW_SIZE_1M, +				LAW_TRGT_IF_PCIE_1); +		set_next_law(CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR_PHYS, +				LAW_SIZE_1M, +				LAW_TRGT_IF_PCIE_1); +		break; +	case 0x1: /* boot from PCIE2 */ +		set_next_law(CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR_PHYS, +				LAW_SIZE_1M, +				LAW_TRGT_IF_PCIE_2); +		set_next_law(CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR_PHYS, +				LAW_SIZE_1M, +				LAW_TRGT_IF_PCIE_2); +		break; +	case 0x2: /* boot from PCIE3 */ +		set_next_law(CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR_PHYS, +				LAW_SIZE_1M, +				LAW_TRGT_IF_PCIE_3); +		set_next_law(CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR_PHYS, +				LAW_SIZE_1M, +				LAW_TRGT_IF_PCIE_3); +		break;  	case 0x8: /* boot from SRIO1 */ -		set_next_law(CONFIG_SYS_SRIOBOOT_SLAVE_ADDR_PHYS, +		set_next_law(CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR_PHYS,  				LAW_SIZE_1M,  				LAW_TRGT_IF_RIO_1); -		set_next_law(CONFIG_SYS_SRIOBOOT_UCODE_ENV_ADDR_PHYS, +		set_next_law(CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR_PHYS,  				LAW_SIZE_1M,  				LAW_TRGT_IF_RIO_1);  		break;  	case 0x9: /* boot from SRIO2 */ -		set_next_law(CONFIG_SYS_SRIOBOOT_SLAVE_ADDR_PHYS, +		set_next_law(CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR_PHYS,  				LAW_SIZE_1M,  				LAW_TRGT_IF_RIO_2); -		set_next_law(CONFIG_SYS_SRIOBOOT_UCODE_ENV_ADDR_PHYS, +		set_next_law(CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR_PHYS,  				LAW_SIZE_1M,  				LAW_TRGT_IF_RIO_2);  		break; diff --git a/include/configs/P2041RDB.h b/include/configs/P2041RDB.h index 18e4bce08..ce31fdc98 100644 --- a/include/configs/P2041RDB.h +++ b/include/configs/P2041RDB.h @@ -36,11 +36,11 @@  #define CONFIG_RESET_VECTOR_ADDRESS	0xfffffffc  #endif -#ifdef CONFIG_SRIOBOOT_SLAVE +#ifdef CONFIG_SRIO_PCIE_BOOT_SLAVE  /* Set 1M boot space */ -#define CONFIG_SYS_SRIOBOOT_SLAVE_ADDR (CONFIG_SYS_TEXT_BASE & 0xfff00000) -#define CONFIG_SYS_SRIOBOOT_SLAVE_ADDR_PHYS \ -		(0x300000000ull | CONFIG_SYS_SRIOBOOT_SLAVE_ADDR) +#define CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR (CONFIG_SYS_TEXT_BASE & 0xfff00000) +#define CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR_PHYS \ +		(0x300000000ull | CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR)  #define CONFIG_RESET_VECTOR_ADDRESS 0xfffffffc  #define CONFIG_SYS_NO_FLASH  #endif @@ -82,7 +82,7 @@  #define CONFIG_ENV_OVERWRITE  #ifdef CONFIG_SYS_NO_FLASH -#if !defined(CONFIG_RAMBOOT_PBL) && !defined(CONFIG_SRIOBOOT_SLAVE) +#if !defined(CONFIG_RAMBOOT_PBL) && !defined(CONFIG_SRIO_PCIE_BOOT_SLAVE)  #define CONFIG_ENV_IS_NOWHERE  #endif  #else @@ -113,7 +113,7 @@  #define CONFIG_ENV_IS_IN_NAND  #define CONFIG_ENV_SIZE			CONFIG_SYS_NAND_BLOCK_SIZE  #define CONFIG_ENV_OFFSET		(5 * CONFIG_SYS_NAND_BLOCK_SIZE) -#elif defined(CONFIG_SRIOBOOT_SLAVE) +#elif defined(CONFIG_SRIO_PCIE_BOOT_SLAVE)  #define CONFIG_ENV_IS_IN_REMOTE  #define CONFIG_ENV_ADDR		0xffe20000  #define CONFIG_ENV_SIZE		0x2000 @@ -407,12 +407,12 @@ unsigned long get_board_sys_clk(unsigned long dummy);  #define CONFIG_SRIO_PCIE_BOOT_RELEASE_MASK 0x00000001 /* release core 0 */  /* - * SRIOBOOT - SLAVE + * SRIO_PCIE_BOOT - SLAVE   */ -#ifdef CONFIG_SRIOBOOT_SLAVE -#define CONFIG_SYS_SRIOBOOT_UCODE_ENV_ADDR 0xFFE00000 -#define CONFIG_SYS_SRIOBOOT_UCODE_ENV_ADDR_PHYS \ -		(0x300000000ull | CONFIG_SYS_SRIOBOOT_UCODE_ENV_ADDR) +#ifdef CONFIG_SRIO_PCIE_BOOT_SLAVE +#define CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR 0xFFE00000 +#define CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR_PHYS \ +		(0x300000000ull | CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR)  #endif  /* @@ -527,13 +527,13 @@ unsigned long get_board_sys_clk(unsigned long dummy);  #elif defined(CONFIG_NAND)  #define CONFIG_SYS_QE_FMAN_FW_IN_NAND  #define CONFIG_SYS_QE_FMAN_FW_ADDR	(6 * CONFIG_SYS_NAND_BLOCK_SIZE) -#elif defined(CONFIG_SRIOBOOT_SLAVE) +#elif defined(CONFIG_SRIO_PCIE_BOOT_SLAVE)  /*   * Slave has no ucode locally, it can fetch this from remote. When implementing   * in two corenet boards, slave's ucode could be stored in master's memory   * space, the address can be mapped from slave TLB->slave LAW-> - * slave SRIO outbound window->master inbound window->master LAW-> - * the ucode address in master's NOR flash. + * slave SRIO or PCIE outbound window->master inbound window-> + * master LAW->the ucode address in master's memory space.   */  #define CONFIG_SYS_QE_FMAN_FW_IN_REMOTE  #define CONFIG_SYS_QE_FMAN_FW_ADDR	0xFFE00000 diff --git a/include/configs/corenet_ds.h b/include/configs/corenet_ds.h index 1d25fc190..8f6f39add 100644 --- a/include/configs/corenet_ds.h +++ b/include/configs/corenet_ds.h @@ -33,11 +33,11 @@  #define CONFIG_RESET_VECTOR_ADDRESS	0xfffffffc  #endif -#ifdef CONFIG_SRIOBOOT_SLAVE +#ifdef CONFIG_SRIO_PCIE_BOOT_SLAVE  /* Set 1M boot space */ -#define CONFIG_SYS_SRIOBOOT_SLAVE_ADDR (CONFIG_SYS_TEXT_BASE & 0xfff00000) -#define CONFIG_SYS_SRIOBOOT_SLAVE_ADDR_PHYS \ -		(0x300000000ull | CONFIG_SYS_SRIOBOOT_SLAVE_ADDR) +#define CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR (CONFIG_SYS_TEXT_BASE & 0xfff00000) +#define CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR_PHYS \ +		(0x300000000ull | CONFIG_SYS_SRIO_PCIE_BOOT_SLAVE_ADDR)  #define CONFIG_RESET_VECTOR_ADDRESS 0xfffffffc  #define CONFIG_SYS_NO_FLASH  #endif @@ -77,7 +77,7 @@  #define CONFIG_ENV_OVERWRITE  #ifdef CONFIG_SYS_NO_FLASH -#if !defined(CONFIG_SRIOBOOT_SLAVE) && !defined(CONFIG_RAMBOOT_PBL) +#if !defined(CONFIG_SRIO_PCIE_BOOT_SLAVE) && !defined(CONFIG_RAMBOOT_PBL)  #define CONFIG_ENV_IS_NOWHERE  #endif  #else @@ -108,7 +108,7 @@  #define CONFIG_ENV_IS_IN_NAND  #define CONFIG_ENV_SIZE			CONFIG_SYS_NAND_BLOCK_SIZE  #define CONFIG_ENV_OFFSET		(5 * CONFIG_SYS_NAND_BLOCK_SIZE) -#elif defined(CONFIG_SRIOBOOT_SLAVE) +#elif defined(CONFIG_SRIO_PCIE_BOOT_SLAVE)  #define CONFIG_ENV_IS_IN_REMOTE  #define CONFIG_ENV_ADDR		0xffe20000  #define CONFIG_ENV_SIZE		0x2000 @@ -409,12 +409,12 @@  #define CONFIG_SRIO_PCIE_BOOT_RELEASE_MASK 0x00000001 /* release core 0 */  /* - * SRIOBOOT - SLAVE + * SRIO_PCIE_BOOT - SLAVE   */ -#ifdef CONFIG_SRIOBOOT_SLAVE -#define CONFIG_SYS_SRIOBOOT_UCODE_ENV_ADDR 0xFFE00000 -#define CONFIG_SYS_SRIOBOOT_UCODE_ENV_ADDR_PHYS \ -		(0x300000000ull | CONFIG_SYS_SRIOBOOT_UCODE_ENV_ADDR) +#ifdef CONFIG_SRIO_PCIE_BOOT_SLAVE +#define CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR 0xFFE00000 +#define CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR_PHYS \ +		(0x300000000ull | CONFIG_SYS_SRIO_PCIE_BOOT_UCODE_ENV_ADDR)  #endif  /* @@ -537,13 +537,13 @@  #elif defined(CONFIG_NAND)  #define CONFIG_SYS_QE_FMAN_FW_IN_NAND  #define CONFIG_SYS_QE_FMAN_FW_ADDR	(6 * CONFIG_SYS_NAND_BLOCK_SIZE) -#elif defined(CONFIG_SRIOBOOT_SLAVE) +#elif defined(CONFIG_SRIO_PCIE_BOOT_SLAVE)  /*   * Slave has no ucode locally, it can fetch this from remote. When implementing   * in two corenet boards, slave's ucode could be stored in master's memory   * space, the address can be mapped from slave TLB->slave LAW-> - * slave SRIO outbound window->master inbound window->master LAW-> - * the ucode address in master's NOR flash. + * slave SRIO or PCIE outbound window->master inbound window-> + * master LAW->the ucode address in master's memory space.   */  #define CONFIG_SYS_QE_FMAN_FW_IN_REMOTE  #define CONFIG_SYS_QE_FMAN_FW_ADDR	0xFFE00000 |