3、Lctech Pi(F1C200S)u-boot移植在RAM运行修改默认调试串口为uart1(CherryPi,Mangopi,F1C100S)
本次主要参考:
http://nano.lichee.pro/build_sys/bootargs.html
https://wiki.sipeed.com/soft/Lichee/zh/Nano-Doc-Backup/index.html
https://www.cnblogs.com/twzy/p/14865952.html
https://blog.csdn.net/p1279030826/article/details/113116927
(如果方便请给这几位大佬一个关注)
以下在云服务器的终端上操作
1、克隆u-boot:
git clone https://github.com/Lichee-Pi/u-boot.git
克隆完毕文件会保存在当前目录下,进入该目录,
cd u-boot
现在我们使用的是nano开发板,所以将当前分支切换到nano分支,命令如下:
git checkout nano-v2018.01
2、在u-boot目录下,开始修改文件
2.1、修改根目录下的Makefile文件
在第249行,加入以下代码后,保存退出。
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-gnueabi-
2.2、将Debug串口由uart0修改为uart1
打开arch/arm/dts/suniv-f1c100s-licheepi-nano.dts文件
将第17行改为如下:
serial1 = &uart1;
将第22行改为如下:
stdout-path = “serial1:115200n8”;
将第44~48行改为如下:
&uart1 {
pinctrl-names = “default”;
pinctrl-0 = ;
status = “okay”;
};
保存并退出。
打开arch/arm/dts/suniv.dtsi文件
将第124~127行改为如下:
uart1_pins_a: uart-pins-pa {
pins = “PA2”, “PA3”;
function = “uart1”;
};
保存并退出。
打开arch/arm/include/asm/arch-sunxi/gpio.h文件
在第146行插入,以下代码:
#define SUNIV_GPA_UART1 5
保存并退出。
打开arch/arm/mach-sunxi/board.c行
将第86~89行改为如下:
#elif CONFIG_CONS_INDEX == 2 && defined(CONFIG_MACH_SUNIV)
sunxi_gpio_set_cfgpin(SUNXI_GPA(2), SUNIV_GPA_UART1);
sunxi_gpio_set_cfgpin(SUNXI_GPA(3), SUNIV_GPA_UART1);
sunxi_gpio_set_pull(SUNXI_GPA(3), SUNXI_GPIO_PULL_UP);
保存并退出。
打开include/configs/sunxi-common.h文件
在第276行插入,以下代码:
#elif CONFIG_CONS_INDEX == 2 && defined(CONFIG_MACH_SUNIV)
#define OF_STDOUT_PATH “/soc@01c00000/serial@01c28400:115200”
保存并退出。
3、开始进行配置
执行以下命令:
make licheepi_nano_defconfig
接下来用图形界面进行配置,执行:
make menuconfig
然后选中,Enable boot arguments选项。
在Boot arguments中填入以下参数:
console=tty1 console=ttyS1,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw
再选中,Enable a default value for bootcmd选项。
在bootcmd value中填入以下参数(因为内核与设备树直接下载到RAM执行,所以无需装载):
bootz 0x80008000 - 0x80c08000;
在选择uart1。
Device Drivers —>
Serial drivers —>
(2) UART used for console # 在此填入2,2是uart1
整个过程如下图:
4、开始进行编译。
执行以下命令(根据编译环境实际条件修改):
make -j4
5、编译完成,在u-boot目录下会看到u-boot-sunxi-with-spl.bin文件
以下操作必须保证板载flash为空没有烧录u-boot;如果插入了SD卡,则SD卡中不能烧录u-boot。
将u-boot-sunxi-with-spl.bin下载到sunxi-fel.exe同级目录下。
用两根type-c线将电脑与CherryPi-F1C200S连接起来,在串口终端以115200 8n1配置打开串口。
按一下板载RST键后,在windows命令终端进入到sunxi-fel.exe同级目录下,执行以下命令可以看到串口终端有log打印(因为没有内核与文件系统,最终会进入u-boot命令行):
sunxi-fel -p uboot u-boot-sunxi-with-spl.bin
QQ:763314235,会在第一时间处理。