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.

PROCESSOR-SDK-DRA8X-TDA4X: u-boot error "pte not found resetting ..."

Part Number: PROCESSOR-SDK-DRA8X-TDA4X

Hi All,

We are developing a J721E based custom board for one of our customer.

The DDR used on custom board differs as against the EVM's DDR.

CUSTOM BOARD DDR SIZE = 1GB (Giga Bytes)

EVM DDR SIZE = 4GB (Giga Bytes)

We are facing issue while booting up the board at boot loader stage.

ERROR  MESSAGE is as below :

pte not found

resetting ...

NOTE : The custom board ddr is working fine while testing using TI-RTOS

Also please find the complete boot log below :

U-Boot SPL 2020.01 (Oct 06 2020 - 11:23:36 +0530)
SYSFW ABI: 3.0 (firmware rev 0x0014 '20.04.1-v2020.04a (Terrific Lla')
Reading on-board EEPROM at 0x50 failed 1
ddrss->ddr_fhs_cnt = 6

Trying to boot from MMC2
Loading Environment from MMC... *** Warning - No MMC card found, using default environment

Remoteproc 2 started successfully
Starting ATF on ARM64 core...

NOTICE: BL31: v2.3():07.00.00.005-dirty
NOTICE: BL31: Built : 14:33:55, Jun 17 2020

U-Boot SPL 2020.01 (Oct 06 2020 - 11:23:05 +0530)
SYSFW ABI: 3.0 (firmware rev 0x0014 '20.04.1-v2020.04a (Terrific Lla')
Reading on-board EEPROM at 0x50 failed 1
pte not found

resetting ...

U-Boot SPL 2020.01 (Oct 06 2020 - 11:23:36 +0530)
SYSFW ABI: 3.0 (firmware rev 0x0014 '20.04.1-v2020.04a (Terrific Lla')
Reading on-board EEPROM at 0x50 failed 1
ddrss->ddr_fhs_cnt = 6

Trying to boot from MMC2

U-Boot SPL 2020.01 (Oct 06 2020 - 11:23:36 +0530)
SYSFW ABI: 3.0 (firmware rev 0x0014 '20.04.1-v2020.04a (Terrific Lla')
Reading on-board EEPROM at 0x50 failed 1

Trying to boot from MMC2
Loading Environment from MMC... *** Warning - No MMC card found, using default environment


U-Boot SPL 2020.01 (Oct 06 2020 - 11:27:00 +0530)
SYSFW ABI: 3.0 (firmware rev 0x0014 '20.04.1-v2020.04a (Terrific Lla')
Reading on-board EEPROM at 0x50 failed 1

Trying to boot from MMC2
Loading Environment from MMC... *** Warning - No MMC card found, using default environment

Remoteproc 2 started successfully
Starting ATF on ARM64 core...

NOTICE: BL31: v2.3():07.00.00.005-dirty
NOTICE: BL31: Built : 14:33:55, Jun 17 2020

U-Boot SPL 2020.01 (Oct 06 2020 - 11:26:29 +0530)
SYSFW ABI: 3.0 (firmware rev 0x0014 '20.04.1-v2020.04a (Terrific Lla')
Reading on-board EEPROM at 0x50 failed 1

pte not found

resetting ...

Regards,

Shiva Shankar K.

  • Hi Shiva Shankar,

    Have you made any custom u-boot changes? Right now we have the configuration done for 4GB DDR.
    pte error is coming from:

    arch/arm/cpu/armv8/cache_v8.c

    mmu_setup->setup_pgtables -> add_map

    Best Regards,
    Keerthy

  • Keerthy,

    We are well aware of this point, let us know where to modify the size parameter for this J721E board.

    Regards,

    Shiva Shankar K.

  • Hi Shiva Shankar,

    Can you try changes in the attached patch.

    Best Regards,
    Keerthy

    From 4eddcabeb3a71909f5f1d4cbe17b6b9a64c88e68 Mon Sep 17 00:00:00 2001
    From: Vishal Mahaveer <vishalm@ti.com>
    Date: Wed, 22 Jan 2020 17:37:55 -0600
    Subject: [PATCH] Changes for 1GB DDR
    
    Signed-off-by: Vishal Mahaveer <vishalm@ti.com>
    ---
     arch/arm/dts/k3-j721e-som-p0.dtsi       |  5 ++---
     arch/arm/dts/k3-j721e-som-tps65917.dtsi |  3 +--
     arch/arm/mach-k3/arm64-mmu.c            |  8 +-------
     board/ti/j721e/evm.c                    | 20 +++++---------------
     configs/j721e_evm_a72_defconfig         |  2 +-
     include/configs/j721e_evm.h             |  3 ---
     6 files changed, 10 insertions(+), 31 deletions(-)
    
    diff --git a/arch/arm/dts/k3-j721e-som-p0.dtsi b/arch/arm/dts/k3-j721e-som-p0.dtsi
    index ff6b141a30..c11097700b 100644
    --- a/arch/arm/dts/k3-j721e-som-p0.dtsi
    +++ b/arch/arm/dts/k3-j721e-som-p0.dtsi
    @@ -10,9 +10,8 @@
     / {
     	memory@80000000 {
     		device_type = "memory";
    -		/* 4G RAM */
    -		reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
    -		      <0x00000008 0x80000000 0x00000000 0x80000000>;
    +		/* 1G RAM */
    +		reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
     	};
     
     	reserved_memory: reserved-memory {
    diff --git a/arch/arm/dts/k3-j721e-som-tps65917.dtsi b/arch/arm/dts/k3-j721e-som-tps65917.dtsi
    index f614525f38..2c05c1d707 100644
    --- a/arch/arm/dts/k3-j721e-som-tps65917.dtsi
    +++ b/arch/arm/dts/k3-j721e-som-tps65917.dtsi
    @@ -11,8 +11,7 @@
     	memory@80000000 {
     		device_type = "memory";
     		/* 4G RAM */
    -		reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
    -		      <0x00000008 0x80000000 0x00000000 0x80000000>;
    +		reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
     	};
     
     	reserved_memory: reserved-memory {
    diff --git a/arch/arm/mach-k3/arm64-mmu.c b/arch/arm/mach-k3/arm64-mmu.c
    index f0ae671b09..2bc522e50f 100644
    --- a/arch/arm/mach-k3/arm64-mmu.c
    +++ b/arch/arm/mach-k3/arm64-mmu.c
    @@ -93,13 +93,7 @@ struct mm_region j721e_mem_map[NR_MMU_REGIONS] = {
     	}, {
     		.virt = 0xbbc00000UL,
     		.phys = 0xbbc00000UL,
    -		.size = 0x44400000UL,
    -		.attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
    -			 PTE_BLOCK_INNER_SHARE
    -	}, {
    -		.virt = 0x880000000UL,
    -		.phys = 0x880000000UL,
    -		.size = 0x80000000UL,
    +		.size = 0x04400000UL,
     		.attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
     			 PTE_BLOCK_INNER_SHARE
     	}, {
    diff --git a/board/ti/j721e/evm.c b/board/ti/j721e/evm.c
    index 3e92d0f87f..44e9409bf3 100644
    --- a/board/ti/j721e/evm.c
    +++ b/board/ti/j721e/evm.c
    @@ -38,15 +38,11 @@ int board_init(void)
     
     int dram_init(void)
     {
    -#ifdef CONFIG_PHYS_64BIT
    -	gd->ram_size = 0x100000000;
    -#else
    -	gd->ram_size = 0x80000000;
    -#endif
    -
    +	gd->ram_size = 0x40000000;
     	return 0;
     }
     
    +#if 0
     ulong board_get_usable_ram_top(ulong total_size)
     {
     #ifdef CONFIG_PHYS_64BIT
    @@ -57,20 +53,14 @@ ulong board_get_usable_ram_top(ulong total_size)
     
     	return gd->ram_top;
     }
    +#endif
     
     int dram_init_banksize(void)
     {
     	/* Bank 0 declares the memory available in the DDR low region */
     	gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;
    -	gd->bd->bi_dram[0].size = 0x80000000;
    -	gd->ram_size = 0x80000000;
    -
    -#ifdef CONFIG_PHYS_64BIT
    -	/* Bank 1 declares the memory available in the DDR high region */
    -	gd->bd->bi_dram[1].start = CONFIG_SYS_SDRAM_BASE1;
    -	gd->bd->bi_dram[1].size = 0x80000000;
    -	gd->ram_size = 0x100000000;
    -#endif
    +	gd->bd->bi_dram[0].size = 0x40000000;
    +	gd->ram_size = 0x40000000;
     
     	return 0;
     }
    diff --git a/configs/j721e_evm_a72_defconfig b/configs/j721e_evm_a72_defconfig
    index e874be9dc6..ae1f5fe454 100644
    --- a/configs/j721e_evm_a72_defconfig
    +++ b/configs/j721e_evm_a72_defconfig
    @@ -15,7 +15,7 @@ CONFIG_SPL_LIBDISK_SUPPORT=y
     CONFIG_SPL_SPI_FLASH_SUPPORT=y
     CONFIG_SPL_SPI_SUPPORT=y
     CONFIG_DISTRO_DEFAULTS=y
    -CONFIG_NR_DRAM_BANKS=2
    +CONFIG_NR_DRAM_BANKS=1
     # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
     CONFIG_SPL_LOAD_FIT=y
     CONFIG_OF_BOARD_SETUP=y
    diff --git a/include/configs/j721e_evm.h b/include/configs/j721e_evm.h
    index e68920dc38..b8b53d990a 100644
    --- a/include/configs/j721e_evm.h
    +++ b/include/configs/j721e_evm.h
    @@ -18,9 +18,6 @@
     
     #define CONFIG_ENV_SIZE			(128 << 10)
     
    -/* DDR Configuration */
    -#define CONFIG_SYS_SDRAM_BASE1		0x880000000
    -
     /* SPL Loader Configuration */
     #if defined(CONFIG_TARGET_J721E_A72_EVM)
     #define CONFIG_SPL_TEXT_BASE		0x80080000
    -- 
    2.17.1
    
    

  • Hi Keerthy,

    Thanks for the inputs.

    Please let us know on what basis you have changed arch/arm/mach-k3/arm64-mmu.c file, in particular 

    .virt     .phys  and   .size structure members.

    Please find the below log after making the suggested changes :

    U-Boot SPL 2020.01 (Oct 07 2020 - 19:19:45 +0530)
    SYSFW ABI: 3.0 (firmware rev 0x0014 '20.04.1-v2020.04a (Terrific Lla')
    Reading on-board EEPROM at 0x50 failed 1
    Trying to boot from MMC2
    Loading Environment from MMC... *** Warning - No MMC card found, using default environment

    Remoteproc 2 started successfully
    Starting ATF on ARM64 core...

    NOTICE: BL31: v2.3():07.00.00.005-dirty
    NOTICE: BL31: Built : 14:33:55, Jun 17 2020

    U-Boot SPL 2020.01 (Oct 07 2020 - 19:19:17 +0530)
    SYSFW ABI: 3.0 (firmware rev 0x0014 '20.04.1-v2020.04a (Terrific Lla')
    Reading on-board EEPROM at 0x50 failed 1
    Trying to boot from MMC2
    i2c_write: error waiting for data ACK (status=0x116)
    Error reading output register
    spl: mmc init failed with error: -110
    SPL: failed to boot from all boot devices
    ### ERROR ### Please RESET the board ###

    Regards,

    Shiva Shankar K.

  • Hi Shiva Shankar,

    It seems like mmc UHS is failing. Please follow the thread below:

    Best Regards,
    Keerthy

  • Hello Keerthy,

    We made changes as per the the thread. Now A72 SPL is loading A72 uboot,
    but A72 uboot hangs after board_init_f.

    Please find the boot log below :

    U-Boot SPL 2020.01 (Oct 08 2020 - 01:44:38 +0530)
    SYSFW ABI: 3.0 (firmware rev 0x0014 '20.04.1-v2020.04a (Terrific Lla')
    >>SPL: board_init_r()
    ----dram_init_banksize -----
    TLB table from bfffc000 to c0000000
    spl_init
    bootmode : 16
    Trying to boot from MMC2
    spl_image : 81ffff04
    spl: mmc boot mode: fs
    Unsupported OS image.. Jumping nevertheless..
    loaded - jumping to U-Boot...
    Loading Environment from MMC... *** Warning - No MMC card found, using default environment

    bootmode : 16
    bootmode : 16
    Remoteproc 2 started successfully
    bootmode : 16
    Starting ATF on ARM64 core...

    NOTICE:  BL31: v2.3():07.00.00.005-dirty
    NOTICE:  BL31: Built : 14:33:55, Jun 17 2020

    U-Boot SPL 2020.01 (Oct 08 2020 - 01:44:33 +0530)
    SYSFW ABI: 3.0 (firmware rev 0x0014 '20.04.1-v2020.04a (Terrific Lla')
    SPL malloc() before relocation used 0x2c30 bytes (11 KB)
    >>SPL: board_init_r()
    ----dram_init_banksize -----
    TLB table from bfff2000 to c0000000
    spl_init
    bootmode : 16
    Trying to boot from MMC2
    spl_image : 81fffe40
    sdhci_setup_cfg, caps: 0x3fe8c801
    sdhci_setup_cfg, caps_1: 0x18000400
    clock is disabled (0Hz)
    clock is enabled (400000Hz)
    clock is enabled (50000000Hz)
    spl: mmc boot mode: fs
    Jumping to U-Boot
    loaded - jumping to U-Boot...
    image entry point: 0x80800000
    initcall: 00000000808a2578


    U-Boot 2020.01 (Oct 08 2020 - 01:44:33 +0530)

    initcall: 0000000080816aa0
    U-Boot code: 80800000 -> 808EA5A8  BSS: -> 80908290
    initcall: 0000000080816c0c
    initcall: 000000008080296c
    SoC:   J721E SR1.0
    initcall: 00000000808172f8
    Model: Texas Instruments K3 J721E SoC
    Board: ISSI TDA4VM REF BOARD
    initcall: 0000000080816bec
    DRAM:  initcall: 0000000080802a00
     -----------2nd dram_init--------
    initcall: 0000000080802a30
    initcall: 0000000080816dc8
    Monitor len: 00108290
    Ram size: 40000000
    Ram top: C0000000
    initcall: 0000000080816898
    initcall: 00000000808168ac
    TLB table from bfff0000 to bfffe000
    initcall: 0000000080816cd4
    initcall: 0000000080816cdc
    initcall: 0000000080816a38
    Reserving 1056k for U-Boot at: bfee7000
    initcall: 00000000808169fc
    Reserving 32896k for malloc() at: bdec7000
    initcall: 0000000080816b90
    Reserving 152 Bytes for Board Info at: bdec6f68
    initcall: 0000000080816ce4
    initcall: 00000000808169c0
    Reserving 368 Bytes for Global Data at: bdec6df8
    initcall: 0000000080816938
    Reserving 43616 Bytes for FDT at: bdebc398
    initcall: 0000000080816cec
    initcall: 0000000080816cf4
    initcall: 0000000080816d14
    initcall: 0000000080816e44
    initcall: 0000000080802a38
    ----dram_init_banksize -----
    initcall: 0000000080816d20

    RAM Configuration:
    Bank #0: 80000000 1 GiB

    DRAM:  1 GiB
    initcall: 0000000080816914
    New Stack Pointer is: bdebc380
    initcall: 0000000080816b4c
    initcall: 0000000080816cfc
    initcall: 0000000080816d04
    initcall: 0000000080816ad4
    Relocation Offset is: 3f6e7000
    Relocating to bfee7000, new gd at bdec6df8, sp at bdebc380
    initcall: 00000000bfefdf18
    initcall: 00000000bfefdf20
    initcall: 0000000080817188 (relocated to 00000000bfefe188) ------> uboot hangs here

    Regards,
    Amarnath MB

  • Hi Keerthy,

    Any update on the issue mentioned above? 

    By the way, Amarnath is my colleague working for the same cause.

    Regards,

    Shiva Shankar K.

  • Hi Amarnth/Shiva,

    Can you post the custom changes you have made thus far? We want to just
    double check if all the changes are done. We will review them and suggest more changes
    as that is not seeming to be fully helping you.

    Best Regards,
    Keerthy

  • Hello Keerthy,

    Thank you for your reply.
    After debugging we found that there was a copy past error in j721e_mem_map[] of
    arch/arm/mach-k3/arm64-mmu.c. Now we are able to get the u-boot console, but
    MMC still shows "Card did not respond to voltage select!" error while loading
    Environment variables.

    We have already did the below modifications,

    Commented below configurations in configs/j721e_evm_a72_defconfig
        CONFIG_MMC_IO_VOLTAGE
        CONFIG_SPL_MMC_IO_VOLTAGE
        CONFIG_MMC_UHS_SUPPORT
        CONFIG_SPL_MMC_UHS_SUPPORT

    Modified SDHC1 node in arch/arm/dts/k3-j721e-common-proc-board.dts
        &main_sdhci1 {
            /* SD card */
            no-1-8-v;
            sdhci-caps-mask = <0x8000000F 0x0>;
            pinctrl-names = "default";
            pinctrl-0 = <&main_mmc1_pins_default>;
            ti,driver-strength-ohm = <50>;
            /* vmmc-supply = <&vdd_mmc1>; */
            /* vqmmc-supply = <&vdd_sd_dv_alt>; */
        };

    Please let us know what else need to be done?

    Please find the below log:

    U-Boot SPL 2020.01 (Oct 08 2020 - 19:41:14 +0530)
    SYSFW ABI: 3.0 (firmware rev 0x0014 '20.04.1-v2020.04a (Terrific Lla')
    ### issi_testdram : DDR TEST DISABLED
    Trying to boot from MMC2
    Loading Environment from MMC... *** Warning - No MMC card found, using default environment

    Remoteproc 2 started successfully
    Starting ATF on ARM64 core...

    NOTICE:  BL31: v2.3():07.00.00.005-dirty
    NOTICE:  BL31: Built : 14:33:55, Jun 17 2020

    U-Boot SPL 2020.01 (Oct 08 2020 - 19:41:04 +0530)
    SYSFW ABI: 3.0 (firmware rev 0x0014 '20.04.1-v2020.04a (Terrific Lla')
    Trying to boot from MMC2


    U-Boot 2020.01 (Oct 08 2020 - 19:41:04 +0530)

    SoC:   J721E SR1.0
    Model: Texas Instruments K3 J721E SoC
    Board: ISSI TDA4VM REF BOARD
    DRAM:  1 GiB
    not found for dev hbmc-mux
    Flash: 0 Bytes
    MMC:   sdhci@4f80000: 0, sdhci@4fb0000: 1
    Loading Environment from MMC... Card did not respond to voltage select!
    *** Warning - No block device, using default environment

    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Net:   Could not get PHY for ethernet@046000000: addr 0
    phy_connect() failed
    No ethernet found.

    Hit any key to stop autoboot:  0
    =>

    Regards,
    Amarnath MB

  • Hi Amarnath,

    That is what i anticipated as the changes were complete. We have disabled UHS from A72. So we can right
    now focus on the next steps as you have booted to u-boot prompt.

    Can you try the below diff on top?

    diff --git a/arch/arm/dts/k3-j721e-main.dtsi b/arch/arm/dts/k3-j721e-main.dtsi
    index bae84f5456..a9cf0f4ec1 100644
    --- a/arch/arm/dts/k3-j721e-main.dtsi
    +++ b/arch/arm/dts/k3-j721e-main.dtsi
    @@ -382,13 +382,8 @@
    assigned-clock-parents = <&k3_clks 92 1>;
    ti,otap-del-sel-legacy = <0x0>;
    ti,otap-del-sel-sd-hs = <0xf>;
    - ti,otap-del-sel-sdr12 = <0xf>;
    - ti,otap-del-sel-sdr25 = <0xf>;
    - ti,otap-del-sel-sdr50 = <0xc>;
    - ti,otap-del-sel-sdr104 = <0x5>;
    - ti,otap-del-sel-ddr50 = <0xc>;
    ti,trm-icp = <0x8>;
    - sdhci-caps-mask = <0x2 0x0>;
    + sdhci-caps-mask = <0x8000000F 0x0>;
    dma-coherent;
    };


    Best Regards,
    Keerthy

  • Hello Keerthy,

    Thank you for your support.

    By Changing below macros in include/configs/j721e_evm.h Environment issue is resolved.

    #define CONFIG_SYS_MMC_ENV_DEV  1
    #define CONFIG_SYS_MMC_ENV_PART 0

    Regards,

    Amarnath MB

  • Hi Amarnath,

    I am glad you are able to boot to u-boot. Please resolve this thread.

    Best Regards,
    Keerthy

  • Hi Keerthy,

    Before closing this, could you please tell us the logic behind the changes you suggested for 

    .virt     .phys  and   .size structure members in  in j721e_mem_map[] of
    arch/arm/mach-k3/arm64-mmu.c ??

    Regards,

    Shiva Shankar K.

  • Hi Shiva Shankar,

    Sure.

    On the standard TDA4 board we have 4GB of memory that begins at address 0x8000_0000. It is not continuous
    4GB address space. 

    The first 2GB starts from 0x8000_0000 & ends at 0xFFFF_FFFF as below:

    {
    .virt = 0x80000000UL,
    .phys = 0x80000000UL,
    .size = 0x20000000UL,
    .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
    PTE_BLOCK_INNER_SHARE
    }, {
    .virt = 0xa0000000UL,
    .phys = 0xa0000000UL,
    .size = 0x1bc00000UL,
    .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL_NC) |
    PTE_BLOCK_NON_SHARE
    }, {
    .virt = 0xbbc00000UL,
    .phys = 0xbbc00000UL,
    .size = 0x44400000UL,
    .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
    PTE_BLOCK_INNER_SHARE
    },

    Next 2GB starts at 0x08_8000_0000 to 0x08_FFFF_FFFF

    {
    .virt = 0x880000000UL,
    .phys = 0x880000000UL,
    .size = 0x80000000UL,
    .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
    PTE_BLOCK_INNER_SHARE
    },

    In your case you only have 1GB Hence:

    {
    .virt = 0xbbc00000UL,
    .phys = 0xbbc00000UL,
    .size = 0x04400000UL,
    .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
    PTE_BLOCK_INNER_SHARE
    },

    The above ends at 0xC000_0000

    So 1GB Space starting at 0x8000_0000 through 0xC000_0000

    Hence the change. Hope this explains the rationale. Please resolve the issue if no further questions.

    Best Regards,
    Keerthy