M_chenyang

M_chenyang

1个粉丝

14

问答

0

专栏

0

资料

M_chenyang  发布于  2016-10-11 10:54:13
采纳率 0%
14个问答
10312

Hi3536 内存映射问题

 
由于项目需求  HI3536使用内存1GByte。主CPU分配512M,从CPU分配512M。
烧录使用SDK中默认的Uboot镜像,引导从CPU时加载内核时出现失败,追其原因:0x8000 0000~0x9FFF FFFF与0x4000 0000~0x5FFF FFFF出现内容同步,就是我往0x4000 0000写入某个值后,0x8000 0000内存单元的内容也发生了改变。

如下是SDK中 2GByte使用的内存映射配置信息:
AXI_REGION_MAP                    0x0100         0x1600
AXI_REGION_MAP                    0x0110         0x1640
AXI_REGION_ATTRIB        0x0104         0x71050028
AXI_REGION_ATTRIB        0x0114         0x71052028

请问有过配置经验的兄弟们指导一下! 我需要怎么配置才能使得 0x4000 0000~0x5FFF FFFF 给DMC0,   0x8000 0000~0x9FFF FFFF 给DMC1?
在此先感谢朋友们的帮助!
我来回答
回答13个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-10-11 11:24:38
认可0
试试
AXI_REGION_MAP                    0x0100         0x1600 --> 0x1500
AXI_REGION_MAP                    0x0110         0x1640 --> 0x1540

M_chenyang

1个粉丝

14

问答

0

专栏

0

资料

M_chenyang 2016-10-11 11:28:52
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=39091&ptid=12922]zhuangweiye 发表于 2016-10-11 11:24[/url]
试试
AXI_REGION_MAP                    0x0100         0x1600 --> 0x1500
AXI_REGION_MAP             ...[/quote]

感谢你的帮助!在发贴之前,我测试了好几组数据,包括你提出的建议数据都是一样的现象。
默认的配置中AXI_REGION_ATTRIB   0x0114   0x71052028   这个要怎么解释呢?

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-10-11 11:50:53
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=39092&ptid=12922]M_chenyang 发表于 2016-10-11 11:28[/url]
感谢你的帮助!在发贴之前,我测试了好几组数据,包括你提出的建议数据都是一样的现象。
默认的配置中AX ...[/quote]

硬件是如何接的?

M_chenyang

1个粉丝

14

问答

0

专栏

0

资料

M_chenyang 2016-10-11 12:22:34
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=39093&ptid=12922]zhuangweiye 发表于 2016-10-11 11:50[/url]
硬件是如何接的?[/quote]

DMC0接2片速率为1866的16bit的2Gbit内存
DMC1接2片速率为1866的16bit的2Gbit内存

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-10-11 14:06:19
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=39094&ptid=12922]M_chenyang 发表于 2016-10-11 12:22[/url]
DMC0接2片速率为1866的16bit的2Gbit内存
DMC1接2片速率为1866的16bit的2Gbit内存[/quote]

试试
AXI_REGION_MAP                    0x0100         0x1500
AXI_REGION_MAP                    0x0110         0x1520

0x4000 0000 - 0x7fff ffff是有效的物理地址

M_chenyang

1个粉丝

14

问答

0

专栏

0

资料

M_chenyang 2016-10-11 15:01:27
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=39108&ptid=12922]zhuangweiye 发表于 2016-10-11 14:06[/url]
试试
AXI_REGION_MAP                    0x0100         0x1500
AXI_REGION_MAP                    0 ...[/quote]

照你的方法,现象还是一样 0x62000000 ~0x7fff ffff的内存是无效的  0x82000000 ~0x9fff ffff是可以写入的,内容还是跟0x4000 0000同步。
说说我的理解吧!
AXI_REGION_MAP                    0x0100         0x1600
AXI_REGION_MAP                    0x0110         0x1640
AXI_REGION_ATTRIB        0x0104         0x71050028
AXI_REGION_ATTRIB        0x0114         0x71052028

以上是SDK默认的配置,分成两个区域,区域0:0x0000 0000~0x3FFF FFFF 1GByte双通道交织映射 分别映射到通道0的0~0.5GByte 和通道1的0~0.5GByte
区域0:0x4000 0000~0x7FFF FFFF 1GByte双通道交织映射 分别映射到通道0的0.5~1GByte 和通道1的0.5~1GByte   这也是0x71052028中0x20的由来!  以上是个人的见解,不知是否有误?

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-10-11 15:36:22
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=39118&ptid=12922]M_chenyang 发表于 2016-10-11 15:01[/url]
照你的方法,现象还是一样 0x62000000 ~0x7fff ffff的内存是无效的  0x82000000 ~0x9fff ffff是可以写入 ...[/quote]

双通道交织, 是要根据地址交织颗粒的大小来确定

个人理解是

假定 地址交织颗粒的大小是 256Bytes, 那么 0x0 - 0xff 在 DMC0上, 0x100-0x1ff 在DMC1上, 依次类推(这里使用的是偏移地址)
这样才能充分利用两个通道提高DDR的读写




M_chenyang

1个粉丝

14

问答

0

专栏

0

资料

M_chenyang 2016-10-11 15:48:21
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=39127&ptid=12922]zhuangweiye 发表于 2016-10-11 15:36[/url]
双通道交织, 是要根据地址交织颗粒的大小来确定

个人理解是
[/quote]

区域1 定义为 1Gbyte ,base_addr=32’h4000_0000 ,双通道交织映射,分别映射到
通道0 的1GByte~1.5GByte 和通道1 的0~0.5Gbyte 。
配置0x110 地址的寄存器AXI_REGIOM_MAP_1[rgn_en]=1, [rgn_size]=3’h6(1GB
大小), [rgn_base_addr]= 8’h40 (取高8 位)。
配置0x114 地址的寄存器AXI_REGIOM_ATRIB_1[ch_mode]=2’b10 ,即:该地址
区域映射到双通道上。通过配置AXI_REGIOM_ATRIB_1[ch_start]=2’b00,则双通
道从通道0 开始,通过配置AXI_REGIOM_ATRIB_1[ch_offset]=8’h40 则该地址区
域通道0 的起始地址偏移了 32’h4000_0000,相对通道 1 的起始地址为
32’h0000_0000(卷绕)

以上为DDR和通道配置指导说明中举的一个例子。你的见解应该是对的,你说的更细的层次

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2016-10-11 16:33:05
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=39131&ptid=12922]M_chenyang 发表于 2016-10-11 15:48[/url]
区域1 定义为 1Gbyte ,base_addr=32’h4000_0000 ,双通道交织映射,分别映射到
通道0 的1GByte~1.5GBy ...[/quote]

是不是DDRC_CFG_RNKVOL没有写对? 导致出现不同地址实际写到了同一DDR上去了

另外:
楼主的例子, 在我的SDK文档中并没有, 我这里是一个接3G的例子

举例如下:
假如软件可以访问存储地址空间为 0xffff_ffff~0x4000_00000,即:可以访问3Gbyte 的
存储空间(经过内部转换后,在mddrc 内看到到访问存储器地址为
0xbfff_ffff~0x0000_0000)。通道0 是对接32bit 2GB;通道1 是对接32bit 1GB。

楼主的情况其实只要设一个区域即可

M_chenyang

1个粉丝

14

问答

0

专栏

0

资料

M_chenyang 2016-10-11 16:54:30
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=39139&ptid=12922]zhuangweiye 发表于 2016-10-11 16:33[/url]
是不是DDRC_CFG_RNKVOL没有写对? 导致出现不同地址实际写到了同一DDR上去了

另外:
[/quote]

DDRC_CFG_RNKVOL   0x132   
我们资料一样的。我也是针对接3G的例子进行理解。

M_chenyang

1个粉丝

14

问答

0

专栏

0

资料

M_chenyang 2016-10-12 13:57:27
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=39139&ptid=12922]zhuangweiye 发表于 2016-10-11 16:33[/url]
是不是DDRC_CFG_RNKVOL没有写对? 导致出现不同地址实际写到了同一DDR上去了

另外:
[/quote]

配置正常了,一方面是因为我测试的时候,烧错的镜像,导致一直没变化。连续地址0x4000 0000~0x7fff ffff

zxc

0个粉丝

1

问答

0

专栏

0

资料

zxc 2018-06-26 11:31:42
认可0
                                                                      学习了

qiaoqg

0个粉丝

2

问答

0

专栏

0

资料

qiaoqg 2018-06-26 11:36:59
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=39139&ptid=12922]zhuangweiye 发表于 2016-10-11 16:33[/url]
是不是DDRC_CFG_RNKVOL没有写对? 导致出现不同地址实际写到了同一DDR上去了

另外:
[/quote]

庄工:
我们在使用Hi3536的时候想把内存换成3G的遇到点问题,您能帮忙看看这块DDR怎么配置?
ddr0接口用的是两片MT41K512M16HA-107/SMD/FBGA-96无铅共2GByte  ,ddr1_接口用的是两片K4B4G1646D-BCKO/SMD/FBGA-96无铅共1GByte 同时我们还使用到了Hi3536的vi接口,因为vi接口与nandflash接口共用引脚,因些我们使用了spi_nand_flash型号为MX35LF2GE4AB/SMD/SOP16。
我的邮箱是[email]zhangrd@chnsys.com.cn[/email]
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区