diff options
author | Wolfgang Denk <wd@denx.de> | 2011-01-25 21:13:04 +0100 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2011-01-25 21:13:04 +0100 |
commit | 5aebe3b07254d9ec8f7ae23a4525a6c535a7f858 (patch) | |
tree | 398660b7a43c39cee91c51e54678eab46aa7103d /arch/powerpc/cpu/mpc85xx/fsl_corenet_serdes.c | |
parent | d6a5e6d531e357dd8016141f73d370d02886a7eb (diff) | |
parent | 92966835e96af324fed574815036e481be807d04 (diff) | |
download | u-boot-imx-5aebe3b07254d9ec8f7ae23a4525a6c535a7f858.zip u-boot-imx-5aebe3b07254d9ec8f7ae23a4525a6c535a7f858.tar.gz u-boot-imx-5aebe3b07254d9ec8f7ae23a4525a6c535a7f858.tar.bz2 |
Merge branch 'master' of git://git.denx.de/u-boot-mpc85xx
Diffstat (limited to 'arch/powerpc/cpu/mpc85xx/fsl_corenet_serdes.c')
-rw-r--r-- | arch/powerpc/cpu/mpc85xx/fsl_corenet_serdes.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/arch/powerpc/cpu/mpc85xx/fsl_corenet_serdes.c b/arch/powerpc/cpu/mpc85xx/fsl_corenet_serdes.c index 5bcf91a..7fc00d8 100644 --- a/arch/powerpc/cpu/mpc85xx/fsl_corenet_serdes.c +++ b/arch/powerpc/cpu/mpc85xx/fsl_corenet_serdes.c @@ -1,5 +1,5 @@ /* - * Copyright 2009-2010 Freescale Semiconductor, Inc. + * Copyright 2009-2011 Freescale Semiconductor, Inc. * * See file CREDITS for list of people who contributed to this * project. @@ -33,6 +33,8 @@ static u32 serdes_prtcl_map; +#define HWCONFIG_BUFFER_SIZE 128 + #ifdef DEBUG static const char *serdes_prtcl_str[] = { [NONE] = "NA", @@ -277,6 +279,15 @@ void fsl_serdes_init(void) const char *srds_lpd_arg; size_t arglen; #endif + char buffer[HWCONFIG_BUFFER_SIZE]; + char *buf = NULL; + + /* + * Extract hwconfig from environment since we have not properly setup + * the environment but need it for ddr config params + */ + if (getenv_f("hwconfig", buffer, sizeof(buffer)) > 0) + buf = buffer; /* Is serdes enabled at all? */ if (!(in_be32(&gur->rcwsr[5]) & FSL_CORENET_RCWSR5_SRDS_EN)) @@ -295,8 +306,8 @@ void fsl_serdes_init(void) if (!IS_SVR_REV(get_svr(), 1, 0)) for (bank = 1; bank < ARRAY_SIZE(srds_lpd_b); bank++) { sprintf(srds_lpd_opt, "fsl_srds_lpd_b%u", bank + 1); - srds_lpd_arg = hwconfig_subarg("serdes", srds_lpd_opt, - &arglen); + srds_lpd_arg = hwconfig_subarg_f("serdes", srds_lpd_opt, + &arglen, buf); if (srds_lpd_arg) srds_lpd_b[bank] = simple_strtoul(srds_lpd_arg, NULL, 0); |