How to access VRAM physical address on L4 ?

View: New views
6 Messages — Rating Filter:   Alert me  

How to access VRAM physical address on L4 ?

by Katsumi Maruyama :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Dear:

Question: How to access VRAM physical address on L4 ?

We are implementing a multi server OS on L4.
QEMU and VMware are used for OS run-test.

We are now considering to develope a simple VGA driver
for QEMU (using -stdvga mode).

QEMU (-stdvga option) allows us to set the VRAM area
at physical address 0xe0000000.

Sigma0 do not know this VRAM area, and we cannot
ask sigma0 to map it to a process.
We wonder how to access the physical VRAM area
from the L4 user-mode process.

Thanks in advance.
---
K. Maruyama





Re: How to access VRAM physical address on L4 ?

by Philipp Kupferschmied :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

there had been a similar question on the list a few month ago, so perhaps this old discussion can help you with your problem:
https://lists.ira.uni-karlsruhe.de/pipermail/l4ka/2008-February/002042.html

Cheers,
Philipp


Re: How to access VRAM physical address on L4 ?

by lion :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

It said there:
Physical memory lying in the kernel area (i.e., beyond 3GB) cannot be mapped
idempotently. You need to remap that memory to a virtual address in user
area. You can do so by leveraging sigma0's RPC protocol (see the spec,
chapter 7.6), requesting sigma0 to map the VGA or other device memory to a
specified virtual address.

Our own pager not sigma0 can do these map?

Philipp Kupferschmied wrote:
Hi,

there had been a similar question on the list a few month ago, so perhaps this old discussion can help you with your problem:
https://lists.ira.uni-karlsruhe.de/pipermail/l4ka/2008-February/002042.html

Cheers,
Philipp

Re: How to access VRAM physical address on L4 ?

by Philipp Kupferschmied :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> Our own pager not sigma0 can do these map?

Your pager has to "ask" sigma0 for the page(s) it needs, and it has to set its receive window accordingly. The receive window allows the pager to specify to where the fpage that sigma0 returns is mapped.
Convenience functions for requesting memory from sigma0 can be found in user/include/l4/sigma0.h

Hope this helps,
Philipp


RE: How to access VRAM physical address on L4 ?

by lion :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.
Thank you, Philipp.  It's clearly.
Another little question.
All pager's has to "ask" sigma0 for the page. Whether it becomeing the  performance bottleneck.

---
Best regards

Bo Liu

>
> Your pager has to "ask" sigma0 for the page(s) it needs, and it has to set its receive window accordingly. The receive window allows the pager to specify to where the fpage that sigma0 returns is mapped.
> Convenience functions for requesting memory from sigma0 can be found in user/include/l4/sigma0.h
>
> Hope this helps,
> Philipp



Explore the seven wonders of the world Learn more!

Re: How to access VRAM physical address on L4 ?

by Philipp Kupferschmied :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> All pager's has to "ask" sigma0 for the page. Whether it becomeing the
> performance bottleneck.

On system startup, user-level pager(s) should request the memory they need from sigma0. Thus, once the system is completely up and running, sigma0 has no pages left to give out, and there should be no reason for user-level pagers or other threads to interact with sigma0 any more.
Consequently, the performance of sigma0 is no longer important once the other pagers are running and have acquired their memory.

Cheers,
Philipp