首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Simics中读取端口IO?

如何在Simics中读取端口IO?
EN

Stack Overflow用户
提问于 2021-10-26 13:07:08
回答 1查看 42关注 0票数 1

我可以从帮助搜索中看到有一个".read",但我不知道如何找到CPU的名称。

EN

回答 1

Stack Overflow用户

发布于 2021-10-26 13:35:44

处理器核心的port_space属性指向用于端口访问的内存空间对象。您可以使用get/set (用于非体系结构访问)、read/write (用于体系结构访问)直接访问内存空间对象,例如:

代码语言:javascript
复制
simics> board.mb.cpu0.core[0][0]->port_space 
"board.mb.cpu0.ports_proxy[0][0]"
simics> board.mb.cpu0.ports_proxy[0][0].write 0xcf9 0xff size=1
[board.mb.nb.pci_bus info] sending hot_reset

您还可以遍历内存空间,以查找在那里准确映射的内容:

代码语言:javascript
复制
simics> board.mb.cpu0.ports_proxy[0][0].map 
+---------+-------------------+--+------+------+------+----+-----+----+
|     Base|Object             |Fn|Offset|Length|Target|Prio|Align|Swap|
+---------+-------------------+--+------+------+------+----+-----+----+
|-default-|board.mb.port_mem_m|  |   0x0|      |      |    |     |    |
+---------+-------------------+--+------+------+------+----+-----+----+
simics> board.mb.port_mem_m.map 
+----+-----------------+--+------+-------+------+----+-----+----+
|Base|Object           |Fn|Offset| Length|Target|Prio|Align|Swap|
+----+-----------------+--+------+-------+------+----+-----+----+
| 0x0|board.mb.port_mem|  |   0x0|0x10000|      |   0|     |    |
+----+-----------------+--+------+-------+------+----+-----+----+
simics> board.mb.port_mem.map 
+---------+-------------------------------+--+------+------+------+----+-----+----+
|     Base|Object                         |Fn|Offset|Length|Target|Prio|Align|Swap|
+---------+-------------------------------+--+------+------+------+----+-----+----+
|    0x402|board.mb.conf                  |  |   0x0|   0x1|      |   0|     |    |
|    0x510|board.mb.conf                  | 3|   0x0|   0x2|      |   0|     |    |
|    0x511|board.mb.conf                  | 4|   0x0|   0x1|      |   0|     |    |
|    0xcf8|board.mb.nb.bridge.bank.io_regs|  | 0xcf8|   0x4|      |   0|     |    |
|    0xcf9|board.mb.sb.cf9                |  |   0x0|   0x1|      |   0|     |    |
|    0xcfc|board.mb.nb.bridge.bank.io_regs|  | 0xcfc|   0x4|      |   0|     |    |
|    0xcfd|board.mb.nb.bridge.bank.io_regs|  | 0xcfd|   0x2|      |   0|     |    |
|    0xcfe|board.mb.nb.bridge.bank.io_regs|  | 0xcfe|   0x2|      |   0|     |    |
|    0xcff|board.mb.nb.bridge.bank.io_regs|  | 0xcff|   0x1|      |   0|     |    |
|   0xfff0|board.mb.conf                  |  |   0x0|   0x1|      |   0|     |    |
|   0xfff1|board.mb.conf                  | 1|   0x0|   0x1|      |   0|     |    |
|   0xfff2|board.mb.conf                  | 2|   0x0|   0x2|      |   0|     |    |
|   0xfff4|board.mb.shadow                |  |   0x0|   0x1|      |   0|     |    |
|   0xfff5|board.mb.shadow                |  |   0x1|   0x1|      |   0|     |    |
|-default-|board.mb.nb.pci_bus.io_space   |  |   0x0|      |      |    |     |    |
+---------+-------------------------------+--+------+------+------+----+-----+----+
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69723696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档