Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Read ID register for optoe1 to find pageable bit in optoe driver #308

Merged
merged 7 commits into from
Mar 16, 2023

Conversation

mihirpat1
Copy link
Contributor

The current optoe driver looks at bit 2 for all optoe1
(dev_class as ONE_ADDR) transceivers to detect if it's pageable or not.
However, for 100G CMIS based transceivers, some platforms use it as optoe1
and not optoe3. With CMIS, the pageable bit has now changed to bit 7 for
the same register. This causes incorrect behavior when the driver checks
for pageability on 100G CMIS transceiver and hence, we need to
read the transceiver ID to see if the transceiver is CMIS based and then
find the relevant pageable bit.

Test result
Tested the changes on a switch with a 100G CMIS and non-CMIS transceiver

Signed-off-by: Mihir Patel patelmi@microsoft.com

@mihirpat1 mihirpat1 requested a review from prgeor March 10, 2023 21:50
@mihirpat1
Copy link
Contributor Author

@prgeor @Staphylo - It will be great if you can help in reviewing this

Copy link
Contributor

@Staphylo Staphylo left a comment

Choose a reason for hiding this comment

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

Your change looks good to me.
The only comment I might have is that the comment doesn't easily convey that this change only applies to QSFP w/ CMIS and not SFP w/ CMIS.
A mention of the SFF-8024 spec could be useful to explain where the magic ID values come from.

@mihirpat1
Copy link
Contributor Author

Your change looks good to me. The only comment I might have is that the comment doesn't easily convey that this change only applies to QSFP w/ CMIS and not SFP w/ CMIS. A mention of the SFF-8024 spec could be useful to explain where the magic ID values come from.

Addressed this now.

@prgeor
Copy link
Contributor

prgeor commented Mar 13, 2023

@mihirpat1 can you update the test result for performance issue for reading additional bytes?

@paulmenzel
Copy link
Contributor

@donboll, could you please review the series?

@mihirpat1
Copy link
Contributor Author

@mihirpat1 can you update the test result for performance issue for reading additional bytes?

I have updated the test summary for the same now.

@prgeor prgeor merged commit 6847319 into sonic-net:master Mar 16, 2023
@prgeor
Copy link
Contributor

prgeor commented Mar 16, 2023

@StormLiangMS please cherry pick to 202211
@yxieca please cherry pick to 202205

yxieca pushed a commit that referenced this pull request Mar 17, 2023
* Fixes for emmc unreliability (#270)

* Read ID register to find pageable bit in optoe driver

Signed-off-by: Mihir Patel <patelmi@microsoft.com>

* Modified comment in code to make it QSFP specific

* Changed QSFP+ to QSFP28 in comment

* Added performance stats related to EEPROM read

---------

Signed-off-by: Mihir Patel <patelmi@microsoft.com>
Co-authored-by: Samuel Angebault <staphylo@arista.com>
Co-authored-by: Prince George <45705344+prgeor@users.noreply.github.com>
vivekrnv added a commit to vivekrnv/sonic-buildimage that referenced this pull request Mar 17, 2023
Update sonic-linux-kernel submodule pointer to include the following:
* 6847319 Read ID register for optoe1 to find pageable bit in optoe driver  ([sonic-net#308](sonic-net/sonic-linux-kernel#308))
* 42ad073 Add markers to faciliate easy parsing of kconfig-inclusion and series ([sonic-net#309](sonic-net/sonic-linux-kernel#309))

Signed-off-by: Vivek Reddy <vkarri@nvidia.com>
@donboll
Copy link
Contributor

donboll commented Mar 18, 2023 via email

liat-grozovik pushed a commit to sonic-net/sonic-buildimage that referenced this pull request Mar 21, 2023
Update sonic-linux-kernel submodule pointer to include the following:
* 6847319 Read ID register for optoe1 to find pageable bit in optoe driver  ([#308](sonic-net/sonic-linux-kernel#308))
* 42ad073 Add markers to faciliate easy parsing of kconfig-inclusion and series ([#309](sonic-net/sonic-linux-kernel#309))

Signed-off-by: Vivek Reddy <vkarri@nvidia.com>
StormLiangMS pushed a commit that referenced this pull request Apr 13, 2023
* Fixes for emmc unreliability (#270)

* Read ID register to find pageable bit in optoe driver

Signed-off-by: Mihir Patel <patelmi@microsoft.com>

* Modified comment in code to make it QSFP specific

* Changed QSFP+ to QSFP28 in comment

* Added performance stats related to EEPROM read

---------

Signed-off-by: Mihir Patel <patelmi@microsoft.com>
Co-authored-by: Samuel Angebault <staphylo@arista.com>
Co-authored-by: Prince George <45705344+prgeor@users.noreply.github.com>
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.

8 participants