首页 > 系统相关 >HISI3520DV300 折腾记录(二)之《内存映射、存储(DDRC,FMC)、启动模式分析》

HISI3520DV300 折腾记录(二)之《内存映射、存储(DDRC,FMC)、启动模式分析》

时间:2023-02-11 17:24:42浏览次数:49  
标签:0000 FFFF NAND --- 模式分析 r0 HISI3520DV300 DDRC FMC

PS:要转载请注明出处,本人版权所有。

PS: 这个只是基于《我自己》的理解,

如果和你的原则及想法相冲突,请谅解,勿喷。

前置说明

  本文作为本人csdn blog的主站的备份。(BlogID=056)
  本文发布于 2018-03-10 10:12:11,现用MarkDown+图床做备份更新。blog原图已丢失,使用csdn所存的图进行更新。(BlogID=056)

环境说明

  无

前言


  此文分析基于某HISI3520DV300单板以及所带的datasheet





启动分析


  关于其启动方式有如图说明:

rep_img

  解释:支持bootrom和SPI Flash两种启动方式,由BOOTROM_SEL引脚决定。bootrom是海思已经写好的程序烧写在里面,支持和其自身所写的PC软件进行串口通信。





存储模块(DDRC,FMC)




DDRC(hisi3520dv300 支持16bit数据读写)

  SDRAM信息:

  • 此板子的SDRAM型号为:k4b2g1646q-bck0
  • 此SDRAM相关信息如图:
rep_img
  • 容量:2Gbit (就是256MByte)
  • 数据宽度:16bit
  • banks:8
  • 每bank大小:128MBbit

  DDRC信息:

连线:

rep_img

  地址线分配:

rep_img
  • DDR_BA:3bit
  • DDR_R:14bit
  • DDR_C:10

  并且只支持RBC地址映射模式(行地址+bank+列地址+数据宽度)

  于是此板子SDRAM:2^(14+3+10+1)=256MB



FMC

  NAND信息:

  • 此板子NAND型号为:mx25l256fz2
  • 此型号相关信息为:
rep_img

  FMC信息:

rep_img

  于是此板子NAND大小为256MBits





内存映射(最重要,所有的一切都基于此)


  地址映射图:

rep_img
rep_img
rep_img
rep_img
rep_img
rep_img

  关于0x8000 0000---0xFFFF FFFF此地址空间是分配给SDRAM用的(也就是我们说的内存)

  关于0x0000 0000---0x03FF FFFF:

  • 在地址映射时:这64MB指向启动地址空间。
  • 在地址映射取消时:指向片内的16KB 空间。

下文纯属我的“猜测”,因为其提供的文档说明极不详细:
首先关于其Start.S的某段:

normal_start_flow:

       	@if running not boot from  spi/nand/ddr ram,
		@we skipping boot_type checking.
		/*
		0x1400_0000:SFC NAND/NOR MEMORY
地址空间
		*/
    	mov    r0, pc, lsr#24
    	cmp    r0, #0x0
    	bne    do_clr_remap

check_boot_type:
        ldr     r0, =SYS_CTRL_REG_BASE
        ldr     r0, [r0, #REG_SYSSTAT]
        mov     r6, r0, lsr#4
	and     r6, #0x1
	/*
		此处可能有个错误,按照datasheet应该右移31bit才行
	*/
        cmp     r6, #0			@ [4] = 0 FMC /* spi nor | spi nand */
        ldreq   pc, _clr_remap_fmc_entry
     /*
	这里应该永久跳转才对,不然就卡死了。结合下文内容,感觉应该右移31位才对。
*/

	@otherwise, [31]=1 means boot from bootrom, err
	beq	bug

文中的REG_SYSSTAT寄存器在datasheet中的说明如下:

rep_img
rep_img

关于“”启动地址空间“这个词语,我猜测是来至于:0x1400 0000---0x14FF FFFF

关于其FMC还有一句话:

rep_img

这部分说:CPU可以直接读取的最大1MB的数据。

所以对于NAND,直接上电时,NAND器件中的16MB被硬件默认映射到0x1400 0000---0x14FF FFFF这个地址(或者换句话说:0x1400 0000---0x14FF FFFF就是NAND器件中起始16MB这时候的地址),且当cpu上电时,根据内存映射寄存器的值,确定默认是开启内存映射的,于是,0x1400 0000---0x14FF FFFF被映射到了0x0000 0000 0x00FF FFFF中,这个时候PC指向0x0000 0000 开始执行指令。也就是前文所说的:b reset

注意:以上关于NAND启动原理,纯属我的猜测,因为它的datasheet文档确实感觉不够详细。





后记


  无

参考文献




打赏、订阅、收藏、丢香蕉、硬币,请关注公众号(攻城狮的搬砖之路)
qrc_img

PS: 请尊重原创,不喜勿喷。

PS: 要转载请注明出处,本人版权所有。

PS: 有问题请留言,看到后我会第一时间回复。

标签:0000,FFFF,NAND,---,模式分析,r0,HISI3520DV300,DDRC,FMC
From: https://www.cnblogs.com/Iflyinsky/p/17112133.html

相关文章

  • HISI3520DV300 折腾记录(三)之《终篇》
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。前置说明  本文作为本人csdnblog的主站的备份。(BlogID......
  • 【RocketMQ】消息拉模式分析
    RocketMQ有两种获取消息的方式,分别为推模式和拉模式。推模式推模式在【RocketMQ】消息的拉取一文中已经讲过,虽然从名字上看起来是消息到达Broker后推送给消费者,实际上还......
  • 小游戏进入增长快车道,行业变现模式分析
    根据《2022微信小游戏增长白皮书》显示,目前微信小游戏开发者数量已经超过10万人次,特别是在持续出现小游戏爆火社交平台的趋势下,小游戏发展势头强劲。此外仅看微信小游戏的商......
  • Spring 框架的设计理念与设计模式分析
     ​​https://github.com/javahongxi​​Spring作为现在最优秀的框架之一,已被广泛的使用并有很多文章分析它。本文将从另外一个视角试图剖析出Spring框架的作者设计Spring......
  • 拼多多的电子商务盈利模式分析
    拼多多是一家基于 C2B 拼团营销方式主营团购的电商平台,其盈利模式由利润源、利润点、利润杠杆、利润通道和利润屏障五个要素组成的。通过锁定目标客户、关注客户价值、举......