enquiry about 4 bpp frame buffer with nibbles swapped

4 messages, 3 authors, 2007-02-22 · open the first message on its own page

enquiry about 4 bpp frame buffer with nibbles swapped

From: Aitor Garcia <hidden>
Date: 2007-02-20 12:12:04

Hi all,

I am trying to design a 4 bpp FB driver for iMX1 using
imxfb.c code as 
an starting point.
The problem that I have found is that MX1 video memory
is organised as
follows:

b7 b6 b5 b4  --> pixel 0.
b3 b2 b1 b0  --> pixel 1.

The software that I'm using to display things (Qtopia
Core) assumes a 
different scheme of memory to pixel mapping:

b7 b6 b5 b4 ---> pixel 1.
b3 b2 b1 b0 ---> pixel 0.

The solution to overcome this problem is apparently
easy:

#define SWAP_NIBBLES(in,out) (out=((in&0xf)<<4) |
((in&0xf0)>>4) |\
                                  ((in&0xf00)<<4) |
((in&0xf000)>>4) |\
		                  ((in&0xf0000)<<4) |
((in&0xf00000)>>4) |\
		                  ((in&0xf000000)<<4) |
((in&0xf0000000)>>4))

But I do not know where to do it. 
Frame Buffer has 3 functions cfb_fillrect,
cfb_copyarea and cfb_imageblit which I thought were
the key to solve my problems but Qtopia Core does not
make use
of them.  
imxfb_map_video_memory function or fb_mmap, seem to be
good candidates but I do not know how to progress
further.

I would be very grateful if I could receive some kind
of help.

Best wishes,

Aitor


 
____________________________________________________________________________________
It's here! Your new message!  
Get new email alerts with the free Yahoo! Toolbar.
http://tools.search.yahoo.com/toolbar/features/mail/

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

Re: enquiry about 4 bpp frame buffer with nibbles swapped

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2007-02-21 07:34:58

On Tue, 20 Feb 2007, Aitor Garcia wrote:
I am trying to design a 4 bpp FB driver for iMX1 using
imxfb.c code as 
an starting point.
The problem that I have found is that MX1 video memory
is organised as
follows:

b7 b6 b5 b4  --> pixel 0.
b3 b2 b1 b0  --> pixel 1.

The software that I'm using to display things (Qtopia
Core) assumes a 
different scheme of memory to pixel mapping:

b7 b6 b5 b4 ---> pixel 1.
b3 b2 b1 b0 ---> pixel 0.

The solution to overcome this problem is apparently
easy:

#define SWAP_NIBBLES(in,out) (out=((in&0xf)<<4) |
((in&0xf0)>>4) |\
                                  ((in&0xf00)<<4) |
((in&0xf000)>>4) |\
		                  ((in&0xf0000)<<4) |
((in&0xf00000)>>4) |\
		                  ((in&0xf000000)<<4) |
((in&0xf0000000)>>4))

But I do not know where to do it. 
Frame Buffer has 3 functions cfb_fillrect,
cfb_copyarea and cfb_imageblit which I thought were
the key to solve my problems but Qtopia Core does not
make use
of them.  
Indeed, cfb_{fillrect,copyarea,imageblit}() are used by the kernel only.
imxfb_map_video_memory function or fb_mmap, seem to be
good candidates but I do not know how to progress
further.
If the order of the nibbles can be configured in hardware, you should do that.
Else I'm afraid you will have to modify Qtopia Core.

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

Re: enquiry about 4 bpp frame buffer with nibbles swapped

From: James Simmons <hidden>
Date: 2007-02-21 21:50:29

quoted
But I do not know where to do it. 
Frame Buffer has 3 functions cfb_fillrect,
cfb_copyarea and cfb_imageblit which I thought were
the key to solve my problems but Qtopia Core does not
make use
of them.  
Indeed, cfb_{fillrect,copyarea,imageblit}() are used by the kernel only.
Speaking of. Are you using fbcon? If that is the case then your console 
should look messed up.
 
quoted
imxfb_map_video_memory function or fb_mmap, seem to be
good candidates but I do not know how to progress
further.
If the order of the nibbles can be configured in hardware, you should do that.
Else I'm afraid you will have to modify Qtopia Core.
Can fb_bitfield handle that case ?


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

Re: enquiry about 4 bpp frame buffer with nibbles swapped

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2007-02-22 08:08:13

On Wed, 21 Feb 2007, James Simmons wrote:
quoted
quoted
But I do not know where to do it. 
Frame Buffer has 3 functions cfb_fillrect,
cfb_copyarea and cfb_imageblit which I thought were
the key to solve my problems but Qtopia Core does not
make use
of them.  
Indeed, cfb_{fillrect,copyarea,imageblit}() are used by the kernel only.
Speaking of. Are you using fbcon? If that is the case then your console 
should look messed up.
 
quoted
quoted
imxfb_map_video_memory function or fb_mmap, seem to be
good candidates but I do not know how to progress
further.
If the order of the nibbles can be configured in hardware, you should do that.
Else I'm afraid you will have to modify Qtopia Core.
Can fb_bitfield handle that case ?
No, it only handles bits within a pixel. It doesn't handle the order of
pixels within a byte (or word).

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help