3516A调试
最近在调Hi3516A的板,硬件不知道为什么如此设计,用一片16bit4G的ddr,16Mspi flash,按理如果是A应该是2片16bit的ddr,组成32位总线,现在怕是只能当D来用了,编译成功后,烧录uboot后,出现*** Warning - bad CRC, using default environment,尝试用setenv改变量,sa也提示成功,但reset后问题还是一样,折腾了二天,最后参考下面的才解决。
http://www.bubuko.com/infodetail-2118134.html
U-Boot 2010.06 (Jan 05 2018 - 12:08:26)
Check spi flash controller v350... Found
Spi(cs1) ID: 0xC2 0x20 0x18 0xC2 0x20 0x18
Spi(cs1): Block:64KB Chip:16MB Name:"KH25L12835F"
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Hit any key to stop autoboot: 0
uboOT#
uboOT#
把uboot和kernel下drivers\mtd\spi\hisfc350\hisfc350_spi_ids.c的文件,定义一个CONFIG_CLOSE_SPI_8PIN_4IO
#define CONFIG_CLOSE_SPI_8PIN_4IO
按理demo板也是用的spi nor flash,先调试别的以后再看看为什么这样,
关于HI3516A 使用SDK06版本更换DDR和SPI FLASH遇到的问题和解决方法
标签:int jffs2 tool 模式 fastboot 就会 con php ini
HI3516A 更换DDR 和 FLASH
最近有新的需求需要使用SDK06版本,以及在硬件上更换了DDR和 FLASH,遇到了一些问题,这段时间搜索了很多hisi的资料和帖子,大概做了如下的总结,
希望对大家有帮助,若有错误的地方或遗漏的地方,请指出。谢谢。
更换DDR 和 flash,则需要更新uboot,因为里面包含了DDR和flash的配置。
首先需要对hisi的uboot有所了解。
hisi uboot分解为两部分。前面一部分为DDR的参数和其他寄存器的配置,总过大小为4K
具体的地址为从0x40 开始的4K大小。
这4K的配置是通过hisi提供的execl表格生成的一个reg_info.bin文件,然后通过mkboot.sh脚本把reg_info.bin和我们编译完的u-boot.bin
合成一个完整的bin文件,这样我们就可以通过fastboot工具中的Burn Fastboot 模式来刷机了。
如何配置execl中的参数。
reg_info.bin 如果仔细看,会发现里面都是excel中提到的寄存器地址然后是后面紧跟这个寄存器的值,如果恰巧别人没有提供这个表格,
自己也可以通过这个一步一步对比找出来。或者不想麻烦,直接把别人uboot中的前面4K 复制到自己的uboot bin 文件上。
1,excel文件的选择
在osdrv\tools\pc\uboot_tools中有两支不同DDR CPU 频率的表格,选择的时候要注意点。
Hi3516A-DMEB-uboot-DDR250M-1GB-32bit-CPU600M-BUS198M.xls
Hi3516A-DMEB-uboot-DDR297M-1GB-32bit-CPU850M-BUS198M.xls
如果你的HISI3516A 是超频到850M的,则要选择Hi3516A-DMEB-uboot-DDR297M-1GB-32bit-CPU850M-BUS198M.xls
hisi3516A的CPU 正常是600M的,所以就选择Hi3516A-DMEB-uboot-DDR250M-1GB-32bit-CPU600M-BUS198M.xls
在这个文件更改的地方不多。很多时候会发现根本不用改什么就OK了 O(∩_∩)O~
DDR的就看位宽和bit,bank数,
修改的地方如下:
DDRC_CFG_DDRMODE 存储数据总线位宽
AXI_CONFIG BANK 位宽配置
fastboot 工具会先将uboot通过串口线下载到的板子上,然后启动uboot, 如果下载进去后出现DDR init state error 则有可能就是上面配置没对
uboot启动后,就会把自己写入到flash中,前提是flash的驱动在uboot中已做了配置
2 SPI 配置
如下是uboot的某个spi flash 配置,参考其他帖子说在READ WRITE中只保留READ_STD和WRITE_STD,才能有正常读写。
{
"W25Q256FV", {0xEF, 0x40, 0x19}, 3, _32M, _64K, 4,
{
&READ_STD(0, INFINITE, 50),
//&READ_FAST(1, INFINITE, 80),
//&READ_DUAL(1, INFINITE, 80),
//&READ_QUAD(1, INFINITE, 80),
0
},
{
&WRITE_STD(0, 256, 50),
//&WRITE_QUAD(0, 256, 80),
0
},
{
&ERASE_SECTOR_64K(0, _64K, 50),
0
},
&spi_driver_w25q256fv,
},
在kernel中也要这样改,不然再挂载文件系统的时候会出现jffs2: jffs2_scan_eraseblock() 错误
还有一个重要的点是会影响串口的输出:需要把如下配置改为03
DX3CTRL 0x388 0x00 -->0x03
DX2CTRL 0x308 0x00 -->0x03
我们就会在串口中看到有输出,并且能够进入uboot模式,不然串口没有任何输出
3,网络配置
海思提供的网络模式模式是rgmii,所以如果你的模式不是这种或者是PHY接口不对,网络就ping不通。
会出现如下错误:
ETH0: PHY(phyaddr=1, rmii) not link!
higmac init fail!
/include/configs/hi3516a.h
添加网络模式
#define CONFIG_MDIO_INTF "rmii"
#define CONFIG_HIGMAC_PHY1_INTERFACE_MODE 1
PHY的地址修改,可以通过mii info 来查看是属于0 还是1 ,或者其他
#define CONFIG_HIGMAC_PHY1_ADDR 1
还需要在execel的表格中 把时钟配置为RMILL clk的时钟50M
muxctrl_reg93 0x174 0x2 -->0x01
在kernel中需要在config中CONFIG_HIGMAC_PHY0_INTERFACE_MODE 修改为5
mill rmii rgmii 三种模式在uboot为 0 1 2 kernel中为1 5 6
可以看到,我们修改的地方不多。也有可能还有其他问题没有暴露出来。
3516A调试的更多相关文章
- C# Web应用调试开启外部访问
在用C#开发Web应用时有个痛点,就是本机用VS开启Web应用调试时外部机器无法访问此Web应用.这里将会介绍如何通过设置允许局域网和外网机器访问本机的Web应用. 目录 1. 设置内网访问 2. 设 ...
- NodeJs之调试
关于调试 当我们只专注于前端的时候,我们习惯性F12,这会给我们带来安全与舒心的感觉. 但是当我们使用NodeJs来开发后台的时候,我想噩梦来了. 但是也别泰国担心,NodeJs的调试是很不方便!这是 ...
- 微信公众号开发之VS远程调试
目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流 ...
- 写出易调试的SQL(修订版)
h4 { background: #698B22 !important; color: #FFFFFF; font-family: "微软雅黑", "宋体", ...
- tomcat开发远程调试端口以及利用eclipse进行远程调试
一.tomcat开发远程调试端口 方法1 WIN系统 在catalina.bat里: SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compi ...
- Hawk 4.7 单步调试
单步调试的意义 已经编写的工作流,可能会因为某些外界环境的变化而出错,此时需要排除错误,我们可以使用单步调试. 单步调试的本质,相当于只使用前n个模块,这样就能看到每个步骤下,流的改变. 例子 还是上 ...
- Visual Studio 2012远程调试中遇到的问题
有的时候开发环境没问题的代码在生产环境中会某些开发环境无法重现的问题,或者需要对生产环境代码进行远程调试该怎么办? Vs已经提供给开发者远程调试的工具 下面简单讲讲该怎么用,前期准备:1.本地登录账户 ...
- iOS逆向工程之Hopper+LLDB调试第三方App
LLDB是Low Level Debugger的简称,在iOS开发的调试中LLDB是经常使用的,LLDB是Xcode内置的动态调试工具.使用LLDB可以动态的调试你的应用程序,如果你不做其他的额外处理 ...
- 写出易调试的SQL
h4 { background: #698B22 !important; color: #FFFFFF; font-family: "微软雅黑", "宋体", ...
- linux应用调试技术之GDB和GDBServer
1.调试原理 GDB调试是应用程序在开发板上运行,然后在PC机上对开发板上得应用程序进行调试,PC机运行GDB,开发板上运行GDBServer.在应用程序调试的时候,pc机上的gdb向开发板上的GDB ...
随机推荐
- ClickHouse使用笔记
什么是ClickHouse? ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS). 更多说明请参考官网:https://clickhouse.com/docs/zh/ ...
- charles初级使用
使用charles抓包 一 charles简介 charles 是一个http proxy,是一个中间人,位于客户端Cilent和服务器Server中间. Client发送给Server的请求会经过c ...
- [代码审计基础 03]-RCE-fork,system,execve
RCE-fork,system,execve 简单来讲: 数据流进入了控制流 紧紧抓住输入 不同数据层的交汇处,往往是漏洞点 远程代码执行 PHP eval() assert() preg_reple ...
- LG P3809 【模板】后缀排序
贴模板 注意:\(\text{id}\) 表示第二关键字排序后(其实无需排序,利用上轮的 \(\text{sa}\) 值即可)相应的第一关键字的位置 计数排序为了稳定性最后确定位置时要倒着开始 复制的 ...
- JZOJ 5353. 【NOIP2017提高A组模拟9.9】村通网
题目 为了加快社会主义现代化,建设新农村,农夫约(Farmer Jo)决定给农庄里每座建筑都连上互联网,方便未来随时随地网购农药. 他的农庄很大,有N 座建筑,但地理位置偏僻,网络信号很差. 一座建筑 ...
- 生物制剂时代的SpA研究正站在十字路口_Appel,Sieper2009
中信国健临床通讯 2009年第1期 生物制剂时代的脊柱关节炎研究正站在十字路口: 影像学.病理学和结构破坏 Heiner Appel, MD Joachim Sieper, MD Cu ...
- SSM框架学习-AOP学习笔记
一.AOP入门简介 AOP(Aspect Oriented Programming)面向切面编程,是一种编程范式,可以知道开发者如何组织程序结构 作用:在不惊动原始设计的基础上为其进行功能增强.(无侵 ...
- unity 音频曲线
jp--------------- https://techblog.kayac.com/dynamic-waveform-generation-without-audio-clip https:// ...
- mybatis动态标签——sql标签
mapper接口 Emp getEmpById(@Param("id") Integer id); mapper.xml <!-- sql片段:可以记录一段sql,在需要用的 ...
- springboot AOP配置
在Springboot中添加AOP配置分两步: 最近学习AOP ,记录一下,虽然很多名字不太清楚,但是问题不大 1:在pom.xml中添加AOP依赖 2:建一个AOP配置类 下面来看下代码是怎么实现的 ...