新唐那些事之根文件系统篇-NUC980 jffs2文件系统使用指引(基于5.10内核+spinor flash启动)

开发环境:
-
1.硬件环境预备
新唐NUC980开发板+spinor flash+usb0(烧录)+uart0(调试) -
2.软件环境预备
ubuntu20.04+buildroot代码
一. 代码下载
新唐官网下载 5.10内核的buildroot
git clone https://github.com/OpenNuvoton/buildroot_2024.git
二. 固件构建
构建支持NUC980 SPI NOR的初始镜像(构建完可以在output/images/目录下找到镜像)
首先选择配置文件,因这里使用的开发板对应的配置是nuvoton_nuc980_defconfig
make nuvoton_nuc980_defconfig
make
三. 创建jffs2文件系统的步骤
-
修改buildroot的配置
在buildroot根目录下执行 make menuconfig

2. 修改kernel的配置
make linux-menuconfig
(1)取消 RAM根文件系统设置,见下图。
先取消
[ ] Boot config support,
再取消
[ ] Initial RAM filesystem and RAM disk (initramfs/initrd) support

(2)新增jffs2系统设置,取消ubifs文件系统设置,见下图
(3)取消980 FMI设置

(4)取消CONFIG_MTD_SPI_NAND和CONFIG_MTD_RAW_NAND的配置

(5)取消CONFIG_MTD_SPI_NOR_USE_4K_SECTORS的配置

(6)修改spi Quad mode

(7)Use MTD partition command in u-boot

3. 修改uboot的配置
make uboot-menuconfig
(1) 取消SPL设置

(2) 取消UBI设置


(3) uboot命令,增加spi、sf命令,取消nand命令

(4) Device Drivers增加spi nor flash支持

(5) Device Drivers增加spi support支持

4. 修改设备树
(1) 修改linux-custom/arch/arm/boot/dts/nuc980.dtsi文件

(2) 修改 linux-custom/arch/arm/boot/dts/nuc980-dev-v1.0.dts文件


5. 修改 nuc980_evb.h文件
#define CONFIG_SYS_USE_SPIFLASH
/* #define CONFIG_SYS_USE_NANDFLASH
#define CONFIG_ENV_IS_IN_NAND */
#define CONFIG_ENV_IS_IN_SPI_FLASH
/*#define CONFIG_ENV_IS_IN_MMC */
四 重新构建固件
make
构建成功之后,在output/images/ 下找到以下文件
u-boot.bin uImage rootfs.jffs2 nuc980-dev-v1.0.dtb
五. 烧录固件到开发板
烧录需要参考官网文章Power-On-Setting切换到USB启动,使用NuWriter烧录,这里不再赘述。
文件 类型 image start offset
u-boot.bin 0xe00000
uImage 0x100000
rootfs.jffs2 0x800000
nuc980-dev-v1.0.dtb 0xF00000
env 0x80000
环境变量env文件如下:
baudrate=115200
bootdelay=1
ethact=emac
ethaddr=00:00:00:11:66:88
stderr=serial
stdin=serial
stdout=serial
bootcmd=sf probe 0 30000000\; sf read 0x7FC0 0x100000 0x400000\; sf read 0x1400000 0xF00000 0x10000\; bootm 0x7fc0 - 0x1400000
watchdog=off
六.开发板选择spinor启动,部分log如下:
spinor需要参考官网文章Power-On-Setting切换到spinand启动。

以上文章纯属个人学习心得,若有疑问以及错误之处,在所难免,欢迎留言,谢谢!
更多推荐
所有评论(0)