Post Go back to editing

[ADV7480] Whether the status registers are automatically cleared when the HDMI cable is disconnected and then reconnected.

Category: Hardware
Product Number: ADV7480

Hello,

I have a question regarding whether the status registers are automatically cleared when the HDMI cable is disconnected and then reconnected.

Question:
Are the following registers automatically cleared when the HDMI cable is disconnected and then reconnected?
- hdcp_key_error, HDMI RX MAP, Address 0x04[4] (Read Only)
- aksv_update_a_raw, IO MAP, Address 0x8F[3] (Read Only)
- ri_expired_a_raw, IO MAP, Address 0x8F[2] (Read Only)
- aksv_update_a_st, IO MAP, Address 0x90[3] (Read Only)
- ri_expired_a_st, IO MAP, Address 0x90[2] (Read Only)

Or if these registers indicate an error during an HDMI connection, will the error state remain if the cable is disconnected and then reconnected?

Note : I know the function of these registers.
What I would like to know is whether these registers are automatically cleared when the HDMI cable is disconnected and then reconnected, even if they indicate an error.

Thank you!
Best regards.
Tamu

Parents
  • Hi Tamu San,

              We validated these registers in our ADV7619 eval board & here we don't have ADV7480 eval board. Please refer the register status in below snap for your reference.

             Kindly note that, While we disconnect or reconnect the cable, these HDCP registers will retain the current status value since this is read only register so it will read the current status of the particular functionality.

        If incase if it is self clearing registers then it will clear automatically.

      

    Thanks,

    Poornima

  • Hi Poornima-san,

    Thank you for your reply and your evaluation in ADV7619 eval board.
    Please let me ask two questions about the evaluation result as follows:

    -------------------------------------------------------------------------------------------------------------------------------
    Question 1:
    I think your evaluation results on your ADV7619 eval board can be summarized as follows:
    [HDMI source disconnected]
    -hdcp_key_error = 0
    -aksv_update_a_raw = 0
    -ri_expired_a_raw = 0
    -aksv_update_a_ST = 0
    -ri_expired_a_ST = 0

    [HDMI source reconnected]
    -hdcp_key_error = 0
    -aksv_update_a_raw = 0
    -ri_expired_a_raw = 0
    -aksv_update_a_ST = 0
    -ri_expired_a_ST = 0

    As a prerequisite for your evaluation, did you start the test with all of the above status register bits indicating "1" before the HDMI source was disconnected?

    -------------------------------------------------------------------------------------------------------------------------------
    Question 2:
    I performed the test with ADV748x Eval Board. The procedure and results are as follows:

    1. Advance preparation
       Output HDMI from the HDMI Signal Generator and input to the ADV748x.
       Write registers to the ADV748x.
       Script used: 01_32_HDMI_to_Pixel_Port_Stereo_I2S_audio_SDR8av_Out.py
       Set the following interrupts:
         AKSV_UPDATE_A_MB1 (IO map, 0x93, bit3) = 1 (Enable Port A AKSV Update interrupt on INTRQ1)
         RI_EXPIRED_A_MB1 (IO map, 0x93, bit2) = 1 (Enable Port A Ri expired interrupt on INTRQ1)
    2. Operate the Signal Generator and then the status register bits are to be the following states:
       - aksv_update_a_raw = 1
       - ri_expired_a_raw = 1
       - aksv_update_a_st = 1
       - ri_expired_a_st = 1
    3. HDMI source is disconnected and then check the status register bits.
        The results are as follows:
        - aksv_update_a_raw = 1
        - ri_expired_a_raw = 1
        - aksv_update_a_st = 1
        - ri_expired_a_st = 1
    4. HDMI source is reconnected and then check the status register bit.
        The results are as follows:
        - aksv_update_a_raw = 1
        - ri_expired_a_raw = 1
        - aksv_update_a_st = 1
        - ri_expired_a_st = 1
    Note : As for "hdcp_key_error", I was unable to check it on the evaluation board because we were unable to intentionally create an error state.

    From the above results, I don't think the above status register bits are cleared by unplugging and reconnecting the HDMI cable.
    Also, hdcp_key_error is "read-only" and there is no register to clear this bit, and in the ADV748x Hardware Manual "Figure 57. HDCP ROM Access After KSV Update from Transmitter" just after "Start" (immediately after "Aksv update from transmitter") it says "HDCP_KEY_ERROR = 0".
    So I think that this register bit will be automatically cleared to hdcp_key_error = 0 by the ADV748x after HDMI source disconnected and reconnected (strictly, after the Aksv Update from the HDMI source device).

    Is the above understanding correct?

    -------------------------------------------------------------------------------------------------------------------------------

    Thank you!
    Best regards.
    Tamu

  • Hi Tamu San,

              We evaluated these registers by configuring the 'AKSV_UPDATE_A_MB1' & 'RI_EXPIRED_A_MB1' interrupt but we are observing the value as '0' not '1' (We are using our Software driver not script)

    Connection Setup:

          Generator (HDCP ON) --> ADV7619 Evaluation Board --> Sink

    Kindly note that, 'HDCP_KEY_ERROR' register will indicate the error only when it encounter an error while reading the HDCP Key OTP ROM but it will not clear automatically while disconnecting or reconnecting the cable.

    Please refer below log attachment.

    /************************** Rx Reconnect**********************\
    
    
    >i2cw 98 8c 07                   //AKSV_UPDATE_A_MB1 & RI_EXPIRED_A_MB1 SET
                  Command is I2CW
    Argument1 is 98
    Argument2 is 8C
    Argument3 is 07
    I2CW 98 8C 07
    0x7 Written to 0x98:0x8c
    
    >i2cr 98 8c 1
                 Command is I2CR
    Argument1 is 98
    Argument2 is 8C
    Argument3 is 1
    I2CR 98 8C 1
    8c= 0x07
    
    >i2cr 68 04 1   //hdcp_key_error
                 Command is I2CR
    Argument1 is 68
    Argument2 is 04
    Argument3 is 1
    I2CR 68 04 1
    04= 0x23
    
    >i2cr 98 88 1  //aksv_update_a_raw
                 Command is I2CR
    Argument1 is 98
    Argument2 is 88
    Argument3 is 1
    I2CR 98 88 1
    88= 0x00
    
    >i2cr 98 88 1   //ri_expired_a_raw
                 Command is I2CR
    Argument1 is 98
    Argument2 is 88
    Argument3 is 1
    I2CR 98 88 1
    88= 0x00
    
    >i2cr 98 89 1  //aksv_update_a_st
                 Command is I2CR
    Argument1 is 98
    Argument2 is 89
    Argument3 is 1
    I2CR 98 89 1
    89= 0x00
    
    >i2cr 98 89 1   //ri_expired_a_st
                 Command is I2CR
    Argument1 is 98
    Argument2 is 89
    Argument3 is 1
    I2CR 98 89 1
    89= 0x00
    
    >
    
    /***************************  Rx Disconnect   ********************************\
    
    >i2cw 98 8c 07                       //AKSV_UPDATE_A_MB1 & RI_EXPIRED_A_MB1 SET
                  Command is I2CW
    Argument1 is 98
    Argument2 is 8C
    Argument3 is 07
    I2CW 98 8C 07
    0x7 Written to 0x98:0x8c
    
    >i2cr 98 8c 1
                 Command is I2CR
    Argument1 is 98
    Argument2 is 8C
    Argument3 is 1
    I2CR 98 8C 1
    8c= 0x07
    
    >i2cr 68 04 1   //hdcp_key_error
                 Command is I2CR
    Argument1 is 68
    Argument2 is 04
    Argument3 is 1
    I2CR 68 04 1
    04= 0x20
    
    >i2cr 98 88 1  //aksv_update_a_raw
                 Command is I2CR
    Argument1 is 98
    Argument2 is 88
    Argument3 is 1
    I2CR 98 88 1
    88= 0x00
    
    >i2cr 98 88 1  //ri_expired_a_raw
                 Command is I2CR
    Argument1 is 98
    Argument2 is 88
    Argument3 is 1
    I2CR 98 88 1
    88= 0x00
    
    >i2cr 98 89 1 //aksv_update_a_st
                 Command is I2CR
    Argument1 is 98
    Argument2 is 89
    Argument3 is 1
    I2CR 98 89 1
    89= 0x00
    
    >i2cr 98 89 1  //ri_expired_a_st
                 Command is I2CR
    Argument1 is 98
    Argument2 is 89
    Argument3 is 1
    I2CR 98 89 1
    89= 0x00
    
    >

    Thanks,

    Poornima

  • Hi Poornima-san,

    Thank you for your reply.

    What I want to know is whether these registers are automatically cleared when the HDMI cable is disconnected and then reconnected even if they indicate "1".

    --------------------------------------------------------------------------------------------------------------------------------------------------
    Question 1:
    As a prerequisite for your evaluation, did you start the test with all of the above status register bits indicating "1" before you disconnected the HDMI cable?

    --------------------------------------------------------------------------------------------------------------------------------------------------
    Question 2:
    About your comment about "HDCP_KEY_ERROR" as follows,
    >Kindly note that, 'HDCP_KEY_ERROR' register will indicate the error only when it encounter an error while reading the HDCP Key OTP ROM
    >but it will not clear automatically while disconnecting or reconnecting the cable.

    => Is your comment on the second line ("but it will not clear automatically while disconnecting or reconnecting the cable.") really correct?
    "Figure 57. HDCP ROM Access After KSV Update from Transmitter" on ADV748x Hardware Manual says "HDCP_KEY_ERROR = 0" just after "START".
    Please see the red box below.

    The "hdcp_key_error" is "read-only" bit, and there is no register to clear this bit,
    So the user can not clear this bit. I think ADV748x must clear this bit automatically.
    If your comment "it will not clear automatically while disconnecting or reconnecting the cable." is correct, after an HDCP Key Error occurs after an AKSV update and HDCP_KEY_ERROR = 1 occurs,
    the "HDCP_KEY_ERROR = 1" will remain even if we disconnect that source device and connect another source device.
    If this happens, the error (HDCP_KEY_ERROR = 1) with the previously connected source device will remain, and if we connect another source device, "Figure 57" will not be able to be completed successfully to the end.

    Is your comment on the second line ("but it will not clear automatically while disconnecting or reconnecting the cable.") really correct?
    I think that this register bit will be automatically cleared to hdcp_key_error = 0 by the ADV7480 after HDMI source disconnected and reconnected (strictly, after the Aksv Update from the HDMI source device).
    Is my understanding correct?

    --------------------------------------------------------------------------------------------------------------------------------------------------

    Thank you!
    Best regards.
    Tamu

  • Hi Tamu San,

      Please find the below comment,

    Question 1:
    As a prerequisite for your evaluation, did you start the test with all of the above status register bits indicating "1" before you disconnected the HDMI cable?

      Please let us know the procedure of making this status register bit as '1'  and here we are observing these register value as '0' only.

    Question 2:

         Regarding 'HDCP_KEY_ERROR', We need to check it on our evaluation board by intentionally creating an HDCP error state.

    Thanks,

    Poornima

  • Hi Poornima-san,

    Thank you for your reply.

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------
    >>Question 1:
    >>As a prerequisite for your evaluation, did you start the test with all of the above status register bits indicating "1" before you disconnected the HDMI cable?

    Your comment:
    >Please let us know the procedure of making this status register bit as '1' and here we are observing these register value as '0' only.

    =>By repeatedly turning the HDCP of HDMI signal generator on and off, I was able to set the status registers to 1.
    Please see my previous comment "2" below:

    I performed the test with the ADV748x Eval Board. The procedure and results are as follows.
    1. Advance preparation
    Output HDMI from the HDMI Signal Generator and input to the ADV748x.
    Write registers to the ADV748x.
    Script used: 01_32_HDMI_to_Pixel_Port_Stereo_I2S_audio_SDR8av_Out.py
    Set the following interrupts:
    AKSV_UPDATE_A_MB1 (IO map, 0x93, bit3) = 1 (Enable Port A AKSV Update interrupt on INTRQ1)
    RI_EXPIRED_A_MB1 (IO map, 0x93, bit2) = 1 (Enable Port A Ri expired interrupt on INTRQ1)

    2. Operate the Signal Generator and then the status register bits are to be the following states:
    - aksv_update_a_raw = 1
    - ri_expired_a_raw = 1
    - aksv_update_a_st = 1
    - ri_expired_a_st = 1

    3. HDMI source disconnected and then check the status register bits.
    The results are as follows:
    - aksv_update_a_raw = 1
    - ri_expired_a_raw = 1
    - aksv_update_a_st = 1
    - ri_expired_a_st = 1

    4. HDMI source reconnected and then check the status register bit.
    The results are as follows:
    - aksv_update_a_raw = 1
    - ri_expired_a_raw = 1
    - aksv_update_a_st = 1
    - ri_expired_a_st = 1

    Note : As for "hdcp_key_error", I was unable to check it on the evaluation board because we were unable to intentionally create an error state.

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------
    >Question 2:
    >Regarding 'HDCP_KEY_ERROR', We need to check it on our evaluation board by intentionally creating an HDCP error state.

    => As for "hdcp_key_error", I was unable to check it on the evaluation board because we were unable to intentionally create an error state.
    Since "hdcp_key_error" is a register that is completed within the ADV748x and indicates "1", I don't think the user can intentionally make it indicate "1". Is there any way to do this?

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------

    What I want to know is whether these following registers are automatically cleared when the HDMI cable is disconnected and then reconnected even if they indicate "1".
    - hdcp_key_error, HDMI RX MAP, Address 0x04[4] (Read Only)
    - aksv_update_a_raw, IO MAP, Address 0x8F[3] (Read Only)
    - ri_expired_a_raw, IO MAP, Address 0x8F[2] (Read Only)
    - aksv_update_a_st, IO MAP, Address 0x90[3] (Read Only)
    - ri_expired_a_st, IO MAP, Address 0x90[2] (Read Only)

    Thank you!
    Best regards.
    Tamu

  • Hi Tamu San,

        Please find our below comment,

          Question 1: What I want to know is whether these following registers are automatically cleared when the HDMI cable is disconnected and then reconnected even if they indicate "1".

             These registers retain the same value either '0' or '1' while disconnecting or reconnecting the cable so it is not clearing automatically.

            After followed your procedure by keep on changing the HDCP ON & OFF,  At first we observed the value as '1' but after continues debug print we reset the board then these register value is become '0'.

          By concluding this, These register are retaining the same value only & it's not clearing automatically.

         Question 2: "hdcp_key_error" is a register that is completed within the ADV748x and indicates "1", I don't think the user can intentionally make it indicate "1". Is there any way to do this?

            We are thinking to make it on our software driver side.

    Thanks,

    Poornima

  • Hi Poornima-san,

    Thank you for your reply.

    I could understand that the aksv_update_a_raw, ri_expired_a_raw, aksv_update_a_st and ri_expired_a_st register bits are not automatically cleared even if we plug and unplug the HDMI cable.

    As for "hdcp_key_error," I don't think it is possible to intentionally set it to an error state ("1") from the software driver side.
    The "hdcp_key_error "is "read-only" and there is no register to clear this bit, and in the ADV748x Hardware Manual "Figure 57. HDCP ROM Access After KSV Update from Transmitter" just after "Start" (immediately after "Aksv update from transmitter") it says "HDCP_KEY_ERROR = 0".

    Please see the red box below.

    So I think that this register bit will be automatically cleared to hdcp_key_error = 0 by the ADV7480 after HDMI source disconnected and reconnected (strictly, after the Aksv Update from the HDMI source device).
    What do you think?

    Thank you!
    Best regards.
    Tamu

  • Hi Tamu San, 

       "hdcp_key_error," I don't think it is possible to intentionally set it to an error state ("1") from the software driver side. The "hdcp_key_error "is "read-only" and there is no register to clear this bit, and in the ADV748x Hardware Manual

           Kindly note that, Here i mean it by making HDCP authentication protocol failure in order to get HDCP key error state but not with "HDCP_KEY_ERROR" register bit.

    I think that this register bit will be automatically cleared to hdcp_key_error = 0 by the ADV7480 after HDMI source disconnected and reconnected (strictly, after the Aksv Update from the HDMI source device).

        YES, You are right.

    Note:  If a user wants to check the values of the HDCP_KEY_READ and HDCP_KEY_ERROR bits, they should wait 2 ms after an AKSV update before reading them back to make sure the flow in Figure 57 finished being executed by the ADV748x, and that therefore the HDCP_KEY_READ and HDCP_KEY_ERROR bits have been updated and are ready to be read.

    Thanks,

    Poornima

Reply Children
No Data