NUC980开发板
新唐NUC980 sdk开发,原厂推荐使用ubuntu 20.04,文章下面的操作,我是使用ubuntu20.04构建的。

一. 代码下载

新唐官网下载使用5.10内核的buildroot
git clone https://github.com/OpenNuvoton/buildroot_2024.git

二. 固件构建

构建支持nuc980 SPI NAND的初始镜像(构建完可以在output/images/目录下找到镜像)

首先选择配置文件,因这里使用的开发板对应的配置是nuvoton_nuc980_eth2uart_defconfig(在buildroot根目录的下一级目录configs里面)

make nuvoton_nuc980_eth2uart_defconfig
make

三. 创建ubifs文件系统的步骤

  1. 修改buildroot的配置:

    在buildroot根目录下执行 make menuconfig

(1)在System configuration,选择‘Run a getty (login prompt) after boot’
br
(2)在Bootloader下 Install U-Boot SPL binary image
br
(3)在Filesystem images下,只保留以下配置:
br
2. 修改kernel的配置
make linux-menuconfig

(1)取消 RAM根文件系统设置,见下图。

先取消
[ ] Boot config support,
再取消
[ ] Initial RAM filesystem and RAM disk (initramfs/initrd) support
br
(2)使能 Command line partition table parsing
br
(3)使能 Caching block device access to MTD devices
br
(4)使能 Enable UBI - Unsorted block images
br
(5)使能 UBIFS file system support
br
(6)取消jffs2文件系统设置,见下图。
br
(7)QSPI NAND,Nuvoton NUC980 FMI function selection不要选。
br
(8)使能SPI NAND device Support
br
3. mdev设备挂载修改

取消 ubifs的重复挂载
vim board/nuvoton/nuc9x0/rootfs-eth2uart/etc/mdev.conf

mdev
修改之后如下所示:
mdev
4. 修改设备树

修改设备树文件
vim output/build/linux-custom/arch/arm/boot/dts/nuc980-eth2uart.dts

dts
四 重新构建固件

make
构建成功之后,在output/images/ 下找到以下文件
u-boot.bin  uImage  rootfs.ubi  nuc980-eth2uart.dtb
在output/build/uboot-custom/spl/ 找到以下文件
u-boot-spl.bin

五. 烧录固件到开发板

 烧录需要参考官网文章Power-On-Setting切换到USB启动,使用NuWriter烧录,这里不再赘述。

文件 类型 image start offset
u-boot-spl.bin Loader 0x200
u-boot.bin Data 0x100000
uImage Data 0x200000
nuc980-eth2uart.dtb Data 0x600000
rootfs.ubi Data 0x700000
env.txt ENV 0x80000

环境变量env文件如下:
baudrate=115200
bootdelay=1
loadkernel=nand read 0x7fc0 0x200000 0x400000;nand read 0x1400000 0x600000 0x100000
setupspi=sf probe 0 75000000
stderr=serial
stdin=serial
stdout=serial
bootcmd=run setupspi;run loadkernel;bootm 0x7fc0 - 0x1400000
bootargs=noinitrd ubi.mtd=3 root=ubi0:rootfs rw rootfstype=ubifs rdinit=/sbin/init mem=64M console=ttyS0,115200n8 ignore_loglevel

六.开发板启动,选择spinand启动,部分log如下:

 spinand需要参考官网文章Power-On-Setting切换到spinand启动。

runsetup以上文章纯属个人学习心得,若有疑问以及错误之处,在所难免,欢迎指正,谢谢!

更多推荐