zoukankan      html  css  js  c++  java
  • 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下driversmtdspihisfc350hisfc350_spi_ids.c的文件,定义一个CONFIG_CLOSE_SPI_8PIN_4IO

    #define CONFIG_CLOSE_SPI_8PIN_4IO

    按理demo板也是用的spi nor flash,先调试别的以后再看看为什么这样,

    关于HI3516A 使用SDK06版本更换DDR和SPI FLASH遇到的问题和解决方法

    时间:2017-06-13 16:14:54      阅读:2378      评论:0      收藏:0      [点我收藏+]

    标签: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 oolspcuboot_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

    可以看到,我们修改的地方不多。也有可能还有其他问题没有暴露出来。

  • 相关阅读:
    时区 : America/Mexico_City 中文:美国中部时间(墨西哥城) 的夏令时
    Android中的常见时区
    嵌套滚动demo
    Android之获得内存剩余大小与总大小
    通过ip获取地理位置信息
    9.png(9位图)在android中作为background使用导致居中属性不起作用的解决方法
    Android ActivityManagerService 基本构架详解
    Eclipse 常用快捷键 (动画讲解)(转载)
    eclipse安装svn插件,在输入url后,一直卡在in progress界面不懂。
    android——背景颜色渐变(梯度变化)
  • 原文地址:https://www.cnblogs.com/ordinary-world/p/10925479.html
Copyright © 2011-2022 走看看