AnsweredAssumed Answered

Problem with HDCP certification

Question asked by reshmi on Mar 21, 2013
Latest reply on Mar 29, 2013 by reshmi

Hi,

 

We are using the repeater application with ADV7612 and ADV7511.

 

I am trying out HDMI certification 3C-II group tests which deal with HDCP functionalities. I see that test 3C-II-06, 3C-II-08 and 3C-II-09 fail on our board, but I tried the same tests on the evaluation board and they pass.

 

I am using the Quantum Data 882 test instrument, which can perform these tests. It does require this additional piece of test equipment from Quantum Data called Encryption Status Tester.

 

The connections are as described on page 743 of this document. http://www.quantumdata.com/pdf/880_ug_RevA32_hdcp.pdf The test has 2 parts. First is started by toggling the HPD line I think, and after some time, it requires a power cycle of the DUT. And then the second part of the test is conducted.

 

On the Quantum Data box there are some parameters for the test that we can set, and I set the Repeater MAX KSV to 12. The difference in behavior that I see is this.

 

Test summary:

  • 3C-II-08: Irregular procedure: (Second part of authentication) MAX_DEVS_EXCEEDED:Verify that Repeater (DUT) asserts Bstatus:MAX_DEVS_EXCEEDED bit when it receives a MAX_DEVS_EXCEEDED status from a downstream Repeater.

 

 

UNIT UNDER TEST INFORMATION (PCP SELECTIONS)

Repeater 1.1 Features Supported = 

NO

Repeater Audio Supported = 

YES

Repeater HDCP HPD Signal = 

YES

Repeater Max KSV = 

12

Repeater Authentication Count = 

1

Repeater CP&EDID HPD = 

NO

 

Failed case:

Test Results

  • [0]
  • TE detected hot plug from DUT.
  • 158.9220 sec
  • [1]
  • DUT is in DVI mode after HPD. Bstatus (MSB): 0x01
  • Frame counter = 0
  • 158.9232 sec
  • [2]
  • DUT responded with a Bksv with value (MSB->LSB) 0x472F391F09.
  • Frame counter = 0
  • 158.9252 sec
  • [3]
  • All reserved ports and bits are zero.
  • 158.9593 sec
  • [4]
  • DUT is in HDMI mode. Bstatus (MSB): 0x11
  • 159.4795 sec
  • [5]
  • DUT read Bcaps with value 0xC0.
  • Frame counter = 0
  • 161.4712 sec
  • [6]
  • TE read Bcaps (0xC0), wrote An (0xDF55D486C34E902B), wrote Aksv (0xD54E179645).
  • Frame counter = 0
  • 161.5307 sec
  • [7]
  • TE read Bcaps (0xC0) and Bksv (0x472F391F09).
  • Frame counter = 0
  • 161.5331 sec
  • [8]
  • R0 (MSB->LSB) 0xB757 matched R0' (MSB->LSB) 0xB757.
  • Frame counter = 0
  • 161.6469 sec
  • [9]
  • TE enabled HDCP Encryption.
  • 161.7293 sec
  • FAIL
  • Bstatus MAX_DEVS_EXCEEDED bit is not set. Bstatus (LSB): 0x01
  • Frame counter = 5
  • 167.1374 sec

 

 

Passed case:

 

Test Results

[0]

TE detected hot plug from DUT.

29.3331 sec

[1]

DUT is in DVI mode after HPD. Bstatus (MSB): 0x01

Frame counter = 0

29.3342 sec

[2]

DUT responded with a Bksv with value (MSB->LSB) 0x874B23E59A.

Frame counter = 0

29.3363 sec

[3]

All reserved ports and bits are zero.

29.3665 sec

[4]

DUT is in HDMI mode. Bstatus (MSB): 0x11

29.9194 sec

[5]

DUT read Bcaps with value 0xC0.

Frame counter = 0

31.9879 sec

[6]

TE read Bcaps (0xC0), wrote An (0xE2ACE4F98F59F4D4), wrote Aksv (0xD54E179645).

Frame counter = 0

32.0573 sec

[7]

TE read Bcaps (0xC0) and Bksv (0x874B23E59A).

Frame counter = 0

32.0612 sec

[8]

R0 (MSB->LSB) 0x7DF5 matched R0' (MSB->LSB) 0x7DF5.

Frame counter = 0

32.1756 sec

[9]

TE enabled HDCP Encryption.

32.2565 sec

INFORMATIONAL

DUT set the MAX_DEVS_EXCEEDED bit:

Bstatus (LSB): 0x81,

because it received a MAX_DEVS_EXCEEDED bit from a

downstream repeater.

Frame counter = 5

37.4651 sec

PASS

Test completed.

37.4655 sec

 

 

 

In the failed case I see that HDCP frame encryption is enabled, we get BKSV interrupt,  but BKSV count is 0, so the s/w says that it is the first BKSV. And a while afterwards, we time out waiting for TX BKSV list. After that we just keep getting the same 'received first BKSV' and timeouts.

 

In the passing case on the eval board, I see that after HDCP frame encryption is enabled, it straightaway gets ' HDCP Max Device Exceeded error received' and the s/w sets the correct bit 'MAX_DEVS_EXCEEDED' on BStatus.

 

Any ideas on why this behavior would differ? From what I can understand, this is interrupt driven, in one case it is BKSV interrupt and in the other it is an error. I have attached the last few lines of the logs in both cases. Any pointers would be helpful.

 

Thanks,

Reshmi.

Attachments

Outcomes