[U-Boot-Users] [PATCH] Configuration changes for ADS5121 Rev 3
Grant Likely
grant.likely at secretlab.ca
Mon Jun 16 16:48:48 CEST 2008
On Thu, May 29, 2008 at 12:23 PM, Martha Marx <mmarx at silicontkx.com> wrote:
> Signed-off-by: Martha Marx <mmarx at silicontkx.com>
Acked by: Grant Likely <grant.likely at secretlab.ca>
> ---
> Makefile | 9 ++++-----
> board/ads5121/README | 9 +++++++++
> board/ads5121/ads5121.c | 19 +++++++++++++++++--
> cpu/mpc512x/cpu.c | 8 ++++++--
> include/configs/ads5121.h | 38 +++++++++++++++++++++++++++++++-------
> 5 files changed, 67 insertions(+), 16 deletions(-)
> create mode 100644 board/ads5121/README
>
> diff --git a/Makefile b/Makefile
> index 3401203..c102b55 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -746,12 +746,11 @@ motionpro_config: unconfig
> ## MPC512x Systems
> #########################################################################
> ads5121_config \
> -ads5121_PCI_config \
> - : unconfig
> +ads5121_rev2_config \
> + : unconfig
> @mkdir -p $(obj)include
> - @if [ "$(findstring _PCI_,$@)" ] ; then \
> - echo "#define CONFIG_PCI" >>$(obj)include/config.h ; \
> - $(XECHO) "... with PCI enabled" ; \
> + @if [ "$(findstring rev2,$@)" ] ; then \
> + echo "#define CONFIG_ADS5121_REV2 1" > $(obj)include/config.h; \
> fi
> @$(MKCONFIG) -a ads5121 ppc mpc512x ads5121
>
> diff --git a/board/ads5121/README b/board/ads5121/README
> new file mode 100644
> index 0000000..c5a92e8
> --- /dev/null
> +++ b/board/ads5121/README
> @@ -0,0 +1,9 @@
> +To configure for the current (Rev 3.x) ADS5121
> + make ads5121_config
> +This will automatically include PCI, the Real Time CLock, add backup flash
> +ability and set the correct frequency and memory configuration.
> +
> +To configure for the older Rev 2 ADS5121 type (this will not have PCI)
> + make ads5121_rev2_config
> +
> +
> diff --git a/board/ads5121/ads5121.c b/board/ads5121/ads5121.c
> index 2892665..95559ca 100644
> --- a/board/ads5121/ads5121.c
> +++ b/board/ads5121/ads5121.c
> @@ -26,7 +26,9 @@
> #include <asm/bitops.h>
> #include <command.h>
> #include <fdt_support.h>
> -
> +#ifdef CONFIG_MISC_INIT_R
> +#include <i2c.h>
> +#endif
> /* Clocks in use */
> #define SCCR1_CLOCKS_EN (CLOCK_SCCR1_CFG_EN | \
> CLOCK_SCCR1_LPC_EN | \
> @@ -91,8 +93,21 @@ int board_early_init_f (void)
> * Without this the flash identification routine fails, as it needs to issue
> * write commands in order to establish the device ID.
> */
> - *((volatile u8 *)(CFG_CPLD_BASE + 0x08)) = 0xC1;
>
> +#ifdef CONFIG_ADS5121_REV2
> + *((volatile u8 *)(CFG_CPLD_BASE + 0x08)) = 0xC1;
> +#else
> + if (*((u8 *)(CFG_CPLD_BASE + 0x08)) & 0x04) {
> + *((volatile u8 *)(CFG_CPLD_BASE + 0x08)) = 0xC1;
> + } else {
> + /* running from Backup flash */
> + *((volatile u8 *)(CFG_CPLD_BASE + 0x08)) = 0x32;
> + }
> +#endif
> + /*
> + * Configure Flash Speed
> + */
> + *((volatile u32 *)(CFG_IMMR + LPC_OFFSET + CS0_CONFIG)) = CFG_CS0_CFG;
> /*
> * Enable clocks
> */
> diff --git a/cpu/mpc512x/cpu.c b/cpu/mpc512x/cpu.c
> index bed77ac..b59f36d 100644
> --- a/cpu/mpc512x/cpu.c
> +++ b/cpu/mpc512x/cpu.c
> @@ -133,8 +133,9 @@ void watchdog_reset (void)
> #ifdef CONFIG_OF_LIBFDT
> void ft_cpu_setup(void *blob, bd_t *bd)
> {
> - char * cpu_path = "/cpus/" OF_CPU;
> - char * eth_path = "/" OF_SOC "/ethernet at 2800";
> + char *cpu_path = "/cpus/" OF_CPU;
> + char *eth_path = "/" OF_SOC "/ethernet at 2800";
> + char *eth_path_old = "/" OF_SOC_OLD "/ethernet at 2800";
>
> do_fixup_by_path_u32(blob, cpu_path, "timebase-frequency", OF_TBCLK, 1);
> do_fixup_by_path_u32(blob, cpu_path, "bus-frequency", bd->bi_busfreq, 1);
> @@ -144,5 +145,8 @@ void ft_cpu_setup(void *blob, bd_t *bd)
>
> /* this is so old kernels with old device trees will boot */
> do_fixup_by_path_u32(blob, "/" OF_SOC_OLD, "bus-frequency", bd->bi_ipsfreq, 0);
> + do_fixup_by_path(blob, eth_path_old, "local-mac-address",
> + bd->bi_enetaddr, 6, 0);
> + do_fixup_by_path(blob, eth_path_old, "address", bd->bi_enetaddr, 6, 0);
> }
> #endif
> diff --git a/include/configs/ads5121.h b/include/configs/ads5121.h
> index c975a24..21374e9 100644
> --- a/include/configs/ads5121.h
> +++ b/include/configs/ads5121.h
> @@ -57,7 +57,12 @@
>
> /* CONFIG_PCI is defined at config time */
>
> +#ifdef CONFIG_ADS5121_REV2
> #define CFG_MPC512X_CLKIN 66000000 /* in Hz */
> +#else
> +#define CFG_MPC512X_CLKIN 33333333 /* in Hz */
> +#define CONFIG_PCI
> +#endif
>
> #define CONFIG_BOARD_EARLY_INIT_F /* call board_early_init_f() */
> #define CONFIG_MISC_INIT_R
> @@ -71,7 +76,11 @@
> /*
> * DDR Setup - manually set all parameters as there's no SPD etc.
> */
> +#ifdef CONFIG_ADS5121_REV2
> #define CFG_DDR_SIZE 256 /* MB */
> +#else
> +#define CFG_DDR_SIZE 512 /* MB */
> +#endif
> #define CFG_DDR_BASE 0x00000000 /* DDR is system memory*/
> #define CFG_SDRAM_BASE CFG_DDR_BASE
>
> @@ -119,14 +128,20 @@
> * [09:05] DRAM tRP:
> * [04:00] DRAM tRPA
> */
> -
> +#ifdef CONFIG_ADS5121_REV2
> #define CFG_MDDRC_SYS_CFG 0xF8604A00
> #define CFG_MDDRC_SYS_CFG_RUN 0xE8604A00
> +#define CFG_MDDRC_TIME_CFG1 0x54EC1168
> +#define CFG_MDDRC_TIME_CFG2 0x35210864
> +#else
> +#define CFG_MDDRC_SYS_CFG 0xFA804A00
> +#define CFG_MDDRC_SYS_CFG_RUN 0xEA804A00
> +#define CFG_MDDRC_TIME_CFG1 0x68EC1168
> +#define CFG_MDDRC_TIME_CFG2 0x34310864
> +#endif
> #define CFG_MDDRC_SYS_CFG_EN 0xF0000000
> #define CFG_MDDRC_TIME_CFG0 0x00003D2E
> #define CFG_MDDRC_TIME_CFG0_RUN 0x06183D2E
> -#define CFG_MDDRC_TIME_CFG1 0x54EC1168
> -#define CFG_MDDRC_TIME_CFG2 0x35210864
>
> #define CFG_MICRON_NOP 0x01380000
> #define CFG_MICRON_PCHG_ALL 0x01100400
> @@ -165,12 +180,17 @@
> /*
> * NOR FLASH on the Local Bus
> */
> +#undef CONFIG_BKUP_FLASH
> #define CFG_FLASH_CFI /* use the Common Flash Interface */
> #define CFG_FLASH_CFI_DRIVER /* use the CFI driver */
> +#ifdef CONFIG_BKUP_FLASH
> +#define CFG_FLASH_BASE 0xFF800000 /* start of FLASH */
> +#define CFG_FLASH_SIZE 0x00800000 /* max flash size in bytes */
> +#else
> #define CFG_FLASH_BASE 0xFC000000 /* start of FLASH */
> #define CFG_FLASH_SIZE 0x04000000 /* max flash size in bytes */
> +#endif
> #define CFG_FLASH_USE_BUFFER_WRITE
> -
> #define CFG_MAX_FLASH_BANKS 1 /* number of banks */
> #define CFG_FLASH_BANKS_LIST {CFG_FLASH_BASE}
> #define CFG_MAX_FLASH_SECT 256 /* max sectors per device */
> @@ -286,14 +306,13 @@
> #define CONFIG_NET_MULTI
> #define CONFIG_PHY_ADDR 0x1
> #define CONFIG_MII 1 /* MII PHY management */
> +#define CONFIG_FEC_AN_TIMEOUT 1
>
> -#if 0
> /*
> * Configure on-board RTC
> */
> -#define CONFIG_RTC_DS1374 /* use ds1374 rtc via i2c */
> +#define CONFIG_RTC_M41T62 /* use M41T62 rtc via i2 */
> #define CFG_I2C_RTC_ADDR 0x68 /* at address 0x68 */
> -#endif
>
> /*
> * Environment
> @@ -302,7 +321,11 @@
> /* This has to be a multiple of the Flash sector size */
> #define CFG_ENV_ADDR (CFG_MONITOR_BASE + CFG_MONITOR_LEN)
> #define CFG_ENV_SIZE 0x2000
> +#ifdef CONFIG_BKUP_FLASH
> +#define CFG_ENV_SECT_SIZE 0x20000 /* one sector (256K) for env */
> +#else
> #define CFG_ENV_SECT_SIZE 0x40000 /* one sector (256K) for env */
> +#endif
>
> /* Address and size of Redundant Environment Sector */
> #define CFG_ENV_ADDR_REDUND (CFG_ENV_ADDR + CFG_ENV_SECT_SIZE)
> @@ -321,6 +344,7 @@
> #define CONFIG_CMD_PING
> #define CONFIG_CMD_REGINFO
> #define CONFIG_CMD_EEPROM
> +#define CONFIG_CMD_DATE
>
> #if defined(CONFIG_PCI)
> #define CONFIG_CMD_PCI
> --
> 1.5.2.4
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> U-Boot-Users mailing list
> U-Boot-Users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/u-boot-users
>
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
More information about the U-Boot
mailing list