硬件:
核心板 : Tiny4412-1306-Schematic
底板 : Tiny4412SDK-1308(没有micro USB)其他都一样
参考博客:https://www.cnblogs.com/pengdonglin137/p/5143516.html
在此感谢前辈分享。
代码已上传至github上管理。https://github.com/Jason543716996/tiny4412.git
使用完别忘记点赞,关注,方便交流学习
一、修改设备树文件
diff --git a/arch/arm/boot/dts/exynos4412-tiny4412.dts b/arch/arm/boot/dts/exynos4412-tiny4412.dts
index 4840bbd..013f52f 100644
--- a/arch/arm/boot/dts/exynos4412-tiny4412.dts
+++ b/arch/arm/boot/dts/exynos4412-tiny4412.dts
@@ -18,7 +18,7 @@
/ {
model = "FriendlyARM TINY4412 board based on Exynos4412";
compatible = "friendlyarm,tiny4412", "samsung,exynos4412", "samsung,exynos4";
-
+ bootargs = "root=/dev/ram0 rw rootfstype=ext4 console=ttySAC0,115200 init=/linuxrc earlyprintk";
chosen {
stdout-path = &serial_0;
};
@@ -78,7 +78,7 @@
bus-width = <4>;
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
pinctrl-names = "default";
- status = "okay";
+ status = "disabled";
};
二、编译
export ARCH=arm
export CROSS_COMPILE=arm-none-linux-gnueabi-
make exynos_defconfig
make uImage LOADADDR=0x40008000 -j2
make dtbs
三、配置u-boot环境变量
将编译好的内核:uImage
设备树:exynos4412-tiny4412.dtb
根文件系统镜像:ramdisk.img 放入内存指定内存地址。
由于1308的底板没有micro USB,可以选择用loadb 将内核、设备树、根文件系统镜像放入指定位置,或者读取SDMMC
这里选择通过fatload读取:
set bootcmd "fatload mmc 1 40500000 uImage;fatload mmc 1 41000000 ramdisk.img;fatload mmc 1 42000000 exynos4412-tiny4412.dtb;bootm 0x40500000 0x41000000 0x42000000"
save
boot
可以看到已经启动了内核。
================================================================================================
但是,由于没有加载SDMMC 或者 EMMC,看到的文件系统分区的空间很小。
接下来,移植网卡驱动,通过网络文件系统进行调试,最后可以移植SD卡驱动或者MMC,将内核、设备树、根文件系统放入MMC中存储,运行。