Hello,
I'm attempting to get rtems-example/lvgl/hello working on pc686 BSP. I'm using VESA framebuffer which is default on pc686, although I needed to do few fixes here and there to ensure littlevgl library compiles well. All patches here https://lists.rtems.org/pipermail/devel/2020-September/062186.html Now, everthing is compiled and VESA fb is well initialized -- or seems so. Now, vgl library tries to use that fb (/dev/fb0) and basically tries to mmap it for its own use. The code looks: void fbdev_init(void) { // Open the file for reading and writing fbfd = open(FBDEV_PATH, O_RDWR); if(fbfd == -1) { perror("Error: cannot open framebuffer device"); return; } printf("The framebuffer device was opened successfully.\n"); [...] // Map the device to memory fbp = (char *)mmap(0, screensize, PROT_READ | PROT_WRITE, MAP_SHARED, fbfd, 0); if((intptr_t)fbp == -1) { perror("Error: failed to map framebuffer device to memory"); return; } memset(fbp, 0, screensize); printf("The framebuffer device was mapped to memory successfully.\n"); The mmap above fails. Screensize is realistic and good looking number. While debugging this mmap I see it fails on the call to function on line 280: err = (*iop->pathinfo.handlers->mmap_h)( iop, &mapping->addr, len, prot, off ); it returns -1 and hence mmap failure since code below looks: if ( err != 0 ) { mmap_mappings_lock_release( ); free( mapping ); return MAP_FAILED; } when I try to step into the problematic function above, I end up in default_mmap.c:31 on: rtems_set_errno_and_return_minus_one( ENOTSUP ); and as the function claims it really returns -1 to me. Now, my obvious question is: how to make VESA fb mmappable? It looks like the same library is working fine on BBB while using FreeBSD BBB framebuffer driver, so there is probably some way how to convince RTEMS mmap to work with fb0. Any idea how to proceed with this is highly appreciated. Thanks, Karel _______________________________________________ users mailing list users@rtems.org http://lists.rtems.org/mailman/listinfo/users