On May 21, 2010, at 6:26 AM, Li Yang-R58472 wrote: >> Subject: [U-Boot] [PATCH] 85xx: Add is_serdes_configured() support for >> P2020SERDES >> >> 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 <ga...@kernel.crashing.org> > > I'm not sure why this code has to be re-done rather than using the patch I > submitted?
There was some minor unification with the P4080 SERDES code. > {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. This depend on the use of global static variables in u-boot. Not sure the current state of that being acceptable. > >> + 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@lists.denx.de >> http://lists.denx.de/mailman/listinfo/u-boot > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot