mmap on /dev/fd0 on pc686 BSP not working at all.

Pavel Pisa ppisa4lists at pikron.com
Mon Sep 21 18:19:31 UTC 2020


Hello Vijay, Karel and Gedare,

On Monday 21 of September 2020 19:35:26 Vijay Kumar Banerjee wrote:
> Reading the post by Pavel in the other thread, I think the pc386
> shouldn't be using the libbsd framebuffer. To be able to use the
> driver in pc386, you'll have to disable the drivers from
> rtems-littevgl. Please use `--no-drivers` option with ./waf configure
> in rtems-littlevgl and remove the "fbdev_init" from the hello app. The
> initialization of the fb is supposed to be handled by the drivers in
> the BSP.

I have fear that my analysis is not clear and simple enough.
I have tried to provide full background but I strive to
instructions there.

I see as the most viable solution with minimal code changes
to use RTEMS i386 VESA BIOS driver, I am not sure about RSB
option, I have build by configure in the past (my last i386
RTEMS build seems to be 4.12 version)

export USE_VBE_RM=1 \
../../../git/rtems/configure --target=i386-rtems4.12 --prefix=/opt/rtems4.12 \
  --build=x86_64-pc-linux-gnu \
  --enable-rtems-inlines --disable-multiprocessing --enable-cxx \
  --enable-rdbg --enable-maintainer-mode \
  --enable-networking --enable-posix --enable-itron --disable-ada \
  --disable-expada --disable-multilib --disable-docs \
  --enable-rtemsbsp=pc686 \
 

For LVGL, configure/include into build some Linux /dev/fbX driver which
is probably the most matching to RTEMS i386 BSP VESA BIOS driver.
I do not see in original LVGL driver open and mmap of Linux /dev/fb
by fast glimpse into

  git://github.com/littlevgl/lvgl.git

I have not noticed the pointer into your full source to can help there.

But the code should include call to to some IOCTLs like
FBIOGET_FSCREENINFO and FBIOGET_VSCREENINFO (fixed and variable)
and then there is somewhere mmap(), something like this

  psd->addr = mmap(NULL, psd->size, PROT_READ|PROT_WRITE, MAP_SHARED, fb, 0);

Instead of calling mmap() you assign directly address returned to the
framebuffer start

  psd->addr = fb_fix.smem_start

So unfortunately, understanding to my analysis is really 180 degrees
different direction than its results. robably my mistake, wording, ....

Best wishes,

Pavel



More information about the users mailing list