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.

AM620-Q1: I wanted to quickly test the SD boot feature on our custom board, however, (though I know the image is not customized) I expected the boot process to proceed further.

Part Number: AM620-Q1
Other Parts Discussed in Thread: SYSCONFIG,

Tool/software:

With our custom board:

With the development board:

I've noticed that the SD clock seems to stop after the characters (in the first image) are displayed in the terminal window on the custom board.  How far in the boot process should the SD card boot be able to proceed to.  I'm starting off with "tisdk-default-image-am62xx-lp-evm.wic.xz" and hope to disable some of the configuration to use it on our custom board.

  • Hi Jim,

    It looks like your custom board uses different DDR device from the EVM, that is why the boot stops very early.

    You would have to use the SysConfig tool to generate the DDR config data for the DDR device used on your board, integrate the data to U-Boot and rebuild U-Boot.

  • OK!  Thanks!

  • We have the MT40A2G8AG-062E AUT:F memory chip.   The memory type selected in you DDR Configuration tool should be DDR4 (I believe)?  Will selecting SK_AM62 as the Reference Design be useful?  Also, our chip is the AM620-Q1.  Will this tool work for this?

  • I am routing your query to our DDR expert for comments.

  • Excellent!  That will help a lot!

  • As an fyi, I tried booting using the sk instead of the sk-lp image and got the following:

  • Jim, the device you have MT40A2G8AG-062E  is a x8 memory, whereas the EVM has a x16 memory, so some configuration changes are needed in the tool.  Please check the README link in the tool, it will have some guidance.

    I assume you have two x8 devices?  You basically need to change:

    Data Bus Width (per device) = 8

    and then re-build uboot with the new configuration file.

    Possibly some other tweaks would be needed, but i would need more info or schematic of the board.

    Regards,

    James

  • OK!  I'll begin the process.  Thanks!

  • Can you tell me how to reduce the maximum speed on the SD card boot?  It looks like it's a configuration setting.  In k3-am62x-sk-common.dtsi, there is the following:

    &sdhci1 {
    /* SD/MMC */
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&main_mmc1_pins_default>;
    disable-wp;
    };

    Would simply adding a line like "sdhci-caps-mask = <0x00000007 0x00200000>;" reduce the speed below 50MHZ?  Is this the correct *.dtsi file I should modify and then how do I integrate that into the U-Boot code?

  • Jim,

    The simplest way is to add below DT property to this '&sdhci1' node. If you want to reduce the speed in kernel, add this to kernel k3-am62x-sk-common.dtsi. If you want to reduce it in U-boot, add this to U-Boot k3-am62x-sk-common.dtsi,

    &sdhci1 {
            no-1-8-v;
    }

  • Great!  Thanks!

  • We made the changes in the ddr and I replaced the U-Boot k3-am62x-ddr-lp4-50-800-800.dtsi with our newly generated file (renaming ours to "k3-am62x-ddr-lp4-50-800-800.dtsi "), rebuilt U-Boot (using the SDK Top Level Makefile) and moved tiboot3.bin, tispl.bin and u-boot.img to the SD Card with the "tisdk-default-image-am62xx-lp-evm.wic.xz" image.    We seem to lose our SD Card clock:

  • Hi Jim,

    Could you please apply the following patch and share the boot logs?

    diff --git a/configs/am62x_lpsk_r5_defconfig b/configs/am62x_lpsk_r5_defconfig
    index af58473361f..bad951ba6d5 100644
    --- a/configs/am62x_lpsk_r5_defconfig
    +++ b/configs/am62x_lpsk_r5_defconfig
    @@ -136,3 +136,6 @@ CONFIG_SPL_TIMER=y
     CONFIG_OMAP_TIMER=y
     CONFIG_LIB_RATIONAL=y
     CONFIG_SPL_LIB_RATIONAL=y
    +
    +CONFIG_MMC_TRACE=y
    +
    diff --git a/drivers/mmc/am654_sdhci.c b/drivers/mmc/am654_sdhci.c
    index 05719827b47..22d976155f4 100644
    --- a/drivers/mmc/am654_sdhci.c
    +++ b/drivers/mmc/am654_sdhci.c
    @@ -18,6 +18,8 @@
     #include <linux/bitops.h>
     #include <linux/err.h>
     
    +#define debug printf
    +
     /* CTL_CFG Registers */
     #define CTL_CFG_2		0x14
     
    diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
    index dde251c87bc..6a55fd08093 100644
    --- a/drivers/mmc/mmc.c
    +++ b/drivers/mmc/mmc.c
    @@ -26,6 +26,8 @@
     #include <div64.h>
     #include "mmc_private.h"
     
    +#define debug printf
    +
     #define DEFAULT_CMD6_TIMEOUT_MS  500
     
     static int mmc_set_signal_voltage(struct mmc *mmc, uint signal_voltage);
    diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
    index c6b250b9a1b..eab21860a46 100644
    --- a/drivers/mmc/sdhci.c
    +++ b/drivers/mmc/sdhci.c
    @@ -22,6 +22,8 @@
     #include <phys2bus.h>
     #include <power/regulator.h>
     
    +#define debug printf
    +
     static void sdhci_reset(struct sdhci_host *host, u8 mask)
     {
     	unsigned long timeout;
    

  • OK!  It will take a few...

  • Hello,

    Closing the thread due to no update for the last 4 weeks.

    In case the issue is still open, please feel free to reply which automatically opens the thread.