Skip to content

Ladakh800bcls: Platform: Add mdio config in platform_manager#664

Closed
chee-zhang wants to merge 1 commit intofacebook:mainfrom
chee-zhang:ladakh800bcls_platform_add_mdio_config
Closed

Ladakh800bcls: Platform: Add mdio config in platform_manager#664
chee-zhang wants to merge 1 commit intofacebook:mainfrom
chee-zhang:ladakh800bcls_platform_add_mdio_config

Conversation

@chee-zhang
Copy link
Contributor

Pre-submission checklist

  • I've ran the linters locally and fixed lint errors related to the files I modified in this PR. You can install the linters by running pip install -r requirements-dev.txt && pre-commit install
  • pre-commit run
clang-format.........................................(no files to check)Skipped
trim trailing whitespace.................................................Passed
fix end of files.........................................................Passed
check yaml...........................................(no files to check)Skipped
check json...............................................................Passed
check for merge conflicts................................................Passed

Summary

According to the HW FPGA spec, add mdio config on RTM_L and RTM_R.
These MDIO controllers start and end address is illustrated in the following chart.

BUS address
1 0x200
2 0x220
3 0x240
4 0x260
5 0x280
6 0x2a0
7 0x2c0
8 0x2e0
9 0x300
10 0x320
11 0x340
12 0x360
13 0x380
14 0x3a0
15 0x3c0
16 0x3e0

Test Plan

Test log

Succeed to create mdio bus through fboss

  • Devices
├── mdio-busses
│   ├── RTM_L_MDIO_BUS_1 -> /dev/fb-mdio-1048
│   ├── RTM_L_MDIO_BUS_10 -> /dev/fb-mdio-1057
│   ├── RTM_L_MDIO_BUS_11 -> /dev/fb-mdio-1058
│   ├── RTM_L_MDIO_BUS_12 -> /dev/fb-mdio-1059
│   ├── RTM_L_MDIO_BUS_13 -> /dev/fb-mdio-1060
│   ├── RTM_L_MDIO_BUS_14 -> /dev/fb-mdio-1061
│   ├── RTM_L_MDIO_BUS_15 -> /dev/fb-mdio-1062
│   ├── RTM_L_MDIO_BUS_16 -> /dev/fb-mdio-1063
│   ├── RTM_L_MDIO_BUS_2 -> /dev/fb-mdio-1049
│   ├── RTM_L_MDIO_BUS_3 -> /dev/fb-mdio-1050
│   ├── RTM_L_MDIO_BUS_4 -> /dev/fb-mdio-1051
│   ├── RTM_L_MDIO_BUS_5 -> /dev/fb-mdio-1052
│   ├── RTM_L_MDIO_BUS_6 -> /dev/fb-mdio-1053
│   ├── RTM_L_MDIO_BUS_7 -> /dev/fb-mdio-1054
│   ├── RTM_L_MDIO_BUS_8 -> /dev/fb-mdio-1055
│   ├── RTM_L_MDIO_BUS_9 -> /dev/fb-mdio-1056
│   ├── RTM_R_MDIO_BUS_1 -> /dev/fb-mdio-1064
│   ├── RTM_R_MDIO_BUS_10 -> /dev/fb-mdio-1073
│   ├── RTM_R_MDIO_BUS_11 -> /dev/fb-mdio-1074
│   ├── RTM_R_MDIO_BUS_12 -> /dev/fb-mdio-1075
│   ├── RTM_R_MDIO_BUS_13 -> /dev/fb-mdio-1076
│   ├── RTM_R_MDIO_BUS_14 -> /dev/fb-mdio-1077
│   ├── RTM_R_MDIO_BUS_15 -> /dev/fb-mdio-1078
│   ├── RTM_R_MDIO_BUS_16 -> /dev/fb-mdio-1079
│   ├── RTM_R_MDIO_BUS_2 -> /dev/fb-mdio-1065
│   ├── RTM_R_MDIO_BUS_3 -> /dev/fb-mdio-1066
│   ├── RTM_R_MDIO_BUS_4 -> /dev/fb-mdio-1067
│   ├── RTM_R_MDIO_BUS_5 -> /dev/fb-mdio-1068
│   ├── RTM_R_MDIO_BUS_6 -> /dev/fb-mdio-1069
│   ├── RTM_R_MDIO_BUS_7 -> /dev/fb-mdio-1070
│   ├── RTM_R_MDIO_BUS_8 -> /dev/fb-mdio-1071
│   └── RTM_R_MDIO_BUS_9 -> /dev/fb-mdio-1072
  • dmesg
[root@localhost utils]# dmesg | grep mdio
[12385.042096] fboss_iob_mdio fboss_iob_pci.mdio_controller.1048: mdio controller registered (csr=0xfb548200)
[12385.141126] fboss_iob_mdio fboss_iob_pci.mdio_controller.1049: mdio controller registered (csr=0xfb548220)
[12385.212111] fboss_iob_mdio fboss_iob_pci.mdio_controller.1050: mdio controller registered (csr=0xfb548240)
[12385.283134] fboss_iob_mdio fboss_iob_pci.mdio_controller.1051: mdio controller registered (csr=0xfb548260)
[12385.355093] fboss_iob_mdio fboss_iob_pci.mdio_controller.1052: mdio controller registered (csr=0xfb548280)
[12385.427120] fboss_iob_mdio fboss_iob_pci.mdio_controller.1053: mdio controller registered (csr=0xfb5482a0)
[12385.498127] fboss_iob_mdio fboss_iob_pci.mdio_controller.1054: mdio controller registered (csr=0xfb5482c0)
[12385.570125] fboss_iob_mdio fboss_iob_pci.mdio_controller.1055: mdio controller registered (csr=0xfb5482e0)
[12385.641132] fboss_iob_mdio fboss_iob_pci.mdio_controller.1056: mdio controller registered (csr=0xfb548300)
[12385.713120] fboss_iob_mdio fboss_iob_pci.mdio_controller.1057: mdio controller registered (csr=0xfb548320)
[12385.784141] fboss_iob_mdio fboss_iob_pci.mdio_controller.1058: mdio controller registered (csr=0xfb548340)
[12385.856138] fboss_iob_mdio fboss_iob_pci.mdio_controller.1059: mdio controller registered (csr=0xfb548360)
[12385.927038] fboss_iob_mdio fboss_iob_pci.mdio_controller.1060: mdio controller registered (csr=0xfb548380)
[12385.999134] fboss_iob_mdio fboss_iob_pci.mdio_controller.1061: mdio controller registered (csr=0xfb5483a0)
[12386.071116] fboss_iob_mdio fboss_iob_pci.mdio_controller.1062: mdio controller registered (csr=0xfb5483c0)
[12386.143091] fboss_iob_mdio fboss_iob_pci.mdio_controller.1063: mdio controller registered (csr=0xfb5483e0)
[12386.214097] fboss_iob_mdio fboss_iob_pci.mdio_controller.1064: mdio controller registered (csr=0xfb540200)
[12386.286084] fboss_iob_mdio fboss_iob_pci.mdio_controller.1065: mdio controller registered (csr=0xfb540220)
[12386.357081] fboss_iob_mdio fboss_iob_pci.mdio_controller.1066: mdio controller registered (csr=0xfb540240)
[12386.429084] fboss_iob_mdio fboss_iob_pci.mdio_controller.1067: mdio controller registered (csr=0xfb540260)
[12386.500099] fboss_iob_mdio fboss_iob_pci.mdio_controller.1068: mdio controller registered (csr=0xfb540280)
[12386.572117] fboss_iob_mdio fboss_iob_pci.mdio_controller.1069: mdio controller registered (csr=0xfb5402a0)
[12386.643117] fboss_iob_mdio fboss_iob_pci.mdio_controller.1070: mdio controller registered (csr=0xfb5402c0)
[12386.715136] fboss_iob_mdio fboss_iob_pci.mdio_controller.1071: mdio controller registered (csr=0xfb5402e0)
[12386.787127] fboss_iob_mdio fboss_iob_pci.mdio_controller.1072: mdio controller registered (csr=0xfb540300)
[12386.859135] fboss_iob_mdio fboss_iob_pci.mdio_controller.1073: mdio controller registered (csr=0xfb540320)
[12386.932134] fboss_iob_mdio fboss_iob_pci.mdio_controller.1074: mdio controller registered (csr=0xfb540340)
[12387.005117] fboss_iob_mdio fboss_iob_pci.mdio_controller.1075: mdio controller registered (csr=0xfb540360)
[12387.077115] fboss_iob_mdio fboss_iob_pci.mdio_controller.1076: mdio controller registered (csr=0xfb540380)
[12387.149116] fboss_iob_mdio fboss_iob_pci.mdio_controller.1077: mdio controller registered (csr=0xfb5403a0)
[12387.221116] fboss_iob_mdio fboss_iob_pci.mdio_controller.1078: mdio controller registered (csr=0xfb5403c0)
[12387.293129] fboss_iob_mdio fboss_iob_pci.mdio_controller.1079: mdio controller registered (csr=0xfb5403e0)
  • Read/Write Register
[root@localhost utils]# ./mdio-ioctl-new -p /dev/fb-mdio-1048 rd 0 1 0x8b00
return value:3361 
[root@localhost utils]# ./mdio-ioctl-new -p /dev/fb-mdio-1048 rd 0 1 0x8b01
return value:80a0 
[root@localhost utils]# ./mdio-ioctl-new -p /dev/fb-mdio-1048 rd 0 1 0x8000
return value:0 
[root@localhost utils]# ./mdio-ioctl-new -p /dev/fb-mdio-1048 wr 0 1 0x8000 0xffff
[root@localhost utils]# ./mdio-ioctl-new -p /dev/fb-mdio-1048 rd 0 1 0x8000
return value:f7ff 
[root@localhost utils]# ./mdio-ioctl-new -p /dev/fb-mdio-1048 rd 0 1 0x8b00
return value:dead 
[root@localhost utils]# ./mdio-ioctl-new -p /dev/fb-mdio-1048 wr 0 1 0x8000 0
[root@localhost utils]# ./mdio-ioctl-new -p /dev/fb-mdio-1048 rd 0 1 0x8b00
return value:3361

@meta-cla meta-cla bot added the CLA Signed label Nov 14, 2025
Copy link
Contributor

@somasun somasun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@chee-zhang - can you share the phyId (and phy core id) to MDIO controller id mapping. I want to explore how we can keep this information in platform_manager.

@meta-codesync
Copy link

meta-codesync bot commented Nov 14, 2025

@somasun has imported this pull request. If you are a Meta employee, you can view this in D87096937.

@chee-zhang chee-zhang marked this pull request as ready for review November 17, 2025 01:33
@chee-zhang
Copy link
Contributor Author

@chee-zhang - can you share the phyId (and phy core id) to MDIO controller id mapping. I want to explore how we can keep this information in platform_manager.

Hi, @somasun , you can reference to this PR: #672

@meta-codesync
Copy link

meta-codesync bot commented Dec 3, 2025

@somasun merged this pull request in 6967520.

@chee-zhang chee-zhang deleted the ladakh800bcls_platform_add_mdio_config branch February 28, 2026 09:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants