Commit 2e26d837f11460c0e6dede7d65424a31e0183d09

Authored by Jason Jin
Committed by Wolfgang Denk
1 parent 7e183cad0c
Exists in master and in 55 other branches 8qm-imx_v2020.04_5.4.70_2.3.0, emb_lf_v2022.04, emb_lf_v2023.04, imx_v2015.04_4.1.15_1.0.0_ga, pitx_8mp_lf_v2020.04, smarc-8m-android-10.0.0_2.6.0, smarc-8m-android-11.0.0_2.0.0, smarc-8mp-android-11.0.0_2.0.0, smarc-emmc-imx_v2014.04_3.10.53_1.1.0_ga, smarc-emmc-imx_v2014.04_3.14.28_1.0.0_ga, smarc-imx-l5.0.0_1.0.0-ga, smarc-imx6_v2018.03_4.14.98_2.0.0_ga, smarc-imx7_v2017.03_4.9.11_1.0.0_ga, smarc-imx7_v2018.03_4.14.98_2.0.0_ga, smarc-imx_v2014.04_3.14.28_1.0.0_ga, smarc-imx_v2015.04_4.1.15_1.0.0_ga, smarc-imx_v2017.03_4.9.11_1.0.0_ga, smarc-imx_v2017.03_4.9.88_2.0.0_ga, smarc-imx_v2017.03_o8.1.0_1.3.0_8m, smarc-imx_v2018.03_4.14.78_1.0.0_ga, smarc-m6.0.1_2.1.0-ga, smarc-n7.1.2_2.0.0-ga, smarc-rel_imx_4.1.15_2.0.0_ga, smarc_8m-imx_v2018.03_4.14.98_2.0.0_ga, smarc_8m-imx_v2019.04_4.19.35_1.1.0, smarc_8m_00d0-imx_v2018.03_4.14.98_2.0.0_ga, smarc_8mm-imx_v2018.03_4.14.98_2.0.0_ga, smarc_8mm-imx_v2019.04_4.19.35_1.1.0, smarc_8mm-imx_v2020.04_5.4.24_2.1.0, smarc_8mp_lf_v2020.04, smarc_8mq-imx_v2020.04_5.4.24_2.1.0, smarc_8mq_lf_v2020.04, ti-u-boot-2015.07, u-boot-2013.01.y, v2013.10, v2013.10-smarct33, v2013.10-smartmen, v2014.01, v2014.04, v2014.04-smarct33, v2014.04-smarct33-emmc, v2014.04-smartmen, v2014.07, v2014.07-smarct33, v2014.07-smartmen, v2015.07-smarct33, v2015.07-smarct33-emmc, v2015.07-smarct4x, v2016.05-dlt, v2016.05-smarct3x, v2016.05-smarct3x-emmc, v2016.05-smarct4x, v2017.01-smarct3x, v2017.01-smarct3x-emmc, v2017.01-smarct4x

Enabled the Freescale SGMII riser card on 8536DS

Signed-off-by: Jason Jin <Jason.jin@freescale.com>

Showing 2 changed files with 45 additions and 0 deletions Side-by-side Diff

board/freescale/mpc8536ds/mpc8536ds.c
... ... @@ -35,8 +35,11 @@
35 35 #include <libfdt.h>
36 36 #include <spd_sdram.h>
37 37 #include <fdt_support.h>
  38 +#include <tsec.h>
  39 +#include <netdev.h>
38 40  
39 41 #include "../common/pixis.h"
  42 +#include "../common/sgmii_riser.h"
40 43  
41 44 #if defined(CONFIG_DDR_ECC) && !defined(CONFIG_ECC_INIT_VIA_DDRCONTROLLER)
42 45 extern void ddr_enable_ecc(unsigned int dram_size);
... ... @@ -616,6 +619,45 @@
616 619 return 0;
617 620  
618 621 return 1;
  622 +}
  623 +
  624 +int board_eth_init(bd_t *bis)
  625 +{
  626 +#ifdef CONFIG_TSEC_ENET
  627 + struct tsec_info_struct tsec_info[2];
  628 + volatile ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
  629 + int num = 0;
  630 + uint sdrs2_io_sel =
  631 + (gur->pordevsr & MPC85xx_PORDEVSR_SRDS2_IO_SEL) >> 27;
  632 +
  633 +#ifdef CONFIG_TSEC1
  634 + SET_STD_TSEC_INFO(tsec_info[num], 1);
  635 + if ((sdrs2_io_sel == 4) || (sdrs2_io_sel == 6)) {
  636 + tsec_info[num].phyaddr = 0;
  637 + tsec_info[num].flags |= TSEC_SGMII;
  638 + }
  639 + num++;
  640 +#endif
  641 +#ifdef CONFIG_TSEC3
  642 + SET_STD_TSEC_INFO(tsec_info[num], 3);
  643 + if (sdrs2_io_sel == 4) {
  644 + tsec_info[num].phyaddr = 1;
  645 + tsec_info[num].flags |= TSEC_SGMII;
  646 + }
  647 + num++;
  648 +#endif
  649 +
  650 + if (!num) {
  651 + printf("No TSECs initialized\n");
  652 + return 0;
  653 + }
  654 +
  655 + if ((sdrs2_io_sel == 4) || (sdrs2_io_sel == 6))
  656 + fsl_sgmii_riser_init(tsec_info, num);
  657 +
  658 + tsec_eth_init(bis, tsec_info, num);
  659 +#endif
  660 + return pci_eth_init(bis);
619 661 }
620 662  
621 663 #if defined(CONFIG_OF_BOARD_SETUP)
include/configs/MPC8536DS.h
... ... @@ -427,6 +427,9 @@
427 427 #define CONFIG_TSEC3 1
428 428 #define CONFIG_TSEC3_NAME "eTSEC3"
429 429  
  430 +#define CONFIG_FSL_SGMII_RISER 1
  431 +#define SGMII_RISER_PHY_OFFSET 0x1c
  432 +
430 433 #define TSEC1_PHY_ADDR 1 /* TSEC1 -> PHY1 */
431 434 #define TSEC3_PHY_ADDR 0 /* TSEC3 -> PHY0 */
432 435