Here is more information... I dumped the DTB to decompile to see what was
in the device tree.
I am working on a new board based upon the AM3352 that has only ethernet
and a serial port.
The goal is to use the device model exclusively for this. I am working with
u-boot 2020.07rc4 presently.

I am having a lot of trouble getting second stage booting over TFTP from
the u-boot-spl.bin image.

If I serial boot and after loading the second image to DRAM, tftp is
working fine, so the hardware is okay.

Any insight would be greatly appreciated.

Thank
Dump of device tree from u-boot-spl.bin

Note: magic header number is 0x0dd0 0xedfe

Use hexdump and grep to search for it.

rich@poseiden:~/u-boot/spl$ tail -c 4556 u-boot-spl.bin | fdtdump -

**** fdtdump is a low-level debugging tool, not meant for general use.
**** If you want to decompile a dtb, you probably want
****     dtc -I dtb -O dts <filename>

/dts-v1/;
// magic:       0xd00dfeed
// totalsize:       0x675 (1653)
// off_dt_struct:    0x38
// off_dt_strings:    0x51c
// off_mem_rsvmap:    0x28
// version:       17
// last_comp_version:    2
// boot_cpuid_phys:    0x0
// size_dt_strings:    0x159
// size_dt_struct:    0x4e4

/ {
    compatible = "ti,am33xx";
    #address-cells = <0x00000001>;
    #size-cells = <0x00000001>;
    model = "Flight Circuits EPN11291";
    chosen {
        stdout-path = "/ocp/serial@44e09000";
        tick-timer = "/ocp/timer@48040000";
    };
    aliases {
        serial0 = "/ocp/serial@44e09000";
    };
    ocp {
        compatible = "simple-bus";
        #address-cells = <0x00000001>;
        #size-cells = <0x00000001>;
        ranges;
        ti,hwmods = "l3_main";
        l4_wkup@44c00000 {
            scm@210000 {
                pinmux@800 {
                    compatible = "pinctrl-single";
                    reg = <0x00000800 0x00000238>;
                    #address-cells = <0x00000001>;
                    #size-cells = <0x00000000>;
                    #pinctrl-cells = <0x00000001>;
                    pinctrl-single,register-width = <0x00000020>;
                    pinctrl-single,function-mask = <0x0000007f>;
                };
            };
        };
        serial@44e09000 {
            compatible = "ti,am3352-uart", "ti,omap3-uart";
            ti,hwmods = "uart1";
            clock-frequency = <0x02dc6c00>;
            reg = <0x44e09000 0x00002000>;
            status = "okay";
            dmas = <0x00000025 0x0000001a 0x00000000 0x00000025 0x0000001b
0x00000000>;
            dma-names = "tx", "rx";
        };
        mmc@481d8000 {
            compatible = "ti,omap4-hsmmc";
            ti,hwmods = "mmc2";
            ti,needs-special-reset;
            dmas = <0x00000025 0x00000002 0x00000000 0x00000025 0x00000003
0x00000000>;
            dma-names = "tx", "rx";
            reg = <0x481d8000 0x00001000>;
            status = "okay";
            bus-width = <0x00000008>;
            ti,non-removable;
            max-frequency = <0x05b8d800>;
        };
        usb@47400000 {
            dma-controller@47402000 {
                compatible = "ti,am3359-cppi41";
                reg = <0x47400000 0x00001000 0x47402000 0x00001000
0x47403000 0x00001000 0x47404000 0x00004000>;
                reg-names = "glue", "controller", "scheduler", "queuemgr";
                interrupt-names = "glue";
                #dma-cells = <0x00000002>;
                #dma-channels = <0x0000001e>;
                #dma-requests = <0x00000100>;
                status = "okay";
                phandle = <0x00000032>;
            };
        };
    };
};

Added u-boot, dm-spl to all drivers in the DTS
Still crashing

rich@poseiden:~/u-boot/spl$ tail -c 5388 u-boot-spl.bin | fdtdump -

**** fdtdump is a low-level debugging tool, not meant for general use.
**** If you want to decompile a dtb, you probably want
****     dtc -I dtb -O dts <filename>

/dts-v1/;
// magic:        0xd00dfeed
// totalsize:        0x9bd (2493)
// off_dt_struct:    0x38
// off_dt_strings:    0x7b8
// off_mem_rsvmap:    0x28
// version:        17
// last_comp_version:    2
// boot_cpuid_phys:    0x0
// size_dt_strings:    0x205
// size_dt_struct:    0x780

/ {
    compatible = "ti,am33xx";
    #address-cells = <0x00000001>;
    #size-cells = <0x00000001>;
    model = "Flight Circuits EPN11291";
    chosen {
        stdout-path = "/ocp/serial@44e09000";
        tick-timer = "/ocp/timer@48040000";
    };
    aliases {
        serial0 = "/ocp/serial@44e09000";
        ethernet0 = "/ocp/ethernet@4a100000/slave@4a100200";
    };
    ocp {
        compatible = "simple-bus";
        #address-cells = <0x00000001>;
        #size-cells = <0x00000001>;
        ranges;
        ti,hwmods = "l3_main";
        l4_wkup@44c00000 {
            scm@210000 {
                pinmux@800 {
                    compatible = "pinctrl-single";
                    reg = <0x00000800 0x00000238>;
                    #address-cells = <0x00000001>;
                    #size-cells = <0x00000000>;
                    #pinctrl-cells = <0x00000001>;
                    pinctrl-single,register-width = <0x00000020>;
                    pinctrl-single,function-mask = <0x0000007f>;
                };
            };
        };
        serial@44e09000 {
            compatible = "ti,am3352-uart", "ti,omap3-uart";
            ti,hwmods = "uart1";
            clock-frequency = <0x02dc6c00>;
            reg = <0x44e09000 0x00002000>;
            status = "okay";
            dmas = <0x00000025 0x0000001a 0x00000000 0x00000025 0x0000001b
0x00000000>;
            dma-names = "tx", "rx";
        };
        mmc@481d8000 {
            compatible = "ti,omap4-hsmmc";
            ti,hwmods = "mmc2";
            ti,needs-special-reset;
            dmas = <0x00000025 0x00000002 0x00000000 0x00000025 0x00000003
0x00000000>;
            dma-names = "tx", "rx";
            reg = <0x481d8000 0x00001000>;
            status = "okay";
            bus-width = <0x00000008>;
            ti,non-removable;
            max-frequency = <0x05b8d800>;
        };
        usb@47400000 {
            dma-controller@47402000 {
                compatible = "ti,am3359-cppi41";
                reg = <0x47400000 0x00001000 0x47402000 0x00001000
0x47403000 0x00001000 0x47404000 0x00004000>;
                reg-names = "glue", "controller", "scheduler", "queuemgr";
                interrupt-names = "glue";
                #dma-cells = <0x00000002>;
                #dma-channels = <0x0000001e>;
                #dma-requests = <0x00000100>;
                status = "okay";
                phandle = <0x00000032>;
            };
        };
        ethernet@4a100000 {
            compatible = "ti,am335x-cpsw", "ti,cpsw";
            ti,hwmods = "cpgmac0";
            cpdma_channels = <0x00000008>;
            ale_entries = <0x00000400>;
            bd_ram_size = <0x00002000>;
            mac_control = <0x00000020>;
            slaves = <0x00000001>;
            active_slave = <0x00000000>;
            cpts_clock_mult = <0x80000000>;
            cpts_clock_shift = <0x0000001d>;
            reg = <0x4a100000 0x00000800 0x4a101200 0x00000100>;
            #address-cells = <0x00000001>;
            #size-cells = <0x00000001>;
            ranges;
            syscon = <0x00000004>;
            status = "okay";
            pinctrl-1 = <0x0000003a>;
            mdio@4a101000 {
                compatible = "ti,cpsw-mdio", "ti,davinci_mdio";
                #address-cells = <0x00000001>;
                #size-cells = <0x00000000>;
                ti,hwmods = "davinci_mdio";
                bus_freq = <0x000f4240>;
                reg = <0x4a101000 0x00000100>;
                status = "okay";
                pinctrl-1 = <0x0000003c>;
            };
            slave@4a100200 {
                mac-address = [00 00 00 00 00 00];
                phy-handle = <0x0000003d>;
                phy-mode = "rgmii";
            };
        };
    };
};

After booting with this image

The assertion doesn't happen during a serial boot.

fdtdec_get_addr_size_auto_parent: na=1, ns=1, fdtdec_get_addr_size_fixed:
reg: addr=00000000x
ofnode_read_u32_index: cpdma_channels: x (8)
ofnode_read_u32_index: slaves: x (1)
size=x, ptr=18, limit=cf4: 81f00cdc
ofnode_read_u32_index: ale_entries: x (1024)
ofnode_read_u32_index: bd_ram_size: x (8192)
ofnode_read_u32_index: mac_control: x (32)
gpio_get_list_count: Node 'ethernet@4a100000', property 'mode-gpios', GPIO
count failed: -2
ofnode_read_u32_index: active_slave: x (0)
fdtdec_get_addr_size_fixed: reg: addr=00000000x, size=x
ofnode_read_prop: phy-mode: rgmii
drivers/core/ofnode.c:39: ofnode_read_u32_index: Assertion
`ofnode_valid(node)' failed.
resetting ...

On Mon, Jul 27, 2020 at 8:44 PM Richard Lourette <[email protected]>
wrote:

> I am working with a board with the AM3352 that only has ethernet and a
> serial port (UART0). I am able to use the bootstrap of the AM3352 to
> network boot the u-boot-spl.bin file. I can't get the second stage
> u-boot.img to network load via TFTP. My spl image says there are no
> etjermet devices found.
>
> 1) My first question, is TFTP booting u-boot.img possible with the AM3352?
>
> 2) If it is, any thoughts on how I get u-boot-spl.bin to use ethernet for
> loading the second image?
>
> Thanks
>
> With some debugging enabled (I deleted all the memory allocation print
> statements):
>
> Trying to boot from eth device
> env_driver_lookup: No environment driver for location 2
> Using default environment
> Initial value for argc=3
> Final value for argc=3
> No ethernet found.
> No Ethernet devices found
> SPL: failed to boot from all boot devices
>

Reply via email to