All of lore.kernel.org
 help / color / mirror / Atom feed
From: Timur Tabi <timur@freescale.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3] powerpc/p1022ds: Add sdcard and spi boot support to P1022DS
Date: Fri, 4 May 2012 14:39:15 -0500	[thread overview]
Message-ID: <4FA43063.3040405@freescale.com> (raw)
In-Reply-To: <1335949000-625-1-git-send-email-eibach@gdsys.de>

Dirk Eibach wrote:
> Signed-off-by: Dirk Eibach <eibach@gdsys.de>
> Cc: Timur Tabi <timur@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

  reply	other threads:[~2012-05-04 19:39 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-02  8:56 [U-Boot] [PATCH v3] powerpc/p1022ds: Add sdcard and spi boot support to P1022DS Dirk Eibach
2012-05-04 19:39 ` Timur Tabi [this message]
2012-05-07 11:13   ` Eibach, Dirk
2012-07-05  6:25   ` Eibach, Dirk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FA43063.3040405@freescale.com \
    --to=timur@freescale.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.