Fork us on GitHub Follow us on Facebook Follow us on Twitter

Opened 8 years ago

Closed 8 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 8 years ago by Jakub Jermář

Summary: The IRQ pseudocode needs to be able to access device I/O register mapped at arbitrary addressIRQ pseudocode needs to be able to access device I/O registers mapped at arbitrary address

comment:2 Changed 8 years ago by Jakub Jermář

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.