This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

66AK2G12: How do BOOTCFG_PADCONFIG resisters set? (SDK and GEL file for EVMK2GX)

Part Number: 66AK2G12
Other Parts Discussed in Thread: EVMK2GX, EVMK2G

Hi,

The evaluation board "EVMK2GX" operates with evmk2g.gel which is installed with CCS.

(The GEL file location : C:\ti\ccs1010\ccs\ccs_base\emulation\boards\evmk2g\gel)

I cannot find where BOOTCFG_PADCONFIG resister settings (0262 1000h to 0262 140Ch) is described in the GEL file.

However, during operation, BOOTCFG_PADCONFIG resisters have setting value by seeing Memory Browser of CCS.

Why? Please tell us how BOOTCFG_PADCONFIG resister settings (0262 1000h to 0262 140Ch) is set when EVMK2GX operates with evmk2g.gel.

(for example: The seting value of 0x02621000 is 0x00140003.)

I am supposed to create new GEL file based on the evmk2g.gel for our PCB with 66AK.

In order to do so, I would like to know how BOOTCFG_PADCONFIG resister settings (0262 1000h to 0262 140Ch) is set.

I temporarily added as described below.

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

#define PIN_GPMC_AD0 *(int *)(0x02621000) 
PIN_GPMC_AD0 = 0x00040000u;

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

However, the setting value is not changed. I thought the setting value change from 0x00140003 to 0x00040000 though.

Regards.

  • Hi,

    Our expert who is assigned on this thread is out on vacation and would be back during the week of June 21.

    Please note delay in response for this thread.

  • I'm looking forward to your reply.

  • Hi,

    I believe the BOOTCFG_PADCONFIG registers are set by the ROM code. Let me confirm on this and get back to you.

    Regards,

    Jianzhong

  • Thank you for your reply. I'm looking forward to your answer.

  • Hi,

    I confirmed with our ROM expert that these registers have reset values and may be changed by the ROM depending on the needs for PAD configuration. 

    You can change these registers in your application code, but you'll have to use the unlock and lock mechanism. Please refer to 66AK2G12 TRM, section 5.1.4.4 BOOTCFG_KICK0 Register, for detailed information. 

    Please also refer to following code in the K2G GEL file for how to change the registers:

        /* Step 1: Unlock Boot Config Registers */
        KICK0 = KICK0_UNLOCK;
        KICK1 = KICK1_UNLOCK;
    
        /* Step 15: Lock Boot Config Registers */
        KICK0 = 0x00000000;
        KICK1 = 0x00000000;
    

    Hope this is helpful.

    Regards,

    Jianzhong

  • Thank you for more information.

    My understanding is that I should describe GEL file as below.

    (1) Unlock by setting exact data values → (2) PDA resister writing → (3) Lock the resister 

    /* Step 1: Unlock Boot Config Registers */
    KICK0 = KICK0_UNLOCK;  // 83E70B13h
    KICK1 = KICK1_UNLOCK;  // 95A4F1E0h
    
    /* PAD resister setting */
    #define PIN_GPMC_AD0 *(int *)(0x02621000);
    PIN_GPMC_AD0 = 0x00040000u;
    
    /* Step 15: Lock Boot Config Registers */
    KICK0 = 0x00000000;
    KICK1 = 0x00000000;

    Is this flow correct?

    By the way, what's "ROM"? Where is "ROM"? in the 66AK keystone architecture?

    I'm a hardware (PCB, circuit design) engineer. So I cannot image.

    Regards.

  • Hi,

    Yes, your flow looks correct. You may want to use unsigned int * instead of int *:

    /* PAD resister setting */
    #define PIN_GPMC_AD0 (*(unsigned int *)(0x02621000));
    PIN_GPMC_AD0 = 0x00040000u;

    ROM stands for Read Only Memory which usually holds the program to boot the device.

    Regards,

    Jianzhong