From mboxrd@z Thu Jan 1 00:00:00 1970 From: Baruch Siach Date: Mon, 23 Mar 2020 11:33:47 +0200 Subject: [PATCH v5 05/12] arm: mvebu: clearfog: Add option for 2.5 Gbps SFP In-Reply-To: <7b065e13-4bc4-45fb-ea61-6a0b8f588a81@denx.de> References: <20200127200156.15173-1-mrjoel@lixil.net> <20200127200156.15173-6-mrjoel@lixil.net> <7b065e13-4bc4-45fb-ea61-6a0b8f588a81@denx.de> Message-ID: <874kufh0uc.fsf@tarshish> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Stefan, On Mon, Mar 23 2020, Stefan Roese wrote: > On 27.01.20 21:01, Joel Johnson wrote: >> While newer Linux kernels provide autoconfiguration of SFP, provide >> an option for setting in U-Boot Kconfig for use prior to booting. >> >> Signed-off-by: Joel Johnson >> >> --- >> >> v2 changes: >> - fixed help indentation >> v3 changes: >> - none >> v4 changes: >> - adjust static SerDes configuration at runtime instead of #ifdef >> v5 changes: >> - make independent of runtime detection >> >> --- >> board/solidrun/clearfog/Kconfig | 7 +++++++ >> board/solidrun/clearfog/clearfog.c | 5 +++++ >> 2 files changed, 12 insertions(+) >> >> diff --git a/board/solidrun/clearfog/Kconfig b/board/solidrun/clearfog/Kconfig >> index 936d5918f8..c910e17093 100644 >> --- a/board/solidrun/clearfog/Kconfig >> +++ b/board/solidrun/clearfog/Kconfig >> @@ -15,4 +15,11 @@ config TARGET_CLEARFOG_BASE >> detection via additional EEPROM hardware. This option enables selecting >> the Base variant for older hardware revisions. >> +config CLEARFOG_SFP_25GB >> + bool "Enable 2.5 Gbps mode for SFP" >> + help >> + Set the SFP module connection to support 2.5 Gbps transfer speed for the >> + SGMII connection (requires a supporting SFP). By default, transfer speed >> + of 1.25 Gbps is used, suitable for a more common 1 Gbps SFP module. >> + >> endmenu >> diff --git a/board/solidrun/clearfog/clearfog.c b/board/solidrun/clearfog/clearfog.c >> index c873d00905..064ce4e520 100644 >> --- a/board/solidrun/clearfog/clearfog.c >> +++ b/board/solidrun/clearfog/clearfog.c >> @@ -63,6 +63,11 @@ int hws_board_topology_load(struct serdes_map **serdes_map_array, u8 *count) >> { >> cf_read_tlv_data(); >> + /* Apply build configuration options before runtime configuration */ >> + if (IS_ENABLED(CONFIG_CLEARFOG_SFP_25GB)) >> + board_serdes_map[5].serdes_speed = SERDES_SPEED_3_125_GBPS; > > Just checking: Your option is for 2.5 gbps and you configure here to > 3.125 gpbs. Is this intended? This is intended. Serdes encoding is 8b/10b. So for 2.5Gbps you need serdes rate of 3.125Gbps. For 1Gbps we already set 1.25Gpbs serdes rate (SERDES_SPEED_1_25_GBPS) in board_serdes_map[]. baruch -- http://baruch.siach.name/blog/ ~. .~ Tk Open Systems =}------------------------------------------------ooO--U--Ooo------------{= - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -