Dirk Eibach wrote: > Signed-off-by: Dirk Eibach <eib...@gdsys.de> > Cc: Timur Tabi <ti...@freescale.com> > ---
Can you give me some instructions on how to test this? I'm working on adding NAND boot support to the P1022, so I need to make sure I don't conflict with your patch. > Changes in v2: > - add Cc > - split up original patch series > Changes in v3: > - use clrsetbits() instead of clrbits()/setbits() > - remove dead code > - remove unnecessary #undef > > board/freescale/p1022ds/p1022ds.c | 3 ++ > board/freescale/p1022ds/tlb.c | 10 ++++++ > boards.cfg | 4 ++ > include/configs/P1022DS.h | 56 +++++++++++++++++++++++++++++++++--- > 4 files changed, 68 insertions(+), 5 deletions(-) > > diff --git a/board/freescale/p1022ds/p1022ds.c > b/board/freescale/p1022ds/p1022ds.c > index 456d9b0..fd4193d 100644 > --- a/board/freescale/p1022ds/p1022ds.c > +++ b/board/freescale/p1022ds/p1022ds.c > @@ -37,6 +37,9 @@ int board_early_init_f(void) > { > ccsr_gur_t *gur = (void *)CONFIG_SYS_MPC85xx_GUTS_ADDR; > > + /* Reset eLBC_DIU and SPI_eLBC in case we are booting from SD */ > + clrsetbits_be32(&gur->pmuxcr, 0x00600000, 0x80000000); > + Should there be an #ifdef around this, like maybe: #if defined(CONFIG_SDCARD) || defined(CONFIG_SPIFLASH) /* Reset eLBC_DIU and SPI_eLBC when we are booting from SD */ clrsetbits_be32(&gur->pmuxcr, 0x00600000, 0x80000000); #endif > /* Set pmuxcr to allow both i2c1 and i2c2 */ > setbits_be32(&gur->pmuxcr, 0x1000); > > diff --git a/board/freescale/p1022ds/tlb.c b/board/freescale/p1022ds/tlb.c > index e620112..1e9969f 100644 > --- a/board/freescale/p1022ds/tlb.c > +++ b/board/freescale/p1022ds/tlb.c > @@ -71,6 +71,16 @@ struct fsl_e_tlb_entry tlb_table[] = { > SET_TLB_ENTRY(1, PIXIS_BASE, PIXIS_BASE_PHYS, > MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G, > 0, 7, BOOKE_PAGESZ_4K, 1), > + > +#if defined(CONFIG_SYS_RAMBOOT) Please use #ifdef instead of "#if defined" where possible. > + SET_TLB_ENTRY(1, CONFIG_SYS_DDR_SDRAM_BASE, CONFIG_SYS_DDR_SDRAM_BASE, > + MAS3_SX|MAS3_SW|MAS3_SR, 0, > + 0, 8, BOOKE_PAGESZ_1G, 1), > + SET_TLB_ENTRY(1, CONFIG_SYS_DDR_SDRAM_BASE + 0x40000000, > + CONFIG_SYS_DDR_SDRAM_BASE + 0x40000000, > + MAS3_SX|MAS3_SW|MAS3_SR, 0, > + 0, 9, BOOKE_PAGESZ_1G, 1) > +#endif > }; > > int num_tlb_entries = ARRAY_SIZE(tlb_table); > diff --git a/boards.cfg b/boards.cfg > index 24c5879..8de4235 100644 > --- a/boards.cfg > +++ b/boards.cfg > @@ -700,6 +700,10 @@ P1021RDB-PC_SDCARD powerpc mpc85xx > p1_p2_rdb_pc freesca > P1021RDB-PC_SPIFLASH powerpc mpc85xx p1_p2_rdb_pc > freescale - p1_p2_rdb_pc:P1021RDB,SPIFLASH > P1022DS powerpc mpc85xx p1022ds > freescale > P1022DS_36BIT powerpc mpc85xx p1022ds > freescale - P1022DS:36BIT > +P1022DS_36BIT_SDCARD powerpc mpc85xx p1022ds > freescale - P1022DS:36BIT,SDCARD > +P1022DS_36BIT_SPIFLASH powerpc mpc85xx p1022ds > freescale - P1022DS:36BIT,SPIFLASH > +P1022DS_SDCARD powerpc mpc85xx p1022ds > freescale - P1022DS:SDCARD > +P1022DS_SPIFLASH powerpc mpc85xx p1022ds > freescale - P1022DS:SPIFLASH > P1023RDS powerpc mpc85xx p1023rds > freescale - P1023RDS > P1023RDS_NAND powerpc mpc85xx p1023rds > freescale - P1023RDS:NAND > P1024RDB powerpc mpc85xx p1_p2_rdb_pc > freescale - p1_p2_rdb_pc:P1024RDB > diff --git a/include/configs/P1022DS.h b/include/configs/P1022DS.h > index 70d751d..213c5e3 100644 > --- a/include/configs/P1022DS.h > +++ b/include/configs/P1022DS.h > @@ -26,6 +26,18 @@ > #define CONFIG_P1022DS > #define CONFIG_MP /* support multiple processors */ > > +#ifdef CONFIG_SDCARD > +#define CONFIG_RAMBOOT_SDCARD 1 > +#define CONFIG_SYS_TEXT_BASE 0x11000000 > +#define CONFIG_RESET_VECTOR_ADDRESS 0x1107fffc > +#endif > + > +#ifdef CONFIG_SPIFLASH > +#define CONFIG_RAMBOOT_SPIFLASH 1 > +#define CONFIG_SYS_TEXT_BASE 0x11000000 > +#define CONFIG_RESET_VECTOR_ADDRESS 0x1107fffc > +#endif > + > #ifndef CONFIG_SYS_TEXT_BASE > #define CONFIG_SYS_TEXT_BASE 0xeff80000 > #endif > @@ -54,6 +66,7 @@ > > #define CONFIG_SYS_CLK_FREQ get_board_sys_clk() > #define CONFIG_DDR_CLK_FREQ get_board_ddr_clk() > + > #define CONFIG_ICS307_REFCLK_HZ 33333000 /* ICS307 clock chip ref freq > */ Unrelated whitespace change, please remove. > > /* > @@ -138,6 +151,12 @@ > > #define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE /* > start of monitor */ > > +#if defined(CONFIG_RAMBOOT_NAND) || defined(CONFIG_RAMBOOT_SDCARD) || \ > + defined(CONFIG_RAMBOOT_SPIFLASH) > +#define CONFIG_SYS_RAMBOOT > +#define CONFIG_SYS_EXTRA_ENV_RELOC > +#endif > + > #define CONFIG_FLASH_CFI_DRIVER > #define CONFIG_SYS_FLASH_CFI > #define CONFIG_SYS_FLASH_EMPTY_INFO > @@ -403,11 +422,38 @@ > /* > * Environment > */ > -#define CONFIG_ENV_IS_IN_FLASH > -#define CONFIG_ENV_OVERWRITE > -#define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - > CONFIG_ENV_SECT_SIZE) > -#define CONFIG_ENV_SIZE 0x2000 > -#define CONFIG_ENV_SECT_SIZE 0x20000 > +#if defined(CONFIG_SYS_RAMBOOT) > +#if defined(CONFIG_RAMBOOT_NAND) > +#define CONFIG_ENV_IS_IN_NAND 1 > +#define CONFIG_ENV_SIZE CONFIG_SYS_NAND_BLOCK_SIZE > +#define CONFIG_ENV_OFFSET ((512 * 1024) + CONFIG_SYS_NAND_BLOCK_SIZE) > +#define CONFIG_ENV_RANGE (3 * CONFIG_ENV_SIZE) > +#elif defined(CONFIG_RAMBOOT_SPIFLASH) > +#define CONFIG_ENV_IS_IN_SPI_FLASH > +#define CONFIG_ENV_SPI_BUS 0 > +#define CONFIG_ENV_SPI_CS 0 > +#define CONFIG_ENV_SPI_MAX_HZ 10000000 > +#define CONFIG_ENV_SPI_MODE 0 > +#define CONFIG_ENV_SIZE 0x2000 /* 8KB */ > +#define CONFIG_ENV_OFFSET 0x100000 > +#define CONFIG_ENV_SECT_SIZE 0x10000 > +#elif defined(CONFIG_RAMBOOT_SDCARD) > +#define CONFIG_ENV_IS_IN_MMC > +#define CONFIG_FSL_FIXED_MMC_LOCATION > +#define CONFIG_ENV_SIZE 0x2000 > +#define CONFIG_SYS_MMC_ENV_DEV 0 > +#else > + #define CONFIG_ENV_IS_NOWHERE 1 /* Store ENV in memory only */ > + #define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - 0x1000) > + #define CONFIG_ENV_SIZE 0x2000 Shouldn't this be #define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SIZE) Otherwise, the environment won't fit? > +#endif > +#else > + #define CONFIG_ENV_IS_IN_FLASH > + #define CONFIG_ENV_OVERWRITE > + #define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SECT_SIZE) > + #define CONFIG_ENV_SIZE 0x2000 > + #define CONFIG_ENV_SECT_SIZE 0x20000 > +#endif > > #define CONFIG_LOADS_ECHO > #define CONFIG_SYS_LOADS_BAUD_CHANGE -- Timur Tabi Linux kernel developer at Freescale _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot