[U-Boot] [PATCH] 85xx: Add is_serdes_configured() support for P2020SERDES
Li Yang
leoli at freescale.com
Fri May 21 13:43:11 CEST 2010
On 5/21/2010 5:17 PM, Kumar Gala wrote:
>
>Add the ability to determine if a given IP block connected on SERDES is
>configured. This is useful for things like PCIe and SRIO since they are
>only ever connected on SERDES.
>
>Signed-off-by: Kumar Gala <galak at kernel.crashing.org
<mailto:galak at kernel.crashing.org>>
I'm not sure why this code has to be re-done rather than using the patch
I submitted?
{snip}
>+int is_serdes_configured(enum srds_prtcl device) {
>+ int i;
>+ ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
>+ u32 pordevsr = in_be32(&gur->pordevsr);
Wouldn't it be better to only read it once on fsl_serdes_init(), after
all it will not be changed after reset.
>+ u32 srds1_cfg = (pordevsr & MPC85xx_PORDEVSR_IO_SEL) >>
>+ MPC85xx_PORDEVSR_IO_SEL_SHIFT;
>+
>+ debug("%s: dev = %d\n", __FUNCTION__, device);
>+ debug("PORDEVSR[IO_SEL] = %x\n", srds1_cfg);
>+
>+ if (srds1_cfg > ARRAY_SIZE(serdes1_cfg_tbl)) {
>+ printf("Invalid PORDEVSR[IO_SEL] = %d\n", srds1_cfg);
>+ return 0;
>+ }
>+
>+ for (i = 0; i < SRDS1_MAX_LANES; i++) {
>+ if (serdes1_cfg_tbl[srds1_cfg][i] == device)
>+ return 1;
Given the fact that the is_serdes_configured() will be called multiple
times, it will be better to process the table in fsl_serdes_init() and
save time for every is_serdes_configured() judgment like what I did.
- Leo
>+ }
>+
>+ return 0;
>+}
>+
>+void fsl_serdes_init(void)
>+{
>+}
>--
>1.6.0.6
>
>_______________________________________________
>U-Boot mailing list
>U-Boot at lists.denx.de <mailto:U-Boot at lists.denx.de>
>http://lists.denx.de/mailman/listinfo/u-boot
More information about the U-Boot
mailing list