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

Reply via email to