美文网首页
海思Hi3521/Hi3520A/Hi3520D/Hi3515A

海思Hi3521/Hi3520A/Hi3520D/Hi3515A

作者: 体感互动 | 来源:发表于2019-06-18 15:26 被阅读0次

本文档主要介绍本在Hi3521/Hi3520A/Hi3520D/Hi3515A/Hi3515C单板上如何移植和烧写 U-boot(Hi3521 单板的 Bootloader)的相关操作及如何使用ARM 调试工具。 

Hi3521单板的Bootloader 采用U-boot。当选用的外围芯片的型号与单板上外围芯片的型号不同时,需要修改 U-boot 配置文件,主要包括存储器配置、管脚复用。 

1.2 U-boot 目录结构 

U-boot 的主要目录结构如表 1-1 所示,详细目录说明请阅读 U-boot 目录下的 README文档。 

2.1 概述 

在 Hi3521 单板上所选用的外围芯片型号如下: 

DDR SDRAM:K4B2G1646C-HCK0 

NAND Flash:TC58NVG1S3ETA00 

SPI Flash:FL128PIFL121QQ030 

如果选用的外围芯片不是以上型号时,需要适当修改 SDK 中的“osdrv/ 

tools/pc_tools/uboot_tools/”目录下的配置表格,对应的单板才能正常运行。 

2.2 编译 U-boot 

当所有以上移植步骤完成后,就可以编译 U-boot,操作如下: 

make ARCH=arm CROSS_COMPILE=arm-hisivXXX-linux- godarm_config //选择Hi3521 

make ARCH=arm CROSS_COMPILE=arm-hisivXXX-linux- godcare_config //选择Hi3520A 

make ARCH=arm CROSS_COMPILE=arm-hisivXXX-linux- hi3520d_config //选择Hi3520D/Hi3515A 

编译成功后,将在 U-boot 目录下生成 u-boot.bin。 

其中 CROSS_COMPILE 表示工具链。文档中统一以 CROSS_COMPILE=arm-hisiXXX-linux-来 

表示两种情况。 

Hi35xx_V100R001C01SPCxxx 对应 uclibc,使用 uclibc 工具链时,CROSS_COMPILE=arm�hisiv100nptl-linux-。 

Hi35xx_V100R001C02SPCxxx 对应 glibc,使用 glibc 工具链时,CROSS_COMPILE=arm�hisiv200-linux-。 

2.3 配置 DDR 存储器 

在 Windows 下打开 SDK 中的“osdrv/ tools/pc_tools/uboot_tools/”目录下的配置表格。 

当选用不同的 DDR SDRAM 时,需要针对不同器件的特性,对配置工作表中的相关标签页进行修改。 

2.4 配置管脚复用 

如果管脚复用有变化,还需要对配置表格中的相关标签页进行修改。 

2.5 生成最终使用的 U-boot 镜像 

完成配置表格的修改后,保存表格。单击表格第一个标签页上的按钮“Generage reg bin file”,生成临时文件 reg_info.bin。 

将临时文件 reg_info.bin 和编译 u-boot 得到的 u-boot.bin 都拷贝到 SDK 中的“osdrv/tools/pc_tools/uboot_tools/目录下,执行命令: 

mkboot.sh reg_info.bin u-boot-hi3521_930MHz.bin 

其中 u-boot-hi3521_930MHz.bin 就是能够在单板上运行的 U-boot 镜像。 

目前是将 Hi3520D 和 Hi3515A/Hi3515C 做成一个 U-boot 镜像,需要将 Hi3520D、Hi3515A 表格生成的临时文件,分别命名为 reg_info_hi3520d.bin、reg_info_hi3515a.bin,然后将两个临时文件和编译好的 u-boot.bin 一起拷贝到 SDK 中的“osdrv/tools/pc_tools/uboot_tools/目录下,执行命令:mkboot-hi3520d.sh 

reg_info_hi3520d.bin reg_info_hi3515a.bin u-boot-hi3520d.bin 

需要特别注意 Hi3520D 的 reg_info 在前、15a 的 reg_info 在后,这个顺序不能随意更改。 

在 u-boot 的代码段中需要预留 4800Byte 的空白区,用来存放 reg_info_hi3520d.bin、reg_info_hi3515a.bin 文件的内容,两个文件各占 2400Byte。由于受片内 RAM 的限制,预留空白区的大小最好不要超过 4800Byte,如果超过这个限制将会导致 FastBoot 

无法正常烧写。如果确实需要预留超过 4800Byte 的空白区,可以考虑先用 FastBoot 工具烧写一个未超过 4800Byte 限制的 U-boot 镜像,然后通过网络把超过限制的 U-boot镜像烧进 Flash。 

如果只需将 Hi3520D 或者 Hi3515A/Hi3515C 的 reg_info 文件放入 U-boot 镜像,需要把U-boot 目录下./include/configs/hi3520d.h 文件中的 ENABLE_HI3520D_BLANK 或者ENABLE_HI3515A_BLANK 宏注释掉即可。 

为临时文件(reg_info_xxx.bin)预留的空白区的大小由宏 REG_INFO_BLANK_SIZE决定,默认是 2400,如果需要可以调整 REG_INFO_BLANK_SIZE 的大小。 

如果想要把更多的临时文件放入 U-boot 镜像,需要以下步骤: 

首先,需要修改./arch/arm/cpu/hi3520d/start.S54~61 行代码,具体代码如下: 

__blank_zone_start: 

#ifdef ENABLE_HI3520D_BLANK 

.fill REG_INFO_BLANK_SIZE,1,0 /* 空白区*/ 

#endif 

#ifdef ENABLE_HI3515A_BLANK 

.fill REG_INFO_BLANK_SIZE,1,0 /* 空白区*/ 

#endif 

/* 在此处新增空白区 */ 

__blank_zone_end: 

其次,需要修改 osdrv/tools/pc_tools/uboot_tools/ mkboot-hi3520d.sh 文件,如下: 

dd if=$1 of=./fb2 bs=2400 conv=sync 

dd if=$2 of=./fb3 bs=2400 conv=sync 

/* 可以在此处增加类似上面两个命令 */ 

dd if=./u-boot.bin of=./fb4 bs=1 skip=4864 /* 大小为 64 + 所有空白区的大小 */ 

cat fb1 fb2 fb3 fb4 > $3 

3.1 概述

http://bbs.16rd.com/thread-476912-1-1.html

如果待移植单板中已有 U-boot 运行,则可以通过串口或网口与服务器连接,直接更新U-boot。 

如果是第一次烧写,则需要通过网口使用 RVDS 工具进行烧写。由于芯片特性,必须有通过 RVDS 下载到单板的脚本,该脚本能够对存储器和芯片进行初始化。在 HI3521 SDK 中提供了相应的初始化脚本,当选用了不同的外围芯片,则需要重新配置初始化脚本才能使用。 

3.2 通过 bootrom 工具烧写 U-boot 

具体操作方式请参考《Fastboot 工具使用说明 Application Notes》。 

3.3 两种 Flash 的 U-boot 烧写方法 

3.3.1 SPI Flash 烧写方法 

SPI Flash 烧写方法如下: 

1. 在内存中运行起来之后在超级终端中输入: 

hisilicon# mw.b 0x82000000 ff 0x100000 /* 对内存初始化*/ 

hisilicon# tftp 0x82000000 u-boot-hi3521_930MHz.bin /*U-boot下载到内存 

*/ 

hisilicon# sf probe 0 /*探测并初始化SPI flash*/ 

hisilicon# sf erase 0x0 0x100000 /*擦除 1M大小*/ 

hisilicon# sf write 0x82000000 0x0 0x100000 /*从内存写入SPI Flash*/

2. 上述步骤操作完成后,重启系统可以看到 U-boot 烧写成功。

----结束

相关文章

  • 海思Hi3521/Hi3520A/Hi3520D/Hi3515A

    本文档主要介绍本在Hi3521/Hi3520A/Hi3520D/Hi3515A/Hi3515C单板上如何移植和烧写...

  • Hi3516开发笔记(四):Hi3516虚拟机编译uboot、k

    前言   海思编译需要依赖一些海思的sdk,如海思的文件系统,BSP等,所以先要弄清楚文件系统的编译,海思的sdk...

  • 思海

    思念 像个无赖, 总是把往事 塞进我的脑海。 你我仍在 原地徘徊, 怎奈 残留记忆里的爱 却仿佛 被时间肢解。 试...

  • 思海

    我喜欢海,却经不起它的冷漠无情,我爱慕海,却总是被它的遗忘。我想拥抱海,却总是空欢意难尝。如果海是一个人该多好,弃...

  • 海 思

    想从你眼里看到一切 可面前却是珊瑚礁和海藻的世界 只知红日在此沉沦 但并不是泯灭 天边升起了孤单的明月 海崖也沉默...

  • 思海

    连峡沧海涛涌绝, 平复山峦隔江望。 千万豪雄曾来此, 剑指何方遮那天。 虎林一中初一七班 王玺洋...

  • 思海

    大海如宙 我如一沙 浩瀚无边 却也容不下我一颗思念之心 白云如宇 我如水滴 无边无际 却也容不下我一颗期盼之心 亲...

  • iOS 海思H.265解码库

    本文介绍海思HEVC解码库的使用。作者对比海思与FFmpeg,对于H.265视频解码,海思性能要高于FFmpeg。...

  • 《我侬词》

    天思海 鸟思林 不及我思你 天拥海 鸟入林 不如揉碎捏一起

  • 无标题文章

    鱼思海;蝶恋花。

网友评论

      本文标题:海思Hi3521/Hi3520A/Hi3520D/Hi3515A

      本文链接:https://www.haomeiwen.com/subject/jumfqctx.html