int board_eth_init(bd_t *bis) { #ifdef CONFIG_TSEC_ENET struct tsec_info_struct tsec_info[2]; volatile ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR); uint io_sel = (gur->pordevsr & MPC85xx_PORDEVSR_IO_SEL) >> 19; int num = 0; #ifdef CONFIG_TSEC1 SET_STD_TSEC_INFO(tsec_info[num], 1); if (!(gur->pordevsr & MPC85xx_PORDEVSR_SGMII1_DIS)) tsec_info[num].flags |= TSEC_SGMII; num++; #endif #ifdef CONFIG_TSEC3 SET_STD_TSEC_INFO(tsec_info[num], 3); if (!(gur->pordevsr & MPC85xx_PORDEVSR_SGMII3_DIS)) tsec_info[num].flags |= TSEC_SGMII; num++; #endif if (!num) { printf("No TSECs initialized\n"); return 0; } if (io_sel & 1) fsl_sgmii_riser_init(tsec_info, num); tsec_eth_init(bis, tsec_info, num); #endif return pci_eth_init(bis); }
int board_eth_init(bd_t *bis) { struct fsl_pq_mdio_info mdio_info; struct tsec_info_struct tsec_info[4]; int num = 0; #ifdef CONFIG_TSEC1 SET_STD_TSEC_INFO(tsec_info[num], 1); if (is_serdes_configured(SGMII_TSEC1)) { puts("eTSEC1 is in sgmii mode.\n"); tsec_info[num].flags |= TSEC_SGMII; } num++; #endif #ifdef CONFIG_TSEC2 SET_STD_TSEC_INFO(tsec_info[num], 2); if (is_serdes_configured(SGMII_TSEC2)) { puts("eTSEC2 is in sgmii mode.\n"); tsec_info[num].flags |= TSEC_SGMII; } num++; #endif #ifdef CONFIG_TSEC3 SET_STD_TSEC_INFO(tsec_info[num], 3); if (is_serdes_configured(SGMII_TSEC3)) { puts("eTSEC3 is in sgmii mode.\n"); tsec_info[num].flags |= TSEC_SGMII; } num++; #endif #ifdef CONFIG_TSEC4 SET_STD_TSEC_INFO(tsec_info[num], 4); if (is_serdes_configured(SGMII_TSEC4)) { puts("eTSEC4 is in sgmii mode.\n"); tsec_info[num].flags |= TSEC_SGMII; } num++; #endif if (!num) { printf("No TSECs initialized\n"); return 0; } #ifdef CONFIG_FSL_SGMII_RISER fsl_sgmii_riser_init(tsec_info, num); #endif mdio_info.regs = (struct tsec_mii_mng *)CONFIG_SYS_MDIO_BASE_ADDR; mdio_info.name = DEFAULT_MII_NAME; fsl_pq_mdio_init(bis, &mdio_info); tsec_eth_init(bis, tsec_info, num); return pci_eth_init(bis); }
int board_eth_init(bd_t *bis) { struct fsl_pq_mdio_info mdio_info; struct tsec_info_struct tsec_info[3]; int num = 0; #ifdef CONFIG_TSEC1 SET_STD_TSEC_INFO(tsec_info[num], 1); if (is_serdes_configured(SGMII_TSEC1)) { puts("eTSEC1 is in sgmii mode\n"); tsec_info[num].flags |= TSEC_SGMII; tsec_info[num].mii_devname = "LS1021A_SGMII_MDIO"; } else { tsec_info[num].mii_devname = "LS1021A_RGMII_MDIO"; } num++; #endif #ifdef CONFIG_TSEC2 SET_STD_TSEC_INFO(tsec_info[num], 2); if (is_serdes_configured(SGMII_TSEC2)) { puts("eTSEC2 is in sgmii mode\n"); tsec_info[num].flags |= TSEC_SGMII; tsec_info[num].mii_devname = "LS1021A_SGMII_MDIO"; } else { tsec_info[num].mii_devname = "LS1021A_RGMII_MDIO"; } num++; #endif #ifdef CONFIG_TSEC3 SET_STD_TSEC_INFO(tsec_info[num], 3); tsec_info[num].mii_devname = "LS1021A_RGMII_MDIO"; num++; #endif if (!num) { printf("No TSECs initialized\n"); return 0; } #ifdef CONFIG_FSL_SGMII_RISER fsl_sgmii_riser_init(tsec_info, num); #endif mdio_info.regs = (struct tsec_mii_mng *)CONFIG_SYS_MDIO_BASE_ADDR; mdio_info.name = DEFAULT_MII_NAME; fsl_pq_mdio_init(bis, &mdio_info); /* Register the virtual MDIO front-ends */ ls1021a_mdio_init(DEFAULT_MII_NAME, "LS1021A_RGMII_MDIO"); ls1021a_mdio_init(DEFAULT_MII_NAME, "LS1021A_SGMII_MDIO"); tsec_eth_init(bis, tsec_info, num); return pci_eth_init(bis); }
int board_eth_init(bd_t *bis) { struct tsec_info_struct tsec_info[4]; volatile ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR); int num = 0; #ifdef CONFIG_TSEC1 SET_STD_TSEC_INFO(tsec_info[num], 1); if (!(gur->pordevsr & MPC85xx_PORDEVSR_SGMII1_DIS)) tsec_info[num].flags |= TSEC_SGMII; num++; #endif #ifdef CONFIG_TSEC2 SET_STD_TSEC_INFO(tsec_info[num], 2); if (!(gur->pordevsr & MPC85xx_PORDEVSR_SGMII2_DIS)) tsec_info[num].flags |= TSEC_SGMII; num++; #endif #ifdef CONFIG_TSEC3 SET_STD_TSEC_INFO(tsec_info[num], 3); if (!(gur->pordevsr & MPC85xx_PORDEVSR_SGMII3_DIS)) tsec_info[num].flags |= TSEC_SGMII; num++; #endif #ifdef CONFIG_TSEC4 SET_STD_TSEC_INFO(tsec_info[num], 4); if (!(gur->pordevsr & MPC85xx_PORDEVSR_SGMII4_DIS)) tsec_info[num].flags |= TSEC_SGMII; num++; #endif if (!num) { printf("No TSECs initialized\n"); return 0; } #ifdef CONFIG_FSL_SGMII_RISER fsl_sgmii_riser_init(tsec_info, num); #endif tsec_eth_init(bis, tsec_info, num); return pci_eth_init(bis); }
int board_eth_init(bd_t *bis) { #ifdef CONFIG_TSEC_ENET struct tsec_info_struct tsec_info[2]; volatile ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR); int num = 0; uint sdrs2_io_sel = (gur->pordevsr & MPC85xx_PORDEVSR_SRDS2_IO_SEL) >> 27; #ifdef CONFIG_TSEC1 SET_STD_TSEC_INFO(tsec_info[num], 1); if ((sdrs2_io_sel == 4) || (sdrs2_io_sel == 6)) { tsec_info[num].phyaddr = 0; tsec_info[num].flags |= TSEC_SGMII; } num++; #endif #ifdef CONFIG_TSEC3 SET_STD_TSEC_INFO(tsec_info[num], 3); if (sdrs2_io_sel == 4) { tsec_info[num].phyaddr = 1; tsec_info[num].flags |= TSEC_SGMII; } num++; #endif if (!num) { printf("No TSECs initialized\n"); return 0; } #ifdef CONFIG_FSL_SGMII_RISER if ((sdrs2_io_sel == 4) || (sdrs2_io_sel == 6)) fsl_sgmii_riser_init(tsec_info, num); #endif tsec_eth_init(bis, tsec_info, num); #endif return pci_eth_init(bis); }