Opened 14 years ago
Closed 13 years ago
#336 closed enhancement (fixed)
IRQ pseudocode needs to be able to access device I/O registers mapped at arbitrary address
Reported by: | Jakub Jermář | Owned by: | Jakub Jermář |
---|---|---|---|
Priority: | major | Milestone: | 0.5.0 |
Component: | helenos/kernel/generic | Version: | |
Keywords: | Cc: | ||
Blocker for: | Depends on: | #329, #330, #331, #332, #333, #334, #335 | |
See also: | #3 |
Description
Currently, the IRQ pseudocode can only access device I/O registers that are accessible via the kernel identity mapping. However, some I/O registers are located on addresses that are out of the reach of the kernel identity mapping.
There have already been several proposals how to address this problem:
- implement some sort of non-identity mapping for kernel (must be locked in page tables)
- switch to the address space of the task which registered the pseudocode and use its userspace non-identity mapping
Note that all operations that take place during IRQ pseudocode execution, including possible TLB miss handling, may not carry out blocking operations (e.g. use passive synchronization primitives).
Change History (2)
comment:1 by , 14 years ago
Summary: | The IRQ pseudocode needs to be able to access device I/O register mapped at arbitrary address → IRQ pseudocode needs to be able to access device I/O registers mapped at arbitrary address |
---|
comment:2 by , 13 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Note:
See TracTickets
for help on using tickets.