芯片--基本概念:ECO(Engineering Change Order)介绍

目录

ECO(Engineering Change Order)的解释

1. ECO 的目的

2. ECO 的类型

3. ECO 的实施步骤

4. 具体应用场景

详细解释

字段信息

详细解释

示例配置


ECO(Engineering Change Order)的解释

ECO(Engineering Change Order) 是工程变更指令的缩写,是一种在硬件设计完成后进行的小规模修改,以修复已知的问题或改进性能。在硬件设计和制造过程中,ECO 是一种常见的做法,用于在不重新设计整个芯片或系统的情况下,快速解决问题。

1. ECO 的目的
  • 修复错误:解决设计中发现的错误或缺陷。
  • 性能优化:提升系统的性能或效率。
  • 功能增强:增加新的功能或特性。
  • 兼容性改进:改善与其他系统的兼容性。
2. ECO 的类型
  • 逻辑 ECO:修改逻辑设计,通常是通过更改 RTL(寄存器传输级)代码来实现。
  • 物理 ECO:修改物理布局,通常是在布局布线阶段进行调整。
  • 时序 ECO:优化时序路径,以满足时序约束。
  • 功耗 ECO:优化功耗,以降低功耗或提高能效。
3. ECO 的实施步骤
  1. 问题识别:识别需要修复或改进的问题。
  2. 方案设计:设计具体的 ECO 方案,包括修改的逻辑、布局或时序。
  3. 验证:通过仿真和测试验证 ECO 方案的有效性。
  4. 实施:在现有的设计基础上实施 ECO。
  5. 验证和测试:再次进行验证和测试,确保 ECO 没有引入新的问题。
  6. 生产:将修改后的设计投入生产。
4. 具体应用场景

在你提供的例子中,ECO 用于处理 PCIe 设备的 ROMBAR(Read-Only Memory Base Address Register)错误。具体来说:

  • pcie_rombar_eco_disable 字段用于控制是否启用或禁用 ROMBAR ECO 功能。
  • 0:ECO 启用,硬件 ECO 处理 ROMBAR 错误。
  • 1:禁用 ROMBAR ECO,ROM 代码处理此错误,需要使用 PCIe ATU(Address Translation Unit)区域的固定地址映射功能将 PF5 和 PF6 的 ROMBAR 映射到 SPI 闪存的 0-512KB 地址空间。

详细解释

字段信息
  • 地址:41h
  • 位域:31
  • 模块:PCIE
  • 负责人:zouyang
  • 子模块:PCIE_config
  • 名称:pcie_rombar_eco_disable
  • 类型:R/W(读写),RO(只读)
  • 默认值:Y
  • 描述
    • 将此值复制到 PCIe 包装器的 CSR 位:CSR cfg_rd_misc_info_set63_3[31],偏移量为 0xEEC,以启用或禁用 PF5 和 PF6 的 ROMBAR ECO。
    • 0:ECO 启用,硬件 ECO 处理 ROMBAR 错误。
    • 1:禁用 PF5 和 PF6 的 ROMBAR ECO,ROM 代码处理此错误,需要使用 PCIe ATU 区域的固定地址映射功能将 PF5 和 PF6 的 ROMBAR 映射到 SPI 闪存的 0-512KB 地址空间。
详细解释
  1. 字段名称:pcie_rombar_eco_disable

    • 位置:位于地址 41h 的第 31 位。
    • 类型:读写(R/W)和只读(RO)。
  2. 功能

    • 该字段用于控制 PCIe 包装器中 PF5 和 PF6 的 ROMBAR ECO 功能的启用或禁用。
    • ECO:工程变更指令,用于修复 ROMBAR 相关的错误。
  3. 值解释

    • 0:ECO 启用
      • 当此位设置为 0 时,硬件 ECO 功能将处理 ROMBAR 错误。这意味着硬件会自动修正 ROMBAR 相关的问题,无需额外的软件干预。
    • 1:禁用 PF5 和 PF6 的 ROMBAR ECO
      • 当此位设置为 1 时,硬件 ECO 功能将被禁用,ROM 代码将负责处理 ROMBAR 错误。此时,需要使用 PCIe ATU(Address Translation Unit)区域的固定地址映射功能,将 PF5 和 PF6 的 ROMBAR 映射到 SPI 闪存的 0-512KB 地址空间。
  4. CSR 位复制

    • 将 pcie_rombar_eco_disable 字段的值复制到 PCIe 包装器的 CSR(Control and Status Register)位 cfg_rd_misc_info_set63_3[31],偏移量为 0xEEC。
    • 这个复制操作是为了确保 PCIe 包装器中的相关配置与 pcie_rombar_eco_disable 字段的设置一致。

示例配置

假设我们需要禁用 PF5 和 PF6 的 ROMBAR ECO,并使用 PCIe ATU 区域的固定地址映射功能将 PF5 和 PF6 的 ROMBAR 映射到 SPI 闪存的 0-512KB 地址空间:

  1. 设置 pcie_rombar_eco_disable 为 1

     c 

    深色版本

    // 设置 pcie_rombar_eco_disable 为 1
    reg_write(0x41, 0x80000000);  // 设置地址 41h 的第 31 位为 1
  2. 复制值到 CSR 位

     c 

    深色版本

    // 将 pcie_rombar_eco_disable 的值复制到 CSR 位
    reg_write(0xEEC, 0x80000000);  // 设置地址 0xEEC 的第 31 位为 1
  3. 配置 PCIe ATU 区域

     c 

    深色版本

    // 配置 PCIe ATU 区域的固定地址映射
    reg_write(0x100, 0x00000000);  // 设置 ATU 区域的源地址为 0
    reg_write(0x104, 0x00080000);  // 设置 ATU 区域的目标地址为 0x00080000(512KB)
    reg_write(0x108, 0x00000001);  // 启用 ATU 区域

这样配置后,硬件 ECO 功能将被禁用,ROM 代码将负责处理 ROMBAR 错误,并使用 PCIe ATU 区域的固定地址映射功能将 PF5 和 PF6 的 ROMBAR 映射到 SPI 闪存的 0-512KB 地址空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蘑菇二号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值