海思3559U-Boot移植(一):一路next的默认模式

简介: Hi3559AV100 单板的 Bootloader 采用 U-boot。当选用的外围芯片的型号与单板上外围芯片的型号不同时,需要修改 U-boot 配置文件,主要包括存储器配置、 管脚复用。sdk包里有uboot的源码,可以进行修改后编译

前言

 Hi3559AV100 单板的 Bootloader 采用 U-boot。当选用的外围芯片的型号与单板上外围芯片的型号不同时,需要修改 U-boot 配置文件,主要包括存储器配置、 管脚复用。sdk包里有uboot的源码,可以进行修改后编译

编译 U-boot

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

步骤 1 配置编译环境

 当启动介质是 SPI-Nor Flash 或 SPI-NAND Flash 时, 使用配置命令:

make CROSS_COMPILE=aarch64-himix100-linux- hi3559av100_defconfig

 当启动介质是并口 NAND Flash 时,使用配置命令:

make CROSS_COMPILE=aarch64-himix100-linux- hi3559av100_nand_defconfig

 当启动介质是 eMMC 时, 使用配置命令:

make CROSS_COMPILE=aarch64-himix100-linux- hi3559av100_emmc_defconfig

 当启动介质是 UFS 时,使用配置命令:

make CROSS_COMPILE=aarch64-himix100-linux- hi3559av100_ufs_defconfig

步骤 2 编译 U-boot

 

make CROSS_COMPILE=aarch64-himix100-linux- -j 20

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

 这一步生成的 u-boot.bin 只是一个中间件,并不是最终在单板上执行的 U-boot 镜像。!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

步骤3配置 DDR 存储器

 在 Windows 下打开 SDK 中的“osdrv/tools/pc/uboot_tools/”目录下的配置表格。当选用不同的 DDR SDRAM 时,需要针对不同器件的特性,对配置工作表中的 DDR 相关标签页进行修改。

步骤4配置管脚复用

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

步骤5生成最终使用的 U-boot 镜像

 U-boot 镜像生成步骤如下:

步骤 1 配置表格

 完成配置表格的修改后,保存表格。

步骤 2 生成临时文件

 单击表格第一个标签页上的按钮【Generate reg bin file】或者使用 hiregbin 工具(详细使用方法请参考 osdrv/ tools/pc/uboot_tools/ hiregbin-v5.0.1.tgz 压缩包里的 readme 文件),生成临时文件 reg_info.bin。

 欢迎使用hiregbin命令行工具!

 此工具功能主要是:Hi3559芯片根据excel文件生成regbin文件。

 (只支持2007版本及以上版本的xlsm格式文件,低于2007版本的格式文件需要转换成2007版本及以上版本的xlsm格式文件。)

 支持Windows与Linux操作系统 .生成regbin文件功能说明

 步骤如下:

    (1)在命令行下,进入hiregbin所在目录;

    (2)输入命令如下:

./hiregbin [excelFile] [outputFile]

    excelFile、outputFile为必须参数,由用户指定。

    示例:

./hiregbin ./Hi35**.xlsm ./reg.bin

 (3)等待制作完成。

步骤 3 生成最终镜像

 将临时文件 reg_info.bin 拷贝到 SDK 中的

“osdrv/opensource/uboot/u-boot-2016.11/”目录下, 并命名为: .reg,然后执行命令:

make CROSS_COMPILE=aarch64-himix100-linux- u-boot-z.bin

 生成的 u-boot-hi3559av100.bin 才是能够在单板上运行的 uboot 镜像。

烧写U-boot

 烧录时选择海思自带的HiBurn工具,详细的使用方法在文档:《HiBurn工具使用指南》

 界面还是做的非常简洁明了的,简单使用下,首先需要选择正确的器件类型,比如我们在spi nand flash的硬件环境下选择了比如nor flash的器件类型会报下图器件类型的错误,并报错提醒我们更换器件类型

b184a724644842dba54cf8cfa5dd15a6.png

 而大小的选择并不是实际的真实大小,因为block的原因需要是128k的整数倍

79da758b3cbb42efbae14230b5d2f6ff.png

 再次烧写就会提醒烧写成功了!

错误记录

 根据墨菲定律,还是遇到了稀奇古怪的问题:

 板子重新上电之后出现了这样一个项目场景:

 u-boot启动后不论怎么敲击按键也无法进入命令行模式

 pc端串口软件为:MobaXterm

原因分析:

 既然串口可以正常输出打印,那么键盘的输入信息应该没有问题,而u-boot没有收到信息,那就可能:

 1. pc端的串口软件没有将键盘输入发送出去(串口软件问题),可以用示波器来测量波形

 2.可以确认发送端键盘输入出去了,但是传输过程中出现问题(硬件线路松动等)

 3.u-boot收到了信息,但是内部发生错误导致无法进入命令行模式(配置问题)

解决方案:

 最简单的肯定是先检查传输线路

 再检查串口软件相关设置

 MobaXterm需要展开高级设置,检查默认的配置是否正确:

77e995fd405d4659b18164ba808f3647.png

 突然发现Mobaxterm的流控默认是开着的,将其关闭后重新上电,

System startup 
10
 Uncompress Ok !
 U - Boot 2016.11( Apr 26 2022 -17:30:03+0800)hi3559av100 Relocation 0ffset1s:176e9000
 Relocating to Sfee9000, new gd at Sfe48e00, sp at Sfe48dfo SPI Nor : Boot Media isn ' t SPI Nor 
 NAND : hifmc ip ver check (44): Check Flash Memory Controller v100... hifac _ ip _ ver _ check (50): SPI Nand ID Table Version 2.7
 SPI Nand ( cs 0) ID : Oxet Oxba Ox21 Name :"W25N01GWZ11G* Block :128KB Page :2KB00B:64B ECC :4bit/512
Chips12e:128Mi0 MHC :
 In :
 Out :
 Err :
 Net :
 Error : gmaco address not set ..ghac1
 Error : gmacl address not set . Hit any key to stop autoboot : hisilacon 
 Found 
 seraal 
 serial 
 serial 
 gmaco 

 好吧,正常了,接下来就可以通过网线正式进行烧写了(详见海思3559平台搭建(一):简单烧写说明)


相关文章
|
2月前
|
运维 网络性能优化 网络虚拟化
|
6月前
|
网络安全 网络架构
入门:树莓派装系统、亮机,无需外接显示器键盘鼠标(保姆级教程)
入门:树莓派装系统、亮机,无需外接显示器键盘鼠标(保姆级教程)
140 3
海思3559万能平台搭建:ini定制协议输入①校正系统时间
海思3559万能平台搭建:ini定制协议输入①校正系统时间
159 0
海思3559万能平台搭建:ini定制协议输入①校正系统时间
|
Linux 开发工具 内存技术
海思3559kernel移植(一):一路next的默认模式
安装环境篇过后的sdk包里实际上并没有kernel的源码
292 0
win10显示此设备不支持接收miracast的解决办法【【百度的方法均不好使,自己发现的,亲测有效!!!!】】
win10显示此设备不支持接收miracast的解决办法【【百度的方法均不好使,自己发现的,亲测有效!!!!】】
win10显示此设备不支持接收miracast的解决办法【【百度的方法均不好使,自己发现的,亲测有效!!!!】】
|
Ubuntu 虚拟化 数据安全/隐私保护
Ubuntu使用优化(中文输入法,下载速度,窗口适配)(二)
Ubuntu使用优化(中文输入法,下载速度,窗口适配)(二)
238 0
Ubuntu使用优化(中文输入法,下载速度,窗口适配)(二)
|
Ubuntu Linux
Ubuntu使用优化(中文输入法,下载速度,窗口适配)(一)
Ubuntu使用优化(中文输入法,下载速度,窗口适配)(一)
232 0
Ubuntu使用优化(中文输入法,下载速度,窗口适配)(一)
|
编解码 Linux 开发工具
RISC-V生态开发套件解析(十一):LicheeRV 86开发板MIPI/RGB显示输出方式切换
RISC-V生态开发套件解析(十一):LicheeRV 86开发板MIPI/RGB显示输出方式切换
700 0
RISC-V生态开发套件解析(十一):LicheeRV 86开发板MIPI/RGB显示输出方式切换
|
Ubuntu 安全 物联网
启明云端分享:ESP32-C3环境准备详细步骤②
ESP32-C3是一款安全稳定、低功耗、低成本的物联网芯片,搭载RISC-V32位单核处理器,支持2.4GHzWi-Fi和BluetoothLE5.0。为物联网产品提供行业领先的射频性能、完善的安全机制和丰富的内存资源。ESP32-C3对Wi-Fi和BluetoothLE5.0的双重支持降低了设备配网难度,适用于广泛的物联网应用场景。
415 0
启明云端分享:ESP32-C3环境准备详细步骤②
|
编解码 Shell 异构计算
树莓派系列-4-开机界面设置
设想是想要机器在开机的时候不显示任何信息,只显示公司的LOGO,这样是最好的,但是呢,没有实现,所以现在实现的内容就是啥都不显示。
452 0