imx6ul 官方开发板qspi nor 启动linux 怎么 *** 作

imx6ul 官方开发板qspi nor 启动linux 怎么 *** 作,第1张

已经手动将ucl2.xml 中Quad Nor Flash 内容改成如下

<LIST name="Quad Nor Flash" desc="Choose Quad Nor flash as media">

<CMD state="BootStrap" type="boot" body="BootStrap" file ="firmware/u-boot-imx6q%board%_%nor%.imx" ifdev="MX6Q">Loading U-boot</CMD>

<CMD state="BootStrap" type="boot" body="BootStrap" file ="firmware/u-boot-imx6dl%board%_%nor%.imx" ifdev="MX6D">Loading U-boot</CMD>

<CMD state="BootStrap" type="boot" body="BootStrap" file ="firmware/u-boot-imx6slevk_spi-nor.imx" ifdev="MX6SL">Loading U-boot</CMD>

<CMD state="BootStrap" type="boot" body="BootStrap" file ="firmware/u-boot-imx6sx%sxuboot%_sd.imx" ifdev="MX6SX">Loading U-boot</CMD>

<CMD state="BootStrap" type="boot" body="BootStrap" file ="firmware/u-boot-imx7d%7duboot%_sd.imx" ifdev="MX7D">Loading U-boot</CMD>

<CMD state="BootStrap" type="boot" body="BootStrap" file ="firmware/u-boot-imx6ulevk_qspi1.imx" ifdev="MX6UL">Loading U-boot</CMD>

<CMD state="BootStrap" type="load" file="firmware/zImage" address="0x12000000"

loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6Q MX6DL">Loading Kernel.</CMD>

<CMD state="BootStrap" type="load" file="firmware/zImage" address="0x80800000"

loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6SL MX6SX MX7D MX6UL">Loading Kernel.</CMD>

<CMD state="BootStrap" type="load" file="firmware/%initramfs%" address="0x12C00000"

loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6Q MX6DL">Loading Initramfs.</CMD>

<CMD state="BootStrap" type="load" file="firmware/%initramfs%" address="0x83800000"

loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6SL MX6SX MX7D MX6UL">Loading Initramfs.</CMD>

<CMD state="BootStrap" type="load" file="firmware/zImage-imx6q-%board%-%nordtb%.dtb" address="0x18000000"

loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6Q">Loading device tree.</CMD>

<CMD state="BootStrap" type="load" file="firmware/zImage-imx6dl-%board%-%nordtb%.dtb" address="0x18000000"

loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6D">Loading device tree.</CMD>

<CMD state="BootStrap" type="load" file="firmware/zImage-imx6sl-evk.dtb" address="0x83000000"

loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6SL">Loading device tree.</CMD>

<CMD state="BootStrap" type="load" file="firmware/zImage-imx6sx-%sxdtb%.dtb" address="0x83000000"

loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6SX">Loading device tree.</CMD>

<CMD state="BootStrap" type="load" file="firmware/zImage-imx7d-%7ddtb%.dtb" address="0x83000000"

loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX7D">Loading device tree.</CMD>

<CMD state="BootStrap" type="load" file="firmware/zImage-imx6ul-14x14-evk.dtb" address="0x83000000"

loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" ifdev="MX6UL">Loading device tree.</CMD>

<CMD state="BootStrap" type="jump" >Jumping to OS image. </CMD>

<CMD state="Updater" type="push" body="$ flash_erase /dev/mtd0 0 20">Erasing Boot partition</CMD>

<CMD state="Updater" type="push" body="send" file="files/u-boot-imx6q%board%_%nor%.imx" ifdev="MX6Q">Sending U-Boot</CMD>

<CMD state="Updater" type="push" body="send" file="files/u-boot-imx6dl%board%_%nor%.imx" ifdev="MX6D">Sending U-Boot</CMD>

<CMD state="Updater" type="push" body="send" file="files/u-boot-imx6slevk_spi-nor.imx" ifdev="MX6SL">Sending u-boot.bin</CMD>

<CMD state="Updater" type="push" body="send" file="files/u-boot-imx6sx%sxuboot%_%sxnor%.imx" ifdev="MX6SX">Sending u-boot.bin</CMD>

<CMD state="Updater" type="push" body="send" file="files/u-boot-imx7d%7duboot%_%7dnor%.imx" ifdev="MX7D">Sending u-boot.bin</CMD>

<CMD state="Updater" type="push" body="send" file="files/u-boot-im

这一问题来自项目中一个实际的需求: 我需要在Linux启动之后,确认我指定的芯片寄存器是否与我在uboot的配置一致。 举个例子: 寄存器地址:0x20000010负责对DDR2的时序配置,该寄存器是在uboot中设置,现在我想在Linux运行后,读出改寄存器的值...

系统源码和编译方法,[参见连接] ( https://community.nxp.com/docs/DOC-334274 )其中dtb文件针对LCD或HDMI修改的内容对iSpeaker无影响,不用去修改。我们会使用另外的dtb文件。

烧写SD方式也不采用这个文档中的方法,直接在linux命令行下如下 *** 作:

Nandflash使用zImage,dtb文件和SD卡中使用的完全一致。Uboot文件SD中使用的不能用于Nandflash,源码另见。

烧写Nandflash需要用SD卡系统盘启动,SD卡系统中需要已安装mtd-utils工具。系统启动后能正常看到mtd0~mtd4分区。按照下面步骤 *** 作:

$ flash_erase /dev/mtd0 0 0

$ flash_erase /dev/mtd1 0 0

$ flash_erase /dev/mtd2 0 0

$ kobs-ng init -x u-boot.imx --search_exponent=1 -v

$ flash_erase /dev/mtd3 0 0

$ nandwrite -p /dev/mtd3 zImage

$ nandwrite -p /dev/mtd3 -s 0x7e0000 imx.dtb

$ ubiformat /dev/mtd4 -f ubi.img

其中使用ubi.img文件,在linux主机下制作方法如下:

使用的根文件系统和SD卡中的根文件系统一样,假设SD卡已插入linux主机usb接口,并将第二个分区挂载与/mnt下,首先在linux主机工作目录下建立文本文件ubifs.cfg,内容如下:

[ubifs]

mode=ubi

image=ubifs.img

vol_id=0

vol_type=dynamic

vol_name=rootfs

vol_flags=autoresize

然后执行如下命令:

$ mkfs.ubifs -x zlib -m 2048 -e 124KiB -c 3965 -r /mnt ubifs.img

$ ubinize -o ubi.img -m 2048 -p 128KiB -s 2048 -O 2048 ubifs.cfg


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/9011619.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存