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.

AM3352: Custom board boot issue

Part Number: AM3352
Other Parts Discussed in Thread: TPS650250,

Hey everyone, I have a custom board I've built, loosely based on the Smart Energy Gateway, using the TPS650250 and following the reset scheme which all appears to be working, the only other things on the board are a Marvel 1000Mbps PHY, and a BLE radio using UART. It doesn't appear to be powering up, I'm not seeing an 'CCCC' on the output terminal.

I'm trying to TFTP boot, and it doesn't seem to be doing anything, but I assume the Cs should come up whether the spl is loaded or not? I"m not really sure what is going on, I've never had an issue with the AM335x platform before, it's always been pretty easy to get booted. The PHY is Marvell, and appears to be coming up properly, I get a gigabit connection on the switch and see some basic traffic on Wireshark, but it appears the processor isn't booting at all, I don't get any DHCP entries or anything.

I can't share schematics publicly but I can share with a support person privately. This is a real headscratcher.

Thanks,

Adam

  • Hi,

    The "C" characters are output on UART0 only if you have UART boot included in your SYSBOOT sequence. I suggest you start by following this guide: processors.wiki.ti.com/.../AM335x_board_bringup_tips

  • Ah, makes sense. I got the Cs on the console now by switching to a UART0 boot method. Now, I guess I'll just boot via UART instead of TFTP, I think I have the errata issue where I power the PHY up too early.

    I compile my u-boot and try to boot it following the instructions here: https://processors.wiki.ti.com/index.php/AM335x_U-Boot_User's_Guide#Building_U-Boot

    After I send the u-boot-spl.bin the Cs never start up again. Is there something special I have to do in order to enable UART in the SPL/u-boot?

    I'm basically using the am335x_evm board, mux, board.h, defconfig, and config but without the EEPROM stuff, and just hard coding my board's options which are half based on the beaglebone black (RAM), half on the Smart Gateway(Power)... I don't need anything else in u-boot, the board just has another UART for BLE HCI, an RGMII port, and an eMMC I'll eventually transfer everything to and boot from.

    Thanks Biser!

  • Adam Gerken1 said:
    After I send the u-boot-spl.bin the Cs never start up again.

    This is quite normal, SPL has been loaded and execution has passed to it. What you must do is send the u-boot.img file via YMODEM as fast as possible.

  • I think the real issue was that I was trying to use a vanilla am335x_evm build just to get something working to prove the SoC was up and running, and the SPL was failing due to the hardware being different. I think probably the EEPROM thing. Once I massaged u-boot to my board it seems to work fine. I can load the spl and u-boot via serial and everything looks good.

    My next issue is getting the Kernel, dtb, and file system onto the board. I'm totally lost... I've been reading a million things the last couple days and nothing seems to address what I'm trying to do:

    1) Load spl and u-boot via UART (working)

    2) Load the kernel, dtb and FS from TFTP. I want to use DHCP to get an address, I think? I followed this: https://processors.wiki.ti.com/index.php/AM335x_U-Boot_User's_Guide#UART_2 and it doesn't work.

    3) Partition and flash everything onto the eMMC that's on the board. I don't know if this is possible from u-boot, but that would probably easiest. Then I figure I can just boot u-boot via UART, format and partition the eMMC then load everything into it via TFTP then reboot from eMMC?

    I'm really lost how to accomplish the last two steps, every single thing I've read does these completely differently and non of them work. The include/configs/"my-board".h copied from the am335x_evm.h file is a disaster with bootargs and env settings and I can't make heads or tails of it.

    Adam

  • Adam,

    Adam Gerken1 said:
    1) Load spl and u-boot via UART (working)

    So you are getting to U-Boot prompt, and can enter commands there, correct?

    Adam Gerken1 said:
    2) Load the kernel, dtb and FS from TFTP. I want to use DHCP to get an address, I think? I followed this: https://processors.wiki.ti.com/index.php/AM335x_U-Boot_User's_Guide#UART_2 and it doesn't work.

    Assuming you are really at U-Boot prompt, can you try to check basic network connectivity to see if you can get an IP address assigned:

    setenv autoload no
    dhcp

    As for basic network boot U-Boot related info, your go to place should be this:

    The Wiki docs are no longer maintained, and we are in the progress of migrating content into the official SDK doc I pointed to earlier, after which the Wiki will get turned off.

    Then, our AM335x Linux SDK together with any of the supported EVMs should be able to serve as a reference platform for network boot.

    Adam Gerken1 said:

    3) Partition and flash everything onto the eMMC that's on the board. I don't know if this is possible from u-boot, but that would probably easiest. Then I figure I can just boot u-boot via UART, format and partition the eMMC then load everything into it via TFTP then reboot from eMMC?

    So your end goal is to find some way to program the eMMC with U-Boot, the Kernel, and filesystem, and then only boot using eMMC, right?

    If so, there are two ways you could do this:

    1. Perform a network-based boot to Linux prompt. Then, use Linux to prepare/partition your eMMC, and program/copy everything you needed. Since you can mount the eMMC you have a lot of flexibility of what you can do here, or
    2. Use U-Boot to load an eMMC image ("SD card image") over network/TFTP into DDR. Then, use U-Boot commands to program this image into eMMC. Can also be done piece by piece if the image is larger than available DDR.

    There are various E2E posts covering both 1 and 2, it's just a question of preference which way you want to go.

    Regards, Andreas

  • Andreas Dannenberg said:

    Adam,

    So you are getting to U-Boot prompt, and can enter commands there, correct?

    Yes, that's correct. I have the SPL and u-boot up and runnning via UART with no problem. I can poke around, see the PHY is connected, get it's info via MDIO commands, etc. I can also see the eMMC. That's about all I care about for u-boot, I think.

    Andreas Dannenberg said:
    Assuming you are really at U-Boot prompt, can you try to check basic network connectivity to see if you can get an IP address assigned:
    1
    2
    setenv autoload no
    dhcp

    As for basic network boot U-Boot related info, your go to place should be this:

    I'll try that out. I think I tried it with no luck. It could be an issue with the PHY, I don't know. I'm using a Marvell PHY, I enabled the drivers in u-boot config, and I can probe it via u-boot commands, get the correct part number, and see that it has a link up at 1000Mb.

    Andreas Dannenberg said:

    So your end goal is to find some way to program the eMMC with U-Boot, the Kernel, and filesystem, and then only boot using eMMC, right?

    If so, there are two ways you could do this:

    1. Perform a network-based boot to Linux prompt. Then, use Linux to prepare/partition your eMMC, and program/copy everything you needed. Since you can mount the eMMC you have a lot of flexibility of what you can do here, or
    2. Use U-Boot to load an eMMC image ("SD card image") over network/TFTP into DDR. Then, use U-Boot commands to program this image into eMMC. Can also be done piece by piece if the image is larger than available DDR.

    There are various E2E posts covering both 1 and 2, it's just a question of preference which way you want to go.

    Regards, Andreas

    Yeah, exactly I need to get the images all on the eMMC and then boot from that. The boot order is set so the eMMC should go first, with UART0 later on, which is how I've been booting. I have a button to enable TFTP boot as well. Right now I'm thinking the easiest thing to do is just boot u-boot via UART, set up the eMMC, transfer everything to it via TFTP then reset and let the eMMC take over. Loading the kernel via UART takes like a half hour, which isn't ideal. The board has 256MB of RAM so it should be plenty to load everything into RAM, then write to eMMC.

    I'll need to write a script to do all this automatically in a production environment... this product will likely be in the 1000's so I'm thinking it would be pretty easy to write a script to get u-boot loaded via UART, then run a u-boot script to take over from there.

    I'm really not picky how it happens though, as long as I end up with a bootable eMMC.

    Thanks for the help so far! I really appreciate it, I'm a hardware/firmware guy and this is my first real dip into Linux.

  • Adam Gerken1 said:
    Yes, that's correct. I have the SPL and u-boot up and runnning via UART with no problem. I can poke around, see the PHY is connected, get it's info via MDIO commands, etc. I can also see the eMMC. That's about all I care about for u-boot, I think.

    This is a great step as it indicates your DDR is working, and you have a console to work with - and a step where many struggle initially.

    Adam Gerken1 said:
    I'll try that out. I think I tried it with no luck. It could be an issue with the PHY, I don't know. I'm using a Marvell PHY, I enabled the drivers in u-boot config, and I can probe it via u-boot commands, get the correct part number, and see that it has a link up at 1000Mb.

    Make sure your server-side setup is good, by for example connecting a known-good board (such as a BeagleBone black) to the same Ethernet cable, and then try executing the same two U-Boot commands I pointed to earlier (setenv autoload no and dhcp).

    Also you could do a quick Google and E2E search with the Marvell PHY part number to find designs where it might have been used successfully, and hints what might be missing configuration-wise, if anything.

    For example, you may need to experiment/change the "phy-mode" setting in the device tree node associated with the PHY as per https://git.ti.com/cgit/processor-sdk/processor-sdk-u-boot/tree/doc/device-tree-bindings/net/ethernet.txt?h=processor-sdk-u-boot-2019.01

    * "rgmii" (RX and TX delays are added by the MAC when required)
    * "rgmii-id" (RGMII with internal RX and TX delays provided by the PHY, the
      MAC should not add the RX or TX delays in this case)
    * "rgmii-rxid" (RGMII with internal RX delay provided by the PHY, the MAC
      should not add an RX delay in this case)
    * "rgmii-txid" (RGMII with internal TX delay provided by the PHY, the MAC
      should not add an TX delay in this case)

    Adam Gerken1 said:
    Loading the kernel via UART takes like a half hour, which isn't ideal.

    Yes please don't do that. It might be okay for bench testing purposes but nothing else.

    Adam Gerken1 said:
    I'll need to write a script to do all this automatically in a production environment... this product will likely be in the 1000's so I'm thinking it would be pretty easy to write a script to get u-boot loaded via UART, then run a u-boot script to take over from there.

    Yes that's how you can do it. Try looking into the "expect" / "autoexpect" tools in Linux, they can be very helpful in remote-controlling terminal-type interfaces in a robust manner.

    Adam Gerken1 said:
    I'm really not picky how it happens though, as long as I end up with a bootable eMMC.

    How big is the eMMC image you are trying to program?

    Regards, Andreas

  • Andreas Dannenberg said:

    Make sure your server-side setup is good, by for example connecting a known-good board (such as a BeagleBone black) to the same Ethernet cable, and then try executing the same two U-Boot commands I pointed to earlier (setenv autoload no and dhcp).

    This is step 1 of what I need help with. I'm totally lost on what a "good setup" is. The links you posted have a totally different method than the old wiki and neither of them seems to work. I can't get a valid IP address on anything I plug into the Ubuntu machine.

    Andreas Dannenberg said:

    Also you could do a quick Google and E2E search with the Marvell PHY part number to find designs where it might have been used successfully, and hints what might be missing configuration-wise, if anything.

    For example, you may need to experiment/change the "phy-mode" setting in the device tree node associated with the PHY as per https://git.ti.com/cgit/processor-sdk/processor-sdk-u-boot/tree/doc/device-tree-bindings/net/ethernet.txt?h=processor-sdk-u-boot-2019.01

    1
    2
    3
    4
    5
    6
    7
    * "rgmii" (RX and TX delays are added by the MAC when required)
    * "rgmii-id" (RGMII with internal RX and TX delays provided by the PHY, the
      MAC should not add the RX or TX delays in this case)
    * "rgmii-rxid" (RGMII with internal RX delay provided by the PHY, the MAC
      should not add an RX delay in this case)
    * "rgmii-txid" (RGMII with internal TX delay provided by the PHY, the MAC
      should not add an TX delay in this case)

    Also another thing I'm now totally confused about... does u-boot use device tree now? I see there are device tree files in u-boot but I never made or modified one, just the "old school" files ... board.c, board.h, defconfig, include/configs/board.h, etc. Now I'm reading about driver model and using dts in u-boot, but only bits and pieces are supported. I'm going to pull my damn hair out.

    Andreas Dannenberg said:

    How big is the eMMC image you are trying to program?

    No clue, the eMMC on the board is 4GB. I haven't even started down the path of how to make images...

    To be honest, the documentation for all this is infuriating. It's obviously written by/for someone that already knows what they're doing. I'm not totally incompetent and I can't follow the web of documentation at all.
  • Alright, another day down the drain spinning my wheels. I looked at the traffic on my Ubuntu machine using wireshark and I don't think I'm getting any traffic from the board, which is weird because the PHY is up, and I can talk to it in u-boot, and it establishes a link.

    I enabled the Marvel drivers in u-boot. The only thing I can think of is the "Enable Driver Model for Ethernet drivers" option in menuconfig. Again, I'm totally lost by where the support is for this.

  • Hi Adam,

    Adam Gerken1 said:
    This is step 1 of what I need help with. I'm totally lost on what a "good setup" is. The links you posted have a totally different method than the old wiki and neither of them seems to work. I can't get a valid IP address on anything I plug into the Ubuntu machine.

    With good setup I mean an officially supported TI EVM, running the SDK-provided SD card image.

    If you can't get any valid IP address "on anything" (what else did you try to connect?), perhaps your DHCP server is not setup correctly?

    There are instructions related to that here:

    http://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/How_to_Guides/Host/How_to_Setup_Ubuntu_1404_Network_Boot.html

    Basically, you'll need to run something like...

    $ sudo apt install isc-dhcp-server

    ...and then update /etc/dhcp/dhcpd.conf as indicated in the aforementioned documentation.

    Regards, Andreas

  • I've tried that.

    Can we take a step back and get back to my u-boot port. I'm not convinced I've enabled ethernet properly.

    https://e2e.ti.com/support/processors/f/791/t/840520?66AK2H06-U-boot-cannot-initialize-88E1512-Ethernet-tranceiver-properly

    This is a very similar PHY to what I'm using and seems like a similar problem. I don't know what's up with the dts in u-boot, per my previous comments. Do I need to update ethernet support to this new driver model, and create a dts and all that? I haven't created a dts for my board, and u-boot never seemed to care. I haven't seen anything about how to go about this.

  • Adam,

    Adam Gerken1 said:
    I've tried that.

    So you confirm that you can get an IP address via DHCP using another "known good" board from your host machine? Important to know that side of the system is good.

    Adam Gerken1 said:
    Do I need to update ethernet support to this new driver model, and create a dts and all that?

    Are you using the current TI Linux SDK v6.01, with its 2019.01-based U-Boot stream (http://www.ti.com/tool/PROCESSOR-SDK-AM335X)? If not please use this as this is the officially supported SW platform at the moment - it is also what the associated SDK documentation should be aligned with. Anyways this SDK already uses driver model for networking via CONFIG_DM_ETH=y assuming you build the .config for the AM335x EVM based on am335x_evm_defconfig. There are frequent changes related how to setup and configure things with the ongoing driver model migration throughout the history of U-Boot, and other things.

    Using this default configuration I can see the PHY driver getting probed, and the phy-mode settings that I suggested earlier to experiment with from the DTS getting applied...  See below extract from arch/arm/dts/am335x-bone-common.dtsi

    &cpsw_emac0 {
            phy_id = <&davinci_mdio>, <0>;
            phy-mode = "mii";
    };

    When I instrument the associated driver code as follows:

    $ git diff
    diff --git a/drivers/net/ti/cpsw.c b/drivers/net/ti/cpsw.c
    index d75ebca391..2f17b09ac4 100644
    --- a/drivers/net/ti/cpsw.c
    +++ b/drivers/net/ti/cpsw.c
    @@ -1203,6 +1203,8 @@ static void cpsw_eth_of_parse_slave(struct 
    cpsw_platform_data *data,
                     slave_data->phy_if =
                             phy_get_interface_by_name(phy_mode);
    
    +       printf("%s: phy_mode=%s slave_data->phy_if=%d\n", __func__, 
    phy_mode, slave_data->phy_if);
    +
             slave_data->phy_of_handle = fdtdec_lookup_phandle(fdt, subnode,
    "phy-handle");

    ...I get the following in the U-Boot log booting on a BeagleBone Black...

    cpsw_eth_of_parse_slave: phy_mode=mii slave_data->phy_if=0

    Which confirms that DTS gettings get parsed and used. You don't need to instrument your code like this, I'm just showing how DTS information is important to get Ethernet/PHY setup right with the current U-Boot. If you insist on using an older unsupported U-Boot you need to double-check/migrate the PHY mode settings accordingly which is where your issue could be.

    Regards, Andreas

  • Andreas Dannenberg said:

    So you confirm that you can get an IP address via DHCP using another "known good" board from your host machine? Important to know that side of the system is good.

    Yes, If I plug something into the server it gets an IP address. I just don't see ethernet traffic from the AM3352 board.

    Andreas Dannenberg said:

    Are you using the current TI Linux SDK v6.01, with its 2019.01-based U-Boot stream (http://www.ti.com/tool/PROCESSOR-SDK-AM335X)? If not please use this as this is the officially supported SW platform at the moment - it is also what the associated SDK documentation should be aligned with. Anyways this SDK already uses driver model for networking via CONFIG_DM_ETH=y assuming you build the .config for the AM335x EVM based on am335x_evm_defconfig. There are frequent changes related how to setup and configure things with the ongoing driver model migration throughout the history of U-Boot, and other things.

    Using this default configuration I can see the PHY driver getting probed, and the phy-mode settings that I suggested earlier to experiment with from the DTS getting applied...  See below extract from arch/arm/dts/am335x-bone-common.dtsi

    1
    2
    3
    4
    &cpsw_emac0 {
            phy_id = <&davinci_mdio>, <0>;
            phy-mode = "mii";
    };

    When I instrument the associated driver code as follows:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $ git diff
    diff --git a/drivers/net/ti/cpsw.c b/drivers/net/ti/cpsw.c
    index d75ebca391..2f17b09ac4 100644
    --- a/drivers/net/ti/cpsw.c
    +++ b/drivers/net/ti/cpsw.c
    @@ -1203,6 +1203,8 @@ static void cpsw_eth_of_parse_slave(struct
    cpsw_platform_data *data,
                     slave_data->phy_if =
                             phy_get_interface_by_name(phy_mode);
    +       printf("%s: phy_mode=%s slave_data->phy_if=%d\n", __func__,
    phy_mode, slave_data->phy_if);
    +
             slave_data->phy_of_handle = fdtdec_lookup_phandle(fdt, subnode,
    "phy-handle");

    ...I get the following in the U-Boot log booting on a BeagleBone Black...

    1
    cpsw_eth_of_parse_slave: phy_mode=mii slave_data->phy_if=0

    Which confirms that DTS gettings get parsed and used. You don't need to instrument your code like this, I'm just showing how DTS information is important to get Ethernet/PHY setup right with the current U-Boot. If you insist on using an older unsupported U-Boot you need to double-check/migrate the PHY mode settings accordingly which is where your issue could be.

    I'll give that a try. I'm using 2019.04 from the eewiki site. The am335x_defconfig had to be very heavily modified because I don't have a lot of the things the evm does and it wouldn't compile and/or run.

  • CONFIG_DM_ETH wasn't enabled. When I do that I get compilation errors:

    drivers/built-in.o: In function `device_is_compatible':
    /home/adam/u-boot/drivers/core/device.c:815: undefined reference to `ofnode_device_is_compatible'
    drivers/gpio/built-in.o: In function `gpio_request_tail':
    /home/adam/u-boot/drivers/gpio/gpio-uclass.c:665: undefined reference to `ofnode_get_name'
    drivers/gpio/built-in.o: In function `_gpio_request_by_name_nodev':
    /home/adam/u-boot/drivers/gpio/gpio-uclass.c:692: undefined reference to `ofnode_parse_phandle_with_args'

    Also, If I try CONFIG_DM_MMC I get:

    drivers/built-in.o: In function `omap_hsmmc_execute_tuning':
    /home/adam/u-boot/drivers/mmc/omap_hsmmc.c:645: undefined reference to `thermal_get_temp'

    I feel like I've got to be close, just seems like there's a couple things missing in 2019.04 for some reason?

  • Hi Adam,

    Adam Gerken1 said:
    CONFIG_DM_ETH wasn't enabled. When I do that I get compilation error

    How did you enable this? Via "make [...] menuconfig"? Looks like there are some unmet dependencies (CONFIG_DM_GPIO?). But working through those steps little by little can be challenging, especially if one has not much experience with U-Boot. Hence I'd like to re-iterate my earlier suggestion of starting with the U-Boot that is part of the current Linux SDK, which has CONFIG_DM_ETH (and also CONFIG_DM_MMC) already enabled, for a better starting point for experimentation.

    If for some reason you must use the old U-Boot you are using please point me to the exact(!) U-Boot git tree you are using so I can have a look how to change PHY settings with that particular version of U-Boot.

    Regards, Andreas

  • Andreas,

    I have CONFIG_DM_GPIO enabled as well.

    It's not really that I must use this version, it's just what I've been using. It took me forever to even get something compiled so I'm not too keen on starting over with a different version. The SDK stuff is so dependent on hardware being the same as the EVM's with the EEPROM and all that I don't have, it was a pain getting all that out.

    I used mainline v2019.04 with these patches: https://github.com/eewiki/u-boot-patches/raw/master/v2019.04/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch

    Attached is my current config, with the extension changed so it uploads.

    #
    # Automatically generated file; DO NOT EDIT.
    # U-Boot 2019.04 Configuration
    #
    CONFIG_CREATE_ARCH_SYMLINK=y
    # CONFIG_ARC is not set
    CONFIG_ARM=y
    # 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_PPC is not set
    # CONFIG_RISCV is not set
    # CONFIG_SANDBOX is not set
    # CONFIG_SH is not set
    # CONFIG_X86 is not set
    # CONFIG_XTENSA is not set
    CONFIG_SYS_ARCH="arm"
    CONFIG_SYS_CPU="armv7"
    CONFIG_SYS_SOC="am33xx"
    CONFIG_SYS_VENDOR="flightcircuits"
    CONFIG_SYS_BOARD="epn11291"
    CONFIG_SYS_CONFIG_NAME="epn11291"
    
    #
    # ARM architecture
    #
    CONFIG_HAS_VBAR=y
    CONFIG_HAS_THUMB2=y
    CONFIG_ARM_ASM_UNIFIED=y
    CONFIG_SYS_ARM_CACHE_CP15=y
    CONFIG_SYS_ARM_MMU=y
    # CONFIG_SYS_ARM_MPU is not set
    CONFIG_ARM_CORTEX_A8_CVE_2017_5715=y
    CONFIG_CPU_V7A=y
    CONFIG_SYS_ARM_ARCH=7
    CONFIG_SYS_CACHE_SHIFT_6=y
    CONFIG_SYS_CACHELINE_SIZE=64
    # CONFIG_SYS_ARCH_TIMER is not set
    # CONFIG_ARM_SMCCC is not set
    # CONFIG_SEMIHOSTING is not set
    CONFIG_SYS_THUMB_BUILD=y
    CONFIG_SPL_SYS_THUMB_BUILD=y
    # CONFIG_SYS_L2CACHE_OFF is not set
    # CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK is not set
    CONFIG_USE_ARCH_MEMCPY=y
    CONFIG_SPL_USE_ARCH_MEMCPY=y
    CONFIG_USE_ARCH_MEMSET=y
    CONFIG_SPL_USE_ARCH_MEMSET=y
    # CONFIG_ARM64_SUPPORT_AARCH32 is not set
    # CONFIG_ARCH_AT91 is not set
    # CONFIG_TARGET_EDB93XX 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_APF27 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_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_ARCH_BCM63158 is not set
    # CONFIG_ARCH_BCM6858 is not set
    # CONFIG_TARGET_VEXPRESS_CA15_TC2 is not set
    # CONFIG_ARCH_BCMSTB is not set
    # CONFIG_TARGET_VEXPRESS_CA5X2 is not set
    # CONFIG_TARGET_VEXPRESS_CA9X4 is not set
    # CONFIG_TARGET_BCM23550_W1D is not set
    # CONFIG_TARGET_BCM28155_AP is not set
    # CONFIG_TARGET_BCMCYGNUS is not set
    # CONFIG_TARGET_BCMNSP is not set
    # CONFIG_TARGET_BCMNS2 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_K3 is not set
    CONFIG_ARCH_OMAP2PLUS=y
    # CONFIG_ARCH_MESON is not set
    # CONFIG_ARCH_MEDIATEK is not set
    # CONFIG_ARCH_LPC32XX is not set
    # CONFIG_ARCH_IMX8 is not set
    # CONFIG_ARCH_IMX8M is not set
    # CONFIG_ARCH_MX23 is not set
    # CONFIG_ARCH_MX25 is not set
    # CONFIG_ARCH_MX28 is not set
    # CONFIG_ARCH_MX31 is not set
    # CONFIG_ARCH_MX7ULP is not set
    # CONFIG_ARCH_MX7 is not set
    # CONFIG_ARCH_MX6 is not set
    CONFIG_SPL_LDSCRIPT="arch/arm/mach-omap2/u-boot-spl.lds"
    # CONFIG_ARCH_MX5 is not set
    # CONFIG_ARCH_OWL is not set
    # CONFIG_ARCH_QEMU is not set
    # CONFIG_ARCH_RMOBILE is not set
    # CONFIG_TARGET_S32V234EVB is not set
    # CONFIG_ARCH_SNAPDRAGON is not set
    # CONFIG_ARCH_SOCFPGA is not set
    # CONFIG_ARCH_SUNXI is not set
    # CONFIG_ARCH_VERSAL is not set
    # CONFIG_ARCH_VF610 is not set
    # CONFIG_ARCH_ZYNQ is not set
    # CONFIG_ARCH_ZYNQMP_R5 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_LS1088AQDS is not set
    # CONFIG_TARGET_LS2080AQDS is not set
    # CONFIG_TARGET_LS2080ARDB is not set
    # CONFIG_TARGET_LS2081ARDB is not set
    # CONFIG_TARGET_LX2160ARDB is not set
    # CONFIG_TARGET_LX2160AQDS is not set
    # CONFIG_TARGET_HIKEY is not set
    # CONFIG_TARGET_POPLAR is not set
    # CONFIG_TARGET_LS1012AQDS is not set
    # CONFIG_TARGET_LS1012ARDB is not set
    # CONFIG_TARGET_LS1012A2G5RDB is not set
    # CONFIG_TARGET_LS1012AFRWY is not set
    # CONFIG_TARGET_LS1012AFRDM is not set
    # CONFIG_TARGET_LS1088ARDB is not set
    # CONFIG_TARGET_LS1021AQDS is not set
    # CONFIG_TARGET_LS1021ATWR is not set
    # CONFIG_TARGET_LS1021AIOT is not set
    # CONFIG_TARGET_LS1043AQDS is not set
    # CONFIG_TARGET_LS1043ARDB is not set
    # CONFIG_TARGET_LS1046AQDS is not set
    # CONFIG_TARGET_LS1046ARDB 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_STI is not set
    # CONFIG_ARCH_STM32MP is not set
    # CONFIG_ARCH_ROCKCHIP is not set
    # CONFIG_TARGET_THUNDERX_88XX is not set
    # CONFIG_ARCH_ASPEED is not set
    # CONFIG_TI_SECURE_DEVICE is not set
    CONFIG_SYS_TEXT_BASE=0x80800000
    CONFIG_SPL_GPIO_SUPPORT=y
    CONFIG_SPL_LIBCOMMON_SUPPORT=y
    CONFIG_SPL_LIBGENERIC_SUPPORT=y
    CONFIG_SYS_MALLOC_F_LEN=0x1000
    # CONFIG_OMAP34XX is not set
    # CONFIG_OMAP44XX is not set
    # CONFIG_OMAP54XX is not set
    # CONFIG_TI814X is not set
    # CONFIG_TI816X is not set
    # CONFIG_AM43XX is not set
    CONFIG_AM33XX=y
    CONFIG_SYS_MPUCLK=500
    CONFIG_ISW_ENTRY_ADDR=0x402F0400
    # CONFIG_TARGET_AM335X_EVM is not set
    CONFIG_TARGET_EPN11291=y
    # CONFIG_TARGET_AM335X_BALTOS is not set
    # CONFIG_TARGET_AM335X_IGEP003X is not set
    # CONFIG_TARGET_AM335X_SHC is not set
    # CONFIG_TARGET_AM335X_SL50 is not set
    # CONFIG_TARGET_BAV335X is not set
    # CONFIG_TARGET_BRXRE1 is not set
    # CONFIG_TARGET_BRPPT1 is not set
    # CONFIG_TARGET_CHILIBOARD is not set
    # CONFIG_TARGET_CM_T335 is not set
    # CONFIG_TARGET_DRACO is not set
    # CONFIG_TARGET_ETAMIN is not set
    # CONFIG_TARGET_PCM051 is not set
    # CONFIG_TARGET_PENGWYN is not set
    # CONFIG_TARGET_PEPPER is not set
    # CONFIG_TARGET_PXM2 is not set
    # CONFIG_TARGET_RASTABAN is not set
    # CONFIG_TARGET_RUT is not set
    # CONFIG_TARGET_THUBAN is not set
    # CONFIG_TARGET_PDU001 is not set
    CONFIG_PUB_ROM_DATA_SIZE=0x8400
    # CONFIG_TFABOOT is not set
    CONFIG_SPL_MMC_SUPPORT=y
    CONFIG_SPL_SERIAL_SUPPORT=y
    # CONFIG_SPL_DRIVERS_MISC_SUPPORT is not set
    CONFIG_SPL_SYS_MALLOC_F_LEN=0x1000
    CONFIG_SPL=y
    CONFIG_IDENT_STRING=""
    CONFIG_SPL_STACK_R_ADDR=0x82000000
    CONFIG_SPL_FS_FAT=y
    CONFIG_SPL_LIBDISK_SUPPORT=y
    # CONFIG_SPL_SPI_FLASH_SUPPORT is not set
    # CONFIG_SPL_SPI_SUPPORT is not set
    # CONFIG_ARMV7_LPAE is not set
    # CONFIG_CMD_DEKBLOB is not set
    # CONFIG_CMD_HDMIDETECT is not set
    
    #
    # ARM debug
    #
    # CONFIG_DEBUG_LL is not set
    CONFIG_SMBIOS_PRODUCT_NAME="am335x"
    # CONFIG_DEBUG_UART is not set
    # CONFIG_AHCI is not set
    
    #
    # General setup
    #
    CONFIG_LOCALVERSION=""
    CONFIG_LOCALVERSION_AUTO=y
    CONFIG_CC_OPTIMIZE_FOR_SIZE=y
    CONFIG_DISTRO_DEFAULTS=y
    CONFIG_ENV_VARS_UBOOT_CONFIG=y
    CONFIG_NR_DRAM_BANKS=4
    # CONFIG_SYS_BOOT_GET_CMDLINE is not set
    # CONFIG_SYS_BOOT_GET_KBD is not set
    CONFIG_SYS_MALLOC_F=y
    CONFIG_TPL_SYS_MALLOC_F_LEN=0x1000
    CONFIG_EXPERT=y
    CONFIG_SYS_MALLOC_CLEAR_ON_INIT=y
    # CONFIG_TOOLS_DEBUG is not set
    # CONFIG_PHYS_64BIT is not set
    CONFIG_BUILD_TARGET=""
    
    #
    # Boot images
    #
    # CONFIG_ANDROID_BOOT_IMAGE is not set
    CONFIG_FIT=y
    CONFIG_FIT_EXTERNAL_OFFSET=0x0
    CONFIG_FIT_ENABLE_SHA256_SUPPORT=y
    # CONFIG_FIT_SIGNATURE is not set
    # CONFIG_FIT_VERBOSE is not set
    # CONFIG_FIT_BEST_MATCH is not set
    # CONFIG_SPL_FIT is not set
    # CONFIG_SPL_FIT_SIGNATURE is not set
    # CONFIG_SPL_LOAD_FIT is not set
    # CONFIG_SPL_LOAD_FIT_FULL is not set
    CONFIG_IMAGE_FORMAT_LEGACY=y
    # 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=""
    CONFIG_ARCH_FIXUP_FDT_MEMORY=y
    
    #
    # API
    #
    # CONFIG_API is not set
    
    #
    # Boot timing
    #
    # CONFIG_BOOTSTAGE is not set
    CONFIG_BOOTSTAGE_RECORD_COUNT=30
    CONFIG_SPL_BOOTSTAGE_RECORD_COUNT=5
    CONFIG_BOOTSTAGE_STASH_ADDR=0
    CONFIG_BOOTSTAGE_STASH_SIZE=0x1000
    
    #
    # Boot media
    #
    # CONFIG_NAND_BOOT is not set
    # CONFIG_ONENAND_BOOT is not set
    # CONFIG_QSPI_BOOT is not set
    # CONFIG_SATA_BOOT is not set
    # CONFIG_SD_BOOT is not set
    # CONFIG_SPI_BOOT is not set
    CONFIG_BOOTDELAY=3
    # CONFIG_USE_BOOTARGS is not set
    CONFIG_USE_BOOTCOMMAND=y
    CONFIG_BOOTCOMMAND="if test ${boot_fit} -eq 1; then run update_to_fit; fi; run findfdt; run init_console; run envboot; run distro_bootcmd"
    # CONFIG_USE_PREBOOT is not set
    
    #
    # Console
    #
    CONFIG_MENU=y
    # CONFIG_CONSOLE_RECORD is not set
    # CONFIG_DISABLE_CONSOLE is not set
    CONFIG_LOGLEVEL=4
    CONFIG_SPL_LOGLEVEL=4
    CONFIG_TPL_LOGLEVEL=4
    # CONFIG_SILENT_CONSOLE is not set
    # CONFIG_PRE_CONSOLE_BUFFER is not set
    # CONFIG_CONSOLE_MUX is not set
    # CONFIG_SYS_CONSOLE_IS_IN_ENV is not set
    # CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE is not set
    # CONFIG_SYS_CONSOLE_ENV_OVERWRITE is not set
    CONFIG_SYS_CONSOLE_INFO_QUIET=y
    # CONFIG_SYS_STDIO_DEREGISTER is not set
    
    #
    # Logging
    #
    # CONFIG_LOG is not set
    CONFIG_LOG_DEFAULT_LEVEL=6
    CONFIG_SUPPORT_RAW_INITRD=y
    CONFIG_DEFAULT_FDT_FILE="epn11291"
    # CONFIG_MISC_INIT_R is not set
    CONFIG_VERSION_VARIABLE=y
    CONFIG_BOARD_LATE_INIT=y
    CONFIG_DISPLAY_CPUINFO=y
    CONFIG_DISPLAY_BOARDINFO=y
    # CONFIG_DISPLAY_BOARDINFO_LATE is not set
    # CONFIG_BOUNCE_BUFFER is not set
    # CONFIG_BOARD_TYPES is not set
    
    #
    # Start-up hooks
    #
    # CONFIG_ARCH_EARLY_INIT_R is not set
    CONFIG_ARCH_MISC_INIT=y
    # CONFIG_BOARD_EARLY_INIT_F is not set
    # CONFIG_BOARD_EARLY_INIT_R is not set
    # CONFIG_LAST_STAGE_INIT is not set
    
    #
    # Security support
    #
    CONFIG_HASH=y
    
    #
    # Update support
    #
    # CONFIG_UPDATE_TFTP is not set
    
    #
    # Blob list
    #
    # CONFIG_BLOBLIST is not set
    
    #
    # SPL / TPL
    #
    CONFIG_SUPPORT_SPL=y
    CONFIG_SPL_FRAMEWORK=y
    CONFIG_SPL_BOARD_INIT=y
    # CONFIG_SPL_BOOTROM_SUPPORT is not set
    # CONFIG_SPL_BOOTCOUNT_LIMIT is not set
    CONFIG_SPL_RAW_IMAGE_SUPPORT=y
    CONFIG_SPL_LEGACY_IMAGE_SUPPORT=y
    # CONFIG_SPL_LEGACY_IMAGE_CRC_CHECK is not set
    CONFIG_SPL_SYS_MALLOC_SIMPLE=y
    # CONFIG_TPL_SYS_MALLOC_SIMPLE is not set
    CONFIG_SPL_STACK_R=y
    CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x100000
    CONFIG_SPL_SEPARATE_BSS=y
    CONFIG_SPL_BANNER_PRINT=y
    CONFIG_TPL_BANNER_PRINT=y
    # CONFIG_SPL_DISPLAY_PRINT is not set
    CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y
    CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x300
    # CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION is not set
    CONFIG_SPL_CRC32_SUPPORT=y
    # CONFIG_SPL_CPU_SUPPORT is not set
    # CONFIG_SPL_CRYPTO_SUPPORT is not set
    # CONFIG_SPL_HASH_SUPPORT is not set
    # CONFIG_TPL_HASH_SUPPORT is not set
    # CONFIG_SPL_DMA_SUPPORT is not set
    CONFIG_SPL_ENV_SUPPORT=y
    # CONFIG_SPL_SAVEENV is not set
    CONFIG_SPL_ETH_SUPPORT=y
    CONFIG_SPL_FS_EXT4=y
    # CONFIG_SPL_FAT_WRITE is not set
    # CONFIG_SPL_FPGA_SUPPORT is not set
    # CONFIG_SPL_I2C_SUPPORT is not set
    # CONFIG_SPL_DM_MAILBOX is not set
    # CONFIG_SPL_MMC_WRITE is not set
    # CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT is not set
    # CONFIG_SPL_MTD_SUPPORT is not set
    # CONFIG_SPL_MUSB_NEW_SUPPORT is not set
    # CONFIG_SPL_NAND_SUPPORT is not set
    # CONFIG_SPL_NET_SUPPORT is not set
    # CONFIG_SPL_NO_CPU_SUPPORT is not set
    # CONFIG_SPL_NOR_SUPPORT is not set
    # CONFIG_SPL_XIP_SUPPORT is not set
    # CONFIG_SPL_ONENAND_SUPPORT is not set
    CONFIG_SPL_OS_BOOT=y
    CONFIG_SPL_PAYLOAD="u-boot.bin"
    # CONFIG_SPL_PCI is not set
    # CONFIG_SPL_PCH_SUPPORT is not set
    # CONFIG_SPL_POST_MEM_SUPPORT is not set
    # CONFIG_SPL_DM_RESET is not set
    # CONFIG_SPL_POWER_SUPPORT is not set
    # CONFIG_SPL_POWER_DOMAIN is not set
    # CONFIG_SPL_RAM_SUPPORT is not set
    # CONFIG_SPL_REMOTEPROC is not set
    # CONFIG_SPL_RTC_SUPPORT is not set
    # CONFIG_SPL_SATA_SUPPORT is not set
    # CONFIG_SPL_THERMAL is not set
    # CONFIG_SPL_USB_HOST_SUPPORT is not set
    # CONFIG_SPL_USB_GADGET is not set
    CONFIG_SPL_WATCHDOG_SUPPORT=y
    CONFIG_SPL_YMODEM_SUPPORT=y
    CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC=y
    # CONFIG_SPL_OPTEE is not set
    
    #
    # Command line interface
    #
    CONFIG_CMDLINE=y
    CONFIG_HUSH_PARSER=y
    CONFIG_CMDLINE_EDITING=y
    CONFIG_AUTO_COMPLETE=y
    CONFIG_SYS_LONGHELP=y
    CONFIG_SYS_PROMPT="U-Boot# "
    
    #
    # Autoboot options
    #
    CONFIG_AUTOBOOT=y
    CONFIG_AUTOBOOT_KEYED=y
    CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
    # CONFIG_AUTOBOOT_ENCRYPTION is not set
    CONFIG_AUTOBOOT_DELAY_STR="d"
    CONFIG_AUTOBOOT_STOP_STR=" "
    # CONFIG_AUTOBOOT_KEYED_CTRLC is not set
    
    #
    # Commands
    #
    
    #
    # Info commands
    #
    CONFIG_CMD_BDI=y
    # CONFIG_CMD_CONFIG is not set
    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_BOOTEFI_HELLO_COMPILE=y
    # CONFIG_CMD_BOOTEFI_HELLO is not set
    # CONFIG_CMD_BOOTEFI_SELFTEST is not set
    # CONFIG_CMD_BOOTMENU is not set
    # CONFIG_CMD_DTIMG is not set
    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
    CONFIG_CMD_SPL=y
    CONFIG_CMD_SPL_NAND_OFS=0
    CONFIG_CMD_SPL_WRITE_SIZE=0x2000
    # CONFIG_CMD_FITUPD is not set
    # CONFIG_CMD_THOR_DOWNLOAD is not set
    # CONFIG_CMD_ZBOOT is not set
    
    #
    # Environment commands
    #
    # CONFIG_CMD_ASKENV is not set
    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
    # CONFIG_CMD_ENV_CALLBACK is not set
    # CONFIG_CMD_ENV_FLAGS is not set
    CONFIG_CMD_NVEDIT_EFI=y
    
    #
    # Memory commands
    #
    # CONFIG_CMD_BINOP is not set
    CONFIG_CMD_CRC32=y
    # CONFIG_CRC32_VERIFY is not set
    # CONFIG_CMD_EEPROM is not set
    # CONFIG_LOOPW is not set
    # CONFIG_CMD_MD5SUM is not set
    # CONFIG_CMD_MEMINFO is not set
    CONFIG_CMD_MEMORY=y
    # CONFIG_CMD_MEMTEST is not set
    # CONFIG_CMD_MX_CYCLIC is not set
    # CONFIG_CMD_SHA1SUM is not set
    # CONFIG_CMD_STRINGS is not set
    
    #
    # Compression commands
    #
    # CONFIG_CMD_LZMADEC is not set
    # CONFIG_CMD_UNZIP is not set
    # CONFIG_CMD_ZIP is not set
    
    #
    # Device access commands
    #
    # CONFIG_CMD_ARMFLASH is not set
    # CONFIG_CMD_ADC is not set
    # CONFIG_CMD_BIND is not set
    # CONFIG_CMD_CLK is not set
    # CONFIG_CMD_DEMO is not set
    # CONFIG_CMD_DFU is not set
    CONFIG_CMD_DM=y
    # CONFIG_CMD_FDC is not set
    # CONFIG_CMD_FLASH is not set
    # CONFIG_CMD_FPGAD is not set
    # CONFIG_CMD_FUSE is not set
    CONFIG_CMD_GPIO=y
    CONFIG_CMD_GPT=y
    CONFIG_RANDOM_UUID=y
    # CONFIG_CMD_GPT_RENAME is not set
    # CONFIG_CMD_IDE is not set
    # CONFIG_CMD_IO is not set
    # CONFIG_CMD_IOTRACE is not set
    # CONFIG_CMD_I2C is not set
    CONFIG_CMD_LOADB=y
    CONFIG_CMD_LOADS=y
    CONFIG_CMD_MMC=y
    # CONFIG_CMD_MMC_RPMB is not set
    # CONFIG_CMD_MMC_SWRITE is not set
    # CONFIG_CMD_MTD is not set
    # CONFIG_CMD_NAND is not set
    # CONFIG_CMD_MMC_SPI is not set
    # CONFIG_CMD_ONENAND is not set
    # CONFIG_CMD_OSD is not set
    CONFIG_CMD_PART=y
    # CONFIG_CMD_PCI is not set
    # CONFIG_CMD_PCMCIA is not set
    # CONFIG_CMD_PINMUX is not set
    # CONFIG_CMD_POWEROFF is not set
    # CONFIG_CMD_READ is not set
    # CONFIG_CMD_SATA is not set
    # CONFIG_CMD_SAVES is not set
    # CONFIG_CMD_SCSI is not set
    # CONFIG_CMD_SDRAM is not set
    # CONFIG_CMD_SF is not set
    # CONFIG_CMD_SF_TEST is not set
    # CONFIG_CMD_SPI is not set
    # CONFIG_CMD_TSI148 is not set
    # CONFIG_CMD_UNIVERSE is not set
    # CONFIG_CMD_USB is not set
    # CONFIG_CMD_USB_SDP is not set
    # CONFIG_CMD_USB_MASS_STORAGE is not set
    
    #
    # Shell scripting commands
    #
    CONFIG_CMD_ECHO=y
    CONFIG_CMD_ITEST=y
    CONFIG_CMD_SOURCE=y
    CONFIG_CMD_SETEXPR=y
    CONFIG_CMD_NET=y
    CONFIG_CMD_BOOTP=y
    CONFIG_CMD_DHCP=y
    CONFIG_BOOTP_BOOTPATH=y
    CONFIG_BOOTP_DNS=y
    # CONFIG_BOOTP_DNS2 is not set
    CONFIG_BOOTP_GATEWAY=y
    CONFIG_BOOTP_HOSTNAME=y
    # CONFIG_BOOTP_PREFER_SERVERIP is not set
    CONFIG_BOOTP_SUBNETMASK=y
    # CONFIG_BOOTP_NTPSERVER is not set
    CONFIG_BOOTP_PXE=y
    CONFIG_BOOTP_PXE_CLIENTARCH=0x15
    CONFIG_BOOTP_VCI_STRING="U-Boot.armv7"
    CONFIG_CMD_TFTPBOOT=y
    # CONFIG_CMD_TFTPPUT is not set
    # CONFIG_CMD_TFTPSRV is not set
    CONFIG_NET_TFTP_VARS=y
    # CONFIG_CMD_RARP is not set
    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
    # CONFIG_CMD_ETHSW is not set
    CONFIG_CMD_PXE=y
    # CONFIG_CMD_WOL is not set
    
    #
    # Misc commands
    #
    # CONFIG_CMD_BOOTCOUNT is not set
    # CONFIG_CMD_BSP is not set
    # CONFIG_CMD_BKOPS_ENABLE is not set
    # CONFIG_CMD_CACHE is not set
    # CONFIG_CMD_CONITRACE is not set
    # CONFIG_CMD_DISPLAY is not set
    # CONFIG_CMD_EFIDEBUG is not set
    # CONFIG_CMD_DATE is not set
    # CONFIG_CMD_TIME is not set
    # CONFIG_CMD_GETTIME is not set
    CONFIG_CMD_MISC=y
    # CONFIG_MP is not set
    # CONFIG_CMD_TIMER is not set
    # CONFIG_CMD_QFW is not set
    # CONFIG_CMD_TERMINAL is not set
    # CONFIG_CMD_UUID is not set
    
    #
    # TI specific command line interface
    #
    # CONFIG_CMD_DDR3 is not set
    
    #
    # Power commands
    #
    
    #
    # Security commands
    #
    # CONFIG_CMD_AES is not set
    # CONFIG_CMD_BLOB is not set
    # CONFIG_CMD_HASH is not set
    
    #
    # Firmware commands
    #
    
    #
    # Filesystem commands
    #
    CONFIG_CMD_BTRFS=y
    CONFIG_CMD_EXT2=y
    CONFIG_CMD_EXT4=y
    # CONFIG_CMD_EXT4_WRITE is not set
    CONFIG_CMD_FAT=y
    CONFIG_CMD_FS_GENERIC=y
    # CONFIG_CMD_FS_UUID is not set
    # CONFIG_CMD_JFFS2 is not set
    # CONFIG_CMD_MTDPARTS is not set
    # CONFIG_CMD_REISER is not set
    # CONFIG_CMD_ZFS is not set
    
    #
    # Debug commands
    #
    # CONFIG_CMD_BEDBUG is not set
    # CONFIG_CMD_DIAG is not set
    # CONFIG_CMD_LOG is not set
    # CONFIG_CMD_TRACE is not set
    # CONFIG_CMD_UBI is not set
    
    #
    # Partition Types
    #
    CONFIG_PARTITIONS=y
    # CONFIG_MAC_PARTITION is not set
    # CONFIG_SPL_MAC_PARTITION is not set
    CONFIG_DOS_PARTITION=y
    CONFIG_SPL_DOS_PARTITION=y
    CONFIG_ISO_PARTITION=y
    # CONFIG_SPL_ISO_PARTITION is not set
    # CONFIG_AMIGA_PARTITION is not set
    # CONFIG_SPL_AMIGA_PARTITION is not set
    CONFIG_EFI_PARTITION=y
    CONFIG_EFI_PARTITION_ENTRIES_NUMBERS=128
    CONFIG_EFI_PARTITION_ENTRIES_OFF=0
    CONFIG_SPL_EFI_PARTITION=y
    CONFIG_PARTITION_UUIDS=y
    CONFIG_SPL_PARTITION_UUIDS=y
    # CONFIG_PARTITION_TYPE_GUID is not set
    CONFIG_SUPPORT_OF_CONTROL=y
    
    #
    # Device Tree Control
    #
    # CONFIG_OF_CONTROL is not set
    # CONFIG_OF_BOARD_FIXUP is not set
    # CONFIG_MULTI_DTB_FIT is not set
    CONFIG_MKIMAGE_DTC_PATH="dtc"
    
    #
    # Environment
    #
    # CONFIG_ENV_IS_IN_EEPROM is not set
    # CONFIG_ENV_IS_IN_FAT is not set
    CONFIG_ENV_IS_IN_EXT4=y
    # CONFIG_ENV_IS_IN_FLASH is not set
    # CONFIG_ENV_IS_IN_MMC is not set
    # CONFIG_ENV_IS_IN_NAND is not set
    # CONFIG_ENV_IS_IN_NVRAM is not set
    # CONFIG_ENV_IS_IN_ONENAND is not set
    # CONFIG_ENV_IS_IN_REMOTE is not set
    # CONFIG_ENV_IS_IN_SPI_FLASH is not set
    # CONFIG_ENV_IS_IN_UBI is not set
    CONFIG_ENV_EXT4_INTERFACE="mmc"
    CONFIG_ENV_EXT4_DEVICE_AND_PART="1:1"
    CONFIG_ENV_EXT4_FILE="/boot/uboot.env"
    # CONFIG_USE_DEFAULT_ENV_FILE is not set
    CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
    # CONFIG_SPL_ENV_IS_NOWHERE is not set
    CONFIG_SPL_ENV_IS_IN_EXT4=y
    CONFIG_NET=y
    # CONFIG_NET_RANDOM_ETHADDR is not set
    # CONFIG_NETCONSOLE is not set
    
    #
    # Device Drivers
    #
    
    #
    # Generic Driver Options
    #
    CONFIG_DM=y
    CONFIG_SPL_DM=y
    CONFIG_DM_WARN=y
    # CONFIG_DM_DEBUG is not set
    CONFIG_DM_DEVICE_REMOVE=y
    # CONFIG_SPL_DM_DEVICE_REMOVE is not set
    CONFIG_DM_STDIO=y
    CONFIG_DM_SEQ_ALIAS=y
    CONFIG_SPL_DM_SEQ_ALIAS=y
    # CONFIG_REGMAP is not set
    # CONFIG_SPL_REGMAP is not set
    # CONFIG_DEVRES is not set
    CONFIG_DM_DEV_READ_INLINE=y
    # CONFIG_ADC is not set
    # CONFIG_ADC_EXYNOS is not set
    # CONFIG_ADC_SANDBOX is not set
    # CONFIG_SARADC_MESON is not set
    # CONFIG_SARADC_ROCKCHIP is not set
    # CONFIG_SATA is not set
    # CONFIG_SCSI_AHCI is not set
    
    #
    # SATA/SCSI device support
    #
    # CONFIG_DWC_AHSATA is not set
    # CONFIG_FSL_SATA is not set
    # CONFIG_MVSATA_IDE is not set
    # CONFIG_SATA_MV is not set
    # CONFIG_SATA_SIL is not set
    # CONFIG_SATA_SIL3114 is not set
    # CONFIG_AXI is not set
    # CONFIG_BLK is not set
    CONFIG_HAVE_BLOCK_DEVICE=y
    # CONFIG_IDE is not set
    CONFIG_BOOTCOUNT_LIMIT=y
    # CONFIG_BOOTCOUNT_GENERIC is not set
    # CONFIG_BOOTCOUNT_EXT is not set
    CONFIG_BOOTCOUNT_AM33XX=y
    # CONFIG_BOOTCOUNT_ENV is not set
    # CONFIG_BOOTCOUNT_RAM is not set
    # CONFIG_BOOTCOUNT_I2C is not set
    # CONFIG_DM_BOOTCOUNT is not set
    CONFIG_BOOTCOUNT_BOOTLIMIT=0
    CONFIG_SYS_BOOTCOUNT_ADDR=0x44E3E000
    CONFIG_SYS_BOOTCOUNT_MAGIC=0xB001C041
    
    #
    # Clock
    #
    # CONFIG_CLK is not set
    # CONFIG_CPU is not set
    
    #
    # Hardware crypto devices
    #
    # CONFIG_FSL_CAAM is not set
    # CONFIG_SYS_FSL_SEC_BE is not set
    # CONFIG_SYS_FSL_SEC_LE is not set
    # CONFIG_IMX8M_DRAM is not set
    # CONFIG_IMX8M_LPDDR4 is not set
    # CONFIG_IMX8M_DDR4 is not set
    CONFIG_SAVED_DRAM_TIMING_BASE=0x180000
    
    #
    # Demo for driver model
    #
    # CONFIG_DM_DEMO is not set
    # CONFIG_BOARD is not set
    
    #
    # DFU support
    #
    
    #
    # DMA Support
    #
    # CONFIG_DMA is not set
    # CONFIG_TI_EDMA3 is not set
    
    #
    # Fastboot support
    #
    # CONFIG_UDP_FUNCTION_FASTBOOT is not set
    # CONFIG_FIRMWARE is not set
    
    #
    # FPGA support
    #
    # CONFIG_FPGA_ALTERA is not set
    # CONFIG_FPGA_SOCFPGA is not set
    # CONFIG_FPGA_XILINX is not set
    # CONFIG_FPGA_SPARTAN3 is not set
    
    #
    # GPIO Support
    #
    CONFIG_DM_GPIO=y
    # CONFIG_ALTERA_PIO is not set
    # CONFIG_DWAPB_GPIO is not set
    # CONFIG_AT91_GPIO is not set
    # CONFIG_ATMEL_PIO4 is not set
    # CONFIG_DA8XX_GPIO is not set
    # CONFIG_INTEL_BROADWELL_GPIO is not set
    # CONFIG_INTEL_ICH6_GPIO is not set
    # CONFIG_IMX_RGPIO2P is not set
    # CONFIG_HSDK_CREG_GPIO is not set
    # CONFIG_LPC32XX_GPIO is not set
    # CONFIG_MSM_GPIO is not set
    # CONFIG_MXC_GPIO is not set
    CONFIG_OMAP_GPIO=y
    # CONFIG_CMD_PCA953X is not set
    # CONFIG_ROCKCHIP_GPIO is not set
    # CONFIG_XILINX_GPIO is not set
    # CONFIG_CMD_TCA642X is not set
    # CONFIG_TEGRA_GPIO is not set
    # CONFIG_TEGRA186_GPIO is not set
    # CONFIG_VYBRID_GPIO is not set
    # CONFIG_DM_74X164 is not set
    # CONFIG_DM_PCA953X is not set
    # CONFIG_SPL_DM_PCA953X is not set
    # CONFIG_MPC8XXX_GPIO is not set
    
    #
    # Hardware Spinlock Support
    #
    # CONFIG_DM_HWSPINLOCK is not set
    
    #
    # I2C support
    #
    # CONFIG_DM_I2C is not set
    # CONFIG_DM_I2C_COMPAT is not set
    # CONFIG_SYS_I2C_DW is not set
    # CONFIG_SYS_I2C_IMX_LPI2C is not set
    # CONFIG_SYS_I2C_MXC is not set
    # CONFIG_SYS_I2C_OMAP24XX is not set
    CONFIG_SYS_I2C_BUS_MAX=0
    CONFIG_INPUT=y
    # CONFIG_SPL_INPUT is not set
    # CONFIG_DM_KEYBOARD is not set
    # CONFIG_SPL_DM_KEYBOARD is not set
    # CONFIG_CROS_EC_KEYB is not set
    # CONFIG_TEGRA_KEYBOARD is not set
    # CONFIG_TWL4030_INPUT is not set
    
    #
    # LED Support
    #
    # CONFIG_LED is not set
    # CONFIG_SPL_LED is not set
    # CONFIG_LED_STATUS is not set
    
    #
    # Mailbox Controller Support
    #
    
    #
    # Memory Controller drivers
    #
    
    #
    # Multifunction device drivers
    #
    # CONFIG_MISC is not set
    # CONFIG_CROS_EC is not set
    # CONFIG_DS4510 is not set
    # CONFIG_FSL_SEC_MON is not set
    # CONFIG_MXC_OCOTP is not set
    # CONFIG_NUVOTON_NCT6102D is not set
    # CONFIG_PWRSEQ is not set
    # CONFIG_PCA9551_LED is not set
    # CONFIG_TWL4030_LED is not set
    # CONFIG_WINBOND_W83627 is not set
    # CONFIG_FS_LOADER is not set
    
    #
    # MMC Host controller Support
    #
    CONFIG_MMC=y
    CONFIG_MMC_WRITE=y
    # CONFIG_MMC_BROKEN_CD is not set
    # CONFIG_DM_MMC is not set
    CONFIG_MMC_QUIRKS=y
    CONFIG_MMC_HW_PARTITIONING=y
    # CONFIG_SUPPORT_EMMC_RPMB is not set
    # CONFIG_MMC_IO_VOLTAGE is not set
    # CONFIG_SPL_MMC_IO_VOLTAGE is not set
    CONFIG_MMC_HS400_SUPPORT=y
    # CONFIG_SPL_MMC_HS400_SUPPORT is not set
    CONFIG_MMC_HS200_SUPPORT=y
    # CONFIG_SPL_MMC_HS200_SUPPORT is not set
    CONFIG_MMC_VERBOSE=y
    # CONFIG_MMC_TRACE is not set
    # CONFIG_SPL_MMC_TINY is not set
    # CONFIG_MMC_DW is not set
    # CONFIG_MMC_MXC is not set
    # CONFIG_MMC_PCI is not set
    CONFIG_MMC_OMAP_HS=y
    # CONFIG_MMC_OMAP_HS_ADMA is not set
    # CONFIG_MMC_SDHCI is not set
    # CONFIG_FTSDC010 is not set
    # CONFIG_FSL_ESDHC is not set
    
    #
    # MTD Support
    #
    # CONFIG_MTD is not set
    # CONFIG_MTD_NOR_FLASH is not set
    # CONFIG_MTD_DEVICE is not set
    # CONFIG_FLASH_CFI_DRIVER is not set
    # CONFIG_NAND is not set
    
    #
    # SPI Flash Support
    #
    
    #
    # UBI support
    #
    # CONFIG_CONFIG_UBI_SILENCE_MSG is not set
    # CONFIG_MTD_UBI is not set
    # CONFIG_BITBANGMII is not set
    # CONFIG_MV88E6352_SWITCH is not set
    CONFIG_PHYLIB=y
    # CONFIG_PHY_ADDR_ENABLE is not set
    # CONFIG_B53_SWITCH is not set
    # CONFIG_MV88E61XX_SWITCH is not set
    # CONFIG_PHYLIB_10G is not set
    # CONFIG_PHY_AQUANTIA is not set
    # CONFIG_PHY_ATHEROS is not set
    # CONFIG_PHY_BROADCOM is not set
    # CONFIG_PHY_CORTINA is not set
    # CONFIG_PHY_DAVICOM is not set
    # CONFIG_PHY_ET1011C is not set
    # CONFIG_PHY_LXT is not set
    CONFIG_PHY_MARVELL=y
    # CONFIG_PHY_MESON_GXL is not set
    # CONFIG_PHY_MICREL is not set
    # CONFIG_PHY_MSCC is not set
    # CONFIG_PHY_NATSEMI is not set
    # CONFIG_PHY_REALTEK is not set
    # CONFIG_PHY_SMSC is not set
    # CONFIG_PHY_TERANETICS is not set
    # CONFIG_PHY_TI is not set
    # CONFIG_PHY_VITESSE is not set
    # CONFIG_PHY_XILINX is not set
    # CONFIG_FSL_PFE is not set
    # CONFIG_DM_ETH is not set
    CONFIG_NETDEVICES=y
    # CONFIG_PHY_GIGE is not set
    # CONFIG_BCM_SF2_ETH is not set
    # CONFIG_E1000 is not set
    # CONFIG_ETH_DESIGNWARE is not set
    # CONFIG_ETHOC is not set
    # CONFIG_FTMAC100 is not set
    CONFIG_RGMII=y
    # CONFIG_MII is not set
    # CONFIG_RTL8139 is not set
    # CONFIG_RTL8169 is not set
    # CONFIG_SMC911X is not set
    # CONFIG_SUN7I_GMAC is not set
    # CONFIG_SH_ETHER is not set
    CONFIG_DRIVER_TI_CPSW=y
    # CONFIG_DRIVER_TI_EMAC is not set
    # CONFIG_DRIVER_TI_KEYSTONE_NET is not set
    # CONFIG_SYS_DPAA_QBMAN is not set
    # CONFIG_TSEC_ENET is not set
    # CONFIG_PCI is not set
    
    #
    # PHY Subsystem
    #
    # CONFIG_PHY is not set
    # CONFIG_SPL_PHY is not set
    # CONFIG_MVEBU_COMPHY_SUPPORT is not set
    
    #
    # Pin controllers
    #
    # CONFIG_PINCTRL is not set
    # CONFIG_SPL_PINCTRL is not set
    
    #
    # Power
    #
    
    #
    # Power Domain Support
    #
    # CONFIG_DM_PMIC is not set
    # CONFIG_PMIC_AS3722 is not set
    # CONFIG_POWER_MC34VR500 is not set
    # CONFIG_DM_REGULATOR is not set
    # CONFIG_DM_PWM is not set
    # CONFIG_PWM_SANDBOX is not set
    # CONFIG_U_QE is not set
    # CONFIG_RAM is not set
    
    #
    # Remote Processor drivers
    #
    
    #
    # Reset Controller Support
    #
    
    #
    # Real Time Clock
    #
    # CONFIG_DM_RTC is not set
    # CONFIG_SPL_DM_RTC is not set
    # CONFIG_RTC_PL031 is not set
    # CONFIG_RTC_S35392A is not set
    # CONFIG_RTC_MC146818 is not set
    # CONFIG_RTC_M41T62 is not set
    # CONFIG_SCSI is not set
    
    #
    # Serial drivers
    #
    CONFIG_BAUDRATE=115200
    CONFIG_REQUIRE_SERIAL_CONSOLE=y
    CONFIG_SPECIFY_CONSOLE_INDEX=y
    CONFIG_SERIAL_PRESENT=y
    CONFIG_SPL_SERIAL_PRESENT=y
    CONFIG_TPL_SERIAL_PRESENT=y
    CONFIG_CONS_INDEX=1
    CONFIG_DM_SERIAL=y
    # CONFIG_SERIAL_RX_BUFFER is not set
    # CONFIG_SERIAL_SEARCH_ALL is not set
    CONFIG_SPL_DM_SERIAL=y
    # CONFIG_TPL_DM_SERIAL is not set
    # CONFIG_ALTERA_JTAG_UART is not set
    # CONFIG_ALTERA_UART is not set
    # CONFIG_ARC_SERIAL is not set
    # CONFIG_ATMEL_USART is not set
    # CONFIG_BCM6345_SERIAL is not set
    # CONFIG_FSL_LINFLEXUART is not set
    # CONFIG_FSL_LPUART is not set
    # CONFIG_MVEBU_A3700_UART is not set
    # CONFIG_NULLDEV_SERIAL is not set
    CONFIG_SYS_NS16550=y
    # CONFIG_PL01X_SERIAL is not set
    # CONFIG_MSM_SERIAL is not set
    CONFIG_OMAP_SERIAL=y
    # CONFIG_PXA_SERIAL is not set
    # CONFIG_SIFIVE_SERIAL is not set
    # CONFIG_MTK_SERIAL is not set
    # CONFIG_SMEM is not set
    
    #
    # Sound support
    #
    # CONFIG_SOUND is not set
    # CONFIG_SPI is not set
    
    #
    # SPMI support
    #
    # CONFIG_SPMI is not set
    
    #
    # System reset device drivers
    #
    # CONFIG_SYSRESET is not set
    # CONFIG_SYSRESET_SYSCON is not set
    # CONFIG_SYSRESET_WATCHDOG is not set
    # CONFIG_SYSRESET_MCP83XX is not set
    # CONFIG_TEE is not set
    # CONFIG_OPTEE is not set
    # CONFIG_DM_THERMAL is not set
    
    #
    # Timer Support
    #
    # CONFIG_TIMER is not set
    
    #
    # TPM support
    #
    # CONFIG_USB is not set
    
    #
    # Graphics support
    #
    # CONFIG_DM_VIDEO is not set
    # CONFIG_SYS_WHITE_ON_BLACK is not set
    # CONFIG_NO_FB_CLEAR 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_VIDEO_OMAP3 is not set
    # CONFIG_I2C_EDID is not set
    # CONFIG_DISPLAY is not set
    # CONFIG_VIDEO_BRIDGE is not set
    # CONFIG_VIDEO is not set
    # CONFIG_LCD is not set
    # CONFIG_VIDEO_SIMPLE is not set
    # CONFIG_VIDEO_DT_SIMPLEFB is not set
    # CONFIG_OSD is not set
    
    #
    # VirtIO Drivers
    #
    # CONFIG_VIRTIO_MMIO is not set
    
    #
    # 1-Wire support
    #
    # CONFIG_W1 is not set
    
    #
    # 1-wire EEPROM support
    #
    # CONFIG_W1_EEPROM is not set
    
    #
    # Watchdog Timer Support
    #
    # CONFIG_WATCHDOG is not set
    CONFIG_HW_WATCHDOG=y
    # CONFIG_WATCHDOG_RESET_DISABLE is not set
    # CONFIG_BCM2835_WDT is not set
    CONFIG_OMAP_WATCHDOG=y
    # CONFIG_ULP_WATCHDOG is not set
    # CONFIG_WDT is not set
    # CONFIG_IMX_WATCHDOG is not set
    # CONFIG_PHYS_TO_BUS is not set
    
    #
    # File systems
    #
    CONFIG_FS_BTRFS=y
    # CONFIG_FS_CBFS is not set
    CONFIG_FS_EXT4=y
    CONFIG_EXT4_WRITE=y
    CONFIG_FS_FAT=y
    # CONFIG_FAT_WRITE is not set
    CONFIG_FS_FAT_MAX_CLUSTSIZE=65536
    # CONFIG_FS_JFFS2 is not set
    # CONFIG_UBIFS_SILENCE_MSG is not set
    # CONFIG_FS_CRAMFS is not set
    # CONFIG_YAFFS2 is not set
    
    #
    # Library routines
    #
    # CONFIG_BCH is not set
    # CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED is not set
    # CONFIG_DYNAMIC_CRC_TABLE is not set
    CONFIG_HAVE_PRIVATE_LIBGCC=y
    CONFIG_LIB_UUID=y
    CONFIG_PRINTF=y
    CONFIG_SPL_PRINTF=y
    CONFIG_SPRINTF=y
    CONFIG_SPL_SPRINTF=y
    CONFIG_STRTO=y
    CONFIG_SPL_STRTO=y
    CONFIG_USE_PRIVATE_LIBGCC=y
    CONFIG_SYS_HZ=1000
    CONFIG_USE_TINY_PRINTF=y
    # CONFIG_PANIC_HANG is not set
    CONFIG_REGEX=y
    CONFIG_LIB_RAND=y
    # CONFIG_LIB_HW_RAND is not set
    # CONFIG_SPL_TINY_MEMSET is not set
    # CONFIG_TPL_TINY_MEMSET is not set
    CONFIG_RBTREE=y
    # CONFIG_BITREVERSE is not set
    # CONFIG_CMD_DHRYSTONE is not set
    
    #
    # Security support
    #
    # CONFIG_AES is not set
    # CONFIG_RSA is not set
    # CONFIG_TPM is not set
    # CONFIG_SPL_TPM is not set
    
    #
    # Android Verified Boot
    #
    
    #
    # Hashing Support
    #
    CONFIG_SHA1=y
    CONFIG_SHA256=y
    # CONFIG_SHA_HW_ACCEL is not set
    CONFIG_MD5=y
    CONFIG_CRC32C=y
    
    #
    # Compression Support
    #
    # CONFIG_LZ4 is not set
    # CONFIG_LZMA is not set
    CONFIG_LZO=y
    # CONFIG_SPL_LZ4 is not set
    # CONFIG_SPL_LZO is not set
    # CONFIG_SPL_GZIP is not set
    # CONFIG_ERRNO_STR is not set
    CONFIG_HEXDUMP=y
    CONFIG_OF_LIBFDT=y
    CONFIG_OF_LIBFDT_OVERLAY=y
    CONFIG_SPL_OF_LIBFDT=y
    # CONFIG_TPL_OF_LIBFDT is not set
    
    #
    # System tables
    #
    CONFIG_GENERATE_SMBIOS_TABLE=y
    CONFIG_SMBIOS_MANUFACTURER="ti"
    CONFIG_EFI_LOADER=y
    CONFIG_EFI_UNICODE_CAPITALIZATION=y
    # CONFIG_EFI_LOADER_HII is not set
    CONFIG_OPTEE_TZDRAM_SIZE=0x0000000
    CONFIG_OPTEE_TZDRAM_BASE=0x00000000
    # CONFIG_UNIT_TEST is not set
    

  • Hi Adam,

    hmm, that patch you referenced disables CONFIG_DM_ETH...

    -CONFIG_DM_ETH=y

    Anyways looking at thew 2019.04 source tree, in case DM is not used for Ethernet setup, board/ti/am335x/board.c:board_eth_init() is the function we need to be looking at:

    https://gitlab.denx.de/u-boot/u-boot/-/blob/v2019.04/board/ti/am335x/board.c#L965

    The patch you pointed to actually also modifies/extends this function.

    See where it sets any of the cpsw_slaves[ ].phy_if fields. Depending which of the code paths applies to your board, you can experiment with updating the respective section with different PHY modes, similar as I had suggested earlier to be done by modifying the DTS. Possible values to use are as follows:

    a0797059@jiji:~/git/u-boot (HEAD detached at v2019.04)
    $ git grep PHY_INTERFACE_MODE include/phy_interface.h
    include/phy_interface.h:        PHY_INTERFACE_MODE_MII,
    include/phy_interface.h:        PHY_INTERFACE_MODE_GMII,
    include/phy_interface.h:        PHY_INTERFACE_MODE_SGMII,
    include/phy_interface.h:        PHY_INTERFACE_MODE_SGMII_2500,
    include/phy_interface.h:        PHY_INTERFACE_MODE_QSGMII,
    include/phy_interface.h:        PHY_INTERFACE_MODE_TBI,
    include/phy_interface.h:        PHY_INTERFACE_MODE_RMII,
    include/phy_interface.h:        PHY_INTERFACE_MODE_RGMII,
    include/phy_interface.h:        PHY_INTERFACE_MODE_RGMII_ID,
    include/phy_interface.h:        PHY_INTERFACE_MODE_RGMII_RXID,
    include/phy_interface.h:        PHY_INTERFACE_MODE_RGMII_TXID,
    include/phy_interface.h:        PHY_INTERFACE_MODE_RTBI,
    include/phy_interface.h:        PHY_INTERFACE_MODE_XGMII,
    include/phy_interface.h:        PHY_INTERFACE_MODE_XAUI,
    include/phy_interface.h:        PHY_INTERFACE_MODE_RXAUI,
    include/phy_interface.h:        PHY_INTERFACE_MODE_SFI,
    include/phy_interface.h:        PHY_INTERFACE_MODE_INTERNAL,
    include/phy_interface.h:        PHY_INTERFACE_MODE_25G_AUI,
    include/phy_interface.h:        PHY_INTERFACE_MODE_XLAUI,
    include/phy_interface.h:        PHY_INTERFACE_MODE_CAUI2,
    include/phy_interface.h:        PHY_INTERFACE_MODE_CAUI4,

    Not all of them apply obviously, but try those in analogy with the earlier suggestion.

    Regards, Andreas

  • Alright, I've been fighting this for a couple more days now. I've moved to mainline u-boot v2020.04 to use the driver model as in the SDK. I have to be close now and I just a have a couple questions that will hopefully keep me moving in the right direction:

    I get in my u-boot boot log: "Net: error: phy_id read failed"

    I think this may have something to do with the phy not working well. I've verified that my MDIO interface is working... once booted I can talk to the PHY. I also verified it's loading the correct Marvell drivers. I just can't figure out where that error message is coming from. any clues?

    Another oddity is that if I don't do the pinmux in the board file the ethernet doesn't work at all, even though it's defined in my dts file as well. What's up with that? Do I really need both? Is something wrong with the setup of the dts? The dts definitely seems to be working, I can make changes and see the results when compiled and booted.

    Lastly, and this isn't really an issue, but an annoyance, is there any way to get rid of the I2C lines? I don't have I2C, I have it disabled in the configs, etc. but the "Error, wrong i2c adapter 0 max 0 possible" error keeps showing up.

  • OK, got the phy_id error sorted. It was in CPSW.c if it failed to find phy-handle it would look for phy-id then fail that if it found neither, and since phy-id is no more, I was looking in the wrong spot. Apparently I was missing “slaves = <1>” in my dt. All good now. Ethernet still doesn’t seem to work though.

    I have to see if I can figure out loopback on the PHY or something, at this point everything looks like it should be working but just… isn’t.

  • Adam Gerken1 said:
    Another oddity is that if I don't do the pinmux in the board file the ethernet doesn't work at all, even though it's defined in my dts file as well. What's up with that? Do I really need both? Is something wrong with the setup of the dts? The dts definitely seems to be working, I can make changes and see the results when compiled and booted.

    DTS is only used for pinmux on our platforms when CONFIG_PINCTRL_SINGLE and CONFIG_PINCTRL are active, which they are not for boards based on our current am335x_evm_defconfig. Please double-check the .config you use to build U-Boot with at the root of your U-Boot directory. Changes are those options are turned off, which explains and means that you will need to modify the pinmux in the board file (usually mux.c). Make sure that pinmux performed is overall representative of what you need for booting your system (boot & comm peripherals usually).

    Adam Gerken1 said:
    Lastly, and this isn't really an issue, but an annoyance, is there any way to get rid of the I2C lines? I don't have I2C, I have it disabled in the configs, etc. but the "Error, wrong i2c adapter 0 max 0 possible" error keeps showing up.

    If you search where this gets printed you get here:

    a0797059@jiji:~/git/u-boot (ti-u-boot-2020.01-am3-am4-evm-mini)
    $ git grep -C 5 'I2C\:' common/
    common/board_f.c-}
    common/board_f.c-
    common/board_f.c-#if defined(CONFIG_SYS_I2C)
    common/board_f.c-static int init_func_i2c(void)
    common/board_f.c-{
    common/board_f.c:       puts("I2C:   ");
    common/board_f.c-#ifdef CONFIG_SYS_I2C
    common/board_f.c-       i2c_init_all();
    common/board_f.c-#else
    common/board_f.c-       i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
    common/board_f.c-#endif
    

    Which means is depending on CONFIG_SYS_I2C. Which itself for AM335x is defined here...

    a0797059@jiji:~/git/u-boot (ti-u-boot-2020.01-am3-am4-evm-mini)
    $ git grep -C 5 SYS_I2C include/configs/ti_armv7_common.h
    include/configs/ti_armv7_common.h-#define CONFIG_SYS_PTV                        2       /* Divisor: 2^(PTV+1) => 8 */
    include/configs/ti_armv7_common.h-
    include/configs/ti_armv7_common.h-/* If DM_I2C, enable non-DM I2C support */
    include/configs/ti_armv7_common.h-#if !defined(CONFIG_DM_I2C)
    include/configs/ti_armv7_common.h-#define CONFIG_I2C
    include/configs/ti_armv7_common.h:#define CONFIG_SYS_I2C
    include/configs/ti_armv7_common.h-#endif
    include/configs/ti_armv7_common.h-
    include/configs/ti_armv7_common.h-/*
    include/configs/ti_armv7_common.h- * The following are general good-enough settings for U-Boot.  We set a
    include/configs/ti_armv7_common.h- * large malloc pool as we generally have a lot of DDR, and we opt for

    So since you have probably already disabled CONFIG_DM_I2C, you see how the above code then stubbornly enables non-DM support for I2C ;)  Tracing back on how this file gets eventually included into your own custom board-specific header file in include/configs you see that this happens via #include <configs/ti_am335x_common.h>. So rather than modifying ti_armv7_common.h I would recommend trying to insert something like...

    #undef CONFIG_I2C
    #undef CONFIG_SYS_I2C

    ...into your own bord-specific include/configs/*.h file near the top (but past the include of ti_am335x.common.h). It can be quite confusing I think with the mix of Kconfig and headerfile-controlled CONFIG options in U-Boot but things are improving over time... Hopefully one day we can configure the entire U-Boot through Kconfig.

    Regards, Andreas

  • Adam Gerken1 said:

    All good now. Ethernet still doesn’t seem to work though.

    I have to see if I can figure out loopback on the PHY or something, at this point everything looks like it should be working but just… isn’t.

    Have you tried experimenting with the phy-mode settings as suggest earlier?

    If trying the different settings didn't help, what is the exact PHY P/N? And can you share the section of the schematic that shows the PHY and also how it is connected to the AM335x?

    Regards, Andreas

  • I tried the first two fix-ups. The I2C messages are gone, device tree pin control is still giving me a hard time though, I enabled those two CONFIGs and I still have to use the pin mux from board.c to have the MDIO return valid data on the PHY.

    Yes, I've tried "rgmii" "rgmii-id" "rgmii-txid" and "rgmii-rxid" with the same results across the board... no packets sent.

    The PHY is a Marvell 88E1510-A0-NNB2I000. Here are the two schematic blocks:

    This is the AM3352 side:

    This is the PHY side:

    Pretty basic... I'm using the AM3352 internal pull ups on the MDIO and MDC lines. If you'd like the whole schematic I can send it via email.

    Thank you for the help!

    Adam

  • Holy friggen crap, I have TCTL and TCLK mixed up Well, that's embarrassing haha.

  • Adam Gerken1 said:
    I have TCTL and TCLK mixed up

    Yeah I was about to go through the connections, glad you caught this. Hopefully you can blue-wire it for testing purposes?

    Regards, Andreas

  • I'm going to try, both have vias, but the PHY is almost touching the SoC, the design is very compact. I guess this is why we don't order production quantities right off the bat!

    Thanks again for the help, got a lot of other minor things smoothed out along the way, and I know u-boot way better than I did before, so that's something.

    I am still curious about the dt pin muxing issue though, I'd like to push this towards the driver model as much as I possibly can and whittle down the board file dependence.

    Here's the DT entry for the Ethernet stuff, anything jump out at you? Also, my latest config is attached.

    [code]

    &am33xx_pinmux {
    pinctrl-names = "default";

    cpsw_default: cpsw_default {
    pinctrl-single,pins = <
    /* Slave 1 */
    0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_tctl */
    0x118 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */
    0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd3.rgmii1_td3 */
    0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd2.rgmii1_td2 */
    0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */
    0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */
    0x12c (PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rgmii1_tclk */
    0x130 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxclk.rgmii1_rclk */
    0x134 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd3.rgmii1_rd3 */
    0x138 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd2.rgmii1_rd2 */
    0x13c (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rd1 */
    0x140 (PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rd0 */
    >;
    };

    cpsw_sleep: cpsw_sleep {
    pinctrl-single,pins = <
    /* Slave 1 reset value */
    0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x118 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x11c (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x120 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x12c (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x130 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x134 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x138 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    >;
    };

    davinci_mdio_default: davinci_mdio_default {
    pinctrl-single,pins = <
    0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
    0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
    >;
    };

    davinci_mdio_sleep: davinci_mdio_sleep {
    pinctrl-single,pins = <
    /* MDIO reset value */
    0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7)
    >;
    };

    };

    &cpsw_emac0 {
    phy-handle = <&ethphy0>;
    phy-mode = "rgmii";
    };

    &mac {
    slaves = <1>;
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&cpsw_default>;
    pinctrl-1 = <&cpsw_sleep>;
    status = "okay";
    };

    &davinci_mdio {
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&davinci_mdio_default>;
    pinctrl-1 = <&davinci_mdio_sleep>;
    status = "okay";

    ethphy0: ethernet-phy@0 {
    reg = <0>;
    };
    };

    [/code]

    #
    # Automatically generated file; DO NOT EDIT.
    # U-Boot 2020.04 Configuration
    #
    CONFIG_CREATE_ARCH_SYMLINK=y
    # CONFIG_ARC is not set
    CONFIG_ARM=y
    # 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_PPC is not set
    # CONFIG_RISCV is not set
    # CONFIG_SANDBOX is not set
    # CONFIG_SH is not set
    # CONFIG_X86 is not set
    # CONFIG_XTENSA is not set
    CONFIG_SYS_ARCH="arm"
    CONFIG_SYS_CPU="armv7"
    CONFIG_SYS_SOC="am33xx"
    CONFIG_SYS_VENDOR="flightcircuits"
    CONFIG_SYS_BOARD="epn11291"
    CONFIG_SYS_CONFIG_NAME="epn11291"
    # CONFIG_SYS_ICACHE_OFF is not set
    # CONFIG_SPL_SYS_ICACHE_OFF is not set
    # CONFIG_SYS_DCACHE_OFF is not set
    # CONFIG_SPL_SYS_DCACHE_OFF is not set
    
    #
    # ARM architecture
    #
    # CONFIG_GIC_V3_ITS is not set
    CONFIG_HAS_VBAR=y
    CONFIG_HAS_THUMB2=y
    CONFIG_ARM_ASM_UNIFIED=y
    CONFIG_SYS_ARM_CACHE_CP15=y
    CONFIG_SYS_ARM_MMU=y
    # CONFIG_SYS_ARM_MPU is not set
    CONFIG_ARM_CORTEX_A8_CVE_2017_5715=y
    CONFIG_CPU_V7A=y
    CONFIG_SYS_ARM_ARCH=7
    CONFIG_SYS_CACHE_SHIFT_6=y
    CONFIG_SYS_CACHELINE_SIZE=64
    # CONFIG_ARCH_CPU_INIT is not set
    # CONFIG_SYS_ARCH_TIMER is not set
    # CONFIG_ARM_SMCCC is not set
    # CONFIG_SEMIHOSTING is not set
    CONFIG_SYS_THUMB_BUILD=y
    CONFIG_SPL_SYS_THUMB_BUILD=y
    # CONFIG_SYS_L2CACHE_OFF is not set
    # CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK is not set
    CONFIG_USE_ARCH_MEMCPY=y
    CONFIG_SPL_USE_ARCH_MEMCPY=y
    CONFIG_USE_ARCH_MEMSET=y
    CONFIG_SPL_USE_ARCH_MEMSET=y
    # CONFIG_SET_STACK_SIZE is not set
    # CONFIG_ARCH_AT91 is not set
    # CONFIG_TARGET_EDB93XX 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_APF27 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_FLEA3 is not set
    # CONFIG_TARGET_MX35PDK is not set
    # CONFIG_ARCH_BCM283X is not set
    # CONFIG_ARCH_BCM63158 is not set
    # CONFIG_ARCH_BCM68360 is not set
    # CONFIG_ARCH_BCM6858 is not set
    # CONFIG_TARGET_VEXPRESS_CA15_TC2 is not set
    # CONFIG_ARCH_BCMSTB is not set
    # CONFIG_TARGET_VEXPRESS_CA5X2 is not set
    # CONFIG_TARGET_VEXPRESS_CA9X4 is not set
    # CONFIG_TARGET_BCM23550_W1D is not set
    # CONFIG_TARGET_BCM28155_AP is not set
    # CONFIG_TARGET_BCMCYGNUS is not set
    # CONFIG_TARGET_BCMNSP is not set
    # CONFIG_TARGET_BCMNS2 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_K3 is not set
    CONFIG_ARCH_OMAP2PLUS=y
    # CONFIG_ARCH_MESON is not set
    # CONFIG_ARCH_MEDIATEK is not set
    # CONFIG_ARCH_LPC32XX is not set
    # CONFIG_ARCH_IMX8 is not set
    # CONFIG_ARCH_IMX8M is not set
    # CONFIG_ARCH_IMXRT is not set
    # CONFIG_ARCH_MX23 is not set
    # CONFIG_ARCH_MX25 is not set
    # CONFIG_ARCH_MX28 is not set
    # CONFIG_ARCH_MX31 is not set
    # CONFIG_ARCH_MX7ULP is not set
    # CONFIG_ARCH_MX7 is not set
    # CONFIG_ARCH_MX6 is not set
    CONFIG_SPL_LDSCRIPT="arch/arm/mach-omap2/u-boot-spl.lds"
    # CONFIG_ARCH_MX5 is not set
    # CONFIG_ARCH_OWL is not set
    # CONFIG_ARCH_QEMU is not set
    # CONFIG_ARCH_RMOBILE is not set
    # CONFIG_TARGET_S32V234EVB is not set
    # CONFIG_ARCH_SNAPDRAGON is not set
    # CONFIG_ARCH_SOCFPGA is not set
    # CONFIG_ARCH_SUNXI is not set
    # CONFIG_ARCH_U8500 is not set
    # CONFIG_ARCH_VERSAL is not set
    # CONFIG_ARCH_VF610 is not set
    # CONFIG_ARCH_ZYNQ is not set
    # CONFIG_ARCH_ZYNQMP_R5 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_JUNO is not set
    # CONFIG_TARGET_LS2080A_EMU is not set
    # CONFIG_TARGET_LS2080A_SIMU is not set
    # CONFIG_TARGET_LS1088AQDS is not set
    # CONFIG_TARGET_LS2080AQDS is not set
    # CONFIG_TARGET_LS2080ARDB is not set
    # CONFIG_TARGET_LS2081ARDB is not set
    # CONFIG_TARGET_LX2160ARDB is not set
    # CONFIG_TARGET_LX2160AQDS is not set
    # CONFIG_TARGET_HIKEY is not set
    # CONFIG_TARGET_HIKEY960 is not set
    # CONFIG_TARGET_POPLAR is not set
    # CONFIG_TARGET_LS1012AQDS is not set
    # CONFIG_TARGET_LS1012ARDB is not set
    # CONFIG_TARGET_LS1012A2G5RDB is not set
    # CONFIG_TARGET_LS1012AFRWY is not set
    # CONFIG_TARGET_LS1012AFRDM is not set
    # CONFIG_TARGET_LS1028AQDS is not set
    # CONFIG_TARGET_LS1028ARDB is not set
    # CONFIG_TARGET_LS1088ARDB is not set
    # CONFIG_TARGET_LS1021AQDS is not set
    # CONFIG_TARGET_LS1021ATWR is not set
    # CONFIG_TARGET_LS1021ATSN is not set
    # CONFIG_TARGET_LS1021AIOT is not set
    # CONFIG_TARGET_LS1043AQDS is not set
    # CONFIG_TARGET_LS1043ARDB is not set
    # CONFIG_TARGET_LS1046AQDS is not set
    # CONFIG_TARGET_LS1046ARDB is not set
    # CONFIG_TARGET_LS1046AFRWY is not set
    # CONFIG_TARGET_COLIBRI_PXA270 is not set
    # CONFIG_ARCH_UNIPHIER is not set
    # CONFIG_STM32 is not set
    # CONFIG_ARCH_STI is not set
    # CONFIG_ARCH_STM32MP is not set
    # CONFIG_ARCH_ROCKCHIP is not set
    # CONFIG_TARGET_THUNDERX_88XX is not set
    # CONFIG_ARCH_ASPEED is not set
    # CONFIG_TARGET_DURIAN is not set
    # CONFIG_TARGET_PRESIDIO_ASIC is not set
    # CONFIG_TI_SECURE_DEVICE is not set
    CONFIG_ISW_ENTRY_ADDR=0x402F0400
    CONFIG_SYS_TEXT_BASE=0x80800000
    CONFIG_SPL_GPIO_SUPPORT=y
    CONFIG_SPL_LIBCOMMON_SUPPORT=y
    CONFIG_SPL_LIBGENERIC_SUPPORT=y
    CONFIG_SYS_MALLOC_F_LEN=0x1000
    CONFIG_ENV_SIZE=0x20000
    CONFIG_DM_GPIO=y
    # CONFIG_SPL_DM_SPI is not set
    # CONFIG_OMAP34XX is not set
    # CONFIG_OMAP44XX is not set
    # CONFIG_OMAP54XX is not set
    # CONFIG_TI814X is not set
    # CONFIG_TI816X is not set
    # CONFIG_AM43XX is not set
    CONFIG_AM33XX=y
    CONFIG_SYS_MPUCLK=500
    CONFIG_TARGET_EPN11291=y
    # CONFIG_TARGET_AM335X_EVM is not set
    # CONFIG_TARGET_AM335X_BALTOS is not set
    # CONFIG_TARGET_AM335X_IGEP003X is not set
    # CONFIG_TARGET_AM335X_SHC is not set
    # CONFIG_TARGET_AM335X_GUARDIAN is not set
    # CONFIG_TARGET_AM335X_SL50 is not set
    # CONFIG_TARGET_BAV335X is not set
    # CONFIG_TARGET_BRXRE1 is not set
    # CONFIG_TARGET_BRSMARC1 is not set
    # CONFIG_TARGET_BRPPT1 is not set
    # CONFIG_TARGET_CHILIBOARD is not set
    # CONFIG_TARGET_CM_T335 is not set
    # CONFIG_TARGET_DRACO is not set
    # CONFIG_TARGET_ETAMIN is not set
    # CONFIG_TARGET_PCM051 is not set
    # CONFIG_TARGET_PENGWYN is not set
    # CONFIG_TARGET_PEPPER is not set
    # CONFIG_TARGET_PHYCORE_AM335X_R2 is not set
    # CONFIG_TARGET_PXM2 is not set
    # CONFIG_TARGET_RASTABAN is not set
    # CONFIG_TARGET_RUT is not set
    # CONFIG_TARGET_THUBAN is not set
    # CONFIG_TARGET_PDU001 is not set
    CONFIG_PUB_ROM_DATA_SIZE=0x8400
    CONFIG_SPL_MMC_SUPPORT=y
    CONFIG_SPL_SERIAL_SUPPORT=y
    # CONFIG_SPL_DRIVERS_MISC_SUPPORT is not set
    CONFIG_SPL_STACK_R_ADDR=0x82000000
    CONFIG_BOOTCOUNT_BOOTLIMIT=0
    CONFIG_SYS_BOOTCOUNT_ADDR=0x44E3E000
    CONFIG_SPL_SYS_MALLOC_F_LEN=0x1000
    CONFIG_ERR_PTR_OFFSET=0x0
    CONFIG_NR_DRAM_BANKS=4
    CONFIG_SPL_SIZE_LIMIT=0
    CONFIG_SPL=y
    CONFIG_BOOTSTAGE_STASH_ADDR=0
    CONFIG_IDENT_STRING=""
    CONFIG_SPL_FS_FAT=y
    CONFIG_SPL_LIBDISK_SUPPORT=y
    # CONFIG_SPL_SPI_SUPPORT is not set
    # CONFIG_ARMV7_LPAE is not set
    CONFIG_CSF_SIZE=0x2060
    # CONFIG_CMD_DEKBLOB is not set
    # CONFIG_CMD_HDMIDETECT is not set
    CONFIG_IMX_DCD_ADDR=0x00910000
    
    #
    # ARM debug
    #
    # CONFIG_DEBUG_LL is not set
    CONFIG_SMBIOS_PRODUCT_NAME="epn11291"
    # CONFIG_DEBUG_UART is not set
    # CONFIG_AHCI is not set
    CONFIG_SPL_TEXT_BASE=0x402F0400
    
    #
    # General setup
    #
    CONFIG_LOCALVERSION="-FlightCircuits-EPN11291"
    # CONFIG_LOCALVERSION_AUTO is not set
    CONFIG_CC_OPTIMIZE_FOR_SIZE=y
    CONFIG_DISTRO_DEFAULTS=y
    CONFIG_ENV_VARS_UBOOT_CONFIG=y
    # CONFIG_SYS_BOOT_GET_CMDLINE is not set
    # CONFIG_SYS_BOOT_GET_KBD is not set
    CONFIG_SYS_MALLOC_F=y
    CONFIG_EXPERT=y
    CONFIG_SYS_MALLOC_CLEAR_ON_INIT=y
    # CONFIG_TOOLS_DEBUG is not set
    # CONFIG_PHYS_64BIT is not set
    CONFIG_SPL_IMAGE="spl/u-boot-spl.bin"
    CONFIG_BUILD_TARGET=""
    # CONFIG_SYS_CUSTOM_LDSCRIPT is not set
    CONFIG_PLATFORM_ELFENTRY="_start"
    
    #
    # Boot images
    #
    # CONFIG_ANDROID_BOOT_IMAGE is not set
    CONFIG_FIT=y
    CONFIG_FIT_EXTERNAL_OFFSET=0x0
    CONFIG_FIT_ENABLE_SHA256_SUPPORT=y
    # CONFIG_FIT_SIGNATURE is not set
    # CONFIG_FIT_CIPHER is not set
    # CONFIG_FIT_VERBOSE is not set
    # CONFIG_FIT_BEST_MATCH is not set
    # CONFIG_SPL_FIT is not set
    # CONFIG_SPL_FIT_SIGNATURE is not set
    # CONFIG_SPL_LOAD_FIT is not set
    # CONFIG_SPL_LOAD_FIT_FULL is not set
    CONFIG_LEGACY_IMAGE_FORMAT=y
    # 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=""
    CONFIG_HAVE_SYS_TEXT_BASE=y
    CONFIG_ARCH_FIXUP_FDT_MEMORY=y
    
    #
    # API
    #
    # CONFIG_API is not set
    
    #
    # Boot timing
    #
    # CONFIG_BOOTSTAGE is not set
    CONFIG_BOOTSTAGE_RECORD_COUNT=30
    CONFIG_SPL_BOOTSTAGE_RECORD_COUNT=5
    CONFIG_TPL_BOOTSTAGE_RECORD_COUNT=5
    CONFIG_BOOTSTAGE_STASH_SIZE=0x1000
    # CONFIG_SHOW_BOOT_PROGRESS is not set
    
    #
    # Boot media
    #
    # CONFIG_NAND_BOOT is not set
    # CONFIG_ONENAND_BOOT is not set
    # CONFIG_QSPI_BOOT is not set
    # CONFIG_SATA_BOOT is not set
    # CONFIG_SD_BOOT is not set
    # CONFIG_SPI_BOOT is not set
    CONFIG_BOOTDELAY=3
    # CONFIG_USE_BOOTARGS is not set
    CONFIG_USE_BOOTCOMMAND=y
    CONFIG_BOOTCOMMAND="if test ${boot_fit} -eq 1; then run update_to_fit; fi; run findfdt; run init_console; run envboot; run distro_bootcmd"
    # CONFIG_USE_PREBOOT is not set
    
    #
    # Console
    #
    CONFIG_MENU=y
    # CONFIG_CONSOLE_RECORD is not set
    # CONFIG_DISABLE_CONSOLE is not set
    CONFIG_LOGLEVEL=4
    CONFIG_SPL_LOGLEVEL=4
    CONFIG_TPL_LOGLEVEL=4
    # CONFIG_SILENT_CONSOLE is not set
    # CONFIG_PRE_CONSOLE_BUFFER is not set
    # CONFIG_CONSOLE_MUX is not set
    # CONFIG_SYS_CONSOLE_IS_IN_ENV is not set
    # CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE is not set
    # CONFIG_SYS_CONSOLE_ENV_OVERWRITE is not set
    CONFIG_SYS_CONSOLE_INFO_QUIET=y
    # CONFIG_SYS_STDIO_DEREGISTER is not set
    
    #
    # Logging
    #
    # CONFIG_LOG is not set
    CONFIG_LOG_DEFAULT_LEVEL=6
    CONFIG_SUPPORT_RAW_INITRD=y
    CONFIG_DEFAULT_FDT_FILE="epn11291"
    # CONFIG_MISC_INIT_R is not set
    CONFIG_VERSION_VARIABLE=y
    CONFIG_BOARD_LATE_INIT=y
    CONFIG_DISPLAY_CPUINFO=y
    CONFIG_DISPLAY_BOARDINFO=y
    # CONFIG_DISPLAY_BOARDINFO_LATE is not set
    # CONFIG_BOUNCE_BUFFER is not set
    # CONFIG_BOARD_TYPES is not set
    
    #
    # Start-up hooks
    #
    # CONFIG_ARCH_EARLY_INIT_R is not set
    CONFIG_ARCH_MISC_INIT=y
    # CONFIG_BOARD_EARLY_INIT_F is not set
    # CONFIG_BOARD_EARLY_INIT_R is not set
    # CONFIG_LAST_STAGE_INIT is not set
    
    #
    # Security support
    #
    CONFIG_HASH=y
    
    #
    # Update support
    #
    # CONFIG_UPDATE_TFTP is not set
    # CONFIG_ANDROID_AB is not set
    
    #
    # Blob list
    #
    # CONFIG_BLOBLIST is not set
    
    #
    # SPL / TPL
    #
    CONFIG_SUPPORT_SPL=y
    CONFIG_SPL_FRAMEWORK=y
    # CONFIG_SPL_FRAMEWORK_BOARD_INIT_F is not set
    CONFIG_SPL_SYS_STACK_F_CHECK_BYTE=0xaa
    # CONFIG_SPL_SYS_REPORT_STACK_F_USAGE is not set
    
    #
    # PowerPC and LayerScape SPL Boot options
    #
    CONFIG_SPL_BOARD_INIT=y
    # CONFIG_SPL_BOOTROM_SUPPORT is not set
    # CONFIG_SPL_BOOTCOUNT_LIMIT is not set
    CONFIG_SPL_RAW_IMAGE_SUPPORT=y
    CONFIG_SPL_LEGACY_IMAGE_SUPPORT=y
    # CONFIG_SPL_LEGACY_IMAGE_CRC_CHECK is not set
    CONFIG_SPL_SYS_MALLOC_SIMPLE=y
    CONFIG_SPL_STACK_R=y
    CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x100000
    CONFIG_SPL_SEPARATE_BSS=y
    CONFIG_SPL_BANNER_PRINT=y
    # CONFIG_SPL_EARLY_BSS is not set
    # CONFIG_SPL_DISPLAY_PRINT is not set
    CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y
    CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x300
    CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET=0x0
    # CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION is not set
    CONFIG_SPL_CRC32_SUPPORT=y
    # CONFIG_SPL_CACHE_SUPPORT is not set
    # CONFIG_SPL_CPU_SUPPORT is not set
    # CONFIG_SPL_CRYPTO_SUPPORT is not set
    # CONFIG_SPL_HASH_SUPPORT is not set
    # CONFIG_SPL_DMA is not set
    CONFIG_SPL_DM_GPIO=y
    CONFIG_SPL_ENV_SUPPORT=y
    # CONFIG_SPL_SAVEENV is not set
    # CONFIG_SPL_ETH_SUPPORT is not set
    CONFIG_SPL_FS_EXT4=y
    # CONFIG_SPL_FAT_WRITE is not set
    # CONFIG_SPL_FPGA_SUPPORT is not set
    # CONFIG_SPL_I2C_SUPPORT is not set
    # CONFIG_SPL_DM_MAILBOX is not set
    # CONFIG_SPL_FORCE_MMC_BOOT is not set
    # CONFIG_SPL_MMC_TINY is not set
    # CONFIG_SPL_MMC_WRITE is not set
    # CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT is not set
    # CONFIG_SPL_MTD_SUPPORT is not set
    CONFIG_SPL_MUSB_NEW_SUPPORT=y
    # CONFIG_SPL_NAND_SUPPORT is not set
    # CONFIG_SPL_UBI is not set
    # CONFIG_SPL_NET_SUPPORT is not set
    # CONFIG_SPL_NO_CPU_SUPPORT is not set
    # CONFIG_SPL_NOR_SUPPORT is not set
    # CONFIG_SPL_XIP_SUPPORT is not set
    # CONFIG_SPL_ONENAND_SUPPORT is not set
    CONFIG_SPL_OS_BOOT=y
    CONFIG_SPL_PAYLOAD="u-boot.bin"
    # CONFIG_SPL_PCI is not set
    # CONFIG_SPL_PCH_SUPPORT is not set
    # CONFIG_SPL_POST_MEM_SUPPORT is not set
    # CONFIG_SPL_DM_RESET is not set
    # CONFIG_SPL_POWER_SUPPORT is not set
    # CONFIG_SPL_POWER_DOMAIN is not set
    # CONFIG_SPL_RAM_SUPPORT is not set
    # CONFIG_SPL_REMOTEPROC is not set
    # CONFIG_SPL_RTC_SUPPORT is not set
    # CONFIG_SPL_SATA_SUPPORT is not set
    # CONFIG_SPL_THERMAL is not set
    # CONFIG_SPL_USB_HOST_SUPPORT is not set
    # CONFIG_SPL_USB_GADGET is not set
    CONFIG_SPL_WATCHDOG_SUPPORT=y
    CONFIG_SPL_YMODEM_SUPPORT=y
    CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC=y
    # CONFIG_SPL_OPTEE is not set
    
    #
    # Command line interface
    #
    CONFIG_CMDLINE=y
    CONFIG_HUSH_PARSER=y
    CONFIG_CMDLINE_EDITING=y
    CONFIG_AUTO_COMPLETE=y
    CONFIG_SYS_LONGHELP=y
    CONFIG_SYS_PROMPT="U-Boot# "
    CONFIG_SYS_XTRACE="y"
    
    #
    # Autoboot options
    #
    CONFIG_AUTOBOOT=y
    CONFIG_AUTOBOOT_KEYED=y
    CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
    # CONFIG_AUTOBOOT_ENCRYPTION is not set
    CONFIG_AUTOBOOT_DELAY_STR="d"
    CONFIG_AUTOBOOT_STOP_STR=" "
    # CONFIG_AUTOBOOT_KEYED_CTRLC is not set
    
    #
    # Commands
    #
    
    #
    # Info commands
    #
    CONFIG_CMD_BDI=y
    # CONFIG_CMD_CONFIG is not set
    CONFIG_CMD_CONSOLE=y
    # CONFIG_CMD_CPU is not set
    # CONFIG_CMD_LICENSE is not set
    # CONFIG_CMD_PMC is not set
    
    #
    # Boot commands
    #
    CONFIG_CMD_BOOTD=y
    CONFIG_CMD_BOOTM=y
    CONFIG_BOOTM_EFI=y
    CONFIG_CMD_BOOTZ=y
    CONFIG_BOOTM_LINUX=y
    CONFIG_BOOTM_NETBSD=y
    # CONFIG_BOOTM_OPENRTOS is not set
    # CONFIG_BOOTM_OSE is not set
    CONFIG_BOOTM_PLAN9=y
    CONFIG_BOOTM_RTEMS=y
    CONFIG_BOOTM_VXWORKS=y
    CONFIG_CMD_BOOTEFI=y
    CONFIG_CMD_BOOTEFI_HELLO_COMPILE=y
    # CONFIG_CMD_BOOTEFI_HELLO is not set
    # CONFIG_CMD_BOOTEFI_SELFTEST is not set
    # CONFIG_CMD_BOOTMENU is not set
    # CONFIG_CMD_ADTIMG is not set
    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
    CONFIG_CMD_SPL=y
    CONFIG_CMD_SPL_WRITE_SIZE=0x2000
    # CONFIG_CMD_FITUPD is not set
    # CONFIG_CMD_THOR_DOWNLOAD is not set
    # CONFIG_CMD_ZBOOT is not set
    
    #
    # Environment commands
    #
    # CONFIG_CMD_ASKENV is not set
    CONFIG_CMD_EXPORTENV=y
    CONFIG_CMD_IMPORTENV=y
    CONFIG_CMD_EDITENV=y
    # CONFIG_CMD_GREPENV is not set
    CONFIG_CMD_SAVEENV=y
    # CONFIG_CMD_ERASEENV is not set
    CONFIG_CMD_ENV_EXISTS=y
    # CONFIG_CMD_ENV_CALLBACK is not set
    # CONFIG_CMD_ENV_FLAGS is not set
    # CONFIG_CMD_NVEDIT_EFI is not set
    # CONFIG_CMD_NVEDIT_INFO is not set
    
    #
    # Memory commands
    #
    # CONFIG_CMD_BINOP is not set
    CONFIG_CMD_CRC32=y
    # CONFIG_CRC32_VERIFY is not set
    # CONFIG_CMD_EEPROM is not set
    # CONFIG_LOOPW is not set
    # CONFIG_CMD_MD5SUM is not set
    # CONFIG_CMD_MEMINFO is not set
    CONFIG_CMD_MEMORY=y
    # CONFIG_CMD_MX_CYCLIC is not set
    CONFIG_CMD_RANDOM=y
    # CONFIG_CMD_MEMTEST is not set
    # CONFIG_CMD_SHA1SUM is not set
    # CONFIG_CMD_STRINGS is not set
    
    #
    # Compression commands
    #
    # CONFIG_CMD_LZMADEC is not set
    # CONFIG_CMD_UNZIP is not set
    # CONFIG_CMD_ZIP is not set
    
    #
    # Device access commands
    #
    # CONFIG_CMD_ARMFLASH is not set
    # CONFIG_CMD_ADC is not set
    # CONFIG_CMD_BCB is not set
    # CONFIG_CMD_BIND is not set
    # CONFIG_CMD_CLK is not set
    # CONFIG_CMD_DEMO is not set
    # CONFIG_CMD_DFU is not set
    CONFIG_CMD_DM=y
    # CONFIG_CMD_FPGAD is not set
    # CONFIG_CMD_FUSE is not set
    CONFIG_CMD_GPIO=y
    CONFIG_CMD_GPT=y
    CONFIG_RANDOM_UUID=y
    # CONFIG_CMD_GPT_RENAME is not set
    # CONFIG_CMD_IDE is not set
    # CONFIG_CMD_IO is not set
    # CONFIG_CMD_IOTRACE is not set
    # CONFIG_CMD_I2C is not set
    CONFIG_CMD_LOADB=y
    CONFIG_CMD_LOADS=y
    CONFIG_CMD_MMC=y
    # CONFIG_CMD_MMC_RPMB is not set
    # CONFIG_CMD_MMC_SWRITE is not set
    # CONFIG_CMD_OSD is not set
    CONFIG_CMD_PART=y
    # CONFIG_CMD_PCI is not set
    # CONFIG_CMD_PINMUX is not set
    # CONFIG_CMD_POWEROFF is not set
    # CONFIG_CMD_READ is not set
    # CONFIG_CMD_SATA is not set
    # CONFIG_CMD_SAVES is not set
    # CONFIG_CMD_SCSI is not set
    # CONFIG_CMD_SDRAM is not set
    # CONFIG_CMD_TSI148 is not set
    # CONFIG_CMD_UNIVERSE is not set
    # CONFIG_CMD_USB is not set
    # CONFIG_CMD_USB_SDP is not set
    # CONFIG_CMD_USB_MASS_STORAGE is not set
    
    #
    # Shell scripting commands
    #
    CONFIG_CMD_ECHO=y
    CONFIG_CMD_ITEST=y
    CONFIG_CMD_SOURCE=y
    CONFIG_CMD_SETEXPR=y
    
    #
    # Android support commands
    #
    CONFIG_CMD_NET=y
    CONFIG_CMD_BOOTP=y
    CONFIG_CMD_DHCP=y
    CONFIG_BOOTP_BOOTPATH=y
    CONFIG_BOOTP_DNS=y
    # CONFIG_BOOTP_DNS2 is not set
    CONFIG_BOOTP_GATEWAY=y
    CONFIG_BOOTP_HOSTNAME=y
    # CONFIG_BOOTP_PREFER_SERVERIP is not set
    CONFIG_BOOTP_SUBNETMASK=y
    # CONFIG_BOOTP_NTPSERVER is not set
    # CONFIG_CMD_PCAP is not set
    CONFIG_BOOTP_PXE=y
    CONFIG_BOOTP_PXE_CLIENTARCH=0x15
    CONFIG_BOOTP_VCI_STRING="U-Boot.armv7"
    CONFIG_CMD_TFTPBOOT=y
    # CONFIG_CMD_TFTPPUT is not set
    # CONFIG_CMD_TFTPSRV is not set
    CONFIG_NET_TFTP_VARS=y
    # CONFIG_CMD_RARP is not set
    CONFIG_CMD_NFS=y
    CONFIG_CMD_MII=y
    CONFIG_CMD_MDIO=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
    # CONFIG_CMD_ETHSW is not set
    CONFIG_CMD_PXE=y
    # CONFIG_CMD_WOL is not set
    
    #
    # Misc commands
    #
    # CONFIG_CMD_BOOTCOUNT is not set
    # CONFIG_CMD_BSP is not set
    # CONFIG_CMD_BKOPS_ENABLE is not set
    CONFIG_CMD_BLOCK_CACHE=y
    # CONFIG_CMD_CACHE is not set
    # CONFIG_CMD_CONITRACE is not set
    # CONFIG_CMD_EFIDEBUG is not set
    # CONFIG_CMD_EXCEPTION is not set
    # CONFIG_CMD_DATE is not set
    # CONFIG_CMD_TIME is not set
    # CONFIG_CMD_GETTIME is not set
    CONFIG_CMD_MISC=y
    # CONFIG_MP is not set
    # CONFIG_CMD_TIMER is not set
    CONFIG_CMD_SYSBOOT=y
    # CONFIG_CMD_QFW is not set
    # CONFIG_CMD_TERMINAL is not set
    # CONFIG_CMD_UUID is not set
    
    #
    # TI specific command line interface
    #
    # CONFIG_CMD_DDR3 is not set
    
    #
    # Power commands
    #
    
    #
    # Security commands
    #
    # CONFIG_CMD_AES is not set
    # CONFIG_CMD_BLOB is not set
    # CONFIG_CMD_HASH is not set
    
    #
    # Firmware commands
    #
    
    #
    # Filesystem commands
    #
    CONFIG_CMD_BTRFS=y
    CONFIG_CMD_EXT2=y
    CONFIG_CMD_EXT4=y
    # CONFIG_CMD_EXT4_WRITE is not set
    CONFIG_CMD_FAT=y
    CONFIG_CMD_FS_GENERIC=y
    # CONFIG_CMD_FS_UUID is not set
    # CONFIG_CMD_JFFS2 is not set
    # CONFIG_CMD_REISER is not set
    # CONFIG_CMD_ZFS is not set
    
    #
    # Debug commands
    #
    # CONFIG_CMD_BEDBUG is not set
    # CONFIG_CMD_DIAG is not set
    # CONFIG_CMD_LOG is not set
    # CONFIG_CMD_TRACE is not set
    # CONFIG_CMD_UBI is not set
    
    #
    # Partition Types
    #
    CONFIG_PARTITIONS=y
    # CONFIG_MAC_PARTITION is not set
    # CONFIG_SPL_MAC_PARTITION is not set
    CONFIG_DOS_PARTITION=y
    CONFIG_SPL_DOS_PARTITION=y
    CONFIG_ISO_PARTITION=y
    # CONFIG_SPL_ISO_PARTITION is not set
    # CONFIG_AMIGA_PARTITION is not set
    # CONFIG_SPL_AMIGA_PARTITION is not set
    CONFIG_EFI_PARTITION=y
    CONFIG_EFI_PARTITION_ENTRIES_NUMBERS=128
    CONFIG_EFI_PARTITION_ENTRIES_OFF=0
    CONFIG_SPL_EFI_PARTITION=y
    CONFIG_PARTITION_UUIDS=y
    CONFIG_SPL_PARTITION_UUIDS=y
    # CONFIG_PARTITION_TYPE_GUID is not set
    CONFIG_SUPPORT_OF_CONTROL=y
    CONFIG_DTC=y
    
    #
    # Device Tree Control
    #
    CONFIG_OF_CONTROL=y
    # CONFIG_OF_BOARD_FIXUP is not set
    # CONFIG_SPL_OF_CONTROL is not set
    # CONFIG_OF_LIVE is not set
    CONFIG_OF_SEPARATE=y
    # CONFIG_OF_EMBED is not set
    # CONFIG_OF_BOARD is not set
    # CONFIG_OF_PRIOR_STAGE is not set
    CONFIG_DEFAULT_DEVICE_TREE="epn11291"
    # CONFIG_MULTI_DTB_FIT is not set
    # CONFIG_OF_DTB_PROPS_REMOVE is not set
    CONFIG_MKIMAGE_DTC_PATH="dtc"
    
    #
    # Environment
    #
    CONFIG_ENV_SUPPORT=y
    # CONFIG_ENV_IS_NOWHERE is not set
    # CONFIG_ENV_IS_IN_EEPROM is not set
    # CONFIG_ENV_IS_IN_FAT is not set
    CONFIG_ENV_IS_IN_EXT4=y
    # CONFIG_ENV_IS_IN_FLASH is not set
    # CONFIG_ENV_IS_IN_MMC is not set
    # CONFIG_ENV_IS_IN_NAND is not set
    # CONFIG_ENV_IS_IN_NVRAM is not set
    # CONFIG_ENV_IS_IN_ONENAND is not set
    # CONFIG_ENV_IS_IN_REMOTE is not set
    CONFIG_ENV_EXT4_INTERFACE="mmc"
    CONFIG_ENV_EXT4_DEVICE_AND_PART="1:1"
    CONFIG_ENV_EXT4_FILE="/boot/uboot.env"
    # CONFIG_SYS_RELOC_GD_ENV_ADDR is not set
    # CONFIG_USE_DEFAULT_ENV_FILE is not set
    CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
    # CONFIG_SPL_ENV_IS_NOWHERE is not set
    CONFIG_SPL_ENV_IS_IN_EXT4=y
    CONFIG_NET=y
    # CONFIG_NET_RANDOM_ETHADDR is not set
    # CONFIG_NETCONSOLE is not set
    # CONFIG_IP_DEFRAG is not set
    CONFIG_TFTP_BLOCKSIZE=1468
    
    #
    # Device Drivers
    #
    
    #
    # Generic Driver Options
    #
    CONFIG_DM=y
    CONFIG_SPL_DM=y
    CONFIG_DM_WARN=y
    # CONFIG_DM_DEBUG is not set
    CONFIG_DM_DEVICE_REMOVE=y
    # CONFIG_SPL_DM_DEVICE_REMOVE is not set
    CONFIG_DM_STDIO=y
    CONFIG_DM_SEQ_ALIAS=y
    CONFIG_SPL_DM_SEQ_ALIAS=y
    # 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_TRANSLATION_OFFSET is not set
    CONFIG_DM_DEV_READ_INLINE=y
    # CONFIG_ADC is not set
    # CONFIG_ADC_EXYNOS is not set
    # CONFIG_ADC_SANDBOX is not set
    # CONFIG_SARADC_MESON is not set
    # CONFIG_SARADC_ROCKCHIP is not set
    # CONFIG_SATA is not set
    # CONFIG_SCSI_AHCI is not set
    
    #
    # SATA/SCSI device support
    #
    # CONFIG_DWC_AHSATA is not set
    # CONFIG_FSL_SATA is not set
    # CONFIG_MVSATA_IDE is not set
    # CONFIG_SATA_MV is not set
    # CONFIG_SATA_SIL is not set
    # CONFIG_SATA_SIL3114 is not set
    # CONFIG_AXI is not set
    CONFIG_BLK=y
    CONFIG_HAVE_BLOCK_DEVICE=y
    CONFIG_SPL_BLK=y
    CONFIG_BLOCK_CACHE=y
    # CONFIG_SPL_BLOCK_CACHE is not set
    # CONFIG_IDE is not set
    CONFIG_BOOTCOUNT_LIMIT=y
    # CONFIG_BOOTCOUNT_GENERIC is not set
    # CONFIG_BOOTCOUNT_EXT is not set
    CONFIG_BOOTCOUNT_AM33XX=y
    # CONFIG_BOOTCOUNT_ENV is not set
    # CONFIG_BOOTCOUNT_RAM is not set
    # CONFIG_BOOTCOUNT_I2C is not set
    # CONFIG_DM_BOOTCOUNT is not set
    CONFIG_SYS_BOOTCOUNT_MAGIC=0xB001C041
    
    #
    # Cache Controller drivers
    #
    # CONFIG_CACHE is not set
    # CONFIG_L2X0_CACHE is not set
    # CONFIG_NCORE_CACHE is not set
    
    #
    # Clock
    #
    # CONFIG_CLK is not set
    # CONFIG_SPL_CLK_CCF is not set
    # CONFIG_CLK_CCF is not set
    # CONFIG_CPU is not set
    
    #
    # Hardware crypto devices
    #
    # CONFIG_FSL_CAAM is not set
    # CONFIG_SYS_FSL_SEC_BE is not set
    # CONFIG_SYS_FSL_SEC_LE is not set
    
    #
    # Demo for driver model
    #
    # CONFIG_DM_DEMO is not set
    # CONFIG_BOARD is not set
    
    #
    # DFU support
    #
    
    #
    # DMA Support
    #
    # CONFIG_DMA is not set
    # CONFIG_TI_EDMA3 is not set
    
    #
    # Fastboot support
    #
    # CONFIG_UDP_FUNCTION_FASTBOOT is not set
    # CONFIG_FIRMWARE is not set
    # CONFIG_ZYNQMP_FIRMWARE is not set
    
    #
    # FPGA support
    #
    # CONFIG_FPGA_ALTERA is not set
    # CONFIG_FPGA_SOCFPGA is not set
    # CONFIG_FPGA_XILINX is not set
    
    #
    # GPIO Support
    #
    # CONFIG_GPIO_HOG is not set
    # CONFIG_ALTERA_PIO is not set
    # CONFIG_DWAPB_GPIO is not set
    # CONFIG_AT91_GPIO is not set
    # CONFIG_ATMEL_PIO4 is not set
    # CONFIG_DA8XX_GPIO is not set
    # CONFIG_INTEL_BROADWELL_GPIO is not set
    # CONFIG_INTEL_GPIO is not set
    # CONFIG_INTEL_ICH6_GPIO is not set
    # CONFIG_IMX_RGPIO2P is not set
    # CONFIG_HSDK_CREG_GPIO is not set
    # CONFIG_LPC32XX_GPIO is not set
    # CONFIG_MSM_GPIO is not set
    # CONFIG_MXC_GPIO is not set
    # CONFIG_MXS_GPIO is not set
    CONFIG_OMAP_GPIO=y
    # CONFIG_CMD_PCA953X is not set
    # CONFIG_ROCKCHIP_GPIO is not set
    # CONFIG_XILINX_GPIO is not set
    # CONFIG_CMD_TCA642X is not set
    # CONFIG_TEGRA_GPIO is not set
    # CONFIG_TEGRA186_GPIO is not set
    # CONFIG_VYBRID_GPIO is not set
    # CONFIG_SIFIVE_GPIO is not set
    # CONFIG_DM_74X164 is not set
    # CONFIG_DM_PCA953X is not set
    # CONFIG_SPL_DM_PCA953X is not set
    # CONFIG_MPC8XXX_GPIO is not set
    
    #
    # Hardware Spinlock Support
    #
    # CONFIG_DM_HWSPINLOCK is not set
    
    #
    # I2C support
    #
    # CONFIG_DM_I2C is not set
    # CONFIG_SYS_I2C_DW is not set
    # CONFIG_SYS_I2C_IMX_LPI2C is not set
    # CONFIG_SYS_I2C_MXC is not set
    # CONFIG_SYS_I2C_OMAP24XX is not set
    CONFIG_SYS_I2C_BUS_MAX=3
    CONFIG_INPUT=y
    # CONFIG_SPL_INPUT is not set
    # CONFIG_DM_KEYBOARD is not set
    # CONFIG_SPL_DM_KEYBOARD is not set
    # CONFIG_CROS_EC_KEYB is not set
    # CONFIG_TEGRA_KEYBOARD is not set
    # CONFIG_TWL4030_INPUT is not set
    
    #
    # LED Support
    #
    # CONFIG_LED is not set
    # CONFIG_SPL_LED is not set
    # CONFIG_LED_STATUS is not set
    
    #
    # Mailbox Controller Support
    #
    # CONFIG_DM_MAILBOX is not set
    
    #
    # Memory Controller drivers
    #
    
    #
    # Multifunction device drivers
    #
    # CONFIG_MISC is not set
    # CONFIG_SPL_MISC is not set
    # CONFIG_CROS_EC is not set
    # CONFIG_SPL_CROS_EC is not set
    # CONFIG_DS4510 is not set
    # CONFIG_FSL_SEC_MON is not set
    # CONFIG_NUVOTON_NCT6102D is not set
    # CONFIG_PWRSEQ is not set
    # CONFIG_PCA9551_LED is not set
    # CONFIG_TWL4030_LED is not set
    # CONFIG_WINBOND_W83627 is not set
    # CONFIG_FS_LOADER is not set
    
    #
    # MMC Host controller Support
    #
    CONFIG_MMC=y
    CONFIG_MMC_WRITE=y
    # CONFIG_MMC_BROKEN_CD is not set
    CONFIG_DM_MMC=y
    CONFIG_SPL_DM_MMC=y
    # CONFIG_ARM_PL180_MMCI is not set
    CONFIG_MMC_QUIRKS=y
    CONFIG_MMC_HW_PARTITIONING=y
    # CONFIG_SUPPORT_EMMC_RPMB is not set
    # CONFIG_SUPPORT_EMMC_BOOT is not set
    # CONFIG_MMC_IO_VOLTAGE is not set
    # CONFIG_SPL_MMC_IO_VOLTAGE is not set
    # CONFIG_MMC_HS400_ES_SUPPORT is not set
    # CONFIG_SPL_MMC_HS400_ES_SUPPORT is not set
    # CONFIG_MMC_HS400_SUPPORT is not set
    # CONFIG_SPL_MMC_HS400_SUPPORT is not set
    # CONFIG_MMC_HS200_SUPPORT is not set
    # CONFIG_SPL_MMC_HS200_SUPPORT is not set
    CONFIG_MMC_VERBOSE=y
    # CONFIG_MMC_TRACE is not set
    # CONFIG_MMC_DW is not set
    # CONFIG_MMC_MXC is not set
    # CONFIG_MMC_PCI is not set
    CONFIG_MMC_OMAP_HS=y
    CONFIG_MMC_OMAP_HS_ADMA=y
    # CONFIG_MMC_SDHCI is not set
    # CONFIG_STM32_SDMMC2 is not set
    # CONFIG_FTSDC010 is not set
    # CONFIG_FSL_ESDHC is not set
    # CONFIG_FSL_ESDHC_IMX is not set
    
    #
    # MTD Support
    #
    # CONFIG_MTD is not set
    # CONFIG_DM_MTD is not set
    # CONFIG_MTD_NOR_FLASH is not set
    # CONFIG_FLASH_CFI_DRIVER is not set
    # CONFIG_MTD_RAW_NAND is not set
    
    #
    # SPI Flash Support
    #
    # CONFIG_SPI_FLASH is not set
    
    #
    # UBI support
    #
    # CONFIG_UBI_SILENCE_MSG is not set
    # CONFIG_MTD_UBI is not set
    # CONFIG_BITBANGMII is not set
    # CONFIG_MV88E6352_SWITCH is not set
    CONFIG_PHYLIB=y
    # CONFIG_PHY_ADDR_ENABLE is not set
    # CONFIG_B53_SWITCH is not set
    # CONFIG_MV88E61XX_SWITCH is not set
    # CONFIG_PHYLIB_10G is not set
    # CONFIG_PHY_AQUANTIA is not set
    # CONFIG_PHY_ATHEROS is not set
    # CONFIG_PHY_BROADCOM is not set
    # CONFIG_PHY_CORTINA is not set
    # CONFIG_PHY_DAVICOM is not set
    # CONFIG_PHY_ET1011C is not set
    # CONFIG_PHY_LXT is not set
    CONFIG_PHY_MARVELL=y
    # CONFIG_PHY_MESON_GXL is not set
    # CONFIG_PHY_MICREL is not set
    # CONFIG_PHY_MSCC is not set
    # CONFIG_PHY_NATSEMI is not set
    # CONFIG_PHY_REALTEK is not set
    # CONFIG_PHY_SMSC is not set
    # CONFIG_PHY_TERANETICS is not set
    # CONFIG_PHY_TI is not set
    # CONFIG_PHY_VITESSE is not set
    # CONFIG_PHY_XILINX is not set
    # CONFIG_PHY_XILINX_GMII2RGMII is not set
    # CONFIG_PHY_FIXED is not set
    # CONFIG_PHY_NCSI is not set
    # CONFIG_FSL_PFE is not set
    CONFIG_DM_ETH=y
    CONFIG_DM_MDIO=y
    CONFIG_DM_MDIO_MUX=y
    CONFIG_NETDEVICES=y
    # CONFIG_PHY_GIGE is not set
    # CONFIG_ALTERA_TSE is not set
    # CONFIG_BCM_SF2_ETH is not set
    # CONFIG_BCMGENET is not set
    # CONFIG_DWC_ETH_QOS is not set
    # CONFIG_E1000 is not set
    # CONFIG_ETH_DESIGNWARE is not set
    # CONFIG_ETHOC is not set
    # CONFIG_FMAN_ENET is not set
    # CONFIG_FTMAC100 is not set
    # CONFIG_FTGMAC100 is not set
    # CONFIG_MCFFEC is not set
    # CONFIG_FSLDMAFEC is not set
    # CONFIG_MACB is not set
    CONFIG_RGMII=y
    # CONFIG_MII is not set
    # CONFIG_RTL8139 is not set
    # CONFIG_RTL8169 is not set
    # CONFIG_SMC911X is not set
    # CONFIG_SUN7I_GMAC is not set
    # CONFIG_SUN4I_EMAC is not set
    # CONFIG_SUN8I_EMAC is not set
    # CONFIG_SH_ETHER is not set
    CONFIG_DRIVER_TI_CPSW=y
    # CONFIG_DRIVER_TI_EMAC is not set
    # CONFIG_DRIVER_TI_KEYSTONE_NET is not set
    # CONFIG_SYS_DPAA_QBMAN is not set
    # CONFIG_TSEC_ENET is not set
    # CONFIG_MEDIATEK_ETH is not set
    # CONFIG_HIGMACV300_ETH is not set
    # CONFIG_MVMDIO is not set
    # CONFIG_PCI is not set
    
    #
    # PCI Endpoint
    #
    # CONFIG_PCI_ENDPOINT is not set
    # CONFIG_X86_PCH7 is not set
    # CONFIG_X86_PCH9 is not set
    
    #
    # PHY Subsystem
    #
    # CONFIG_PHY is not set
    # CONFIG_SPL_PHY is not set
    # CONFIG_MVEBU_COMPHY_SUPPORT is not set
    
    #
    # Pin controllers
    #
    CONFIG_PINCTRL=y
    # CONFIG_PINCTRL_FULL is not set
    CONFIG_SPL_PINCTRL=y
    # CONFIG_PINCTRL_AT91 is not set
    # CONFIG_PINCTRL_AT91PIO4 is not set
    # CONFIG_PINCTRL_INTEL is not set
    # CONFIG_PINCTRL_ROCKCHIP_RV1108 is not set
    CONFIG_PINCTRL_SINGLE=y
    # CONFIG_PINCTRL_STM32 is not set
    
    #
    # Power
    #
    # CONFIG_ACPI_PMC is not set
    # CONFIG_SPL_ACPI_PMC is not set
    # CONFIG_TPL_ACPI_PMC is not set
    
    #
    # Power Domain Support
    #
    # CONFIG_POWER_DOMAIN is not set
    # CONFIG_DM_PMIC is not set
    # CONFIG_PMIC_AS3722 is not set
    # CONFIG_POWER_MC34VR500 is not set
    # CONFIG_DM_REGULATOR is not set
    # CONFIG_POWER_MT6323 is not set
    # CONFIG_DM_PWM is not set
    # CONFIG_PWM_IMX is not set
    # CONFIG_PWM_SANDBOX is not set
    # CONFIG_U_QE is not set
    # CONFIG_RAM is not set
    
    #
    # Remote Processor drivers
    #
    
    #
    # Reset Controller Support
    #
    # CONFIG_DM_RESET is not set
    # CONFIG_DM_RNG is not set
    
    #
    # Real Time Clock
    #
    # CONFIG_DM_RTC is not set
    # CONFIG_SPL_DM_RTC is not set
    # CONFIG_RTC_ENABLE_32KHZ_OUTPUT is not set
    # CONFIG_RTC_RX8025 is not set
    # CONFIG_RTC_PL031 is not set
    # CONFIG_RTC_S35392A is not set
    # CONFIG_RTC_MC146818 is not set
    # CONFIG_RTC_M41T62 is not set
    # CONFIG_SCSI is not set
    # CONFIG_DM_SCSI is not set
    
    #
    # Serial drivers
    #
    CONFIG_BAUDRATE=115200
    CONFIG_REQUIRE_SERIAL_CONSOLE=y
    CONFIG_SPECIFY_CONSOLE_INDEX=y
    CONFIG_SERIAL_PRESENT=y
    CONFIG_SPL_SERIAL_PRESENT=y
    CONFIG_CONS_INDEX=1
    CONFIG_DM_SERIAL=y
    # CONFIG_SERIAL_RX_BUFFER is not set
    # CONFIG_SERIAL_SEARCH_ALL is not set
    CONFIG_SPL_DM_SERIAL=y
    # CONFIG_ALTERA_JTAG_UART is not set
    # CONFIG_ALTERA_UART is not set
    # CONFIG_ARC_SERIAL is not set
    # CONFIG_ATMEL_USART is not set
    # CONFIG_BCM6345_SERIAL is not set
    # CONFIG_COREBOOT_SERIAL is not set
    # CONFIG_CORTINA_UART is not set
    # CONFIG_FSL_LINFLEXUART is not set
    # CONFIG_FSL_LPUART is not set
    # CONFIG_MVEBU_A3700_UART is not set
    # CONFIG_MCFUART is not set
    # CONFIG_NULLDEV_SERIAL is not set
    CONFIG_SYS_NS16550=y
    # CONFIG_NS16550_DYNAMIC is not set
    # CONFIG_PL01X_SERIAL is not set
    # CONFIG_MSM_SERIAL is not set
    CONFIG_OMAP_SERIAL=y
    # CONFIG_PXA_SERIAL is not set
    # CONFIG_SIFIVE_SERIAL is not set
    # CONFIG_MTK_SERIAL is not set
    # CONFIG_SMEM is not set
    
    #
    # Sound support
    #
    # CONFIG_SOUND is not set
    
    #
    # SOC (System On Chip) specific Drivers
    #
    # CONFIG_SOC_TI is not set
    # CONFIG_SPI is not set
    
    #
    # SPMI support
    #
    # CONFIG_SPMI is not set
    
    #
    # System reset device drivers
    #
    # CONFIG_SYSRESET is not set
    # CONFIG_SYSRESET_SYSCON is not set
    # CONFIG_SYSRESET_WATCHDOG is not set
    # CONFIG_SYSRESET_MPC83XX is not set
    # CONFIG_TEE is not set
    # CONFIG_OPTEE is not set
    # CONFIG_DM_THERMAL is not set
    
    #
    # Timer Support
    #
    # CONFIG_TIMER is not set
    
    #
    # TPM support
    #
    # CONFIG_USB is not set
    
    #
    # UFS Host Controller Support
    #
    # CONFIG_TI_J721E_UFS is not set
    
    #
    # Graphics support
    #
    # CONFIG_DM_VIDEO is not set
    # CONFIG_SYS_WHITE_ON_BLACK is not set
    # CONFIG_NO_FB_CLEAR 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_VIDEO_OMAP3 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_VIDEO is not set
    # CONFIG_LCD is not set
    # CONFIG_VIDEO_SIMPLE is not set
    # CONFIG_VIDEO_DT_SIMPLEFB is not set
    # CONFIG_OSD is not set
    
    #
    # VirtIO Drivers
    #
    # CONFIG_VIRTIO_MMIO is not set
    
    #
    # 1-Wire support
    #
    # CONFIG_W1 is not set
    
    #
    # 1-wire EEPROM support
    #
    # CONFIG_W1_EEPROM is not set
    
    #
    # Watchdog Timer Support
    #
    # CONFIG_WATCHDOG is not set
    CONFIG_WATCHDOG_TIMEOUT_MSECS=60000
    # CONFIG_WATCHDOG_RESET_DISABLE is not set
    # CONFIG_IMX_WATCHDOG is not set
    # CONFIG_OMAP_WATCHDOG is not set
    # CONFIG_ULP_WATCHDOG is not set
    # CONFIG_DESIGNWARE_WATCHDOG is not set
    # CONFIG_WDT is not set
    CONFIG_SPL_WDT=y
    # CONFIG_PHYS_TO_BUS is not set
    
    #
    # File systems
    #
    CONFIG_FS_BTRFS=y
    # CONFIG_FS_CBFS is not set
    # CONFIG_SPL_FS_CBFS is not set
    CONFIG_FS_EXT4=y
    CONFIG_EXT4_WRITE=y
    CONFIG_FS_FAT=y
    # CONFIG_FAT_WRITE is not set
    CONFIG_FS_FAT_MAX_CLUSTSIZE=65536
    # CONFIG_FS_JFFS2 is not set
    # CONFIG_UBIFS_SILENCE_MSG is not set
    # CONFIG_FS_CRAMFS is not set
    # CONFIG_YAFFS2 is not set
    
    #
    # Library routines
    #
    # CONFIG_BCH is not set
    # CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED is not set
    # CONFIG_DYNAMIC_CRC_TABLE is not set
    CONFIG_HAVE_PRIVATE_LIBGCC=y
    CONFIG_LIB_UUID=y
    CONFIG_PRINTF=y
    CONFIG_SPL_PRINTF=y
    CONFIG_SPRINTF=y
    CONFIG_SPL_SPRINTF=y
    CONFIG_STRTO=y
    CONFIG_SPL_STRTO=y
    CONFIG_USE_PRIVATE_LIBGCC=y
    CONFIG_SYS_HZ=1000
    CONFIG_SPL_USE_TINY_PRINTF=y
    # CONFIG_PANIC_HANG is not set
    CONFIG_REGEX=y
    CONFIG_LIB_RAND=y
    # CONFIG_LIB_HW_RAND is not set
    # CONFIG_SPL_TINY_MEMSET is not set
    # CONFIG_TPL_TINY_MEMSET is not set
    CONFIG_RBTREE=y
    # CONFIG_BITREVERSE is not set
    # CONFIG_TRACE is not set
    # CONFIG_CMD_DHRYSTONE is not set
    
    #
    # Security support
    #
    # CONFIG_AES is not set
    # CONFIG_RSA is not set
    # CONFIG_ASYMMETRIC_KEY_TYPE is not set
    # CONFIG_TPM is not set
    # CONFIG_SPL_TPM is not set
    
    #
    # Android Verified Boot
    #
    
    #
    # Hashing Support
    #
    CONFIG_SHA1=y
    CONFIG_SHA256=y
    # CONFIG_SHA_HW_ACCEL is not set
    CONFIG_MD5=y
    CONFIG_CRC32C=y
    CONFIG_XXHASH=y
    
    #
    # Compression Support
    #
    # CONFIG_LZ4 is not set
    # CONFIG_LZMA is not set
    CONFIG_LZO=y
    CONFIG_GZIP=y
    CONFIG_ZLIB=y
    CONFIG_ZSTD=y
    # CONFIG_SPL_LZ4 is not set
    # CONFIG_SPL_LZO is not set
    # CONFIG_SPL_GZIP is not set
    # CONFIG_SPL_ZSTD is not set
    # CONFIG_ERRNO_STR is not set
    # CONFIG_HEXDUMP is not set
    CONFIG_OF_LIBFDT=y
    CONFIG_OF_LIBFDT_ASSUME_MASK=0
    CONFIG_OF_LIBFDT_OVERLAY=y
    CONFIG_SPL_OF_LIBFDT=y
    CONFIG_SPL_OF_LIBFDT_ASSUME_MASK=0xff
    # CONFIG_TPL_OF_LIBFDT is not set
    CONFIG_TPL_OF_LIBFDT_ASSUME_MASK=0xff
    
    #
    # System tables
    #
    CONFIG_GENERATE_SMBIOS_TABLE=y
    CONFIG_SMBIOS_MANUFACTURER="flightcircuits"
    CONFIG_EFI_LOADER=y
    CONFIG_EFI_DEVICE_PATH_TO_TEXT=y
    CONFIG_EFI_LOADER_HII=y
    CONFIG_EFI_UNICODE_COLLATION_PROTOCOL2=y
    CONFIG_EFI_UNICODE_CAPITALIZATION=y
    # CONFIG_EFI_UNICODE_COLLATION_PROTOCOL is not set
    CONFIG_EFI_PLATFORM_LANG_CODES="en-US"
    CONFIG_EFI_GRUB_ARM32_WORKAROUND=y
    # CONFIG_EFI_LOAD_FILE2_INITRD is not set
    # CONFIG_TEST_FDTDEC is not set
    # CONFIG_UNIT_TEST is not set
    

  • Adam,

    Adam Gerken1 said:
    I enabled those two CONFIGs and I still have to use the pin mux from board.c to have the MDIO return valid data on the PHY.

    \

    Careful, sometimes it's not as easy as this. You need to make sure that there are no conflicts with board code that may still be getting called. Then, if you need pinmux done in SPL, the respective DTS nodes may need to get marked up with u-boot,dm-spl otherwise they'll get stripped out during SPL build and nothing will work. If you want to use DTS-based pinmux it'd probably be worth looking at an AM335x-based platform that already uses it (there are some in the U-Boot tree), and see how it is managed from a DTS and platform code perspective.

    Regards, Andreas

  • Adam Gerken1 said:
    Thanks again for the help, got a lot of other minor things smoothed out along the way, and I know u-boot way better than I did before, so that's something.

    You definitely struggled through a good cross-section of potential issues and U-Boot quirks. Some of that stuff can be mitigated with better documentation (we are trying this), and some of it just requires some elbow grease to struggle through it in my opinion. Learning curve is a bit steep but yes it does get easier.

    Adam Gerken1 said:
    I am still curious about the dt pin muxing issue though, I'd like to push this towards the driver model as much as I possibly can and whittle down the board file dependence.

    See my other comment. Probably want to pick an existing board with DT-based pinmux config and model from there.

    Regards, Andreas

  • OK, new hardware is in and it's looking much more promising now! I actually get traffic on the ETH interface but now I'm back to square one and still confused exactly how to move forward.

    I'm now thinking I'd like to do the whole boot process through TFTP instead of serially loading the MLO an u-boot. When I try and boot from ETH I see the BOOTP requests in my ubuntu machine:

    So now I guess I have a couple new questions:

    Where do I go from here? Is there an official TI walk through. I've tried: https://processors.wiki.ti.com/index.php/Ubuntu_12.04_Set_Up_to_Network_Boot_an_AM335x_Based_Platform that I got from: 

    None of those configs seem to do anything. I tried changing the vendor-class-substrings to the "TexasIns" I see with no luck. Any ideas?

    Since I've had the most luck with mainline u-boot, and have images from before that I think are solid, I'd like to just use those. Is there anything in particular I need to to do to enable network boot other than enabling network support in the MLO and u-boot, and leave in the networking env variables?

    Lastly, I still can't get the MDIO/MII pinmux working strictly via the DM, even when copying an evm config but that's super nitpicky at this point, I just want to get this thing booted and move on.

    Edit: definitely looks ubuntu side. If I plug the board into my regular network, load MLO and u-boot through the serial and do "dhcp" I get a valid address.

    Thanks,

    Adam

  • Hi Adam,

    Adam Gerken1 said:
    new hardware is in and it's looking much more promising now! I actually get traffic on the ETH interface

    Great but what's different with the new HW? Did you root cause why now basic Ethernet connectivity seems to work?

    Adam Gerken1 said:
    Where do I go from here? Is there an official TI walk through. I've tried: https://processors.wiki.ti.com/index.php/Ubuntu_12.04_Set_Up_to_Network_Boot_an_AM335x_Based_Platform that I got from: 

    This page is outdated and causes more confusion at this point than it is good (it will get removed by e/o 2020). The current recommended steps are documented as part of the TI Linux Processor SDK documentation available at http://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/How_to_Guides/Host/How_to_Setup_Ubuntu_1404_Network_Boot.html

    While those steps say Ubuntu 14.04 I had no real issues doing that setup on a Ubuntu 18.04 machine.

    Adam Gerken1 said:
    Since I've had the most luck with mainline u-boot, and have images from before that I think are solid, I'd like to just use those. Is there anything in particular I need to to do to enable network boot other than enabling network support in the MLO and u-boot, and leave in the networking env variables?

    It should "just work", no changes to U-Boot or config needed to enable Ethernet boot. At least that's the case with the TI SDK provided U-Boot tree. But upstream U-Boot and TI U-Boot for AM335x are very close as AM335x has been around for a while, so upstream support is quite mature.

    Adam Gerken1 said:
    Lastly, I still can't get the MDIO/MII pinmux working strictly via the DM, even when copying an evm config but that's super nitpicky at this point, I just want to get this thing booted and move on.

    The TI reference platforms use platform/board data to initialize the Ethernet pinmux, I'd try to stick to that. If you want to use DTS you will need to debug this some more to see as to what exactly is failing. It could be as simple as missing "u-boot,dm-spl;" nodes in the device tree which would lead to certain parts of the DTS getting optimized out during the SPL build, and the probe to partially fail. Or it could be something else. You could use printf() style debugging or a JTAG debugger to verify actual pinmux control register settings at various stages, comparing DTS-based Ethernet pinmux initialization vs. board-data based pinmux initialization - this should tell you exactly what is missing.

    Adam Gerken1 said:
    Edit: definitely looks ubuntu side. If I plug the board into my regular network, load MLO and u-boot through the serial and do "dhcp" I get a valid address.

    That's perfect, but then again, what's different now?

    Regards, Andreas

  • I had the RGMII TCTL and TCLK signals mixed up between the AM3352 and PHY. reworking them wasn't possible so I had to have new boards made.

    I'll check out that page for getting network boot up and running.

    Thanks!

  • Andreas, Getting close now, I can taste it. I've got my DCHP/TFTP server set up per the instructions. It took a little monkeying around. There's a typo in the example config that took me longer than I'd like to admit to find:

    elsif substring (option vendor-class-identifier, 0, 10) = "AM43xx U-B"
       {
          filename "u-boot-restore.img";
       {

    There's two open brackets there.

    Anyway, I've now got it up and running and getting an IP address and everything but I'm getting an ICMP error and no file transfers. Any ideas? I've made sure there are no firewalls in the way, tried a switch between the board and PC, rechecked my set ups, etc.

     

  • Hi Adam,

    Sounds like you may not have a TFTP server setup?

    You need TFTP setup to serve "u-boot-spl.bin". This is in addition to the DHCP server. See point 5 of the setup instructions at software-dl.ti.com/.../How_to_Setup_Ubuntu_1404_Network_Boot.html

    Regards, Andreas

  • Ah, so close. I still had the TFTP server from that old page installed. I didn't catch that they were different packages. Uninstalled that, and it took right off.

    Now it looks like it loads the spl but then everything goes quiet, doesn't try to loadu-boot and there's no serial output... more digging to do apparently.

    Thanks,

    Adam

  • Adam Gerken1 said:
    Now it looks like it loads the spl but then everything goes quiet, doesn't try to loadu-boot and there's no serial output... more digging to do apparently.

    Can you share a log of that?

    Also what does Wireshark say? Do you see the board requesting U-Boot?

    Sounds like SPL is not being able to use the Ethernet interface to continue loading probably because of some configuration issue. The good thing is using the ROM-based bootloader Ethernet essentially is proven-good. So at this point it should just be a U-Boot configuration/setup issue.

    Regards, Andreas

  • Here's the end of the TFTP transfer. THe ERRORs are erroneous, I found another post about it. There are no actual packet errors recorded if I do an "ipconfig."

    After this the board disappears, nothing from 192.168.2.2, no request for u-boot, nada. I agree it's most likely an spl configuration issue, I just have to back and double check everything.

    Adam

  • Adam Gerken1 said:
    After this the board disappears, nothing from 192.168.2.2, no request for u-boot, nada. I agree it's most likely an spl configuration issue, I just have to back and double check everything.

    If I may make a suggestion I would probably recommend going back to how networking is setup on one of the existing platforms from a DTS, CONFIG_*, and platform data POV as a known good starting point. I think you may have since made various changes in an effort trying to get various things working, but what may be needed now is to just go back to a known-good starting point as used on an existing platform. It should not be too hard to get this over the hump with what you already have working now.

    Regards, Andreas

  • Finally getting back into this project... I found some SPL configs that weren't enable to allow Ethernet and such. I think I got that sorted out but now the spl just requests u-boot-spl over and over instead of moving onto the u-boot image. Still no serial out.

    I'm going to try loading this spl through uart and seeing what happens. Maybe it's resetting or something.

    EDIT: yeah, SPL is now just causing a reboot after it loads.

    EDIT 2: The older imagines I made based on the eewiki patches loads the SPL and gives me an "Unsupported Boot Device" error at least the board is alive and I just have to find the right combo of booting magic.

  • Adam,

    Adam Gerken1 said:

    EDIT: yeah, SPL is now just causing a reboot after it loads.

    EDIT 2: The older imagines I made based on the eewiki patches loads the SPL and gives me an "Unsupported Boot Device" error at least the board is alive and I just have to find the right combo of booting magic.

    Sounds like (and you had mentioned that earlier) that you have no serial output at all. The issue with serial port bringup in SPL is that it happens very late into the SPL startup, past failure-prone things like board detection logic (if still there) and DDR bringup. Can you enable the early debug UART as per instructions here (scroll down to "Setup early (debug) UART"): software-dl.ti.com/.../U-Boot.html

    This might give you some additional clues. And enable you to add printf() statements to trace program execution to help narrow down where it is failing.

    Regards, Andreas