diff options
| -rw-r--r-- | arch/powerpc/include/asm/immap_85xx.h | 1 | ||||
| -rw-r--r-- | board/freescale/t4qds/tlb.c | 19 | ||||
| -rw-r--r-- | boards.cfg | 1 | ||||
| -rw-r--r-- | include/configs/t4qds.h | 34 | 
4 files changed, 48 insertions, 7 deletions
| diff --git a/arch/powerpc/include/asm/immap_85xx.h b/arch/powerpc/include/asm/immap_85xx.h index 8545a0c42..db70d048f 100644 --- a/arch/powerpc/include/asm/immap_85xx.h +++ b/arch/powerpc/include/asm/immap_85xx.h @@ -1839,6 +1839,7 @@ typedef struct ccsr_gur {  #define FSL_CORENET2_RCWSR4_SRDS3_PRTCL_SHIFT	11  #define FSL_CORENET2_RCWSR4_SRDS4_PRTCL		0x000000f8  #define FSL_CORENET2_RCWSR4_SRDS4_PRTCL_SHIFT	3 +#define FSL_CORENET_RCWSR6_BOOT_LOC	0x0f800000  #elif defined(CONFIG_PPC_B4860) || defined(CONFIG_PPC_B4420)  #define FSL_CORENET2_RCWSR4_SRDS1_PRTCL	0xfe000000  #define FSL_CORENET2_RCWSR4_SRDS1_PRTCL_SHIFT	25 diff --git a/board/freescale/t4qds/tlb.c b/board/freescale/t4qds/tlb.c index 92c01cf95..a138d5a9e 100644 --- a/board/freescale/t4qds/tlb.c +++ b/board/freescale/t4qds/tlb.c @@ -55,6 +55,15 @@ 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_SRIO_PCIE_BOOT_SLAVE) +	/* +	 * 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_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  	SET_TLB_ENTRY(1, 0xfffff000, 0xfffff000,  		      MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G, @@ -130,6 +139,16 @@ struct fsl_e_tlb_entry tlb_table[] = {  	SET_TLB_ENTRY(1, QIXIS_BASE, QIXIS_BASE_PHYS,  		      MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G,  		      0, 17, BOOKE_PAGESZ_4K, 1), +#ifdef CONFIG_SRIO_PCIE_BOOT_SLAVE +	/* +	 * SRIO_PCIE_BOOT-SLAVE. 1M space from 0xffe00000 for +	 * fetching ucode and ENV from master +	 */ +	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, 18, BOOKE_PAGESZ_1M, 1), +#endif  }; diff --git a/boards.cfg b/boards.cfg index 009e8961b..4993220b5 100644 --- a/boards.cfg +++ b/boards.cfg @@ -917,6 +917,7 @@ stxssa_4M                    powerpc     mpc85xx     stxssa              stx  T4240QDS                     powerpc     mpc85xx     t4qds               freescale      -           T4240QDS:PPC_T4240  T4240QDS_SDCARD              powerpc     mpc85xx     t4qds               freescale	-           T4240QDS:PPC_T4240,RAMBOOT_PBL,SDCARD,SYS_TEXT_BASE=0xFFF80000  T4240QDS_SPIFLASH            powerpc     mpc85xx     t4qds               freescale	-           T4240QDS:PPC_T4240,RAMBOOT_PBL,SPIFLASH,SYS_TEXT_BASE=0xFFF80000 +T4240QDS_SRIO_PCIE_BOOT	     powerpc     mpc85xx     t4qds               freescale      -           T4240QDS:PPC_T4240,SRIO_PCIE_BOOT_SLAVE,SYS_TEXT_BASE=0xFFF80000  T4160QDS                     powerpc     mpc85xx     t4qds               freescale      -           T4240QDS:PPC_T4160  T4160QDS_SDCARD              powerpc     mpc85xx     t4qds               freescale	-           T4240QDS:PPC_T4160,RAMBOOT_PBL,SDCARD,SYS_TEXT_BASE=0xFFF80000  T4160QDS_SPIFLASH            powerpc     mpc85xx     t4qds               freescale	-           T4240QDS:PPC_T4160,RAMBOOT_PBL,SPIFLASH,SYS_TEXT_BASE=0xFFF80000 diff --git a/include/configs/t4qds.h b/include/configs/t4qds.h index 398ccb041..92b2179ca 100644 --- a/include/configs/t4qds.h +++ b/include/configs/t4qds.h @@ -33,6 +33,15 @@  #define CONFIG_PBLRCW_CONFIG $(SRCTREE)/board/freescale/t4qds/t4_rcw.cfg  #endif +#ifdef CONFIG_SRIO_PCIE_BOOT_SLAVE +/* Set 1M boot space */ +#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 +  #define CONFIG_CMD_REGINFO  /* High Level Configuration Options */ @@ -72,14 +81,15 @@  #define CONFIG_ENV_OVERWRITE  #ifdef CONFIG_SYS_NO_FLASH +#if !defined(CONFIG_SRIO_PCIE_BOOT_SLAVE) && !defined(CONFIG_RAMBOOT_PBL)  #define CONFIG_ENV_IS_NOWHERE +#endif  #else  #define CONFIG_FLASH_CFI_DRIVER  #define CONFIG_SYS_FLASH_CFI  #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE  #endif -#ifndef CONFIG_SYS_NO_FLASH  #if defined(CONFIG_SPIFLASH)  #define CONFIG_SYS_EXTRA_ENV_RELOC  #define CONFIG_ENV_IS_IN_SPI_FLASH @@ -101,18 +111,18 @@  #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_SRIO_PCIE_BOOT_SLAVE) +#define CONFIG_ENV_IS_IN_REMOTE +#define CONFIG_ENV_ADDR		0xffe20000 +#define CONFIG_ENV_SIZE		0x2000 +#elif defined(CONFIG_ENV_IS_NOWHERE) +#define CONFIG_ENV_SIZE		0x2000  #else  #define CONFIG_ENV_IS_IN_FLASH  #define CONFIG_ENV_ADDR		(CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SECT_SIZE)  #define CONFIG_ENV_SIZE		0x2000  #define CONFIG_ENV_SECT_SIZE	0x20000 /* 128K (one sector) */  #endif -#else /* CONFIG_SYS_NO_FLASH */ -#define CONFIG_ENV_SIZE                0x2000 -#define CONFIG_ENV_SECT_SIZE   0x20000 /* 128K (one sector) */ -#endif - -  #define CONFIG_SYS_CLK_FREQ	get_board_sys_clk()  #define CONFIG_DDR_CLK_FREQ	get_board_ddr_clk() @@ -634,6 +644,16 @@ unsigned long get_board_ddr_clk(void);  #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_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 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  #else  #define CONFIG_SYS_QE_FMAN_FW_IN_NOR  #define CONFIG_SYS_QE_FMAN_FW_ADDR		0xEFF40000 |