Dave,
I am doing this from user space right now.  I am using fd "/dev/mem" which
is what Mr. Rubini's book example and he's advice via e-mail was.

What is the difference between "/dev/mem" and "/dev/kmem" ?  

I'll try "/dev/kmem" and I'll try and look at the SVGAlib source.

I truely did not think accessing a memory mapped card would be trouble from
user space and I thought it would be easier until things are working (if you
can map it).  I'll also try it from kernel space if all else fails. 

Thanks - 
Janet


> -----Original Message-----
> From: David Schleef [SMTP:[EMAIL PROTECTED]]
> Sent: Monday, January 10, 2000 12:24 PM
> To:   Estabridis, Janet P
> Cc:   'RT Linux Group'
> Subject:      Re: [rtl] Memory Mapped ISA Video Frame Grabber Help
> 
> On Mon, Jan 10, 2000 at 06:39:25AM -0800, Estabridis, Janet P wrote:
> > Hi,
> > This is not really a real-time question, but if someone could help I'd
> > appreciate it.  Eventually a real-time task will update my video monitor
> at
> > 30 Hz.
> > 
> > I have kernel 2.0.36 with RTLv1.1.  I am currently trying to get a
> > Imagenation ISA video frame grabber  (model CX100-30) with overlay
> memory up
> > and running.  Alessandro Rubini has created a very limited device driver
> for
> > it which does not support video overlay memory.  My task is quite
> simple, I
> > simply need to update some text fields of the video overlay memory.  So,
> I
> > figured that I would do it in user space first to create all the static
> text
> > and see how I need to update the dynamic text in non-real time, then
> worry
> > about real-time and a device driver.
> > 
> > The card has I/O register that I can control.  The overlay memory (or
> ram
> > memory - they share the same addresses and you select which you want to
> > write to via an i/o register) take up 64K (0xFFFF) of address space from
> > 0x80000 to 0xF0000.  I have set the card up to be at address 0xA0000
> because
> > when I used Rubini's device driver there was a routine to check to see
> where
> > there was free space and 0xA0000 and 0xB0000 came up as free.  (I did
> notice
> > in the companies DOS routines that this was also shared with the vga
> card
> > and they turn the vga card off to write to the frame grabber.  But, I
> have
> > e-mailed Rubini and he never mentioned that I needed to do anything like
> > that and there was nothing that I could see in his device driver source)
> 
> > 
> > In order to get to that address I'm using the mmap routine.
> > 
> > My mmap is as follows:
> > 
> > unsigned char * address;
> > int         fd;
> > 
> > address = (unsigned char *) mmap( (void *)0xA0000, 0xFFFF, PROT_READ |
> > PROT_WRITE, MAP_FILE | MAP_PRIVATE | MAP_FIXED, fd, 0 );
> > 
> > This returns successfully and address = 0xA0000. 
> > 
> > But, if I assign values to this address space  0xA0000 - 0xAFFFF it is
> as if
> > I am not accessing the cards memory at all.  I simply use *address =
> > (unsigned char)0xff which should make the overlay pixel a white dot.
> > 
> > So, am I using mmap wrong ?  Is there something else I need to do to
> utilize
> > this card via Linux ?  Am I doing something stupid and someone out there
> can
> > set me straight ?  Is there a better way to do this ?  HELP !!!!! 
> > 
> 
> What fd are you using?  Are you doing this from user space?  I can't
> possibly see how this would work.
> 
> In a driver, you can get the mapped address of ISA himem by using
> 
>    ptr = bus_to_virt( 0xa0000 );
> 
> If you really want to access the device from user space, you could
> probably
> map /dev/kmem at the appropriate pointer.  To do this, I'd start by
> looking
> at the source for SVGAlib, which does (used to do) a similar mapping for
> video cards.
> 
> As for kernel drivers, look in drivers/net for examples.  Grep for
> 0xa0000.
> Some older SCSI cards used to use high memory, also.
> 
> 
> 
> dave...
--- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
----
For more information on Real-Time Linux see:
http://www.rtlinux.org/~rtlinux/

Reply via email to