NUC980 设备树

阅读: 评论:0

NUC980 设备树

NUC980 设备树

文章目录

  • 一、U-Boot中有关设备树的配置
  • 二、Kernel中有关设备树的配置
  • 三、NUC980的上电启动
  • 四、NUC980的系统内存映射

一、U-Boot中有关设备树的配置

  1. 通过终端进入 01.u-boot_v2016 中
  2. make distclean //清除所有的object code.
  3. make coidea_nuc980_defconfig //设置Uboot为出厂设置
  4. make menuconfig 中配置如下项:
    Boot images —>
    [ * ] Support Flattened Image Tree
    Library routines —>
    [ * ] Enable the FDT library
    [ ] Support running EFI Applications in U-Boot
    配完后记得Save;
  5. make all //编译U-Boot

编译成功后会产生 u-boot.bin 和 u-boot-spl.bin(如果出错,再 make all 一次就好了) :
u-boot.bin : 完整功能的 U-Boot
u-boot-spl.bin : 将 Main U-Boot 从 NAND flash 搬到 DDR 执行, 只有 NAND boot 时才会用到,
如果是 SPI boot 或 eMMC boot 只需要 u-boot.bin
u-boot-spl.bin 会产生在子目录 /spl 中
u-boot.bin 会产生在根目录中

UBoot 编译完成后会在/tools 子文件夹下生成 mkimage 工具,在编译内核生成 uImage 时会用到这个工具。所以使用命令:
#cp tools/mkimage /bin
安装 mkimage 工具( 重要) 。

二、Kernel中有关设备树的配置

  1. 查看/home/coidea/nuc980 路径下是否有 image 文件夹, 若没有, 则创建一个(必须) 。

  2. 通过终端进入 02.linux_kernel 中

  3. make clean //清除以前的编译数据

  4. make coidea980_defconfig //使用内核出厂配置,注意会使内核还原成配酷客初始配置

  5. make menuconfig 中配置如下项:
    Device Drivers —>
    [ * ] Device Tree and Open Firmware support —>
    Boot options —>
    [ * ] Flattened Device Tree support
    配完后记得Save;

  6. make uImage //编译内核,生成980uimage

  7. make //编译生成nuc980-dev-v1.0.dtb
    编译完成后会在/home/coidea/nuc980/image 生成我们所需的980uimage 镜像 。(注意:1.我们用到的是 980uimage 这个文件, 而不是 980image 2.确保执行这一步之前已经编译过 uboot 并安装过 mkimage 工具)
    设备树会保存在arch/arm/boot/dts/nuc980-dev-v1.0.dtb

  8. 这里使用coidea的开发板,建议我们新增个coidea的设备树;
    a. 进入目录 arch/arm/boot/dts 中,复制一份nuc980-dev-v1.0.dts,然后将其重命名为coidea980-dev-v1.0.dts,命令如下:
    cd arch/arm/boot/dts
    cp nuc980-dev-v1.0.dts coidea980-dev-v1.0.dts
    b. coidea980-dev-v1.0.dts创 建 好 以 后 我 们 还 需 要 修 改 文 件 arch/arm/boot/dts/Makefile , 找 到 “ dtb-$(CONFIG_ARCH_NUC980)”配置项,在此配置项中加入“coidea980-dev-v1.0.dtb” ,如下所示:

dtb-$(CONFIG_ARCH_NUC980) +=
nuc980-dev-v1.0.dtb
coidea980-dev-v1.0.dtb

三、NUC980的上电启动

NUC980的UBoot前置启动流程:

IBR(Internal Boot ROM) —> u-boot-spl —> u-boot;

NUC980系列支持内置16 KB嵌入式SRAM和16.5 KB IBR(内部引导ROM),用于从USB, NAND, SD/eMMC和SPI Flash启动。
uboot-spl 叫做 uboot-second program loader (是uboot 的第二加载程序,第一加载程序是原厂的程序IBR),其功能特点:

  1. 只适用于NAND引导,SPI引导和eMMC引导只需要U-Boot;
  2. 初始化默认串口;
  3. 设置GD结构体;
  4. 将U-Boot从NAND flash移动到DDR,并启动U-Boot。

四、NUC980的系统内存映射

该芯片仅支持小端数据格式,并提供4g字节的寻址空间。内存空间的定义如图6 -2所示。

从0x0000_0000到0x1FFF_FFFF的内存空间用于SDRAM和外部设备。从0x3C00_0000到0x3C00_3FFF的内存空间用于嵌入式的16kbytes SRAM。用于片上控制器和外设的内存空间是从0xB000_0000到0xB00A_3FFF,而从0xFFFF_0000到0xFFFF_41FF的内存空间用于16.5 Kbytes的内部引导ROM。

该芯片提供阴影记忆功能。从0x8000_0000到0x9FFF_FFFF的内存空间是与从0x0000_0000到0x1FFF_FFFF的内存空间对应的影子内存空间。从0xBC00_0000到0xBC00_3FFF的内存空间是用于从0x3C00_0000到0x3C00_3FFF的内存空间的影子内存空间。如果片上控制器的DMA想要访问这个16Kbytes的嵌入式SRAM,就必须使用0xBC00_0000到0xBC00_3FFF的内存空间。

预留的内存空间无法访问。芯片在访问预留内存空间时的行为是不确定和不可预测的。

分配给每个片上控制器或外设的寻址空间,如表6.2-1所示。


本文发布于:2024-01-31 19:47:14,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170670163730937.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:设备
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23