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: AM3358 stops sending C character after 5 times

Part Number: AM3358

Dear all,

I would like to ask support about an issue I have using the AM3358BZCZ100 on my self designed board (produced by external company).

When I connect my laptop to the serial port of the CPU I can see that it's sending a C character for 5 times. After 5 times it stops.
When I connect the reset pin from the CPU (not the power chip) to the GND for a seconds, then after it's sending the C character again for only 5 times.
I do not have any SD card inserted which it could boot from.

I use the power IC TPS65217BRSLT. tps65217B.pdf

Below I have the measured voltages using the signal names from the drawing which can be found here:  schematic.pdf

VDDS_DDR = 1,84v
VDD_MPU = up and down from 1,12v to 1,08v
VDD_CORE = 1,08v
VDD_3V3A = 3,36v
VDDS = 1,8v
VDD_3V3AUX = 3,32v
PMIC_POWER_EN = 1,8v
PMIC_PGOOD = 1,8v
LDO_PGOOD = 1,8v
VDD_PLL = 1,8v
SYS_RESETN = 3,28v

Does anyone have an idea what could be the root cause?
Thank you in advance.

  • Hello J E,

    Due to the US holidays, on this particular E2E thread, our response may get delayed until the week of Jan 2, 2019.

    Warmest Wishes for Happy Holidays and a Happy New Year!

    best regards,
    David Zhou
  • This is the behavior of the ROM code.  The expectation is that your computer is hooked up to the board and ready to transfer the code before you power-on the board.  That way the very first character should be responded to.  Otherwise you need to reset the chip or power cycle the board.

  • Dear Brad,

    Thank you.
    Sorry, maybe I have misunderstood the functionality of the ROM code, as I look at exaples on the internet for loading the boot loader I see the chip is sending the 'C' character all the time. I asumed this should be the case for me as well.
    I will try to load in the boot loader directly after a reset and see if it responds.
  • Dear Brad,

    Sadly i am not able to load the MLO file as it is getting stuck after loading it.

    Also I have tried to load the am335x-evm-linux-05.01.00.11.img from SD card, created in ubuntu using the command 'dd', just to see if i get any response from uBoot over the serial port, but it is giving me nothing. When starting from SD card I also don't see the C characters printed at power up.

    Is there someone who perhaps sees something odd?

  • For board bring-up, I recommend using the SD card.  That's the most commonly used interface for booting AM335x, so you'll likely have fewer issues starting there.  Once you have things operational using the SD card then you can start branching out to booting from UART, etc.

    J E said:
    Also I have tried to load the am335x-evm-linux-05.01.00.11.img from SD card,

    MLO from TI's SDK is built to run on all TI AM335x platforms (e.g. EVM, Starter Kit, Beagle Bone Black, etc.).  We achieve that by having the MLO read an ID from the I2C EEPROM very early in the boot process.  If a valid ID isn't found (and I'm guessing that is the case for your custom hardware) then the bootloader silently aborts.  We can't print a warning message since we don't know which UART to use, etc.!  A quick change you can make to manually override this dependency on the I2C EEPROM is to edit u-boot/board/ti/am335x/board.h.  For example, if your board is similar to the Beagle Bone Black, you should make the board_is_bone_lt() function return 1 and all other functions return 0.  That should hopefully get you passed that initial check.

    You still need to update your pinmux and DDR configuration for things to work most likely though.

  • Hi,

    Thank you. I have compiled the u-boot using u-boot-2018.01 from the TI EVM SDK.
    I used the compiler that comes with the SDK.

    make CROSS_COMPILE=/usr/local/arago-2018.10/sysroots/x86_64-arago-linux/usr/bin/arm-linux-gnueabihf- O=am335x ARCH=arm am335x_evm_defconfig
    make CROSS_COMPILE=/usr/local/arago-2018.10/sysroots/x86_64-arago-linux/usr/bin/arm-linux-gnueabihf-

    I have tried to edit the board.h as described earlier and also I have tried to use the source from the link below to prevent reading from I2C.
    https://e2e.ti.com/support/processors/f/791/p/250198/876780#876780

    When I load the MLO and u-boot.img to the SD-card and boot from it I don't see anything yet in my serial port interface to my laptop.
    Should the MLO be able to print something so I can see that I at least have reached the first stage? Or can I put some printing somewhere?
    Also I have to notice is that I feel that the CPU is getting quite hot when I try to start from SD card. around 55 to 60 degree celcius. Without SD card it seems normal cool temperature. I don't measure any short circuit so far.

  • It might be getting hot due to the PLL being cranked up to 1 GHz, which is how the BeagleBone Black is programmed. That seems a lot hotter than I would expect though. Can you connect with JTAG and see where the CPU is? If you can install Code Composer Studio on your Linux PC so that you can debug using the same computer you're using to build the code, it will be much easier. It might be best to do something like:

    1. Put a spin loop early in the u-boot code.
    2. Connect with JTAG.
    3. Load symbols (not load program, and make sure that no gel files are loaded or running).
    4. Verify that you are stopped in your spin loop.
    5. Set the PC to just after your spin loop.
    6. Step through the code to see where things break. My suspicion would be DDR configuration. I'm not certain, but you might not get any prints if the DDR doesn't get configured.
  • Thank you.

    I have ordered a j-tag debug  tool that works with CCS.

    In the meantime i will setup the DDR2 configuration using this manual:

    I don't see exactly in which sources to change this registers, but I assume somewhere in the u-boot sources? I will search a bit more.

  • FYI, the DDR data structures are usually contained in the "board file", e.g. for the TI boards that would be u-boot/board/ti/am335x/board.c.