Opened 12 years ago
Closed 11 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 Changed 12 years ago by
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 Changed 11 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Note: See
TracTickets for help on using
tickets.