> 文档中心 > 3、Lctech Pi(F1C200S)u-boot移植在RAM运行修改默认调试串口为uart1(CherryPi,Mangopi,F1C100S)

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,会在第一时间处理。

KTV音响网