From 9a720115ff3bd28a358ff4b774e1bea4dd5fea2a Mon Sep 17 00:00:00 2001 From: Chee Zhang Date: Thu, 23 Jul 2026 09:51:49 +0000 Subject: [PATCH 1/3] Mirror ADO PR #36605: R4145TASK-539:: [Celestica] Ladakh800bcls: Bsp Mapping: Adapt BSP function of retimer --- fboss/lib/bsp/BspResetUtils.cpp | 4 +- .../Ladakh800bclsBspPlatformMapping.cpp | 160 +++++++----------- 2 files changed, 66 insertions(+), 98 deletions(-) diff --git a/fboss/lib/bsp/BspResetUtils.cpp b/fboss/lib/bsp/BspResetUtils.cpp index c2d4d021bb9c7..22c82196e6656 100644 --- a/fboss/lib/bsp/BspResetUtils.cpp +++ b/fboss/lib/bsp/BspResetUtils.cpp @@ -31,7 +31,7 @@ bool holdResetViaSysfs( *resetPath); try { - writeSysfs(*resetPath, "1"); + writeSysfs(*resetPath, "0"); usleep(kResetHoldDelayUs); return true; } catch (const std::exception& ex) { @@ -62,7 +62,7 @@ bool releaseResetViaSysfs( *resetPath); try { - writeSysfs(*resetPath, "0"); + writeSysfs(*resetPath, "1"); return true; } catch (const std::exception& ex) { XLOG(ERR) << fmt::format( diff --git a/fboss/lib/bsp/ladakh800bcls/Ladakh800bclsBspPlatformMapping.cpp b/fboss/lib/bsp/ladakh800bcls/Ladakh800bclsBspPlatformMapping.cpp index d507b74d4210c..94a5d2b065fd4 100644 --- a/fboss/lib/bsp/ladakh800bcls/Ladakh800bclsBspPlatformMapping.cpp +++ b/fboss/lib/bsp/ladakh800bcls/Ladakh800bclsBspPlatformMapping.cpp @@ -85,259 +85,227 @@ constexpr auto kJsonBspPlatformMappingStr = R"( "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_l_2/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_l_2_1/rtm_reset_2" }, "1": { - "phyId": 1, - "phyIOControllerId": 3, + "phyId": 1, "phyIOControllerId": 3, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_l_3/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_l_3_1/rtm_reset_3" }, "2": { - "phyId": 2, - "phyIOControllerId": 4, + "phyId": 2, "phyIOControllerId": 4, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_l_4/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_l_4_1/rtm_reset_4" }, "3": { - "phyId": 3, - "phyIOControllerId": 1, + "phyId": 3, "phyIOControllerId": 1, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_l_1/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_l_1_1/rtm_reset_1" }, "4": { - "phyId": 4, - "phyIOControllerId": 5, + "phyId": 4, "phyIOControllerId": 5, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_l_5/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_l_5_1/rtm_reset_5" }, "5": { - "phyId": 5, - "phyIOControllerId": 7, + "phyId": 5, "phyIOControllerId": 7, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_l_7/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_l_7_1/rtm_reset_7" }, "6": { - "phyId": 6, - "phyIOControllerId": 8, + "phyId": 6, "phyIOControllerId": 8, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_l_8/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_l_8_1/rtm_reset_8" }, "7": { - "phyId": 7, - "phyIOControllerId": 6, + "phyId": 7, "phyIOControllerId": 6, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_l_6/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_l_6_1/rtm_reset_6" }, "8": { - "phyId": 8, - "phyIOControllerId": 10, + "phyId": 8, "phyIOControllerId": 10, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_l_10/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_l_10_1/rtm_reset_10" }, "9": { - "phyId": 9, - "phyIOControllerId": 12, + "phyId": 9, "phyIOControllerId": 12, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_l_12/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_l_12_1/rtm_reset_12" }, "10": { - "phyId": 10, - "phyIOControllerId": 11, + "phyId": 10, "phyIOControllerId": 11, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_l_11/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_l_11_1/rtm_reset_11" }, "11": { - "phyId": 11, - "phyIOControllerId": 9, + "phyId": 11, "phyIOControllerId": 9, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_l_9/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_l_9_1/rtm_reset_9" }, "12": { - "phyId": 12, - "phyIOControllerId": 13, + "phyId": 12, "phyIOControllerId": 13, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_l_13/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_l_13_1/rtm_reset_13" }, "13": { - "phyId": 13, - "phyIOControllerId": 15, + "phyId": 13, "phyIOControllerId": 15, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_l_15/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_l_15_1/rtm_reset_15" }, "14": { - "phyId": 14, - "phyIOControllerId": 16, + "phyId": 14, "phyIOControllerId": 16, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_l_16/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_l_16_1/rtm_reset_16" }, "15": { - "phyId": 15, - "phyIOControllerId": 14, + "phyId": 15, "phyIOControllerId": 14, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_l_14/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_l_14_1/rtm_reset_14" }, "16": { - "phyId": 16, - "phyIOControllerId": 18, + "phyId": 16, "phyIOControllerId": 18, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_r_2/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_r_2_1/rtm_reset_18" }, "17": { - "phyId": 17, - "phyIOControllerId": 19, + "phyId": 17, "phyIOControllerId": 19, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_r_3/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_r_3_1/rtm_reset_19" }, "18": { - "phyId": 18, - "phyIOControllerId": 20, + "phyId": 18, "phyIOControllerId": 20, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_r_4/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_r_4_1/rtm_reset_20" }, "19": { - "phyId": 19, - "phyIOControllerId": 17, + "phyId": 19, "phyIOControllerId": 17, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_r_1/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_r_1_1/rtm_reset_17" }, "20": { - "phyId": 20, - "phyIOControllerId": 21, + "phyId": 20, "phyIOControllerId": 21, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_r_5/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_r_5_1/rtm_reset_21" }, "21": { - "phyId": 21, - "phyIOControllerId": 23, + "phyId": 21, "phyIOControllerId": 23, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_r_7/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_r_7_1/rtm_reset_23" }, "22": { - "phyId": 22, - "phyIOControllerId": 24, + "phyId": 22, "phyIOControllerId": 24, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_r_8/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_r_8_1/rtm_reset_24" }, "23": { - "phyId": 23, - "phyIOControllerId": 22, + "phyId": 23, "phyIOControllerId": 22, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_r_6/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_r_6_1/rtm_reset_22" }, "24": { - "phyId": 24, - "phyIOControllerId": 26, + "phyId": 24, "phyIOControllerId": 26, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_r_10/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_r_10_1/rtm_reset_26" }, "25": { - "phyId": 25, - "phyIOControllerId": 28, + "phyId": 25, "phyIOControllerId": 28, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_r_12/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_r_12_1/rtm_reset_28" }, "26": { - "phyId": 26, - "phyIOControllerId": 27, + "phyId": 26, "phyIOControllerId": 27, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_r_11/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_r_11_1/rtm_reset_27" }, "27": { - "phyId": 27, - "phyIOControllerId": 25, + "phyId": 27, "phyIOControllerId": 25, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_r_9/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_r_9_1/rtm_reset_25" }, "28": { - "phyId": 28, - "phyIOControllerId": 29, + "phyId": 28, "phyIOControllerId": 29, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_r_13/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_r_13_1/rtm_reset_29" }, "29": { - "phyId": 29, - "phyIOControllerId": 31, + "phyId": 29, "phyIOControllerId": 31, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_r_15/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_r_15_1/rtm_reset_31" }, "30": { - "phyId": 30, - "phyIOControllerId": 32, + "phyId": 30, "phyIOControllerId": 32, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_r_16/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_r_16_1/rtm_reset_32" }, "31": { - "phyId": 31, - "phyIOControllerId": 30, + "phyId": 31, "phyIOControllerId": 30, "phyAddr": 0, "phyCoreId": 0, "pimId": 1, - "phyResetPath": "/run/devmap/mdio-busses/mdio_bus_ctrl_r_14/reset_rtm_0" + "phyResetPath": "/run/devmap/rtms/rtm_ctrl_mdio_r_14_1/rtm_reset_30" } }, - "phyIOControllers": { - "1": { + "phyIOControllers": { "1": { "controllerId": 1, "type": 1, "devicePath": "/run/devmap/mdio-busses/mdio_bus_io_l_1", From 6340f02ae2c2600dca4213b114975c512e9c6fc0 Mon Sep 17 00:00:00 2001 From: chee-zhang Date: Mon, 27 Jul 2026 14:04:09 +0800 Subject: [PATCH 2/3] `busName` uses `CPU_BUS@0` to adapt different linux kernals --- fboss/platform/configs/ladakh800bcls/platform_manager.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fboss/platform/configs/ladakh800bcls/platform_manager.json b/fboss/platform/configs/ladakh800bcls/platform_manager.json index b0de4a47a5289..f983e741a5e25 100644 --- a/fboss/platform/configs/ladakh800bcls/platform_manager.json +++ b/fboss/platform/configs/ladakh800bcls/platform_manager.json @@ -6,7 +6,7 @@ "MCB_SLOT": { "numOutgoingI2cBuses": 0, "idpromConfig": { - "busName": "SMBus I801 adapter at 5000", + "busName": "CPU_BUS@0", "address": "0x53", "kernelDeviceName": "24c02" } @@ -61,7 +61,7 @@ } }, "i2cAdaptersFromCpu": [ - "SMBus I801 adapter at 5000" + "CPU_BUS@0" ], "versionedPmUnitConfigs": { "NETLAKE": [ From 7338bc4019278cc5e72378480a82d9d6d3651770 Mon Sep 17 00:00:00 2001 From: chee-zhang Date: Mon, 27 Jul 2026 14:05:10 +0800 Subject: [PATCH 3/3] Sync `rtmCtrlBlockConfigs` to Netlake2.0 --- .../ladakh800bclsm/platform_manager.json | 55 +++++++++++++++++-- 1 file changed, 51 insertions(+), 4 deletions(-) diff --git a/fboss/platform/configs/ladakh800bclsm/platform_manager.json b/fboss/platform/configs/ladakh800bclsm/platform_manager.json index 3c5ce05c56cc9..5d942eff985d2 100644 --- a/fboss/platform/configs/ladakh800bclsm/platform_manager.json +++ b/fboss/platform/configs/ladakh800bclsm/platform_manager.json @@ -308,15 +308,29 @@ "pmUnitScopedNamePrefix": "RTM_L_MDIO_BUS", "deviceName": "mdio_controller", "csrOffsetCalc": "0x48200 + {busIndex}*0x20", - "numBuses": 16, - "iobufOffsetCalc": "0x480c0 + {busIndex}*0x4" + "numBuses": 16 }, { "pmUnitScopedNamePrefix": "RTM_R_MDIO_BUS", "deviceName": "mdio_controller", "csrOffsetCalc": "0x40200 + {busIndex}*0x20", - "numBuses": 16, - "iobufOffsetCalc": "0x400c0 + {busIndex}*0x4" + "numBuses": 16 + } + ], + "rtmCtrlBlockConfigs": [ + { + "pmUnitScopedNamePrefix": "RTM_L", + "deviceName": "rtm_ctrl", + "csrOffsetCalc": "0x480c0 + ({portNum} - {startPort})*0x4", + "numPorts": 16, + "startPort": 1 + }, + { + "pmUnitScopedNamePrefix": "RTM_R", + "deviceName": "rtm_ctrl", + "csrOffsetCalc": "0x400c0 + ({portNum} - {startPort})*0x4", + "numPorts": 16, + "startPort": 17 } ] } @@ -1654,6 +1668,38 @@ "/run/devmap/mdio-busses/mdio_bus_io_r_14": "/[RTM_R_MDIO_BUS_14]", "/run/devmap/mdio-busses/mdio_bus_io_r_15": "/[RTM_R_MDIO_BUS_15]", "/run/devmap/mdio-busses/mdio_bus_io_r_16": "/[RTM_R_MDIO_BUS_16]", + "/run/devmap/rtms/rtm_ctrl_mdio_l_1_1": "/[RTM_L_RTM_CTRL_PORT_1]", + "/run/devmap/rtms/rtm_ctrl_mdio_l_2_1": "/[RTM_L_RTM_CTRL_PORT_2]", + "/run/devmap/rtms/rtm_ctrl_mdio_l_3_1": "/[RTM_L_RTM_CTRL_PORT_3]", + "/run/devmap/rtms/rtm_ctrl_mdio_l_4_1": "/[RTM_L_RTM_CTRL_PORT_4]", + "/run/devmap/rtms/rtm_ctrl_mdio_l_5_1": "/[RTM_L_RTM_CTRL_PORT_5]", + "/run/devmap/rtms/rtm_ctrl_mdio_l_6_1": "/[RTM_L_RTM_CTRL_PORT_6]", + "/run/devmap/rtms/rtm_ctrl_mdio_l_7_1": "/[RTM_L_RTM_CTRL_PORT_7]", + "/run/devmap/rtms/rtm_ctrl_mdio_l_8_1": "/[RTM_L_RTM_CTRL_PORT_8]", + "/run/devmap/rtms/rtm_ctrl_mdio_l_9_1": "/[RTM_L_RTM_CTRL_PORT_9]", + "/run/devmap/rtms/rtm_ctrl_mdio_l_10_1": "/[RTM_L_RTM_CTRL_PORT_10]", + "/run/devmap/rtms/rtm_ctrl_mdio_l_11_1": "/[RTM_L_RTM_CTRL_PORT_11]", + "/run/devmap/rtms/rtm_ctrl_mdio_l_12_1": "/[RTM_L_RTM_CTRL_PORT_12]", + "/run/devmap/rtms/rtm_ctrl_mdio_l_13_1": "/[RTM_L_RTM_CTRL_PORT_13]", + "/run/devmap/rtms/rtm_ctrl_mdio_l_14_1": "/[RTM_L_RTM_CTRL_PORT_14]", + "/run/devmap/rtms/rtm_ctrl_mdio_l_15_1": "/[RTM_L_RTM_CTRL_PORT_15]", + "/run/devmap/rtms/rtm_ctrl_mdio_l_16_1": "/[RTM_L_RTM_CTRL_PORT_16]", + "/run/devmap/rtms/rtm_ctrl_mdio_r_1_1": "/[RTM_R_RTM_CTRL_PORT_17]", + "/run/devmap/rtms/rtm_ctrl_mdio_r_2_1": "/[RTM_R_RTM_CTRL_PORT_18]", + "/run/devmap/rtms/rtm_ctrl_mdio_r_3_1": "/[RTM_R_RTM_CTRL_PORT_19]", + "/run/devmap/rtms/rtm_ctrl_mdio_r_4_1": "/[RTM_R_RTM_CTRL_PORT_20]", + "/run/devmap/rtms/rtm_ctrl_mdio_r_5_1": "/[RTM_R_RTM_CTRL_PORT_21]", + "/run/devmap/rtms/rtm_ctrl_mdio_r_6_1": "/[RTM_R_RTM_CTRL_PORT_22]", + "/run/devmap/rtms/rtm_ctrl_mdio_r_7_1": "/[RTM_R_RTM_CTRL_PORT_23]", + "/run/devmap/rtms/rtm_ctrl_mdio_r_8_1": "/[RTM_R_RTM_CTRL_PORT_24]", + "/run/devmap/rtms/rtm_ctrl_mdio_r_9_1": "/[RTM_R_RTM_CTRL_PORT_25]", + "/run/devmap/rtms/rtm_ctrl_mdio_r_10_1": "/[RTM_R_RTM_CTRL_PORT_26]", + "/run/devmap/rtms/rtm_ctrl_mdio_r_11_1": "/[RTM_R_RTM_CTRL_PORT_27]", + "/run/devmap/rtms/rtm_ctrl_mdio_r_12_1": "/[RTM_R_RTM_CTRL_PORT_28]", + "/run/devmap/rtms/rtm_ctrl_mdio_r_13_1": "/[RTM_R_RTM_CTRL_PORT_29]", + "/run/devmap/rtms/rtm_ctrl_mdio_r_14_1": "/[RTM_R_RTM_CTRL_PORT_30]", + "/run/devmap/rtms/rtm_ctrl_mdio_r_15_1": "/[RTM_R_RTM_CTRL_PORT_31]", + "/run/devmap/rtms/rtm_ctrl_mdio_r_16_1": "/[RTM_R_RTM_CTRL_PORT_32]", "/run/devmap/sensors/RUNBMC_THERMAL_SENSOR": "/RUNBMC_SLOT@0/[RUNBMC_THERMAL_SENSOR]", "/run/devmap/sensors/COME_HWMON1": "/COMESE_SLOT@0/[COME_HWMON1]", "/run/devmap/sensors/COME_HWMON2": "/COMESE_SLOT@0/[COME_HWMON2]", @@ -1725,6 +1771,7 @@ }, "chassisEepromDevicePath": "/[CHASSIS_EEPROM]", "numXcvrs": 2, + "numRtms": 32, "bspKmodsRpmName": "fboss_bsp_kmods", "bspKmodsRpmVersion": "4.4.1-1", "nonBspKmodsToLoad": [