Define tsec flag values in config files
PATCH 1/1 Define tsec flag values in config files
The tsec_info structure and array has a "flags" field for each ethernet controller. This field is the only reason there are settings. Switch to defining TSECn_FLAGS for each controller in the config header, and we can greatly simplify the array, and also simplify the addition of future boards.
Signed-off-by Andy Fleming <[email protected]>
--- drivers/tsec.c | 30 +++++++++++------------------- include/configs/MPC8313ERDB.h | 2 ++ include/configs/MPC8349EMDS.h | 2 ++ include/configs/MPC8349ITX.h | 2 ++ include/configs/MPC8540ADS.h | 3 +++ include/configs/MPC8540EVAL.h | 4 ++++ include/configs/MPC8541CDS.h | 5 ++--- include/configs/MPC8544DS.h | 8 +++----- include/configs/MPC8548CDS.h | 4 ++++ include/configs/MPC8555CDS.h | 5 ++--- include/configs/MPC8560ADS.h | 3 ++- include/configs/MPC8568MDS.h | 6 +++--- include/configs/MPC8641HPCN.h | 4 ++++ include/configs/PM854.h | 3 +++ include/configs/PM856.h | 3 ++- include/configs/TQM834x.h | 2 ++ include/configs/TQM85xx.h | 3 +++ include/configs/sbc8349.h | 2 ++ include/configs/sbc8641d.h | 4 ++++ include/configs/stxgp3.h | 3 ++- include/configs/stxssa.h | 3 ++- 21 files changed, 64 insertions(+), 37 deletions(-)
drivers/tsec.c +11 -19
@@ -65,38 +65,30 @@ struct tsec_info_struct {* FEC_PHYIDX */ static struct tsec_info_struct tsec_info[] = { -#if defined(CONFIG_TSEC1) -#if defined(CONFIG_MPC8544DS) || defined(CONFIG_MPC8641HPCN) - {TSEC1_PHY_ADDR, TSEC_GIGABIT | TSEC_REDUCED, TSEC1_PHYIDX}, -#else - {TSEC1_PHY_ADDR, TSEC_GIGABIT, TSEC1_PHYIDX}, -#endif +#ifdef CONFIG_TSEC1 + {TSEC1_PHY_ADDR, TSEC1_FLAGS, TSEC1_PHYIDX}, #else {0, 0, 0}, #endif -#if defined(CONFIG_TSEC2) -#if defined(CONFIG_MPC8641HPCN) - {TSEC2_PHY_ADDR, TSEC_GIGABIT | TSEC_REDUCED, TSEC2_PHYIDX}, -#else - {TSEC2_PHY_ADDR, TSEC_GIGABIT, TSEC2_PHYIDX}, -#endif +#ifdef CONFIG_TSEC2 + {TSEC2_PHY_ADDR, TSEC2_FLAGS, TSEC2_PHYIDX}, #else {0, 0, 0}, #endif #ifdef CONFIG_MPC85XX_FEC - {FEC_PHY_ADDR, 0, FEC_PHYIDX}, + {FEC_PHY_ADDR, FEC_FLAGS, FEC_PHYIDX}, #else -#if defined(CONFIG_TSEC3) - {TSEC3_PHY_ADDR, TSEC_GIGABIT | TSEC_REDUCED, TSEC3_PHYIDX}, +#ifdef CONFIG_TSEC3 + {TSEC3_PHY_ADDR, TSEC3_FLAGS, TSEC3_PHYIDX}, #else {0, 0, 0}, #endif -#if defined(CONFIG_TSEC4) - {TSEC4_PHY_ADDR, TSEC_GIGABIT | TSEC_REDUCED, TSEC4_PHYIDX}, +#ifdef CONFIG_TSEC4 + {TSEC4_PHY_ADDR, TSEC4_FLAGS, TSEC4_PHYIDX}, #else {0, 0, 0}, -#endif -#endif +#endif /* CONFIG_TSEC4 */ +#endif /* CONFIG_MPC85XX_FEC */ }; #define MAXCONTROLLERS (4)
include/configs/MPC8313ERDB.h +2 -0
@@ -310,6 +310,8 @@#define CONFIG_TSEC2_NAME "TSEC1"#define TSEC1_PHY_ADDR 0x1c#define TSEC2_PHY_ADDR 4 +#define TSEC1_FLAGS TSEC_GIGABIT +#define TSEC2_FLAGS TSEC_GIGABIT#define TSEC1_PHYIDX 0#define TSEC2_PHYIDX 0
include/configs/MPC8349EMDS.h +2 -0
@@ -440,6 +440,8 @@#define TSEC2_PHY_ADDR 1#define TSEC1_PHYIDX 0#define TSEC2_PHYIDX 0 +#define TSEC1_FLAGS TSEC_GIGABIT +#define TSEC2_FLAGS TSEC_GIGABIT/* Options are: TSEC[0-1] */ #define CONFIG_ETHPRIME "TSEC0"
include/configs/MPC8349ITX.h +2 -0
@@ -382,6 +382,7 @@ boards, we say we have two, but don't display a message if we find only one. */#define CFG_TSEC1_OFFSET 0x24000#define TSEC1_PHY_ADDR 0x1c/* VSC8201 uses address 0x1c */ #define TSEC1_PHYIDX 0 +#define TSEC1_FLAGS TSEC_GIGABIT#endif #ifdef CONFIG_TSEC2
@@ -391,6 +392,7 @@ boards, we say we have two, but don't display a message if we find only one. */#define CONFIG_UNKNOWN_TSEC /* TSEC2 is proprietary */ #define TSEC2_PHY_ADDR 4#define TSEC2_PHYIDX 0 +#define TSEC2_FLAGS TSEC_GIGABIT#endif #define CONFIG_ETHPRIME "Freescale TSEC"
include/configs/MPC8540ADS.h +3 -0
@@ -374,6 +374,8 @@#define TSEC2_PHY_ADDR 1#define TSEC1_PHYIDX 0#define TSEC2_PHYIDX 0 +#define TSEC1_FLAGS TSEC_GIGABIT +#define TSEC2_FLAGS TSEC_GIGABIT#if CONFIG_HAS_FEC
@@ -381,6 +383,7 @@#define CONFIG_MPC85XX_FEC_NAME "FEC"#define FEC_PHY_ADDR 3#define FEC_PHYIDX 0 +#define FEC_FLAGS 0#endif /* Options are: TSEC[0-1], FEC */
include/configs/MPC8540EVAL.h +4 -0
@@ -224,6 +224,10 @@#define TSEC1_PHYIDX 0#define TSEC2_PHYIDX 0#define FEC_PHYIDX 0 +#define TSEC1_FLAGS TSEC_GIGABIT +#define TSEC2_FLAGS TSEC_GIGABIT +#define FEC_FLAGS 0 +/* Options are: TSEC[0-1], FEC */ #define CONFIG_ETHPRIME "TSEC0"
include/configs/MPC8541CDS.h +2 -3
@@ -384,13 +384,12 @@ extern unsigned long get_clock_freq(void);#define CONFIG_TSEC1_NAME "TSEC0"#define CONFIG_TSEC2 1#define CONFIG_TSEC2_NAME "TSEC1" -#undef CONFIG_MPC85XX_FEC#define TSEC1_PHY_ADDR 0#define TSEC2_PHY_ADDR 1 -#define FEC_PHY_ADDR 3#define TSEC1_PHYIDX 0#define TSEC2_PHYIDX 0 -#define FEC_PHYIDX 0 +#define TSEC1_FLAGS TSEC_GIGABIT +#define TSEC2_FLAGS TSEC_GIGABIT/* Options are: TSEC[0-1] */ #define CONFIG_ETHPRIME "TSEC0"
include/configs/MPC8544DS.h +3 -5
@@ -364,15 +364,13 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);#define CONFIG_TSEC1_NAME "eTSEC1"#define CONFIG_TSEC3 1#define CONFIG_TSEC3_NAME "eTSEC3" -#undef CONFIG_MPC85XX_FEC - -#define CONFIG_TSEC_TBI 1/* enable internal TBI phy */ -#define CONFIG_SGMII_RISER -#define TSEC1_SGMII_PHY_ADDR_OFFSET 0x1c/* sgmii phy base */ #define TSEC1_PHY_ADDR 0#define TSEC3_PHY_ADDR 1 +#define TSEC1_FLAGS (TSEC_GIGABIT | TSEC_REDUCED) +#define TSEC3_FLAGS (TSEC_GIGABIT | TSEC_REDUCED) +#define TSEC1_PHYIDX 0#define TSEC3_PHYIDX 0
include/configs/MPC8548CDS.h +4 -0
@@ -447,6 +447,10 @@ extern unsigned long get_clock_freq(void);#define TSEC2_PHYIDX 0#define TSEC3_PHYIDX 0#define TSEC4_PHYIDX 0 +#define TSEC1_FLAGS TSEC_GIGABIT +#define TSEC2_FLAGS TSEC_GIGABIT +#define TSEC3_FLAGS (TSEC_GIGABIT | TSEC_REDUCED) +#define TSEC4_FLAGS (TSEC_GIGABIT | TSEC_REDUCED)/* Options are: eTSEC[0-3] */ #define CONFIG_ETHPRIME "eTSEC0"
include/configs/MPC8555CDS.h +2 -3
@@ -384,13 +384,12 @@ extern unsigned long get_clock_freq(void);#define CONFIG_TSEC1_NAME "TSEC0"#define CONFIG_TSEC2 1#define CONFIG_TSEC2_NAME "TSEC1" -#undef CONFIG_MPC85XX_FEC#define TSEC1_PHY_ADDR 0#define TSEC2_PHY_ADDR 1 -#define FEC_PHY_ADDR 3#define TSEC1_PHYIDX 0#define TSEC2_PHYIDX 0 -#define FEC_PHYIDX 0 +#define TSEC1_FLAGS TSEC_GIGABIT +#define TSEC2_FLAGS TSEC_GIGABIT/* Options are: TSEC[0-1] */ #define CONFIG_ETHPRIME "TSEC0"
include/configs/MPC8560ADS.h +2 -1
@@ -360,11 +360,12 @@#define CONFIG_TSEC1_NAME "TSEC0"#define CONFIG_TSEC2 1#define CONFIG_TSEC2_NAME "TSEC1" -#undef CONFIG_MPC85XX_FEC#define TSEC1_PHY_ADDR 0#define TSEC2_PHY_ADDR 1#define TSEC1_PHYIDX 0#define TSEC2_PHYIDX 0 +#define TSEC1_FLAGS TSEC_GIGABIT +#define TSEC2_FLAGS TSEC_GIGABIT/* Options are: TSEC[0-1] */ #define CONFIG_ETHPRIME "TSEC0"
include/configs/MPC8568MDS.h +3 -3
@@ -399,9 +399,6 @@ extern unsigned long get_clock_freq(void);#define CONFIG_TSEC1_NAME "eTSEC0"#define CONFIG_TSEC2 1#define CONFIG_TSEC2_NAME "eTSEC1" -#undef CONFIG_TSEC3 -#undef CONFIG_TSEC4 -#undef CONFIG_MPC85XX_FEC#define TSEC1_PHY_ADDR 2#define TSEC2_PHY_ADDR 3
@@ -409,6 +406,9 @@ extern unsigned long get_clock_freq(void);#define TSEC1_PHYIDX 0#define TSEC2_PHYIDX 0 +#define TSEC1_FLAGS TSEC_GIGABIT +#define TSEC2_FLAGS TSEC_GIGABIT +/* Options are: eTSEC[0-3] */ #define CONFIG_ETHPRIME "eTSEC0"
include/configs/MPC8641HPCN.h +4 -0
@@ -417,6 +417,10 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);#define TSEC2_PHYIDX 0#define TSEC3_PHYIDX 0#define TSEC4_PHYIDX 0 +#define TSEC1_FLAGS (TSEC_GIGABIT | TSEC_REDUCED) +#define TSEC2_FLAGS (TSEC_GIGABIT | TSEC_REDUCED) +#define TSEC3_FLAGS (TSEC_GIGABIT | TSEC_REDUCED) +#define TSEC4_FLAGS (TSEC_GIGABIT | TSEC_REDUCED)#define CONFIG_ETHPRIME "eTSEC1"
include/configs/PM854.h +3 -0
@@ -270,11 +270,14 @@#define TSEC2_PHY_ADDR 1#define TSEC1_PHYIDX 0#define TSEC2_PHYIDX 0 +#define TSEC1_FLAGS TSEC_GIGABIT +#define TSEC2_FLAGS TSEC_GIGABIT#define CONFIG_MPC85XX_FEC 1#define CONFIG_MPC85XX_FEC_NAME "FEC"#define FEC_PHY_ADDR 3#define FEC_PHYIDX 0 +#define FEC_FLAGS 0/* Options are: TSEC[0-1] */ #define CONFIG_ETHPRIME "TSEC0"
include/configs/PM856.h +2 -1
@@ -262,11 +262,12 @@#define CONFIG_TSEC1_NAME "TSEC0"#define CONFIG_TSEC2 1#define CONFIG_TSEC2_NAME "TSEC1" -#undef CONFIG_MPC85XX_FEC#define TSEC1_PHY_ADDR 0#define TSEC2_PHY_ADDR 1#define TSEC1_PHYIDX 0#define TSEC2_PHYIDX 0 +#define TSEC1_FLAGS TSEC_GIGABIT +#define TSEC2_FLAGS TSEC_GIGABIT#endif /* CONFIG_TSEC_ENET */
include/configs/TQM834x.h +2 -0
@@ -253,6 +253,8 @@ extern int tqm834x_num_flash_banks;#define TSEC2_PHY_ADDR 1#define TSEC1_PHYIDX 0#define TSEC2_PHYIDX 0 +#define TSEC1_FLAGS TSEC_GIGABIT +#define TSEC2_FLAGS TSEC_GIGABIT/* Options are: TSEC[0-1] */ #define CONFIG_ETHPRIME "TSEC0"
include/configs/TQM85xx.h +3 -0
@@ -266,8 +266,11 @@#define TSEC2_PHY_ADDR 1#define TSEC1_PHYIDX 0#define TSEC2_PHYIDX 0 +#define TSEC1_FLAGS TSEC_GIGABIT +#define TSEC2_FLAGS TSEC_GIGABIT#define FEC_PHY_ADDR 3#define FEC_PHYIDX 0 +#define FEC_FLAGS 0#define CONFIG_HAS_ETH1 #define CONFIG_HAS_ETH2
include/configs/sbc8349.h +2 -0
@@ -410,6 +410,8 @@#define TSEC2_PHY_ADDR 0x1a#define TSEC1_PHYIDX 0#define TSEC2_PHYIDX 0 +#define TSEC1_FLAGS TSEC_GIGABIT +#define TSEC2_FLAGS TSEC_GIGABIT/* Options are: TSEC[0-1] */ #define CONFIG_ETHPRIME "TSEC0"
include/configs/sbc8641d.h +4 -0
@@ -380,6 +380,10 @@#define TSEC2_PHYIDX 0#define TSEC3_PHYIDX 0#define TSEC4_PHYIDX 0 +#define TSEC1_FLAGS TSEC_GIGABIT +#define TSEC2_FLAGS TSEC_GIGABIT +#define TSEC3_FLAGS TSEC_GIGABIT +#define TSEC4_FLAGS TSEC_GIGABIT#define CFG_TBIPA_VALUE 0x1e/* Set TBI address not to conflict with TSEC1_PHY_ADDR */
include/configs/stxgp3.h +2 -1
@@ -234,12 +234,13 @@#define CONFIG_TSEC1_NAME "TSEC0"#define CONFIG_TSEC2 1#define CONFIG_TSEC2_NAME "TSEC1" -#undef CONFIG_MPS85XX_FEC#define TSEC1_PHY_ADDR 2#define TSEC2_PHY_ADDR 4#define TSEC1_PHYIDX 0#define TSEC2_PHYIDX 0 +#define TSEC1_FLAGS TSEC_GIGABIT +#define TSEC2_FLAGS TSEC_GIGABIT#define CONFIG_ETHPRIME "TSEC0"#elif defined(CONFIG_ETHER_ON_FCC )/* CPM FCC Ethernet */
include/configs/stxssa.h +2 -1
@@ -260,12 +260,13 @@#define CONFIG_TSEC1_NAME "TSEC0"#define CONFIG_TSEC2 1#define CONFIG_TSEC2_NAME "TSEC1" -#define CONFIG_MPS85XX_FEC #define TSEC1_PHY_ADDR 2#define TSEC2_PHY_ADDR 4#define TSEC1_PHYIDX 0#define TSEC2_PHYIDX 0 +#define TSEC1_FLAGS TSEC_GIGABIT +#define TSEC2_FLAGS TSEC_GIGABIT#define CONFIG_ETHPRIME "TSEC0"#elif defined(CONFIG_ETHER_ON_FCC )/* CPM FCC Ethernet */
Signature · 1 line
1.5.0.2.230.gfbe3d-dirty
Wolfgang Denk
AppliedPATCH 1/1 Define tsec flag values in config files
Quoted 7 lines · In message <[email protected]> you wrote:
The
tsec_infostructure and array has a "flags" field for each ethernet controller. This field is the only reason there are settings. Switch to definingTSECn_FLAGSfor each controller in the config header, and we can greatly simplify the array, and also simplify the addition of future boards.Signed-off-by Andy Fleming <[email protected]>
Applied, thanks.
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de "A child is a person who can't understand why someone would give away a perfectly good kitten." - Doug Larson