nanogui: Thread: Running document -- RTEMS framebuffer interface specification


[<<] [<] Page 1 of 2 [>] [>>]
Subject: Running document -- RTEMS framebuffer interface specification
From: Rosimildo daSilva ####@####.####
Date: 4 Feb 2000 16:17:52 -0000
Message-Id: <200002041607.IAA04694@www2.xoommail.com>

Hi,

I have put something together as a starting point  for the design of 
"framebuffer" interface
for RTEMS. 

I would appreciate any inputs on how the documented should be outlined, 
and any addition/removal
of content.

It is intended as a "minimal feature list" that the interface should 
provide, so we can get some
understanding of what we intend to implement. :-).

http://members.xoom.com/rosimildo/mw_rtems_drv.html

Everybody is welcomed to add to it. I guarantee to add your name to the 
list of
contributors. :-).

Rosimildo.





______________________________________________________
Get your free web-based email at http://www.xoom.com
Birthday? Anniversary? Send FREE animated greeting
cards for any occasion at http://greetings.xoom.com


Subject: Re: Running document -- RTEMS framebuffer interface specification
From: "Greg Haerr" ####@####.####
Date: 4 Feb 2000 17:42:09 -0000
Message-Id: <022601bf6f35$90e156e0$15320cd0@gregh>

: I have put something together as a starting point  for the design of
: "framebuffer" interface
: for RTEMS.

Rosimildo -
    It's a good start, I like the diagram ;-).  Using the source from Linux
framebuffer code could be a great idea since that's a heck of alot of code
that doesn't have to be rewritten.  There are considerations, though, and that's
that there's quite a bit of 16-bit boot code that's executed for the Linux
video stuff before the framebuffer code ever executes.  So it's going to
be complicated.

Perhaps a better idea would be to start with a ripped version of the
sfb.c (simple framebuffer), kind of a skeleton, and make it work with
the RTEMS console, using the VGA code that we're currently using
in Microwindows, and is known to work.

After that, adding chipsets by inspecting some of the Linux fb code could
work...  It could be a big project, depending on which cards we want to
support.

Regards,

Greg

Subject: Re: Running document -- RTEMS framebuffer interface specification
From: "Greg Haerr" ####@####.####
Date: 4 Feb 2000 17:51:46 -0000
Message-Id: <024b01bf6f36$ee7dc440$15320cd0@gregh>

Rosimildo,
    As I think about this a little more, one important factor is
whether or not RTEMS wants to support graphics mode for
console operation.  This adds complexity.  If merely a framebuffer
is desired, it is quite a bit simpler, because all RTEMS has to manage
is the switch between text and graphics, video init, and the actual
framebuffer mapping.

To support a graphics console, there have to be quite a few more entry points,
and the framebuffer code has to support being accessible inside
the kernel, rather than just address-mapped video memory access to
applications.

Frank's PK supports a graphics console, and he has kept the
system quite simple.  Perhaps his code is a good place to start.

Greg

Subject: Re: Running document -- RTEMS framebuffer interface specification
From: Erwin Rol ####@####.####
Date: 4 Feb 2000 21:27:28 -0000
Message-Id: <389B51C9.C4D7FC9A@muffin.org>

Hello All,

first  Frank do you want that new version of to bootloader for lilo
to, it is from the new kernel and uses GAS and not AS86 , just drop
me a mail.


Now the text/graphics mode problem. First of all i am thinking about
small LCD for embeeded applications that don't even have a real
framebuffer
and need to be programmed "serial" via a IO port. For those devices one
could use some virtual framebuffer in RAM and have a periodic update
task
update it to the real display. Or one could use put/get/draw functions
where the set/draw functions use the memory as write trough cache. So
the get
functions will be very fast (real get functions might even be
unsupported
by the actual LCD)

Because my interest goes out to those smaller displays, the mode
switching
is no problem, simply because it isn't posible. 

I also think that embeded system won't need mode switching in the first
place.
So in my opinion the "mode" of the display is part of the BSP, a design
time
decision. 


Second thing the Linux frame buffer is designed to support
highresolution
graphics controlers with CRT monitors on it. And have the virtual
console
backend to do the multiple text consoles and graphics framebuffers on
one
actual graphicscard, i think this is a bit of a over kill for a embedded
system. 

I think even the liniear framebuffers are probably not that usefull
while
as mentioned lots of smaller displays don't support them. 
Maybe a interface in the form of microwindows put, get , draw  etc.
would
be the best, maybe a put get for text displays, and than optional access
to the frame buffer if the device has one. 



Some ideas (RTEMS related, maybe PK too) for input devices, wouldn't it
be a idea to define one (or more) message queue's and a defined messgage
format with for example device ID ( mouse 1, keyboard 2) , message type
(keyup, keydown , move x, y) and let drivers puch those message in the
queue and let some task
read them from that queue. The good thing about this is that in RTEMS
one could
have a very simple IO-pin keyboard in a ISR that can push key event in
the queue
too. Second thing is one can have multiple devices push to the same
queue, like mouse
and keyboard, so no need to collect them from different locations. And
the interface
would be very simple for the aplication programmer , wait on the queue
and thats it.


- Erwin



Greg Haerr wrote:
> 
> Rosimildo,
>     As I think about this a little more, one important factor is
> whether or not RTEMS wants to support graphics mode for
> console operation.  This adds complexity.  If merely a framebuffer
> is desired, it is quite a bit simpler, because all RTEMS has to manage
> is the switch between text and graphics, video init, and the actual
> framebuffer mapping.
> 
> To support a graphics console, there have to be quite a few more entry points,
> and the framebuffer code has to support being accessible inside
> the kernel, rather than just address-mapped video memory access to
> applications.
> 
> Frank's PK supports a graphics console, and he has kept the
> system quite simple.  Perhaps his code is a good place to start.
> 
> Greg
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ####@####.####
> For additional commands, e-mail: ####@####.####
Subject: RE: Running document -- RTEMS framebuffer interface specificatio n
From: Greg Haerr ####@####.####
Date: 4 Feb 2000 22:58:50 -0000
Message-Id: <C1962B36D9BBD311B0F80060083DFEFB054C05@SYS.CenSoft.COM>

: Now the text/graphics mode problem. First of all i am thinking about
: small LCD for embeeded applications that don't even have a real
: framebuffer
: and need to be programmed "serial" via a IO port. For those devices one
: could use some virtual framebuffer in RAM and have a periodic update
: task
: update it to the real display. Or one could use put/get/draw functions
: where the set/draw functions use the memory as write trough cache. So
: the get
: functions will be very fast (real get functions might even be
: unsupported
: by the actual LCD)

I think a virtual framebuffer for your device is the answer.  Then,
the graphics programs don't have to have yet another API.  A 
special kernel driver can then update the display.  If this
is not desired, then you can specially program a Microwindows
screen driver that malloc's() a virtual framebuffer, and you don't
need any mods to RTEMS at all.


: : Second thing the Linux frame buffer is designed to support
: highresolution
: graphics controlers with CRT monitors on it. And have the virtual
: console
: backend to do the multiple text consoles and graphics framebuffers on
: one
: actual graphicscard, i think this is a bit of a over kill for a embedded
: system. 

I agree that Linux framebuffer is overkill.  Frank's PK system 
implements a graphics console with very little code.  All that's
needed really is that the kernel exports the address of the
video ram, and we call that framebuffer.  Microwindows
still has ALL the draw routines.  So a framebuffer doesn't
have to be complicated.  

The key is a simple API, so that, rather than having Microwindows
be recompiled for every RTEMS system, the RTEMS kernel
inits/deinits the graphics mode and provides an address
and i/o permissions for Microwindows to take over.  That's it.





: 
: I think even the liniear framebuffers are probably not that usefull
: while
: as mentioned lots of smaller displays don't support them. 
: Maybe a interface in the form of microwindows put, get , draw  etc.
: would
: be the best, maybe a put get for text displays, and than optional access
: to the frame buffer if the device has one. 

Actually, there are quite a few newer LCD devices that can
run in memory mapped modes.  So I respectfully disagree.
For non-framebuffer devices, it would be better to build a 
custom Microwindows screen driver.  Otherwise, we build
one Microwindows framebuffer screen driver once for RTEMS, 
and leave it at that.  (Programmers should check the
microwin/src/drivers/fb.c file, since that's the only one that
actually needs to be modified, and then RTEMS could support
1, 2, 4, 8, 16, 32bpp and VGA 4 planes using existing
Microwindows screen driver scr_fb.c.  All that is required
is the chipset-specific setup for each Xbpp, and a single
system call to get the video memory address mapped into
the user process space)


: 
: 
: 
: Some ideas (RTEMS related, maybe PK too) for input devices, wouldn't it
: be a idea to define one (or more) message queue's and a defined messgage
: format with for example device ID ( mouse 1, keyboard 2) , message type
: (keyup, keydown , move x, y) and let drivers puch those message in the
: queue and let some task
: read them from that queue. The good thing about this is that in RTEMS
: one could
: have a very simple IO-pin keyboard in a ISR that can push key event in
: the queue
: too. Second thing is one can have multiple devices push to the same
: queue, like mouse
: and keyboard, so no need to collect them from different locations. And
: the interface
: would be very simple for the aplication programmer , wait on the queue
: and thats it.

I like this idea.  This is almost the way it is now, with
rtems_receive_event(),
but it would be nice to have RTEMS std messages, as Erwin notes.

Regards,

Greg



: 
Subject: Re: Running document -- RTEMS framebuffer interface specification
From: Erwin Rol ####@####.####
Date: 5 Feb 2000 02:51:50 -0000
Message-Id: <389B9DDF.7B5F31EB@muffin.org>

Ron wrote:
> 
> Erwin Rol wrote:
> 
> > ...I also think that embeded system won't need mode switching in the first
> > place.
> > So in my opinion the "mode" of the display is part of the BSP, a design
> > time
> > decision. ...
> 
> We disagree-
> Actually for our needs here at GIPCO on the fly mode switching is a must.
> It comes down to the amount of on board video ram, the need to display
> hi res-low color depth user screens and true color jeg/bmp image files
> on the same device. Adding more video ram is unfortunately not an option.

Ok i was actualy only thinking about TEXT <-> GRAPHICS mode switching
but you have a very good point there. So on the fly changing should be
posible.

- Erwin
Subject: Re: Running document -- RTEMS framebuffer interface specification
From: Rosimildo daSilva ####@####.####
Date: 9 Feb 2000 04:11:53 -0000
Message-Id: <200002090330.TAA19170@www2.xoommail.com>

Rosimildo daSilva wrote:
 > Hi,
 > 
 > I have put something together as a starting point  for the design of 
 > "framebuffer" interface for RTEMS. 
 > 

Hi guys, 

I have updated the documentation of the "micro framebuffer" interface.
I have added links to some header file and API wrapper around ioctls
as we discussed last week. I have not tried to compile this stuff yet.
If this does not fit "yours" needs, please speak up. :-).

Anyone, with more time than me, is allowed to modify this stuff and
send me the files that I'll update them, as soon as time allows me to
do it.

Same place:
http://members.xoom.com/rosimildo/mw_rtems_drv.html

Rosimildo.




______________________________________________________
Get your free web-based email at http://www.xoom.com
Birthday? Anniversary? Send FREE animated greeting
cards for any occasion at http://greetings.xoom.com


Subject: Re: Running document -- RTEMS framebuffer interface specification
From: Erwin Rol ####@####.####
Date: 9 Feb 2000 21:42:44 -0000
Message-Id: <38A1ECA0.D0D2E238@muffin.org>

Rosimildo daSilva wrote:
> 
> Rosimildo daSilva wrote:
>  > Hi,
>  >
>  > I have put something together as a starting point  for the design of
>  > "framebuffer" interface for RTEMS.
>  >
> 
> Hi guys,
> 
> I have updated the documentation of the "micro framebuffer" interface.
> I have added links to some header file and API wrapper around ioctls
> as we discussed last week. I have not tried to compile this stuff yet.
> If this does not fit "yours" needs, please speak up. :-).

Starts to look good. 

> 
> Anyone, with more time than me, is allowed to modify this stuff and
> send me the files that I'll update them, as soon as time allows me to
> do it.

Time hmmm yeah what is that :-)

> 
> Same place:
> http://members.xoom.com/rosimildo/mw_rtems_drv.html
> 
> Rosimildo.
> 
> ______________________________________________________
> Get your free web-based email at http://www.xoom.com
> Birthday? Anniversary? Send FREE animated greeting
> cards for any occasion at http://greetings.xoom.com
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ####@####.####
> For additional commands, e-mail: ####@####.####
Subject: Re: Running document -- RTEMS framebuffer interface specification
From: Rosimildo daSilva ####@####.####
Date: 11 Feb 2000 04:35:04 -0000
Message-Id: <200002110424.UAA05803@www1.xoommail.com>

Rosimildo daSilva wrote:
 > Hi guys, 
 > 
 > I have updated the documentation of the "micro framebuffer" interface.
 > I have added links to some header file and API wrapper around ioctls
 > as we discussed last week. I have not tried to compile this stuff yet.
 > If this does not fit "yours" needs, please speak up. :-).
 > 
 > Anyone, with more time than me, is allowed to modify this stuff and
 > send me the files that I'll update them, as soon as time allows me to
 > do it.
 > 

Hi,

I have compiled the code of our interface, and wrote a "skeleton"
driver for RTEMS ( it actually compiles ) along with the MicroWindows
glue ( Micro FrameBuffer ) discussed in the past few weeks.
Before I finalize the tests, and package it as a "patch", I would 
appreacite any feedback. I have added the sources as links in the 
document on the link below.

Same place:
http://members.xoom.com/rosimildo/mw_rtems_drv.html

Rosimildo.


______________________________________________________
Get your free web-based email at http://www.xoom.com
Birthday? Anniversary? Send FREE animated greeting
cards for any occasion at http://greetings.xoom.com


Subject: Re: Running document -- RTEMS framebuffer interface specification
From: "Greg Haerr" ####@####.####
Date: 11 Feb 2000 05:39:26 -0000
Message-Id: <003b01bf7450$ba211840$15320cd0@gregh>

: I have compiled the code of our interface, and wrote a "skeleton"
: driver for RTEMS ( it actually compiles ) along with the MicroWindows
: glue ( Micro FrameBuffer ) discussed in the past few weeks.
: Before I finalize the tests, and package it as a "patch", I would
: appreacite any feedback. I have added the sources as links in the
: document on the link below.

I have looked over all your source and it looks great.  You will
of course have to link in ega_hwinit and ega_hwterm into the kernel...

Your code also assumes that there is the same address space between
kernel and user modes for the framebuffer.  I don't know if that's the best
idea or not.  But I guess you will always pass this address in
fbinfo.smem_start?

Greg

[<<] [<] Page 1 of 2 [>] [>>]


Powered by ezmlm-browse 0.20.