Xilinx / Xilinx/embeddedsw

DP 1.4 RX : Wrong mask used when modifying MCDP6000 register

Open
#272 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
HTML
Stars
1.2k
Forks
1.1k
PR merge metrics
No merged PRs in 30d

Description

Hello,
Commit c3fde06710739985a11b9cf21138c17f1dcdf512 introduced a new bug in the DP 1.4 RX driver.

XDpRxSs_MCDP6000_ModifyRegister(DpRxSsPtr->IicPtr->BaseAddress,
			XDPRXSS_MCDP6000_IIC_SLAVE, 0x0A00,
			0x55000000, 0x55000000);

The last parameter, the bit mask, should be 0xFF000000 instead of 0x55000000.

Bits 31 to 24 of the 0x0A00 register have two valid values:
0x55 : Transparent
0xAA : Non-Transparant

If the current value is 0xAA, then after XDpRxSs_MCDP6000_ModifyRegister is called the value will be 0xFF, which is invalid.
We have seen this scenario happen after reconnecting the DP input on a graphics card output.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Locate the DP 1.4 RX driver's call to XDpRxSs_MCDP6000_ModifyRegister for register 0x0A00 and inspect how its final mask is used. Verify that the change preserves the documented 0x55 and 0xAA values after reconnecting the DP input, using any focused driver test available.

Written by the indexing model from the issue text.

Assessment

Domain
embedded-iot
Issue type
Bug
Difficulty
1/5
Estimated time
Under an hour
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.