Assistance Required: U-Boot Access Issues on Amlogic A113X SoC

Simon Glass sjg at chromium.org
Thu Sep 12 03:01:43 CEST 2024


Hi Mike,

On Fri, 6 Sept 2024 at 11:06, Mike <zamorozov.di5454 at gmail.com> wrote:
>
> Dear U-Boot Community,
>
> I am working on a project involving the Amlogic A113X SoC and have
> encountered an issue with U-Boot during the boot process over UART. While I
> am able to connect via UART and observe the boot log, the system does not
> allow any interaction or command input. It seems that the manufacturer may
> have restricted this access, potentially violating the GNU GPL license.
>
> Here are the details:
>
>    - *SoC:* Amlogic A113X
>    - *Bootloader:* U-Boot 2015.01 (Jan 13 2023 - 10:30:19)
>    - *Issue:* The device does not respond to input during the boot process
>    over UART (no response to Ctrl+C, Enter, etc.)
>    - *UART Log:*
>
>    AXG:BL1:d1dbf2:a4926f;FEAT:F0DC31BC:2000;POC:F;EMMC:800;NAND:0;READ:0;0.0;0.0;CHK:0;
>    sdio debug board detected
>    TE: 139689
>
>    BL2 Built : 10:38:43, Apr 14 2020. axg gf27ed33 - jenkins at walle02-sh
>
>    set vcck to 1100 mv
>    set vddee to 950 mv
>    Board ID = 3
>    CPU clk: 1200MHz
>    DDR low power enabled
>    DDR3 chl: Rank0 16bit @ 912MHz
>    bist_test rank: 0 1c 07 32 26 10 3c 1e 06 36 27 10 3f 00 00 00 00 00 00
>    00 00 00 00 00 00 772   - PASS
>    Rank0: 256MB(auto)-2T-13
>    AddrBus test pass!
>    NAND init
>    Load FIP HDR from NAND, src: 0x0000c000, des: 0x01700000, size:
>    0x00004000, part: 0
>    Load BL3x from NAND, src: 0x00010000, des: 0x01704000, size: 0x000b7c00,
>    part: 0
>    NOTICE:  BL31: v1.3(release):3edeb02
>    NOTICE:  BL31: Built : 16:43:54, Apr 14 2020
>    NOTICE:  BL31: AXG secure boot!
>    NOTICE:  BL31: BL33 decompress pass
>    OPS=0x43
>    [Image: axg_v1.1.3494-9ec8345 2020-04-17 18:16:39 jenkins at walle02-sh]
>    25 0c 43 00 c3 ac bf b3 9f 7a e1 5b 3a 07 57 99
>    bl30:axg ver: 9 mode: 0
>    bl30:axg thermal0
>    [0.015883 Inits done]
>    secure task start!
>    high task start!
>    low task start!
>    ERROR:   Error initializing runtime service opteed_fast
>
>
>    U-Boot 2015.01 (Jan 13 2023 - 10:30:19)
>
>    DRAM:  256 MiB
>    Relocation Offset is: 0eeb0000
>    mmu cfg end: 0x20000000
>    mmu cfg end: 0x20000000
>    register usb cfg[0][1] = 000000000ff6e198
>    aml_i2c_init_port init regs for 2
>    NAND:  get_sys_clk_rate_mtd() 292, clock setting 200!
>    bus cycle0: 6,timing: 7
>    NAND device id: 98 da 90 15 76 16
>    NAND device: Manufacturer ID: 0x98, Chip ID: 0x98 (Toshiba A revision
>    NAND 2Gib TC58NVG1S3HBAI4 )
>    get_sys_clk_rate_mtd() 292, clock setting 200!
>    m3_nand_adjust_timing() sys_clk_rate 200, bus_c 6, bus_t 7
>    oob_fill_cnt =32 oob_size =64, bch_bytes =14
>    ecc mode:6 ecc_page_num=2 eep_need_oobsize=16
>    plane_num=1 writesize=0x800 ecc.size=0x200 bch_mode=1
>    oob avail size 6
>    Creating 1 MTD partitions on "A revision NAND 2Gib TC58NVG1S3HBAI4 ":
>    0x000000000000-0x000000200000 : "bootloader"
>    A revision NAND 2Gib TC58NVG1S3HBAI4  initialized ok
>    get_sys_clk_rate_mtd() 292, clock setting 200!
>    bus cycle0: 6,timing: 7
>    NAND device id: 98 da 90 15 76 16
>    NAND device: Manufacturer ID: 0x98, Chip ID: 0x98 (Toshiba A revision
>    NAND 2Gib TC58NVG1S3HBAI4 )
>    get_sys_clk_rate_mtd() 292, clock setting 200!
>    m3_nand_adjust_timing() sys_clk_rate 200, bus_c 6, bus_t 7
>    oob_fill_cnt =32 oob_size =64, bch_bytes =14
>    ecc mode:6 ecc_page_num=2 eep_need_oobsize=16
>    PLANE change!
>    plane_num=1 writesize=0x800 ecc.size=0x200 bch_mode=1
>    aml_nand_init :oobmul=1,oobfree.length=8,
>    - oob_size=64
>    oob avail size 8
>    nbbt=20
>    nenv=24
>    nkey=32
>    ndtb=40
>    nddr=44
>    bbt_start=20 env_start=24 key_start=32 dtb_start=40 ddr_start=44
>    nbbt: info size=0x800 max_scan_blk=24, start_blk=20
>    nbbt : phy_blk_addr=20, ec=0, phy_page_addr=0, timestamp=1
>    nbbt free list:
>    blockN=21, ec=-1, dirty_flag=0
>    blockN=22, ec=-1, dirty_flag=0
>    blockN=23, ec=-1, dirty_flag=0
>    aml_nand_scan_rsv_info 1134: page_num=1
>    aml_nand_scan_rsv_info 1137
>    nbbt valid addr: 280000
>    aml_nand_bbt_check 1258 bbt is valid, reading.
>    aml_nand_read_rsv_info:446,read nbbt info to 280000
>    nenv: info size=0x10000 max_scan_blk=32, start_blk=24
>    nenv : phy_blk_addr=24, ec=0, phy_page_addr=0, timestamp=5
>    nenv free list:
>    blockN=25, ec=0, dirty_flag=1
>    blockN=26, ec=-1, dirty_flag=0
>    blockN=27, ec=-1, dirty_flag=0
>    blockN=28, ec=-1, dirty_flag=0
>    blockN=29, ec=-1, dirty_flag=0
>    blockN=30, ec=-1, dirty_flag=0
>    blockN=31, ec=-1, dirty_flag=0
>    aml_nand_scan_rsv_info 1134: page_num=32
>    aml_nand_scan_rsv_info 1137
>    nenv valid addr: 310000
>    nkey: info size=0x8000 max_scan_blk=40, start_blk=32
>    nkey : phy_blk_addr=33, ec=0, phy_page_addr=0, timestamp=2
>    nkey free list:
>    blockN=32, ec=0, dirty_flag=1
>    blockN=34, ec=-1, dirty_flag=0
>    blockN=35, ec=-1, dirty_flag=0
>    blockN=36, ec=-1, dirty_flag=0
>    blockN=37, ec=-1, dirty_flag=0
>    blockN=38, ec=-1, dirty_flag=0
>    blockN=39, ec=-1, dirty_flag=0
>    aml_nand_scan_rsv_info 1134: page_num=16
>    aml_nand_scan_rsv_info 1137
>    nkey valid addr: 430000
>    ndtb: info size=0x20000 max_scan_blk=44, start_blk=40
>    ndtb : phy_blk_addr=41, ec=0, phy_page_addr=0, timestamp=2
>    ndtb free list:
>    blockN=40, ec=-1, dirty_flag=0
>    blockN=42, ec=-1, dirty_flag=0
>    blockN=43, ec=-1, dirty_flag=0
>    aml_nand_scan_rsv_info 1134: page_num=64
>    aml_nand_scan_rsv_info 1137
>    ndtb valid addr: 520000
>    nddr: info size=0x800 max_scan_blk=46, start_blk=44
>    nddr : phy_blk_addr=-1, ec=0, phy_page_addr=0, timestamp=0
>    nddr free list:
>    blockN=44, ec=-1, dirty_flag=0
>    blockN=45, ec=-1, dirty_flag=0
>    aml_nand_scan_rsv_info 1134: page_num=1
>    nddr valid addr: fffffffffffe0000
>    aml_nand_rsv_info_check_except_bbt 1228 NO nddr exist
>    tpl: off 8388608, size 8388608
>     NAND bbt detect factory Bad block at c000000
>     NAND bbt detect factory Bad block at c020000
>    Creating 7 MTD partitions on "A revision NAND 2Gib TC58NVG1S3HBAI4 ":
>    0x000000800000-0x000001000000 : "tpl"
>    0x000001000000-0x000001200000 : "misc"
>    0x000001200000-0x000002200000 : "boot_a"
>    0x000002200000-0x000003200000 : "boot_b"
>    0x000003200000-0x000007200000 : "system_a"
>    0x000007200000-0x00000b200000 : "system_b"
>    0x00000b200000-0x000010000000 : "data"
>     NAND bbt detect factory Bad block at c000000
>     NAND bbt detect factory Bad block at c020000
>    A revision NAND 2Gib TC58NVG1S3HBAI4  initialized ok
>    MMC:   aml_priv->desc_buf = 0x000000000deae760
>    aml_priv->desc_buf = 0x000000000deb0aa0
>    SDIO Port B: 0, SDIO Port C: 1
>    uboot env amlnf_env_read : ####
>    aml_nand_read_rsv_info:446,read nenv info to 310000
>    In:    serial
>    Out:   serial
>    Err:   serial
>    aml log : internal sys error!
>    reboot_mode=cold_boot
>    Start read misc partition datas!
>    [burnup]Rd:Up sz 0x440 to align 0x1000
>    info->attemp_times = 12
>    info->active_slot = 0
>    info->slot_info[0].bootable = 1
>    info->slot_info[0].online = 1
>    info->slot_info[1].bootable = 1
>    info->slot_info[1].online = 0
>    info->attemp_times = 12
>    active slot = 0
>    cmd: imgread dtb boot_a ${dtb_mem_addr}
>    [imgread]szTimeStamp[2024071615081273]
>    [imgread]MTD pageShift 11, writesz 0x800
>    aml log : R-2048 check pass!
>    aml log : R2048 check pass!
>    [imgread]Enc dtb sz 0xe000
>          Amlogic multi-DTB tool
>          Single DTB detected
>    Net:   sysnopsys gmac3.7
>    Phy 0 not found
>    dwmac.ff3f0000amlkey_init() enter!
>    amlnf_key_read: ####
>    amlnf_key_read key data len too much
>    aml_nand_read_rsv_info:446,read nkey info to 430000
>    [EFUSE_MSG]keynum is 4
>    MACADDR:*(from chipid)
>
>    Start read misc partition datas!
>    [burnup]Rd:Up sz 0x440 to align 0x1000
>    info->attemp_times = 12
>    info->active_slot = 0
>    info->slot_info[0].bootable = 1
>    info->slot_info[0].online = 1
>    info->slot_info[1].bootable = 1
>    info->slot_info[1].online = 0
>    info->attemp_times = 12
>    active slot = 0
>    wipe_data=successful
>    wipe_cache=successful
>    Setting bus to 2
>    i2c_set_bus_num i2c sel 2 bus
>    aml_i2c_init_port init regs for 2
>    gpio: pin GPIOZ_4 (gpio 18) value is 1
>    recovery_status=
>    upgrade_step=2
>    s_version: U-Boot 2015.01
>    amlkey_init() enter!
>    amlkey_init() 71: already init!
>    [EFUSE_MSG]keynum is 4
>    [KM]Error:f[key_manage_query_size]L515:key[usid] not programed yet
>    [KM]Error:f[key_manage_query_size]L515:key[mac] not programed yet
>    InUsbBurn
>    noSof
>
>    CONFIG_SYSTEM_AS_ROOT: null
>    system_mode: 0
>    [imgread]szTimeStamp[2024071615081273]
>    [imgread]secureKernelImgSz=0x609800
>    [burnup]Rd:Up sz 0x509800 to align 0x1000
>    aml log : R-2048 check pass!
>    aml log : R2048 check pass!
>    aml log : R2048 check pass!
>    aml log : R2048 check pass!
>    avb2: 0
>    save_power_post ...
>    avb2: 0
>    ## Booting Android Image at 0x01080000 ...
>    reloc_addr =ded9810
>    copy done
>    Kernel command line: init=/sbin/init rootfstype=ubifs
>    [store]Is good fdt check header, no need decrypt!
>    load dtb from 0x1000000 ......
>          Amlogic multi-DTB tool
>          Single DTB detected
>       Uncompressing Kernel Image ... OK
>       kernel loaded at 0x01080000, end = 0x01a5b200
>       Loading Ramdisk to 0dcf0000, end 0de9d800 ... OK
>       Loading Device Tree to 000000000dce0000, end 000000000dceffe6 ... OK
>    fdt_fixup_memory_banks, reg:0000000000000000
>
>    Starting kernel ...
>
>    uboot time: 2751820 us
>
> I understand that U-Boot has been modified by the manufacturer, which
> complicates the situation. I am seeking advice on the following:
>
>    - Are there any known methods or workarounds to regain control over the
>    U-Boot environment in such scenarios?
>    - Are there any specific forums or community resources where I might
>    find additional help or similar cases?
>
> Any guidance or suggestions would be greatly appreciated. Thank you in
> advance for your assistance!

Can you get an up-to-date version? That is 9 years old?!!

Once you boot into Linux it is hard. You could use a JTAG debugger.
There is also earlycon and keep_bootcon which might help with
early-Linux debugging.

Regards,
Simon


More information about the U-Boot mailing list