I'm running a 2.6.10 kernel on a Coldfire (M5484) and I'm trying to get some frame buffer graphics going. The video chip I'm using is a Epson S1D13a04 and there was actually a driver for Linux kernel 2.6.8 from Epson that I was able to port to my kernel. Thought life was good but I have yet to get anything on the screen at all. My first attempt is listed below. The problem occurs on the memory map (mmap) command. Thought the /dev/fb0 device opens and the call to ioctl returns valid information, when I call mmap to set up the memory the call fails (returns -1). The device resides at physical address 0x44040000.
Any help, advice, or experience you can share on Linux frame buffer use or my specific issue would be much appreciated! ======================================================================== #include <unistd.h> #include <stdio.h> #include <errno.h> #include <fcntl.h> #include <linux/fb.h> #include <sys/mman.h> #include <sys/types.h> #include <sys/stat.h> int main() { int fbfd = 0; long int screensize = 0; unsigned long Size; void *fbp; struct fb_var_screeninfo vinfo; struct fb_fix_screeninfo finfo; off_t PageOffset, PageAddress, PhysAddr; fbfd = open("/dev/fb0", O_RDWR); if (!fbfd) { printf("Error: cannot open framebuffer device.\n"); exit(1); } printf("The framebuffer device was opened successfully.\n"); if (ioctl(fbfd, FBIOGET_FSCREENINFO, &finfo)) { printf("Error reading fixed information.\n"); exit(2); } if (ioctl(fbfd, FBIOGET_VSCREENINFO, &vinfo)) { printf("Error reading variable information.\n"); exit(3); } screensize = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel / 8; printf ("vinfo.xres = %d\n", vinfo.xres); printf ("vinfo.yres = %d\n", vinfo.yres); printf ("vinfo.bits_per_pixel = %d\n", vinfo.bits_per_pixel); printf ("screensize = %d\n", screensize); fbp = mmap((caddr_t)0, screensize, PROT_READ|PROT_WRITE, MAP_SHARED, fbfd, 0); if (fbp == MAP_FAILED) { printf("Error: failed (%d) to map framebuffer device to memory.\n", fbp); exit(4); } printf("The framebuffer device was mapped to memory successfully.\n"); munmap(fbp, screensize); close(fbfd); return 0; } -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]