Prepare:

  1. mkt_uartboot tool:

https://github.com/981213/mtk_uartboot/releases

  1. bl2 file blob for memory-based boot

https://github.com/981213/tf-a-mtk/releases/tag/v2.10.0-mtk

  1. fip.bin(uboot)

All the 3 items are included in this zip file:

mtk_uartboot-v0.1.1-x86_64-pc-windows-msvc_add-blobs.zip

Load fip into board:

  1. stop terminal that occupies the COM port

  2. run “mtk_uartboot” command:

    -s serail port

    -a means architecture is aarch64

    -p bl2 file

    -f fip file

    PS C:\\Users\\zjh\\Desktop\\mtk_uartboot> .\\mtk_uartboot.exe -s COM6 -a -p .\\bl2-mt7986-ddr4-ram.bin -f .\\fip-mt2500.bin
    mtk_uartboot - 0.1.1
    Using serial port: COM6
    Handshake...
    
  3. plug device power source to reboot

    PS C:\\Users\\zjh\\Desktop\\mtk_uartboot> .\\mtk_uartboot.exe -s COM6 -a -p .\\bl2-mt7986-ddr4-ram.bin -f .\\fip-mt2500.bin
    mtk_uartboot - 0.1.1
    Using serial port: COM6
    Handshake...
    hw code: 0x7986
    hw sub code: 0x8a00
    hw ver: 0xca01
    sw ver: 0x1
    Baud rate set to 460800
    sending payload to 0x201000...
    Checksum: 0xeefd
    Setting baudrate back to 115200
    Jumping to 0x201000 in aarch64...
    Waiting for BL2. Message below:
    ==================================
    NOTICE:  BL2: v2.10.0   (release):v2.10.0-mtk
    NOTICE:  BL2: Built : 13:17:14, Mar  1 2024
    NOTICE:  WDT: Cold boot
    NOTICE:  WDT: disabled
    NOTICE:  CPU: MT7986 (2000MHz)
    NOTICE:  EMI: Using DDR4 settings
    NOTICE:  EMI: Detected DRAM size: 1024MB
    NOTICE:  EMI: complex R/W mem test passed
    NOTICE:  Starting UART download handshake ...
    ==================================
    BL2 UART DL version: 0x10
    Baudrate set to: 921600
    FIP sent.
    ==================================
    NOTICE:  Received FIP 0xae749 @ 0x40400000 ...
    ==================================
    PS C:\\Users\\zjh\\Desktop\\mtk_uartboot>
    
  4. The above print appears, indicating that bl2 and fip have been successfully loaded into the device's memory and run.

Uboot failsafe for debrick: