openUBMC Chip Abstract Layer V0.1
载入中...
搜索中...
未找到
Localbus(异步静态存储器接口)

保持现状

接口用途

  • runtime_accessor MDS对象访问

对比

<tt>init</tt>

  • 原接口
    void init(uint32_t id);
  • 新接口
    void config(int32_t index, void *config, uint32_t size);
  • 变更说明 id用于指定设备锁的初始化,新的架构不需要

<tt>read</tt>

  • 原接口
    using LOCAL_BUS_OPT_S = struct {
    uint32_t cs; /* 片选, L_BUS_CS_E */
    uint32_t type; /* 0为按字节访问,1为按比特位访问 */
    uint32_t offset; /* 偏移位置,以片选器件的访问位宽对齐 */
    uint32_t len; /* 读/写数据的长度, 单位:字节;大于等于1,小于等于0x1000,以片选器件的访问位宽对齐;
    按照bit访问时,长度值必须等于位宽的字节数 */
    uint32_t mask; /* 比特掩码,1有效,按比特访问时有效,驱动只取与器件位宽一致的位数,其他的比特位不关注 */
    uint8_t *data; /* 读/写数据 */
    };
    string read(LOCAL_BUS_OPT_S *l_bus_opt);
  • 新接口
    string_t read(int32_t index, uint32_t type, uint32_t offset, uint32_t len, uint32_t mask);
  • 变更说明 拆分LOCAL_BUS_OPT_S结构 cs指Localbus片选,这里使用index统一管理

<tt>write</tt>

  • 原接口
    void write(LOCAL_BUS_OPT_S *l_bus_opt, const string_view &val);
  • 新接口
    int32_t write(int32_t index, uint32_t type, uint32_t offset, uint32_t len, uint32_t mask, const string_t &val);
  • 变更说明 拆分LOCAL_BUS_OPT_S结构

<tt>set_timing</tt>

  • 原接口
    struct LOCAL_BUS_TIMING_S {
    uint32_t cs; /* 要写入的片选 */
    uint32_t type; /* 要配置的时序参数类型 */
    uint8_t value; /* 要写的时序值 */
    };
    void set_timing(const LOCAL_BUS_TIMING_S *timing) const;
  • 新接口
    void set_timing(int32_t index, uint32_t type, uint8_t value);
  • 变更说明 拆分LOCAL_BUS_TIMING_S结构
  • 用途 初始化生效,用于Localbus.LALE, Addr2DataNum属性生效

<tt>set_timing</tt>

  • 原接口
    void set_bitwide_and_offset(uint8_t cs, uint8_t cf_addr_offset, uint8_t bit_wide) const;
  • 新接口
    void set_bitwidth_and_offset(int32_t index, uint8_t addr_offset, uint8_t width);
  • 变更说明 参数重命名
  • 用途 初始化生效,用于Localbus.AddrOffset属性生效