Content of /proc/iomem

后端 未结 1 653
别那么骄傲
别那么骄傲 2020-12-10 23:12

1) Is it possible to access a physical address which is not defined in /proc/iomem?

2) If the physical address range of a device does not appear in /proc/iomem, does

相关标签:
1条回答
  • 2020-12-10 23:52

    1) Is it possible to access a physical address which is not defined in /proc/iomem?

    Yes.
    Assuming an ARM processor which memory maps all directly-connected periperals, the driver could perform an ioremap() operation to map the physical memory to virtual memory for access.
    But a properly written driver would first call request_mem_region() to ensure that it can use (and lay claim to) that physical address space.
    The information in /proc/iomem comes from drivers calling request_mem_region().

    2) If the physical address range of a device does not appear in /proc/iomem, does it mean that the device has not been utilized/initialized yet?

    You would have to inspect the driver code to determine how well written the driver is.
    Is there a request_mem_region() before the ioremap()?
    Check the system log using the dmesg command; perhaps driver initialization failed.

    Assuming that this is a statically-linked driver rather than a loadable module, then as each kernel device driver has its init() routine called you can get trace output by having added the option "initcall_debug" on the kernel command line. If you are using U-Boot, then this option should be added to the "bootargs" variable (which is used for the kernel command line).

    0 讨论(0)
提交回复
热议问题