Re: [U-Boot] [PATCH] 85xx: Add is_serdes_configured() support for P2020SERDES

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 galak@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
participants (1)
-
Kumar Gala