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
next prev parent 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.