This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/DRA756:如何在 DRA75x 上配置2GB DDR

Guru**** 2540720 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/600861/linux-dra756-how-to-config-the-2gb-ddr-on-dra75x

器件型号:DRA756

工具/软件:Linux

各位专家:

我使用处理器 SDK 3.02.00.03在 DRA75x 上配置2GB DDR。 但它不能访问 u-boot 中的0xFF00_0000 ~ 0xFFFFF_FFFF。

EMIF1 --> 4Gb * 2 = 1GB
EMIF2 --> 4Gb * 2 = 1GB

const 结构 DMM_LISA 映射寄存器 LISA 映射_dra7_2GB ={
.dm_lisa_map_0 = 0x0、
.dm_lisa_map_1 = 0x0、
.dm_lisa_map_2 = 0x80740300、
.dm_lisa_map_3 = 0xFF020100、
.in_ma_present = 0x1
};

.dm_LISA_MAP_2 = 0x80740300、(SYS_ADDR = 0x8000_0000、SYS_SIZE = 2GB、SDRC_INTL = 128字节交错、SDRC_ADDRPC = 0x00 (SDRAM)、SDRC_MAP = EMIF1和 EMIF2交错、SDRC_ADDR = 0x0000_0000)

.dm_lisa_map_3 = 0xFF020100、(SYS_ADDR = 0xFF00_0000、SYS_SIZE = 16MB、SDRC_INTL =无交错、SDRC_ADDRSPC = 0x02 (SDRAM)、SDRC_MAP = EMIF1、SDRC_ADDR = 0x0000_0000)

将 Lisa 地图更改为下面的内容。  它可以访问 u-boot 中的0xFF00_0000 ~ 0xFFFFF_FFFF

const 结构 DMM_LISA 映射寄存器 LISA 映射_dra7_2GB ={
.dm_lisa_map_0 = 0x0、
.dm_lisa_map_1 = 0x0、
.dm_lisa_map_2 = 0x80740300、
.dm_lisa_map_3 = 0x0、
.in_ma_present = 0x1
};

为什么我们设置 DMM_LISA_MAP_3 = 0xFF020100?

BR

Joe

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、Joe

    DMM 第3节中配置的16M 区域是供 Tiler 捕获未映射的平铺条目的保留区域。 u-boot 从总 DDR 大小2G 推断出该16MB 区域、然后再传递到内核。 DDR 大小为2GB 减16MB。

    此致
    Ravi
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ravi:

    感谢您的更新。

    此 DMM 第3节是否为 Tiler 保留为16MB? 我们可以更改这个大小吗?

    我不清楚这个为 Tiler 保留的区域有什么功能、它用于描述地址转换表? 请提供更多详细信息吗?

    此致

    Joe

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Ravi:

    Tiler 函数是否在最新的处理器 SDK 或 Android SDK 中启用? 我可以使用哪种用例来测试平铺机功能?
    客户想要检查他们是否可以禁用平铺机功能?

    此致
    Joe
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Joe
    一般情况下、Tiler 区域用于支持散聚功能(在平铺机1-D 模式下)。 默认情况下、视频缓冲区(用于显示、多媒体)被分配为页面的散聚列表、并使用 Tiler 条目连续映射。 如果您根本不想使用 Tiler、我们将需要其他方法来管理视频缓冲区所需的连续大型缓冲区的分配- Linux 支持 CMA 区域作为选项-尽管这可能不是视频缓冲区分配的默认路径。

    此外、请澄清您使用的 SDK 版本

    如果使用了 Tiler (这是默认选项)、则我们需要能够捕获对 Tiler 表中未映射条目的访问。

    返回到 Git commit 消息、该消息添加了对平铺机陷阱部分的支持
    "使用设置平铺空间中的未映射条目
    值0xFF。 创建 DMM 部分
    大小为16MB、0xFF000000、ADDRSPACE 设置为0x2。

    这样、所有未映射的条目都将访问平铺器
    被 EMIF 和错误响应捕获
    发送到 L3互连。 L3错误
    向 MPU 报告了匝。

    请注意、这里的平铺层陷阱部分是重叠的
    实际的 DDR 物理空间、我们将丢失16MB
    总容量为2GB。 "


    总之、预计 Tiler 模块将用于映射视频缓冲区的散聚页面列表、在这种情况下需要16MB 区域来捕获对平铺器的未映射条目访问。

    此致
    Sriram
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Sriram、

    非常感谢您的详细解释。
    我测试了最新的 Android SDK 6.A.1.3、将修订版 H 上的 DMM_LISA_MAP_3设置为0 基本功能正常。
    我将在处理器 SDK 3.02.00.03上试用它。

    此致
    Joe