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.

AM3358: Boot problem

Part Number: AM3358

I have difficulties loading the "bone-debian-9.9-iot-armhf-2019-08-03-4gb.img" file to my custom controller board (or any boot file) via MMC0 SD card connection , based on AM3358 processor referring to Beaglebone Black. Despite it has same circuit configuration and boot setings as Beaglebone. I power up the circuit with SYSBOOT[4:0] 11000b pin settings as refer, but unlike reference design, nor indicator leds on my board blinks or image file copying starts. Evidence to AM3358 processor is alive are, exists "CCC..." terminal output responce on UART0 and there is 24MHz at CLKOUT1. I will be appreciate if any advice to solve the problem. Thanks,

Reyhan

  • Hi,

    Debian is not supported by TI. This is a community release, developed and supported by the community on www.beagleboard.org Please contact them for support on Debian.

  • Hi sir,

    Before loading the image to our custom board we tried to load u-boot-spl.bin, u-boot.img and MLO too. But we are failed to do so. Is it possible to support for loading these files to our device?

    Regards,

    Reyhan

  • Hi,

    U-boot have solved with loading u-boot-spl.bin and u-boot.img respectively. Already there is SD memory at MMC0 and MTFC4GLGDM-AIT Z 4Gb nand flash memory at MMC1 port, despite SD memory on MMC0  is recognizing, Microns MTFC4GLGDM-AIT Z nand flash memory is not been recognized (The board can boot soleily via SD MMC0 but image had couldn't load to MMC1). I will be appreciated if you offer any solution for this.

    Regards,

    Reyhan Aydın

  • I understand that you are trying to boot from an eMMC device connected to the second MMC controller on the AM335x, correct?

    Can you probe the CMD and CLK lines going to the eMMC device with a logic analyzer to make sure there is activity after RESET? If not, there is probably an issue with the boot settings or something else in HW. If there is activity, but it doesn't boot, it could be that the eMMC is not programmed as needed.

    Regards, Andreas

  • Hello Andreas,

    Thank you for your reply. Your understanding for hardware is correct. When i checked the CLK and CMD line for MMC1 port respectively after RESET, i see burst signal on CLK line(P-P 3.3V) starting with 100KHz and continues with 6MHz and there is (P-P 3-3V) serial data on CMD line during the clock signal. Thus is this mean the problem is because of progamming of eMMC?

    Best Regards,

    Reyhan

  • I just re-read your initial post. I understand you want to get SD card boot working first via MMC0. For this a boot mode of SYSBOOT[4:0] 11000b should work. This is actually the boot mode of the BeagleBone Black when the "uSD BOOT" push-button is pressed. Otherwise the boot mode on the BB is actually SYSBOOT[4:0] 11100b, which will access first eMMC (via MMC1) and then the SD card (via MMC0).

    user4996553 said:
    When i checked the CLK and CMD line for MMC1 port respectively after RESET, i see burst signal on CLK line(P-P 3.3V) starting with 100KHz and continues with 6MHz and there is (P-P 3-3V) serial data on CMD line during the clock signa

    If your boot mode really is SYSBOOT[4:0] 11000b there should be no activity on MMC1 as a result of the ROM boot loader operating, as it would not be part of the boot sequence. So I'm not quite sure yet how to put these pieces together.

    However since you said you want to boot from MMC0 / SD card, can you probe the respective signals to see if there is also activity on MMC0 (in addition to MMC1 that you already measured) which could mean that the SD card boot actually (partially) works, with U-Boot being the reason the MMC1 shows activity during probe, but then it silently crashes for some reason.

    Regards, Andreas

  • Hi Andreas,

    Thank you for support. When i trying to boot with SD card there is activity on SD card CLK and CMD line too, till reaching following console screen, then the process locking and the system stops reply.

    " Filesystem UUID: 27842df8-1dd8-4f8e-be71-f14140f4761a
    Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736

    Allocating group tables: done
    Writing inode tables: done
    Creating journal (16384 blocks): done
    Writing superblocks and filesystem accounting information: done

    --------------------------------------------------------------------------------
    ==> Formatting rootfs: /dev/mmcblk1p1 complete
    ==> Creating temporary rootfs directory (/tmp/rootfs)
    ==> Mounting /dev/mmcblk1p1 to /tmp/rootfs
    [ 74.871158] EXT4-fs (mmcblk1p1): mounted filesystem with ordered data mode. Opts: (null)

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

    ================================================================================
    Copying: Current rootfs to /dev/mmcblk1p1
    ----------------------------------------
    ==> rsync: / -> /tmp/rootfs

    "

    İt seems to be boot settings problem but i don't have the solution. 

    Regards,

    Reyhan

  • Reyhan,

    can you please use and try booting the TI-provided AM335x SDK image from an SD card. If your board is really built like the BeagleBone Black that image should work as-is. We need to do this to see if we can establish a known-good baseline. Also as Biser indicated earlier we can only support issues here related to the official TI SDK solution (nevertheless if I were to see an obvious issue I'd definitely bring it up no matter TI SDK or not).

    http://software-dl.ti.com/processor-sdk-linux/esd/AM335X/latest/index_FDS.html

    Regards, Andreas

  • Hello Andreas,

    I flashed image we get from PROCESSOR-SDK-LINUX-AM335X  06_01_00_08. I see that this image does not flash to eMMC and boots directly from SD card. I can see file system and create new files and folders etc. It works fine with SD card.

    Then i tried the method in below link in the topic ‘Erase eMMC’ with commands

    https://processors.wiki.ti.com/index.php/How_to_Boot_Beagle_Bone_Black_with_Processor_SDK_Linux

    mmc dev 1  

    mmc erase 100 2800

    and tried to boot with my SD card but my board didn’t boot from SD card and boot from eMMC instead and failed.

    So I flashed u-boot-spl.bin and u-boot.img and it boots directly from SD card again.

    Do you have an idea about the problem or the next step?

    Regards,

    Reyhan

     

  • Reyhan,

    you should be able to boot from eMMC in either raw mode (that's how the BeagleBone does it by default) or file system mode, the exact requirements of how the MMC device needs to be setup can be found in the AM335x TRM sections "26.1.8.5.5 MMC/SD Read Sector Procedure in Raw Mode" and "26.1.8.5.6 MMC/SD Read Sector Procedure in FAT Mode".

    It might be the easiest to try get it working in raw mode just like the BeagleBone was originally setup. I have used the below steps to program a custom MLO and U-Boot and was able to boot from eMMC. Please try/adopt as needed.

    ################################################################################
    # Steps to re-program MLO/U-Boot into eMMC
    #
    # - Clear 128KB+256KB+1MB of memory at the beginning of DDR
    # - Program MMC/SD raw boot header structure to the first sector (offset 0x0)
    # - Load MLO over network via TFTP (offset 0x20000)
    # - Load U-Boot over network via TFTP (offset 0x60000)
    ################################################################################
    mw 80000000 00 160000 && mw 800001bc 00800000 && mw 800001c0 030e2001 && mw 800001c4 0800ffd0 && mw 800001cc 03000003 && mw 800001d0 0383ffd0 && mw 800001d4 0800ffd0 && mw 800001d8 38000003 && mw 800001dc 00000070 && mw 800001fc aa550000 && env set serverip 10.0.1.38 && env set autoload no && dhcp && tftp 0x80020000 MLO-am335x-evm && tftp 0x80060000 u-boot-am335x-evm.img
    
    # Program TOC structure, MLO and U-Boot from DDR into eMMC boot sector in a single
    # operation by programming 0x160000 bytes to offset 0x0
    mmc dev 1:0 && mmc erase 0 b00 && mmc write 80000000 0 b00

    Regards, Andreas