[ros-kernel] PCI device memory mapping into usermode - Page at address 0xXxx not usable

Royce Mitchell III royce3 at ev1.net
Tue Aug 17 19:06:21 CEST 2004


This question seems to have gone unanswered. Does anybody have any ideas 
to share with Gregor?

Gregor Anich wrote:

> Hi!
>
> From time to time I am working to get the NVIDIA OpenGL driver running 
> a bit... It is trying to map it's framebuffer into user-mode using 
> VideoPortMapMemory() (reactos/drivers/video/videoprt/resource.c) which 
> does not handle usermode at the moment, but I am trying to fix it. 
> People told me to map a view of \Device\PhysicalMemory into usermode. 
> If I do this (given the physical address from 
> HalTranslateBusAddress()) all the calls succeed and I return a 
> user-mode pointer. On the first access to this area a not-present 
> fault happens and the mm is trying to create the mapping now. It fails 
> in ntoskrnl/mm/i386/page.c, line 1212 (MmCreateVirtualMapping()) - 
> Page at address 0xf0043000 not usable - bugcheck. This happens because 
> the physical address is only checked against physical ram by 
> MmIsUsablePage() I guess.
> In windows 2k on my machine when I look at the memory ranges of my GF2 
> GTS there is one which covers 0xf0000000-0xf7ffffff so I think 
> 0xf0043000 should be usable and MmIsUsablePage() is wrong.
>
> When looking at MmIsUsablePage() (ntoskrnl/mm/freelist.c, line 746) I 
> wonder why it doesn't check if the calculated Start is >= 
> MmPageArraySize - isnt that a bug for any physical address checked >= 
> MmPageArraySize * PAGE_SIZE?
>
> When I uncomment the call to MmIsUsablePage() and the following 
> bugcheck the NVIDIA driver does neither crash nor display any kind of 
> output.
>
> Thanks,
>  blight
> _______________________________________________
> Ros-kernel mailing list
> Ros-kernel at reactos.com
> http://reactos.com/mailman/listinfo/ros-kernel
>
> .
>


-- 
------------------------
http://wecanstopspam.org



More information about the Ros-kernel mailing list