Skip to main content

TF卡启动

一 软硬件环境

1.1 硬件环境

以RD_AD100_EVB_V1.0开发板为例, 需更改启动方式为msc0(tf卡对应控制器)

1

1.2 软件环境

使用配置ad100_mmc0_5.10_defconfig编译

bhu@bhu-PC:~/ad100/build$ make clean                   //第一次编译不需要make clean
bhu@bhu-PC:~/ad100/build$ make ad100_mmc0_5.10_defconfig
bhu@bhu-PC:~/ad100/build$ make

编译后生成固件如下:

bhu@bhu-PC:~/ad100/build/output$  ls -l 
-rw-r--r-- 1 bhu bhu 4325376 411 10:19 rootfs.squashfs
-rw-r--r-- 1 bhu bhu 215164 411 10:19 u-boot-with-spl-mbr-gpt.bin
-rw-r--r-- 1 bhu bhu 4972608 411 10:19 xImage

二 TF卡写入镜像

offset需要与分区表一致, 位于bootloader/uboot-x2000/board/ingenic/ad100_base/partitions.tab

property:
disk_size = 3728m
gpt_header_lba = 512
custom_signature = 0

partition:
#name = start, size, fstype
xboot = 0m, 1m,
kernel = 1m, 8m, EMPTY
dtb = 9m, 1m, EMPTY
rootfs = 10m, 100m, LINUX_FS
kernel2 = 110m, 8m, EMPTY
dtb2 = 118m, 1m, EMPTY
rootfs2 = 119m, 100m, LINUX_FS
ota = 219m, 1m, EMPTY
userdata = 220m, 3508m, LINUX_FS

#fstype could be: LINUX_FS, FAT_FS, EMPTY

使用读卡器将sd卡插入电脑, 使用 ls /dev/sd* 命令查看所有的磁盘设备, 找到sd卡对应设备路径

sudo dd if=/dev/zero of=/dev/sdb bs=4M status=progress         #格式化sd卡设备
sync
#重新插拔sd卡确认是否只有/dev/sdb节点, 没有/dev/sdb1 .....
sudo dd if=u-boot-with-spl-mbr-gpt.bin of=/dev/sdb
sudo dd if=xImage of=/dev/sdb bs=512 seek=2048 #与分区表一致, offset 1MB
sudo dd if=rootfs.squashfs of=/dev/sdb bs=512 seek=20480 #与分区表一致, offset 10MB
sync

三 卡启动

将卡插入开发板, 上电查看串口打印, 可以看见系统正常启动

U-Boot SPL 2013.07-00118-g021aeb1ef (Apr 11 2024 - 12:36:19)
ERROR EPC 83f9c838
CPA_CPAPCR:0320490d
CPM_CPMPCR:0320490d
CPM_CPEPCR:0190510d
CPM_CPCCR:9a073310
DDR clk rate 600000000
DDR: M14F5121632A type is : DDR2
DDR_PAR of eFuse: 00000000 00000000
AD100 InnoPhy skew Settings...
Uncompressing Linux...
Ok, booting the kernel.
[ 0.000000] Linux version 5.10.186+ (bhu@bhu-PC) (mips-linux-gnu-gcc (Ingenic Linux-Release5.1.9.sr02-Default_xburst2_glibc2.29 Fix: uclibc0.9.33.2 e6b2efb7a460ae93975997edb4fb1658230c5bec 2023.12-21 04:08:14)4
[ 0.000000] CPU0 RESET ERROR PC:83F9C838
[ 0.000000] printk: bootconsole [early0] enabled
[ 0.000000] CPU0 revision is: 00132000 (Ingenic XBurst II)
[ 0.000000] FPU revision is: 00f32000
[ 0.000000] MSA revision is: 00002000
[ 0.000000] OF: fdt: No chosen node found, continuing without
[ 0.000000] MIPS: machine is ingenic,ad100
[ 0.000000] [<8001a2a8>] ingenic_wait_irqoff+0x28/0x74
[ 0.000000] ingenic-dma 13660000.dma: IRQ pdmam not found
[ 0.000000] ingenic-dma 13420000.dma: IRQ pdmam not found
[ 0.437357] s2d successfully!-----0
Starting mdev... OK
/
Saving random seed: SKIP (read-only file system detected)
Starting network: Check whether the partition table is initialized successfully!
OK
killall: adbd: no process killed
Starting adb ...
# install_listener('tcp:5037','*smartsocket*')