Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ioremap() limitations #4

Open
penberg opened this issue Nov 17, 2017 · 0 comments
Open

ioremap() limitations #4

penberg opened this issue Nov 17, 2017 · 0 comments

Comments

@penberg
Copy link
Collaborator

penberg commented Nov 17, 2017

As detailed in penberg@f910abf, the ioremap() function has serious limitations:

  • ioremap() doesn't doseparate virtual memory allocation. Instead, it uses the user-provided I/O memory address as the virtual address, which can cause problems if I/O memory address space overlaps with physical address space, for example.
  • ioremap() does not set any appropriate cache bits for the page table entry, which can cause problems when accessing the I/O memory region (e.g. stale reads or writes not hitting I/O device because of write-back).

Both issues need to be addressed for ioremap() to be robust and work across different devices and platforms.

tapaswenipathak added a commit to tapaswenipathak/manticore that referenced this issue Sep 1, 2019
Fixes ioremap() limitations for virtual memory allocation and appropriate cache bits for page table entry

Fixes manticoreos#4.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant