【问题标题】:Where (in memory) does Linux kernel store 'special' bus addresses?Linux内核在哪里(在内存中)存储“特殊”总线地址?
【发布时间】:2015-07-30 14:37:19
【问题描述】:

当内核启动时,它必须找到硬件并准备好运行程序。内核“查看” I/O 端口——可能有设备控制器卡的特殊总线地址。内核不会随意戳;它有很多关于它可能在哪里找到的内置知识,以及控制器在它们存在时将如何响应。来源:http://www.tldp.org/HOWTO/Unix-and-Internet-Fundamentals-HOWTO/bootup.html

那些特殊的总线地址是否存储在内核空间中?

谢谢!

【问题讨论】:

  • “存储在内核空间中的地址”的含义并不完全清楚。你的意思是“映射到内核空间”吗?
  • 是的,我的意思是映射到内核空间。

标签: linux linux-kernel linux-device-driver


【解决方案1】:

是的,它们存储在内核空间内存中。有一个名为 request_region 的内核函数,驱动程序可以使用它来“注册”它打算使用的 I/O 端口范围。内核将这些已注册的 I/O 端口“区域”保存在树状结构中,该结构(当然)驻留在内核内存中。各个驱动程序还跟踪他们在自己的内存(即内核空间内存)中使用的 I/O 端口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-09
    • 2013-11-04
    • 2019-05-26
    • 2021-10-18
    • 2018-07-15
    • 1970-01-01
    • 2013-11-10
    • 2013-04-04
    相关资源
    最近更新 更多