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.

How to configure OMAP3730 GPMC settings for peripherals

Hi Teams,

I was confused by GPMC settings recently, in my opinion, what i should configure is just registers from GPMC_CONFIG1_i to GPMC_CONFIG7_i.

The following settings are from TI's LAN setting on GPMC, CS5 is used.

         // Configure CS5 for LAN,  Base Address 0x15000000
        OUTREG32(&pGpmc->GPMC_CONFIG1_5, BSP_GPMC_LAN_CONFIG1_200);
        OUTREG32(&pGpmc->GPMC_CONFIG2_5, BSP_GPMC_LAN_CONFIG2_200);
        OUTREG32(&pGpmc->GPMC_CONFIG3_5, BSP_GPMC_LAN_CONFIG3_200);
        OUTREG32(&pGpmc->GPMC_CONFIG4_5, BSP_GPMC_LAN_CONFIG4_200);
        OUTREG32(&pGpmc->GPMC_CONFIG5_5, BSP_GPMC_LAN_CONFIG5_200);
        OUTREG32(&pGpmc->GPMC_CONFIG6_5, BSP_GPMC_LAN_CONFIG6_200);
        OUTREG32(&pGpmc->GPMC_CONFIG7_5, BSP_GPMC_LAN_CONFIG7);

And i tried to duplicate the LAN's setting for my CAN bus interface - SJA1000T,which connect with CS3 bank.

  // Configure CS3 for SJA1000T,Base Address 0x20000000
        OUTREG32(&pGpmc->GPMC_CONFIG1_3, BSP_GPMC_CAN_CONFIG1_200);
       OUTREG32(&pGpmc->GPMC_CONFIG2_3, BSP_GPMC_CAN_CONFIG2_200);
       OUTREG32(&pGpmc->GPMC_CONFIG3_3, BSP_GPMC_CAN_CONFIG3_200);
       OUTREG32(&pGpmc->GPMC_CONFIG4_3, BSP_GPMC_CAN_CONFIG4_200); 
       OUTREG32(&pGpmc->GPMC_CONFIG5_3, BSP_GPMC_CAN_CONFIG5_200); 
       OUTREG32(&pGpmc->GPMC_CONFIG6_3, BSP_GPMC_CAN_CONFIG6_200); 
       OUTREG32(&pGpmc->GPMC_CONFIG7_3, BSP_GPMC_CAN_CONFIG7);

The macro above is listed as follows:

//  CONFIGx for L3=200M
#define BSP_GPMC_LAN_CONFIG1_200       0x00001000       // no wait, 16 bit, non multiplexed
#define BSP_GPMC_LAN_CONFIG2_200       0x000A0A00       // CS OffTime 50ns
#define BSP_GPMC_LAN_CONFIG3_200       0x00020201       // we don't use ADV
#define BSP_GPMC_LAN_CONFIG4_200       0x0A000A00       // Deassert #WE, #OE at 50ns
#define BSP_GPMC_LAN_CONFIG5_200       0x01081414       // Cycle time 100ns, access time 40ns
#define BSP_GPMC_LAN_CONFIG6_200       0x00000F80       // Delay 75ns between successive accesses to meet minimum cycle time
#define BSP_GPMC_LAN_CONFIG7       ((BSP_LAN9115_REGS_PA >> 24) | BSP_LAN9115_MASKADDRESS | GPMC_CSVALID)

// SJA1000T settings
//  xxns minimum cycle time for back to back accesses
//  40ns min CS,OE,WE assertion
//  15ns min deassertion
// CONFIGx for L3 200M

#define BSP_GPMC_CAN_CONFIG1_200       0x00000000       // no wait, 8 bit, non multiplexed
#define BSP_GPMC_CAN_CONFIG2_200       0x000A0A00       // CS OffTime 50ns
#define BSP_GPMC_CAN_CONFIG3_200       0x00020201       // we don't use ADV
#define BSP_GPMC_CAN_CONFIG4_200       0x0A000A00       // Deassert #WE, #OE at 50ns
#define BSP_GPMC_CAN_CONFIG5_200       0x01081414       // Cycle time 100ns, access time 40ns
#define BSP_GPMC_CAN_CONFIG6_200       0x00000F80       // Delay 75ns between successive accesses to meet minimum cycle time
#define BSP_GPMC_CAN_CONFIG7       ((0x20000000 >> 24) | GPMC_MASKADDRESS_16MB | GPMC_CSVALID)

However, the NK generated can not boot successfully, it halt during CS3 configuration phase. It seemed my settings for CS3 is incorrect,  could anyone tell me is there anything wrong or missing?