[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