Khadas VIM3 (Amlogic A311D) uboot去掉烦人的乱七八糟的打印1——BL2 BL3x
BL2 BL30 BL31 DDRFW改造串口靜默
BL2拖到IDA64,以ARM LittleEndian 64bit反匯編,很輕易的找到puts putchar函數,
將putchar函數的開頭改為?
即可。
BL30拖到IDA,以ARM LittleEndian 反匯編,很輕易的找到puts putchar函數
ROM:00002CB0 putchar ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ; CODE XREF: putchar+10↓p ROM:00002CB0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ; j_putchar↓j ROM:00002CB0 ? ? ? ? ? ? ? ? PUSH ? ? ? ? ? ?{R4,LR} ROM:00002CB2 ? ? ? ? ? ? ? ? LDR ? ? ? ? ? ? R3, =0x10009474 ROM:00002CB4 ? ? ? ? ? ? ? ? MOV ? ? ? ? ? ? R4, R0 ROM:00002CB6 ? ? ? ? ? ? ? ? LDR ? ? ? ? ? ? R3, [R3] ROM:00002CB8 ? ? ? ? ? ? ? ? CBNZ ? ? ? ? ? ?R3, locret_2CDA ROM:00002CBA ? ? ? ? ? ? ? ? CMP ? ? ? ? ? ? R0, #0xA ROM:00002CBC ? ? ? ? ? ? ? ? BNE ? ? ? ? ? ? loc_2CC4 ROM:00002CBE ? ? ? ? ? ? ? ? MOVS ? ? ? ? ? ?R0, #0xD ROM:00002CC0 ? ? ? ? ? ? ? ? BL ? ? ? ? ? ? ?putchar ROM:00002CC4 ROM:00002CC4 loc_2CC4 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?; CODE XREF: putchar+C↑j ROM:00002CC4 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ; putchar+1C↓j ROM:00002CC4 ? ? ? ? ? ? ? ? LDR ? ? ? ? ? ? R3, =0xFF80300C ROM:00002CC6 ? ? ? ? ? ? ? ? LDR ? ? ? ? ? ? R3, [R3] ROM:00002CC8 ? ? ? ? ? ? ? ? TST.W ? ? ? ? ? R3, #0x200000 ROM:00002CCC ? ? ? ? ? ? ? ? BNE ? ? ? ? ? ? loc_2CC4 ROM:00002CCE ? ? ? ? ? ? ? ? LDR ? ? ? ? ? ? R3, =0xFF803000 ROM:00002CD0 ? ? ? ? ? ? ? ? STR ? ? ? ? ? ? R4, [R3] ROM:00002CD2 ? ? ? ? ? ? ? ? POP.W ? ? ? ? ? {R4,LR} ROM:00002CD6 ? ? ? ? ? ? ? ? B.W ? ? ? ? ? ? maybewait ROM:00002CDA ; --------------------------------------------------------------------------- ROM:00002CDA ROM:00002CDA locret_2CDA ? ? ? ? ? ? ? ? ? ? ? ? ? ? ; CODE XREF: putchar+8↑j ROM:00002CDA ? ? ? ? ? ? ? ? POP ? ? ? ? ? ? {R4,PC} ROM:00002CDA ; End of function putchar
將putchar函數的開頭改為?
即可。BL31拖到IDA64,以ARM LittleEndian 64bit反匯編,很輕易找到printf函數,再看putchar函數有點奇怪,和之前的不一樣
是因為這個程序有inituart初始化函數,將串口設備寄存器基地址FF803000存到了一個全局變量
將putchar函數的開頭改為?
C0 03 5F D6 ? RET
即可。
aml_ddr.fw拖到IDA64,以ARM LittleEndian 64bit反匯編,很輕易找到putchar函數
ROM:000000000000A5C4 ? ? ? ? ? ? ? ? ? ? ? ? putchar ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ; CODE XREF: sub_148+28↑p ROM:000000000000A5C4 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ; sub_188:loc_1C8↑p ... ROM:000000000000A5C4 01 00 00 B0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ADRP ? ? ? ? ? ?X1, #dword_B718@PAGE ROM:000000000000A5C8 21 60 1C 91 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ADD ? ? ? ? ? ? X1, X1, #dword_B718@PAGEOFF ROM:000000000000A5CC 21 00 40 B9 ? ? ? ? ? ? ? ? ? ? ? ? ? ? LDR ? ? ? ? ? ? W1, [X1] ROM:000000000000A5D0 41 02 00 35 ? ? ? ? ? ? ? ? ? ? ? ? ? ? CBNZ ? ? ? ? ? ?W1, locret_A618 ROM:000000000000A5D4 1F 28 00 71 ? ? ? ? ? ? ? ? ? ? ? ? ? ? CMP ? ? ? ? ? ? W0, #0xA ROM:000000000000A5D8 21 01 00 54 ? ? ? ? ? ? ? ? ? ? ? ? ? ? B.NE ? ? ? ? ? ?loc_A5FC ROM:000000000000A5DC ROM:000000000000A5DC ? ? ? ? ? ? ? ? ? ? ? ? loc_A5DC ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?; CODE XREF: putchar+24↓j ROM:000000000000A5DC 81 01 86 D2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? MOV ? ? ? ? ? ? X1, #0x300C ROM:000000000000A5E0 01 F0 BF F2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? MOVK ? ? ? ? ? ?X1, #0xFF80,LSL#16 ROM:000000000000A5E4 21 00 40 B9 ? ? ? ? ? ? ? ? ? ? ? ? ? ? LDR ? ? ? ? ? ? W1, [X1] ROM:000000000000A5E8 A1 FF AF 37 ? ? ? ? ? ? ? ? ? ? ? ? ? ? TBNZ ? ? ? ? ? ?W1, #0x15, loc_A5DC ROM:000000000000A5EC 01 00 86 D2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? MOV ? ? ? ? ? ? X1, #0x3000 ROM:000000000000A5F0 01 F0 BF F2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? MOVK ? ? ? ? ? ?X1, #0xFF80,LSL#16 ROM:000000000000A5F4 A2 01 80 52 ? ? ? ? ? ? ? ? ? ? ? ? ? ? MOV ? ? ? ? ? ? W2, #0xD ROM:000000000000A5F8 22 00 00 B9 ? ? ? ? ? ? ? ? ? ? ? ? ? ? STR ? ? ? ? ? ? W2, [X1] ROM:000000000000A5FC ROM:000000000000A5FC ? ? ? ? ? ? ? ? ? ? ? ? loc_A5FC ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?; CODE XREF: putchar+14↑j ROM:000000000000A5FC ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ; putchar+44↓j ROM:000000000000A5FC 81 01 86 D2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? MOV ? ? ? ? ? ? X1, #0x300C ROM:000000000000A600 01 F0 BF F2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? MOVK ? ? ? ? ? ?X1, #0xFF80,LSL#16 ROM:000000000000A604 21 00 40 B9 ? ? ? ? ? ? ? ? ? ? ? ? ? ? LDR ? ? ? ? ? ? W1, [X1] ROM:000000000000A608 A1 FF AF 37 ? ? ? ? ? ? ? ? ? ? ? ? ? ? TBNZ ? ? ? ? ? ?W1, #0x15, loc_A5FC ROM:000000000000A60C 01 00 86 D2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? MOV ? ? ? ? ? ? X1, #0x3000 ROM:000000000000A610 01 F0 BF F2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? MOVK ? ? ? ? ? ?X1, #0xFF80,LSL#16 ROM:000000000000A614 20 00 00 B9 ? ? ? ? ? ? ? ? ? ? ? ? ? ? STR ? ? ? ? ? ? W0, [X1] ROM:000000000000A618 ROM:000000000000A618 ? ? ? ? ? ? ? ? ? ? ? ? locret_A618 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ; CODE XREF: putchar+C↑j ROM:000000000000A618 C0 03 5F D6 ? ? ? ? ? ? ? ? ? ? ? ? ? ? RET ROM:000000000000A618 ? ? ? ? ? ? ? ? ? ? ? ? ; End of function putchar
將putchar函數的開頭改為?
另外文件頭部有32字節的SHA256哈希,需要重算,Winhex搞定
bl2.bin bl30.bin bl31.bin aml_ddr.fw覆蓋到u-boot/fip/g12b/
重新編譯,燒錄,引導后就沒有bl2 bl3x打印的亂七八糟的東西了。
下面是串口引導記錄,uboot仍然有很多亂七八糟的打印,后面我再講如何去掉這些亂糟糟的東西。
G12B:BL:6e7c85:2a3b91;FEAT:E0F83180:402000;POC:F;RCY:0;EMMC:0;READ:0;CHK:1F;READ:0;CHK:1F;READ:0;CHK:1F;SD?:0;SD:0;READ:0;0.0.0;M3 CHK:0;secure task start! high task start! low task start!U-Boot 2015.01 (Dec 31 2019 - 13:12:30)DRAM: ?3.8 GiB Relocation Offset is: d6e46000 spi_post_bind(spifc): req_seq = 0 register usb cfg[0][1] = 00000000d7f394b0 aml_i2c_init_port init regs for 0 MMC: ? aml_priv->desc_buf = 0x00000000d3e36a70 aml_priv->desc_buf = 0x00000000d3e38db0 SDIO Port B: 0, SDIO Port C: 1 co-phase 0x3, tx-dly 0, clock 400000 co-phase 0x3, tx-dly 0, clock 400000 co-phase 0x3, tx-dly 0, clock 400000 emmc/sd response timeout, cmd8, status=0x3ff2800 emmc/sd response timeout, cmd55, status=0x3ff2800 co-phase 0x3, tx-dly 0, clock 400000 co-phase 0x1, tx-dly 0, clock 40000000 aml_sd_retry_refix[983]:delay = 0x0,gadjust =0x2000 [mmc_startup] mmc refix success [mmc_init] mmc init success start dts,buffer=00000000d3e3b620,dt_addr=00000000d3e3b620 check_valid_dts: FDT_ERR_BADMAGIC get_partition_from_dts() 91: ret -9 get_partition_from_dts() 94: ret -9 get_ptbl_from_dtb()-272: get partition table from dts faild mmc_device_init()-1254: get partition table from dtb failed get_ptbl_rsv()-494: magic faild MPT, ? ? mmc_device_init()-1281: dtb&rsv are not exist, no LPT source get partition info failed !! Using default environmentIn: ? ?serial Out: ? serial Err: ? serial
?
總結
以上是生活随笔為你收集整理的Khadas VIM3 (Amlogic A311D) uboot去掉烦人的乱七八糟的打印1——BL2 BL3x的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu18安装32位库
- 下一篇: 端口复用相关资料