AnsweredAssumed Answered

ADV7627 HDCP authentication issue

Question asked by SAM1 on Dec 10, 2015
Latest reply on May 16, 2018 by mattp

Hello,

 

We are developing an A/V product using the ADV7627 as a repeater.

We have run into an issue where the HDCP can no longer authenticate with any known good device (until a full reset is performed) after a connected Sony BDP-S2500 Blu-ray player is powered down.

We are able to fully duplicate this issue on a EVAL-ADV7625-SMZ board running BF_7627_XREP_X2.3.3REL_20150323 with 100% repeatability.

 

All seems well after powering on the eval board and the player. Here is the log when the player is powered down:

-Rx: 10:841 HDMI Hsync Filter not locked

-Rx: 10:841 There is no corresponding VIC. VIC is set to 0

APP: RX Video Stable = 0

-Rx: 10:842 HDMI Hsync Filter not locked

APP: RX Video Stable = 0

-Rx: 10:854 @@@@ RX Mute State changed to 2

-Tx: 10:860 #### Muted adding: AVMUTE

-Tx: 10:866 #### Muted using: AVMUTE BLKOUT ASP (RX Video not detected)

-Rx: 10:871 ----------> Int: Port A TMDS=0   1

-Rx: 10:873 ----------> Int: Intern Mute=1

-Rx: 10:875 ----------> Int: Port A PLL=0   1

-Rx: 10:879 ----------> Int: DE REGEN=0

-Rx: 10:881 ----------> Int: V Lock=0

-Rx: 10:883 ----------> Int: Port A Enc=0      RxState.Encrypted = 0

-Rx: 10:886 ----------> Int: STDI Valid=0

-Tx: 10:909 Setting audio parameters:

             SF=32 KHz  CC=2  HBR=No

-Tx: 10:914 HDCP off is desired delay

-Rx: 10:917 TMDS Clock  NOT  detected on selected port (A)

-Rx: 10:917 Resetting BKSV Waiting Status to 0 due to TMDS Change

APP: Freerun is ON. VIC is 16

-Rx: 10:929 Configuring Sync Polarity. H: 1, V: 1

-Rx: 10:931 @@@@ RX entering free-run

-Rx: 10:931 @@@@ RX started delay to unmute

-Tx: 11:044 #### Muted adding: AVMUTE

-Tx: 11:048 #### Muted using: TMDS AVMUTE BLKOUT ASP (TX PLL not locked)

-Rx: 11:061 Free-run CS is set to YUV

APP: Sending free-run AVI with Vic=16, CS=YUV

-Tx: 11:072 Configuring TX CSC:   YCbCr-709 444 --> YCbCr 444

-Tx: 11:075 Setting input AR = -Tx: 11:075 16x9

-Rx: 11:095 Video PLL Not Locked Port A

-Rx: 11:096 Port A Content Not Encrypted

-Rx: 11:096 Internal Mute On

-Rx: 11:097 @@@@ RX Mute State changed to 0

-Rx: 11:097 @@@@ RX unmute delay expired

-Rx: 11:129 ----------> Int: Aud N Change

-Rx: 11:130 ----------> Int: Aud Mode Change

-Rx: 11:148 Audio mode changed to UNKNOWN

-Rx: 11:162 Channel Status: 00 00 00 02 fb  N=0

-Tx: 11:178 Setting audio parameters:

             SF=48 KHz  CC=2  HBR=No

-Rx: 11:194 Received

Audio Info Frame Packet:

             84 01 0a 01 00 00 00 00   00 00 00 00 00

-Tx: 11:354 #### Muted adding: AVMUTE

-Tx: 11:360 #### Muted using: AVMUTE BLKOUT ASP (TMDS off delay passed)

-Tx: 11:668 #### Muted using: AVMUTE (Blackout delay passed)

APP: Unmute event received for CurrPath 0

-Tx: 11:776 #### Is now un-muted (AvMute delay passed)

-Rx: 11:805 ----------> Int: AKSV Update on port A, RxState.Encrypted = 0

-Rx: 11:820 BKSVs not ready, BKSV Request Sent,RxStatPkt.WaitingForBksv updated to: 0

-Rx: 12:954 ----------> Int: AKSV Update on port A, RxState.Encrypted = 0

-Rx: 12:960 BKSVs not ready, BKSV Request Sent,RxStatPkt.WaitingForBksv updated to: 0

-Rx: 13:329 ----------> Int: AKSV Update on port A, RxState.Encrypted = 0

-Rx: 13:335 BKSVs not ready, BKSV Request Sent,RxStatPkt.WaitingForBksv updated to: 0

-Rx: 13:704 ----------> Int: AKSV Update on port A, RxState.Encrypted = 0

-Rx: 13:710 BKSVs not ready, BKSV Request Sent,RxStatPkt.WaitingForBksv updated to: 0

-Rx: 14:094 ----------> Int: AKSV Update on port A, RxState.Encrypted = 0

-Rx: 14:100 BKSVs not ready, BKSV Request Sent,RxStatPkt.WaitingForBksv updated to: 0

-Rx: 14:469 ----------> Int: AKSV Update on port A, RxState.Encrypted = 0

-Rx: 14:475 BKSVs not ready, BKSV Request Sent,RxStatPkt.WaitingForBksv updated to: 0

 

Is it necessary to disconnect the HDMI cable between the player and the eval board to duplicate this problem.

It is because the pull-up on the eval board DDC SCL line has an internal path in the Sony player back to the HDMI 5V line (pin 18) so the eval board never sees the player as being turned off.

Here is the log when the HDMI cable is disconnected:

-Rx: 38:439 ----------> Int: Port A cable Det=0  1

XREP:: Changed system mode to Transmitter

APP: Freerun is ON. VIC is 16

-Rx: 38:959 Configuring Sync Polarity. H: 1, V: 1

-Rx: 38:961 @@@@ RX entering free-run

-Rx: 38:963 Free-run CS is set to YUV

APP: Sending free-run AVI with Vic=16, CS=YUV

-Tx: 38:974 Configuring TX CSC:   YCbCr-709 444 --> YCbCr 444

-Tx: 38:976 Setting input AR = -Tx: 38:976 16x9

-Rx: 39:005 Bcaps/Bstatus changed. Hdcp reset required

RX: BSTATUS Set to 0

-Rx: 39:009 HDCP setting change: BCAPS=0x80  Bstatus=0x0

 

After this, the eval board will not perform HDCP authentication with any known good device.

Here is a partial log (showing a repeating loop) when the player is connected again and turned on:

-Tx: 03:272 HDCP and Frame Encryption Enabled

-Tx: 03:315 HDCP authenticated Event Received

-Tx: 03:315 HDCP authenticated

-Tx: 03:317 1 of 1 BKSVs Read

             b3 da 5d 24 1c

-Tx: 03:318 BKSV list sent to HDMI RX

-Rx: 03:318 Got New BKSVs from HDMI TX

-Rx: 03:329 Writing 1 BKSVs to source if Rx Waiting For Bksv: 1, is true

-Rx: 03:329 Request Rx to SetB Status  and Ready bit

-Rx: 03:329 Writing RX BSTATUS = 0x1101

RX: BSTATUS Set to 1101

-Rx: 03:331 BKSV List ready bit set

-Tx: 03:615 #### Muted using: AVMUTE (Blackout delay passed)

APP: Unmute event received for CurrPath 0

-Tx: 03:724 #### Is now un-muted (AvMute delay passed)

-Rx: 03:747 ----------> Int: AKSV Update on port A, RxState.Encrypted = 0

-Rx: 03:747 Received AKSV update and BKSVs are ready

-Rx: 03:747 Request Rx to SetB Status  and Ready bit

-Rx: 03:747 Writing RX BSTATUS = 0x1101

RX: BSTATUS Set to 1101

-Rx: 03:749 BKSV List ready bit set

-Rx: 06:311 ----------> Int: AKSV Update on port A, RxState.Encrypted = 0

-Rx: 06:311 Received AKSV update and BKSVs are ready

-Rx: 06:311 Request Rx to SetB Status  and Ready bit

-Rx: 06:311 Writing RX BSTATUS = 0x1101

RX: BSTATUS Set to 1101

-Rx: 06:313 BKSV List ready bit set

-Rx: 07:061 ----------> Int: AKSV Update on port A, RxState.Encrypted = 0

-Rx: 07:061 Received AKSV update and BKSVs are ready

-Rx: 07:061 Request Rx to SetB Status  and Ready bit

-Rx: 07:061 Writing RX BSTATUS = 0x1101

RX: BSTATUS Set to 1101

-Rx: 07:063 BKSV List ready bit set

-Rx: 07:451 ----------> Int: AKSV Update on port A, RxState.Encrypted = 0

(this process will repeat forever)

 

A few other observations:

1) If I issue a STOP command to the eval board, turn off and unplug the player, then issue a RUN command, the same problem occurs.

2) On our own board, if we do a complete software and hardware initialization (ADIAPI_XRepSoftwareInit and ADIAPI_XRepHardwareInit), it will "fix" the problem. However, if I comment out ADIAPI_RxChipReset(RX_ALL_SECTIONS), the problem still occurs (in other words, a full hardware and software reset without a main reset of the ADV7627 does not fix the problem).

3) This problem seems very similar to the one outlined in this post: ADV7626 enters an RX HDCP error loop (Ri == 0) after hot-plug with various sources

 

Thank you in advance for your help.

Outcomes