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.

AM4376: Custom board UART issue

Part Number: AM4376

I have AM4376 based custom board having one 16 bit DDR3 interface.

I have taken the AM437x Evk board U-boot source and made changes to pinmux files for the custom board. So I will be using the Evk board config only while building SPL and U-boot.

For initial board bootup I have loaded SPL through JTAG at 0x402F4000 using CCS. I am not getting debug logs in the minicom console.

In the custom board UART5 pins are taken out and I have done following changes for UART5 in pinmux file.



static struct module_pin_mux uart5_pin_mux[] = {
    {OFFSET(dss_data14), (MODE(4) | PULLUP_EN | RXACTIVE | SLEWCTRL)},
    {OFFSET(rmii1_ref_clk), (MODE(3) | PULLUDDIS | PULLUP_EN | SLEWCTRL)},
    {-1},
};



I couldn't able to see any debug entries in the minicom console. Can you guide to debug this issue.


USB0_DP/DM pins also taken out on the custom board with USB connector, the following entry I got from pinmux file so I have placed the same in the pinmux file. I tried minicom with USB connector on the board, but no logs. Please let me know following pinmux entry is sufficient or any modifications required?



static pinmuxPerCfg_t gUsb0PinCfg[] =
{
    {
       /* MyUSB1 -> USB0_DRVVBUS -> G21 */
       PIN_USB0_DRVVBUS, 0, \
       ( \
           PIN_MODE(0) | \
           ((PIN_PULL_UD_DIS | PIN_PULL_UP_EN | PIN_DS_VALUE_OVERRIDE_EN | PIN_DS_OP_DIS | PIN_DS_PULL_UP_EN) & \
           (~PIN_RX_ACTIVE & ~PIN_DS_OP_VAL_1 & ~PIN_DS_PULL_UD_EN & ~PIN_WAKE_UP_EN))
       ) \
    },
    {PINMUX_INVALID_PIN}
};


  • Which SDK version is this?
  • ti-processor-sdk-linux-am437x-evm-03.02.00.05
  • We have a custom AM4376 board with one 16 bit DDR3.

    I made the below changes for my custom board, but still I am not getting the debug console logs in minicom

    SDK : ti-processor-sdk-linux-am437x-evm-03.02.00.05

    1. Pin MUX configuration for UART5.

    Added the below changes in the following file "board/ti/am43xx/mux.c" to support UART5 Pinx MUX configuration.

    static struct module_pin_mux uart5_pin_mux[] = {
    {OFFSET(lcd_data14), (MODE(4) | PULLUP_EN | RXACTIVE | SLEWCTRL)},
    {OFFSET(rmii1_refclk), (MODE(3) | PULLUDDIS | PULLUP_EN | SLEWCTRL)},
    {-1},
    };

    Added function call to configure pin mux for UART5.

    void enable_uart5_pin_mux(void)
    {
    configure_module_pin_mux(uart5_pin_mux);
    }

    2. Edited the file "board/ti/am43xx/board.c" to add required changes for UART5 pin mux.

    void set_uart_mux_conf(void)
    {
    enable_uart5_pin_mux();

    }

    3. Changes in file "board/ti/am43xx/board.h"

    Added prototype declaration for function "enable_uart5_pin_mux()"

    void enable_uart5_pin_mux(void);

    4. Added uart clock for UART5 in the file "arch/arm/cpu/armv7/am33xx/clock_am43xx.c"

    in the function: "setup_clocks_for_console(void), edited the below lines to add support for UART5

    /* Enable UART5 */
    clrsetbits_le32(&cmper->uart5clkctrl,
    MODULE_CLKCTRL_MODULEMODE_MASK,
    MODULE_CLKCTRL_MODULEMODE_SW_EXPLICIT_EN <<
    MODULE_CLKCTRL_MODULEMODE_SHIFT);

    while ((idlest == MODULE_CLKCTRL_IDLEST_DISABLED) ||
    (idlest == MODULE_CLKCTRL_IDLEST_TRANSITIONING)) {
    clkctrl = readl(&cmper->uart5clkctrl);
    idlest = (clkctrl & MODULE_CLKCTRL_IDLEST_MASK) >>
    MODULE_CLKCTRL_IDLEST_SHIFT;
    }

    5. Added uart clock reset support for UART5 in the file "arch/arm/cpu/armv7/am33xx/board.c"

    #define UART5_BASE_ADD 0x481AA000
    static void uart_soft_reset(void)
    {
    struct uart_sys *uart_base = (struct uart_sys *)UART5_BASE_ADD;
    u32 regval;

    regval = readl(&uart_base->uartsyscfg);
    regval |= UART_RESET;
    writel(regval, &uart_base->uartsyscfg);
    while ((readl(&uart_base->uartsyssts) &
    UART_CLK_RUNNING_MASK) != UART_CLK_RUNNING_MASK);

    /* Disable smart idle */
    regval = readl(&uart_base->uartsyscfg);
    regval |= UART_SMART_IDLE_EN;
    writel(regval, &uart_base->uartsyscfg);
    }

    6. Edited make file of the following path "board/ti/am43xx/Makefile" to generate mux obj file to link.

    ifeq ($(CONFIG_SKIP_LOWLEVEL_INIT),)
    obj-y := mux.o
    endif
    obj-y := mux.o

    obj-y += board.o

    7. Added UART5 base address and port configuration in the "include/configs/am43xx_evm.h" file as shown below.

    #define CONFIG_SYS_NS16550_COM6 0x481aa000 /* Base custom board has UART5 */

    Replaced the boot-args parameter ""console=ttyO0,115200n8\0" \" to ""console=ttyO5,115200n8\0" \ " to support UART5 console.

    compile the U-boot code I am using the below command

    make CROSS_COMPILE=/home/ti-processor-sdk-linux-am437x-evm-03.02.00.05/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/arm-linux-gnueabihf- O=am43xx_evm_pin am43xx_evm_defconfig

    8. I also made the below change in "configs/am43xx_evm_defconfig"

    we replaced the CONFIG_SYS_EXTRA_OPTIONS="SERIAL1, CONS_INDEX=1,NAND"  with  CONFIG_SYS_EXTRA_OPTIONS="SERIAL6,CONS_INDEX=6"

    Is debug console logs depends on the DDR3 configuration ?

    Is there any user guide for UART configuration[ Mux and clock configuration etc]  ?

    please guide me to resolve the issue.

  • Hi,

    No debug console does not depend on ddr3 configuration.

    You need to build your uboot with am437x_evm_config... not sure where you get the O=am43xx_evm_pin am43xx_evm_defconfig part.

    Also have in mind that latest TISDKs use dts in u-boot, so you need to add uart5 in your dts as well (it is located in arch/arm/dts/am437x-gp-evm.dts.

    Best Regards,
    Yordan
  • Hi,

    Thank you very much  for your fast reply


    My SYSBOOT PINS configuration : [15-0]

                                            [0100 0000 0001 1001]


    1. I tried with am437x_evm_defconfig
        But I got the below error
         Can't find default configuration "arch/../configs/am437x_evm_defconfig"!

         I did not find this file in my source code.

         Could you please provide the path where I will get  this file.

      

    DTS file changes:

    =============


    2. I used the TI pin mux tool, that is generated the device tree file also.

      Added below UART5 entries in arch/arm/dts/am437x-gp-evm.dts

         aliases {
                display0 = &lcd0;
                 serial3 = &uart3;
                 serial5 = &uart5;
            };

        &uart5 {
                status = "okay";
                pinctrl-names = "default";
                pinctrl-0 = <&uart5_pins>;
        };

         uart5_pins: uart5_pins {
            pinctrl-single,pins = <
            0xd8 ( PIN_INPUT | MUX_MODE4 ) /* (C17) dss_data14.uart5_rxd */
            0x144 ( PIN_OUTPUT | MUX_MODE3 ) /* (A16) rmii1_ref_clk.uart5_txd */
            >;
        };

    Modified the below entries for USB port [for bebug logs]

    usb1_pins: pinmux_usb1_pins {
        pinctrl-single,pins = <
            0x2c0 ( PIN_OUTPUT | MUX_MODE0 ) /* (G21) USB0_DRVVBUS.USB0_DRVVBUS */
        >;
    };

    &usb1 {
        dr_mode = "peripheral";
        status = "okay";
        pinctrl-names = "default";
       pinctrl-0 = <&usb1_pins>;
    };

    could you please verify my device tree entries proper or not .


    2.  Enabled below entries in configs/am43xx_evm_defconfig

        CONFIG_OF_EMBED=y


    But still not getting any console logs[either in usb or serial].

    Now I am using booting  from JTAG and able to execute preloader_console_init() function completely  but still not getting any logs.

    I am attaching my  U-boot configuration file.

    Is there any extra configuration required ?  

    We identified the place where it is deviating

    It is going  to   printf("Clock enable failed for 0x%p idlest 0x%x\n", clkctrl_addr, clkctrl);  in   wait_for_clk_enable() function.

    In "arch/arm/cpu/armv7/am33xx/clock_am43xx.c "  ,      void setup_clocks_for_console(void) function

    We replaced.

    /* Do not add any spl_debug prints in this function */
        clrsetbits_le32(&cmwkup->wkclkstctrl, CD_CLKCTRL_CLKTRCTRL_MASK,
                CD_CLKCTRL_CLKTRCTRL_SW_WKUP <<
                CD_CLKCTRL_CLKTRCTRL_SHIFT);

    with below code

     clrsetbits_le32(&cmper->l4lsclkstctrl, CD_CLKCTRL_CLKTRCTRL_MASK,
                CD_CLKCTRL_CLKTRCTRL_SW_WKUP <<
                CD_CLKCTRL_CLKTRCTRL_SHIFT);

    But still it is going to the printf("Clock enable failed for 0x%p idlest 0x%x\n", clkctrl_addr, clkctrl);  in   wait_for_clk_enable() function.

    as we are using different UART from reference design, we are expecting your support here.

    please provide if there any user guide for UART configuration.

    Thanks in advance

    #
    # Automatically generated file; DO NOT EDIT.
    # U-Boot 2016.05 Configuration
    #
    CONFIG_CREATE_ARCH_SYMLINK=y
    CONFIG_HAVE_GENERIC_BOARD=y
    CONFIG_SYS_GENERIC_BOARD=y
    # CONFIG_ARC is not set
    CONFIG_ARM=y
    # CONFIG_AVR32 is not set
    # CONFIG_BLACKFIN is not set
    # CONFIG_M68K is not set
    # CONFIG_MICROBLAZE is not set
    # CONFIG_MIPS is not set
    # CONFIG_NDS32 is not set
    # CONFIG_NIOS2 is not set
    # CONFIG_OPENRISC is not set
    # CONFIG_PPC is not set
    # CONFIG_SANDBOX is not set
    # CONFIG_SH is not set
    # CONFIG_SPARC is not set
    # CONFIG_X86 is not set
    CONFIG_SYS_ARCH="arm"
    CONFIG_SYS_CPU="armv7"
    CONFIG_SYS_SOC="am33xx"
    CONFIG_SYS_VENDOR="ti"
    CONFIG_SYS_BOARD="am43xx"
    CONFIG_SYS_CONFIG_NAME="am43xx_evm"
    
    #
    # ARM architecture
    #
    CONFIG_HAS_VBAR=y
    CONFIG_HAS_THUMB2=y
    CONFIG_CPU_V7=y
    # CONFIG_SEMIHOSTING is not set
    # CONFIG_SYS_L2CACHE_OFF is not set
    # CONFIG_ARCH_AT91 is not set
    # CONFIG_TARGET_EDB93XX is not set
    # CONFIG_TARGET_VCMA9 is not set
    # CONFIG_TARGET_SMDK2410 is not set
    # CONFIG_TARGET_ASPENITE is not set
    # CONFIG_TARGET_GPLUGD is not set
    # CONFIG_ARCH_DAVINCI is not set
    # CONFIG_KIRKWOOD is not set
    # CONFIG_ARCH_MVEBU is not set
    # CONFIG_TARGET_DEVKIT3250 is not set
    # CONFIG_TARGET_WORK_92105 is not set
    # CONFIG_TARGET_MX25PDK is not set
    # CONFIG_TARGET_ZMX25 is not set
    # CONFIG_TARGET_APF27 is not set
    # CONFIG_TARGET_APX4DEVKIT is not set
    # CONFIG_TARGET_XFI3 is not set
    # CONFIG_TARGET_M28EVK is not set
    # CONFIG_TARGET_MX23EVK is not set
    # CONFIG_TARGET_MX28EVK is not set
    # CONFIG_TARGET_MX23_OLINUXINO is not set
    # CONFIG_TARGET_BG0900 is not set
    # CONFIG_TARGET_SANSA_FUZE_PLUS is not set
    # CONFIG_TARGET_SC_SPS_1 is not set
    # CONFIG_ORION5X is not set
    # CONFIG_TARGET_SPEAR300 is not set
    # CONFIG_TARGET_SPEAR310 is not set
    # CONFIG_TARGET_SPEAR320 is not set
    # CONFIG_TARGET_SPEAR600 is not set
    # CONFIG_TARGET_STV0991 is not set
    # CONFIG_TARGET_X600 is not set
    # CONFIG_TARGET_IMX31_PHYCORE is not set
    # CONFIG_TARGET_MX31ADS is not set
    # CONFIG_TARGET_MX31PDK is not set
    # CONFIG_TARGET_WOODBURN is not set
    # CONFIG_TARGET_WOODBURN_SD is not set
    # CONFIG_TARGET_FLEA3 is not set
    # CONFIG_TARGET_MX35PDK is not set
    # CONFIG_ARCH_BCM283X is not set
    # CONFIG_TARGET_VEXPRESS_CA15_TC2 is not set
    # CONFIG_TARGET_VEXPRESS_CA5X2 is not set
    # CONFIG_TARGET_VEXPRESS_CA9X4 is not set
    # CONFIG_TARGET_KWB is not set
    # CONFIG_TARGET_TSERIES is not set
    # CONFIG_TARGET_DRACO is not set
    # CONFIG_TARGET_THUBAN is not set
    # CONFIG_TARGET_RASTABAN is not set
    # CONFIG_TARGET_PXM2 is not set
    # CONFIG_TARGET_RUT is not set
    # CONFIG_TARGET_TI814X_EVM is not set
    # CONFIG_TARGET_TI816X_EVM is not set
    # CONFIG_TARGET_BCM28155_AP is not set
    # CONFIG_TARGET_BCMCYGNUS is not set
    # CONFIG_TARGET_BCMNSP is not set
    # CONFIG_ARCH_EXYNOS is not set
    # CONFIG_ARCH_S5PC1XX is not set
    # CONFIG_ARCH_HIGHBANK is not set
    # CONFIG_ARCH_INTEGRATOR is not set
    # CONFIG_ARCH_KEYSTONE is not set
    # CONFIG_ARCH_MX7 is not set
    # CONFIG_ARCH_MX6 is not set
    # CONFIG_ARCH_MX5 is not set
    # CONFIG_TARGET_M53EVK is not set
    # CONFIG_TARGET_MX51EVK is not set
    # CONFIG_TARGET_MX53ARD is not set
    # CONFIG_TARGET_MX53EVK is not set
    # CONFIG_TARGET_MX53LOCO is not set
    # CONFIG_TARGET_MX53SMD is not set
    # CONFIG_OMAP34XX is not set
    # CONFIG_OMAP44XX is not set
    # CONFIG_OMAP54XX is not set
    CONFIG_AM43XX=y
    # CONFIG_AM33XX is not set
    # CONFIG_RMOBILE is not set
    # CONFIG_ARCH_SNAPDRAGON is not set
    # CONFIG_ARCH_SOCFPGA is not set
    # CONFIG_TARGET_CM_T43 is not set
    # CONFIG_ARCH_SUNXI is not set
    # CONFIG_TARGET_TS4800 is not set
    # CONFIG_TARGET_VF610TWR is not set
    # CONFIG_TARGET_COLIBRI_VF is not set
    # CONFIG_TARGET_PCM052 is not set
    # CONFIG_ARCH_ZYNQ is not set
    # CONFIG_ARCH_ZYNQMP is not set
    # CONFIG_TEGRA is not set
    # CONFIG_TARGET_VEXPRESS64_AEMV8A is not set
    # CONFIG_TARGET_VEXPRESS64_BASE_FVP is not set
    # CONFIG_TARGET_VEXPRESS64_BASE_FVP_DRAM is not set
    # CONFIG_TARGET_VEXPRESS64_JUNO is not set
    # CONFIG_TARGET_LS2080A_EMU is not set
    # CONFIG_TARGET_LS2080A_SIMU is not set
    # CONFIG_TARGET_LS2080AQDS is not set
    # CONFIG_TARGET_LS2080ARDB is not set
    # CONFIG_TARGET_HIKEY is not set
    # CONFIG_TARGET_LS1021AQDS is not set
    # CONFIG_TARGET_LS1021ATWR is not set
    # CONFIG_TARGET_LS1043AQDS is not set
    # CONFIG_TARGET_LS1043ARDB is not set
    # CONFIG_TARGET_H2200 is not set
    # CONFIG_TARGET_ZIPITZ2 is not set
    # CONFIG_TARGET_COLIBRI_PXA270 is not set
    # CONFIG_ARCH_UNIPHIER is not set
    # CONFIG_STM32 is not set
    # CONFIG_ARCH_ROCKCHIP is not set
    # CONFIG_TARGET_THUNDERX_88XX is not set
    CONFIG_SYS_MALLOC_F_LEN=0x400
    CONFIG_TI_I2C_BOARD_DETECT=y
    # CONFIG_TI_SECURE_DEVICE is not set
    CONFIG_TARGET_AM43XX_EVM=y
    CONFIG_ISW_ENTRY_ADDR=0x402F4000
    CONFIG_PUB_ROM_DATA_SIZE=0x8400
    CONFIG_SYS_MALLOC_F=y
    # CONFIG_SPL_SYS_MALLOC_SIMPLE is not set
    # CONFIG_SPL_DM is not set
    CONFIG_DM_SERIAL=y
    CONFIG_DM_SPI=y
    CONFIG_DM_SPI_FLASH=y
    CONFIG_DM_I2C=y
    CONFIG_DM_GPIO=y
    # CONFIG_ARMV7_LPAE is not set
    CONFIG_SPL_STACK_R_ADDR=0x82000000
    
    #
    # ARM debug
    #
    # CONFIG_DEBUG_LL is not set
    # CONFIG_DM_KEYBOARD is not set
    CONFIG_DEFAULT_DEVICE_TREE="am437x-sk-evm"
    
    #
    # General setup
    #
    CONFIG_LOCALVERSION=""
    CONFIG_LOCALVERSION_AUTO=y
    CONFIG_CC_OPTIMIZE_FOR_SIZE=y
    CONFIG_EXPERT=y
    CONFIG_SYS_MALLOC_CLEAR_ON_INIT=y
    
    #
    # Boot images
    #
    CONFIG_SUPPORT_SPL=y
    CONFIG_SPL=y
    CONFIG_SPL_STACK_R=y
    # CONFIG_SPL_SEPARATE_BSS is not set
    CONFIG_FIT=y
    # CONFIG_FIT_VERBOSE is not set
    # CONFIG_FIT_SIGNATURE is not set
    # CONFIG_FIT_BEST_MATCH is not set
    # CONFIG_OF_BOARD_SETUP is not set
    # CONFIG_OF_SYSTEM_SETUP is not set
    # CONFIG_OF_STDOUT_VIA_ALIAS is not set
    CONFIG_SYS_EXTRA_OPTIONS="SERIAL6,CONS_INDEX=6,NAND"
    CONFIG_SPL_LOAD_FIT=y
    # CONFIG_SPL_PANIC_ON_NON_FIT_IMAGE is not set
    
    #
    # SPL Media Loading Support
    #
    # CONFIG_SPL_YMODEM_SUPPORT is not set
    # CONFIG_SPL_MMC_SUPPORT is not set
    # CONFIG_SPL_SPI_SUPPORT is not set
    # CONFIG_SPL_USB_SUPPORT is not set
    # CONFIG_SPL_SATA_SUPPORT is not set
    # CONFIG_SPL_NOR_SUPPORT is not set
    # CONFIG_SPL_NAND_SUPPORT is not set
    # CONFIG_SPL_ONENAND_SUPPORT is not set
    # CONFIG_SPL_NET_SUPPORT is not set
    # CONFIG_SPL_DFU_SUPPORT is not set
    
    #
    # Boot timing
    #
    # CONFIG_BOOTSTAGE is not set
    CONFIG_BOOTSTAGE_USER_COUNT=20
    CONFIG_BOOTSTAGE_STASH_ADDR=0
    CONFIG_BOOTSTAGE_STASH_SIZE=4096
    # CONFIG_CONSOLE_RECORD is not set
    
    #
    # Command line interface
    #
    CONFIG_CMDLINE=y
    CONFIG_HUSH_PARSER=y
    CONFIG_SYS_HUSH_PARSER=y
    CONFIG_SYS_PROMPT="=> "
    
    #
    # Autoboot options
    #
    # CONFIG_AUTOBOOT_KEYED is not set
    
    #
    # Commands
    #
    
    #
    # Info commands
    #
    CONFIG_CMD_BDI=y
    CONFIG_CMD_CONSOLE=y
    # CONFIG_CMD_CPU is not set
    # CONFIG_CMD_LICENSE is not set
    
    #
    # Boot commands
    #
    CONFIG_CMD_BOOTD=y
    CONFIG_CMD_BOOTM=y
    CONFIG_CMD_BOOTZ=y
    CONFIG_CMD_BOOTEFI=y
    CONFIG_CMD_ELF=y
    CONFIG_CMD_FDT=y
    CONFIG_CMD_GO=y
    CONFIG_CMD_RUN=y
    CONFIG_CMD_IMI=y
    # CONFIG_CMD_IMLS is not set
    CONFIG_CMD_XIMG=y
    
    #
    # Environment commands
    #
    CONFIG_CMD_ASKENV=y
    CONFIG_CMD_EXPORTENV=y
    CONFIG_CMD_IMPORTENV=y
    CONFIG_CMD_EDITENV=y
    # CONFIG_CMD_GREPENV is not set
    CONFIG_CMD_SAVEENV=y
    CONFIG_CMD_ENV_EXISTS=y
    
    #
    # Memory commands
    #
    CONFIG_CMD_MEMORY=y
    CONFIG_CMD_CRC32=y
    # CONFIG_LOOPW is not set
    # CONFIG_CMD_MEMTEST is not set
    # CONFIG_CMD_MX_CYCLIC is not set
    # CONFIG_CMD_MEMINFO is not set
    
    #
    # Device access commands
    #
    CONFIG_CMD_DM=y
    # CONFIG_CMD_DEMO is not set
    CONFIG_CMD_LOADB=y
    CONFIG_CMD_LOADS=y
    # CONFIG_CMD_FLASH is not set
    # CONFIG_CMD_ARMFLASH is not set
    CONFIG_CMD_MMC=y
    # CONFIG_CMD_NAND is not set
    CONFIG_CMD_SF=y
    CONFIG_CMD_SPI=y
    CONFIG_CMD_I2C=y
    CONFIG_CMD_USB=y
    CONFIG_CMD_DFU=y
    # CONFIG_CMD_USB_MASS_STORAGE is not set
    CONFIG_CMD_FPGA=y
    CONFIG_CMD_GPIO=y
    # CONFIG_CMD_RIO is not set
    
    #
    # Shell scripting commands
    #
    CONFIG_CMD_ECHO=y
    CONFIG_CMD_ITEST=y
    CONFIG_CMD_SOURCE=y
    # CONFIG_CMD_SETEXPR is not set
    
    #
    # Network commands
    #
    CONFIG_CMD_NET=y
    # CONFIG_CMD_TFTPPUT is not set
    # CONFIG_CMD_TFTPSRV is not set
    # CONFIG_CMD_RARP is not set
    CONFIG_CMD_DHCP=y
    CONFIG_CMD_NFS=y
    CONFIG_CMD_MII=y
    CONFIG_CMD_PING=y
    # CONFIG_CMD_CDP is not set
    # CONFIG_CMD_SNTP is not set
    # CONFIG_CMD_DNS is not set
    # CONFIG_CMD_LINK_LOCAL is not set
    
    #
    # Misc commands
    #
    # CONFIG_CMD_CACHE is not set
    CONFIG_CMD_TIME=y
    CONFIG_CMD_MISC=y
    # CONFIG_CMD_TIMER is not set
    
    #
    # Power commands
    #
    
    #
    # Security commands
    #
    
    #
    # Filesystem commands
    #
    CONFIG_CMD_EXT2=y
    CONFIG_CMD_EXT4=y
    CONFIG_CMD_EXT4_WRITE=y
    CONFIG_CMD_FAT=y
    CONFIG_CMD_FS_GENERIC=y
    CONFIG_SUPPORT_OF_CONTROL=y
    
    #
    # Device Tree Control
    #
    CONFIG_OF_CONTROL=y
    # CONFIG_SPL_OF_CONTROL is not set
    # CONFIG_OF_SEPARATE is not set
    CONFIG_OF_EMBED=y
    CONFIG_OF_LIST="am437x-gp-evm am437x-sk-evm am43x-epos-evm am437x-idk-evm"
    CONFIG_NET=y
    # CONFIG_NET_RANDOM_ETHADDR is not set
    # CONFIG_NETCONSOLE is not set
    CONFIG_NET_TFTP_VARS=y
    
    #
    # Device Drivers
    #
    
    #
    # Generic Driver Options
    #
    CONFIG_DM=y
    CONFIG_DM_WARN=y
    CONFIG_DM_DEVICE_REMOVE=y
    CONFIG_DM_STDIO=y
    CONFIG_DM_SEQ_ALIAS=y
    # CONFIG_SPL_DM_SEQ_ALIAS is not set
    # CONFIG_REGMAP is not set
    # CONFIG_SPL_REGMAP is not set
    # CONFIG_DEVRES is not set
    CONFIG_SIMPLE_BUS=y
    CONFIG_OF_TRANSLATE=y
    # CONFIG_ADC is not set
    # CONFIG_ADC_EXYNOS is not set
    # CONFIG_ADC_SANDBOX is not set
    # CONFIG_BLK is not set
    CONFIG_DISK=y
    # CONFIG_BLOCK_CACHE is not set
    # CONFIG_DWC_AHCI is not set
    
    #
    # Clock
    #
    # CONFIG_CLK is not set
    # CONFIG_CPU is not set
    
    #
    # Hardware crypto devices
    #
    # CONFIG_FSL_CAAM is not set
    
    #
    # Demo for driver model
    #
    # CONFIG_DM_DEMO is not set
    
    #
    # DFU support
    #
    # CONFIG_DFU_TFTP is not set
    
    #
    # DMA Support
    #
    CONFIG_DMA=y
    # CONFIG_TI_EDMA3 is not set
    
    #
    # GPIO Support
    #
    # CONFIG_ALTERA_PIO is not set
    # CONFIG_DWAPB_GPIO is not set
    # CONFIG_ATMEL_PIO4 is not set
    # CONFIG_INTEL_BROADWELL_GPIO is not set
    # CONFIG_LPC32XX_GPIO is not set
    # CONFIG_MSM_GPIO is not set
    # CONFIG_PCF8575_GPIO is not set
    # CONFIG_ROCKCHIP_GPIO is not set
    # CONFIG_VYBRID_GPIO is not set
    
    #
    # I2C support
    #
    # CONFIG_DM_I2C_COMPAT is not set
    # CONFIG_DM_I2C_GPIO is not set
    # CONFIG_SYS_I2C_INTEL is not set
    # CONFIG_SYS_I2C_ROCKCHIP is not set
    # CONFIG_I2C_MUX is not set
    # CONFIG_CROS_EC_KEYB is not set
    
    #
    # LED Support
    #
    # CONFIG_LED is not set
    
    #
    # Memory Controller drivers
    #
    
    #
    # Multifunction device drivers
    #
    # CONFIG_MISC is not set
    # CONFIG_CROS_EC is not set
    # CONFIG_FSL_SEC_MON is not set
    # CONFIG_MXC_OCOTP is not set
    # CONFIG_PWRSEQ is not set
    # CONFIG_PCA9551_LED is not set
    # CONFIG_RESET is not set
    # CONFIG_WINBOND_W83627 is not set
    
    #
    # MMC Host controller Support
    #
    CONFIG_DM_MMC=y
    # CONFIG_MSM_SDHCI is not set
    # CONFIG_ROCKCHIP_DWMMC is not set
    # CONFIG_ZYNQ_SDHCI is not set
    
    #
    # MTD Support
    #
    # CONFIG_MTD is not set
    
    #
    # NAND Device Support
    #
    CONFIG_DM_NAND=y
    # CONFIG_NAND_DENALI is not set
    # CONFIG_NAND_VF610_NFC is not set
    # CONFIG_NAND_PXA3XX is not set
    # CONFIG_NAND_ARASAN is not set
    
    #
    # Generic NAND options
    #
    # CONFIG_SPL_NAND_DENALI is not set
    
    #
    # SPI Flash Support
    #
    CONFIG_SPI_FLASH=y
    CONFIG_SPI_FLASH_BAR=y
    # CONFIG_SPI_FLASH_ATMEL is not set
    # CONFIG_SPI_FLASH_EON is not set
    # CONFIG_SPI_FLASH_GIGADEVICE is not set
    CONFIG_SPI_FLASH_MACRONIX=y
    # CONFIG_SPI_FLASH_SPANSION is not set
    # CONFIG_SPI_FLASH_STMICRO is not set
    # CONFIG_SPI_FLASH_SST is not set
    # CONFIG_SPI_FLASH_WINBOND is not set
    CONFIG_SPI_FLASH_USE_4K_SECTORS=y
    # CONFIG_SPI_FLASH_DATAFLASH is not set
    # CONFIG_SPI_FLASH_MTD is not set
    CONFIG_DM_ETH=y
    # CONFIG_PHYLIB is not set
    CONFIG_NETDEVICES=y
    # CONFIG_ALTERA_TSE is not set
    # CONFIG_E1000 is not set
    # CONFIG_ETH_DESIGNWARE is not set
    # CONFIG_RTL8139 is not set
    # CONFIG_RTL8169 is not set
    
    #
    # PCI
    #
    # CONFIG_DM_PCI is not set
    
    #
    # Pin controllers
    #
    # CONFIG_PINCTRL is not set
    
    #
    # Power
    #
    # CONFIG_DM_PMIC is not set
    # CONFIG_DM_REGULATOR is not set
    # CONFIG_DM_PWM is not set
    # CONFIG_RAM is not set
    # CONFIG_DM_RIO is not set
    
    #
    # Remote Processor drivers
    #
    
    #
    # Real Time Clock
    #
    # CONFIG_DM_RTC is not set
    
    #
    # Serial drivers
    #
    CONFIG_REQUIRE_SERIAL_CONSOLE=y
    CONFIG_SERIAL_PRESENT=y
    CONFIG_SPL_SERIAL_PRESENT=y
    # CONFIG_DEBUG_UART is not set
    # CONFIG_DEBUG_UART_SKIP_INIT is not set
    # CONFIG_ALTERA_JTAG_UART is not set
    # CONFIG_ALTERA_UART is not set
    # CONFIG_FSL_LPUART is not set
    CONFIG_SYS_NS16550=y
    # CONFIG_MSM_SERIAL is not set
    
    #
    # Sound support
    #
    # CONFIG_SOUND is not set
    
    #
    # SPI Support
    #
    # CONFIG_ALTERA_SPI is not set
    # CONFIG_CADENCE_QSPI is not set
    # CONFIG_DESIGNWARE_SPI is not set
    # CONFIG_EXYNOS_SPI is not set
    # CONFIG_FSL_DSPI is not set
    # CONFIG_FSL_QSPI is not set
    # CONFIG_ICH_SPI is not set
    # CONFIG_ROCKCHIP_SPI is not set
    # CONFIG_TEGRA114_SPI is not set
    # CONFIG_TEGRA20_SFLASH is not set
    # CONFIG_TEGRA20_SLINK is not set
    # CONFIG_TEGRA210_QSPI is not set
    # CONFIG_XILINX_SPI is not set
    # CONFIG_OMAP3_SPI is not set
    # CONFIG_FSL_ESPI is not set
    CONFIG_TI_QSPI=y
    
    #
    # SPMI support
    #
    # CONFIG_SPMI is not set
    # CONFIG_DM_THERMAL is not set
    
    #
    # Timer Support
    #
    CONFIG_TIMER=y
    # CONFIG_TIMER_EARLY is not set
    # CONFIG_ALTERA_TIMER is not set
    CONFIG_OMAP_TIMER=y
    
    #
    # TPM support
    #
    CONFIG_USB=y
    # CONFIG_DM_USB is not set
    
    #
    # USB Host Controller Drivers
    #
    # CONFIG_USB_XHCI_HCD is not set
    # CONFIG_USB_XHCI is not set
    # CONFIG_USB_EHCI_HCD is not set
    # CONFIG_USB_EHCI is not set
    CONFIG_USB_DWC3=y
    # CONFIG_USB_DWC3_HOST is not set
    CONFIG_USB_DWC3_GADGET=y
    
    #
    # Platform Glue Driver Support
    #
    CONFIG_USB_DWC3_OMAP=y
    
    #
    # PHY Subsystem
    #
    CONFIG_USB_DWC3_PHY_OMAP=y
    # CONFIG_USB_DWC3_PHY_SAMSUNG is not set
    
    #
    # MUSB Controller Driver
    #
    # CONFIG_USB_MUSB_HOST is not set
    # CONFIG_USB_MUSB_GADGET is not set
    
    #
    # ULPI drivers
    #
    
    #
    # USB peripherals
    #
    # CONFIG_USB_STORAGE is not set
    # CONFIG_USB_KEYBOARD is not set
    CONFIG_USB_GADGET=y
    # CONFIG_USB_GADGET_ATMEL_USBA is not set
    # CONFIG_USB_GADGET_DWC2_OTG is not set
    # CONFIG_CI_UDC is not set
    CONFIG_USB_GADGET_VBUS_DRAW=2
    CONFIG_USB_GADGET_DUALSPEED=y
    CONFIG_USB_GADGET_DOWNLOAD=y
    CONFIG_G_DNL_MANUFACTURER="Texas Instruments"
    CONFIG_G_DNL_VENDOR_NUM=0x0403
    CONFIG_G_DNL_PRODUCT_NUM=0xbd00
    
    #
    # Graphics support
    #
    # CONFIG_DM_VIDEO is not set
    
    #
    # TrueType Fonts
    #
    # CONFIG_VIDEO_VESA is not set
    # CONFIG_VIDEO_LCD_ANX9804 is not set
    # CONFIG_VIDEO_LCD_SSD2828 is not set
    # CONFIG_VIDEO_MVEBU is not set
    # CONFIG_I2C_EDID is not set
    # CONFIG_DISPLAY is not set
    # CONFIG_VIDEO_TEGRA20 is not set
    # CONFIG_VIDEO_BRIDGE is not set
    # CONFIG_PHYS_TO_BUS is not set
    
    #
    # File systems
    #
    
    #
    # Library routines
    #
    # CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED is not set
    CONFIG_HAVE_PRIVATE_LIBGCC=y
    # CONFIG_USE_PRIVATE_LIBGCC is not set
    CONFIG_SYS_HZ=1000
    # CONFIG_USE_TINY_PRINTF is not set
    CONFIG_REGEX=y
    # CONFIG_LIB_RAND is not set
    # CONFIG_CMD_DHRYSTONE is not set
    # CONFIG_RSA is not set
    # CONFIG_TPM is not set
    
    #
    # Hashing Support
    #
    # CONFIG_SHA1 is not set
    # CONFIG_SHA256 is not set
    # CONFIG_SHA_HW_ACCEL is not set
    
    #
    # Compression Support
    #
    # CONFIG_LZ4 is not set
    # CONFIG_ERRNO_STR is not set
    CONFIG_OF_LIBFDT=y
    CONFIG_SPL_OF_LIBFDT=y
    CONFIG_EFI_LOADER=y
    # CONFIG_UNIT_TEST is not set
    

    CortexA9: Output: ****  AM437x GP Initialization is in progress .......... 
    CortexA9: Output:  **** Device Type: GP
    CortexA9: GEL Output: System input clock is 26MHz
    CortexA9: GEL Output: ****  AM43xx OPP100 with CLKIN=26MHz is in progress ......... 
    CortexA9: GEL Output: 	 ****  Going to Bypass... 
    CortexA9: GEL Output: 	 ****  Bypassed, changing values... 
    CortexA9: Output: 	 ****  Locking PLL
    CortexA9: GEL Output: 	 ****  MPU PLL locked
    CortexA9: GEL Output: 	 ****  Core Bypassed
    CortexA9: GEL Output: 	 ****  Now locking Core...
    CortexA9: GEL Output: 	 ****  Core locked
    CortexA9: GEL Output: 	 ****  Calculated PER SD Divisor=4
    CortexA9: GEL Output: 	 ****  PER DPLL Bypassed
    CortexA9: GEL Output: 	 ****  PER DPLL Locked
    CortexA9: GEL Output: 	 ****  Calculated EXTDEV SD Divisor=3
    CortexA9: GEL Output: 	 ****  EXTDEV DPLL Bypassed
    CortexA9: GEL Output: 	 ****  EXTDEV DPLL Locked
    CortexA9: GEL Output: 	 ****  DISP PLL Config is in progress .......... 
    CortexA9: GEL Output: 	 ****  DISP PLL Locked 
    CortexA9: GEL Output: 	 ****  DDR DPLL Bypassed
    CortexA9: GEL Output: 	 ****  DDR DPLL Locked
    CortexA9: GEL Output: ****  Setting DDR3  = 400MHz
    CortexA9: GEL Output: ****  AM43xx OPP100 configuration is done ......... 
    CortexA9: GEL Output: Enabling VTT Regulator... 
    CortexA9: GEL Output: VTT Regulator Enabled 
    CortexA9: GEL Output: Starting DDR3 configuration...
    CortexA9: Output: EMIF PRCM is in progress ....... 
    CortexA9: Output: EMIF PRCM Done 
    CortexA9: GEL Output: EMIF CLK enabled... 
    CortexA9: GEL Output: Waiting for VTP Ready ....... 
    CortexA9: GEL Output: VTP is Ready! 
    CortexA9: GEL Output: VTP controller enabled
    CortexA9: GEL Output: Checking if DLL is ready...
    CortexA9: GEL Output: DLL is ready
    CortexA9: GEL Output: Configuring DDR IOs and Control Module registers...
    CortexA9: GEL Output: Configuration of Control Module registers complete
    CortexA9: GEL Output: Setting up DDR3 H/W leveling configuration...
    CortexA9: GEL Output: Starting EMIF controller configuration...
    CortexA9: GEL Output: 
    
    DDR3 Hardware leveling complete... Outputing all the leveling results !!!
    
    CortexA9: GEL Output: PHY_STATUS_12=0x0700003B
    CortexA9: GEL Output: PHY_STATUS_13=0x0700003B
    CortexA9: GEL Output: PHY_STATUS_14=0x07000000
    CortexA9: GEL Output: PHY_STATUS_15=0x07000000
    CortexA9: GEL Output: PHY_STATUS_16=0x00000000
    CortexA9: GEL Output: PHY_STATUS_7 =0x00000044
    CortexA9: GEL Output: PHY_STATUS_8 =0x00000043
    CortexA9: GEL Output: PHY_STATUS_9 =0x0000007F
    CortexA9: GEL Output: PHY_STATUS_10=0x0000007F
    CortexA9: GEL Output: PHY_STATUS_11=0x00000000
    CortexA9: GEL Output: PHY_STATUS_17=0x0037004B
    CortexA9: GEL Output: PHY_STATUS_18=0x03C50059
    CortexA9: GEL Output: PHY_STATUS_19=0x03450061
    CortexA9: GEL Output: PHY_STATUS_20=0x010D0061
    CortexA9: GEL Output: PHY_STATUS_21=0x00000000
    CortexA9: GEL Output: PHY_STATUS_22=0x03F7000B
    CortexA9: GEL Output: PHY_STATUS_23=0x03850019
    CortexA9: GEL Output: PHY_STATUS_24=0x03050021
    CortexA9: GEL Output: PHY_STATUS_25=0x00CD0021
    CortexA9: GEL Output: PHY_STATUS_26=0x00000000
    CortexA9: GEL Output: 
    
    DDR3 configuration is complete!!!
    
    CortexA9: GEL Output: Turning on EDMA...  
    CortexA9: GEL Output: EDMA is turned on...  
    CortexA9: Output: ****  AM437x GP  Initialization is Done ******************