L4Android/L4Linux Beagleboard framebuffer and driver

giowck giowckln at googlemail.com
Mon Sep 26 13:23:44 CEST 2011


Hi,

I'm trying to figure out how to get the framebuffer working on my 
beagleboard using the spectrum example.

I noticed the following errors in my bootstrap log:

mag     | l4drv: Could not find driver for OMAP_TSC.
mag     | l4drv: Could not find driver for OMAP_KP.
spectrum| x:640 y:480 bit/pixel:16 bytes/line:960

Please see [1] for the full log.
How do I fix this? How do I include those drivers?

Anyway, are any further steps required to make the LCD work?
Because here [2], Adam says that U-Boot should configure my LCD display 
and that l4fb uses those settings.

Hope you can help me.

Thanks
Giorgio

[1] http://pastebin.com/RH2WBy1U
[2] http://os.inf.tu-dresden.de/pipermail/l4-hackers/2011/004869.html
     and
     http://os.inf.tu-dresden.de/pipermail/l4-hackers/2011/005009.html

my config files:

-----------------------------------------------------------------------
arm-bb-lcd.io

gui => new System_bus()
{
   #KBD => wrap(hw-root.KBD);
   #MOUSE => wrap(hw-root.MOUSE);
}

fbdrv => new System_bus()
{
   CTRL => wrap(hw-root.CTRL);
   LCD => wrap(hw-root.LCD);
}
-----------------------------------------------------------------------
arm-omap4.devs

hw-root
{
   CTRL => new Device()
   {
     .hid = "System Control";
     new-res Mmio(0x48002000 .. 0x48002fff);
     new-res Mmio(0x48004000 .. 0x48004fff);
   }

   prcm => new Device()
   {
     .hid = "OMAP PRCM";
     new-res Mmio(0x48004000 .. 0x48004fff);
     new-res Mmio(0x48005000 .. 0x48005fff);
   }

   gpio => new Device()
   {
     .hid = "GPIO";
     new-res Mmio(0x48004000 .. 0x48004fff);
     new-res Mmio(0x48310000 .. 0x48310fff);
     new-res Mmio(0x49050000 .. 0x49050fff);
     new-res Mmio(0x49052000 .. 0x49052fff);
     new-res Mmio(0x49054000 .. 0x49054fff);
     new-res Mmio(0x49056000 .. 0x49056fff);
     new-res Mmio(0x49058000 .. 0x49058fff);
   }

   LCD => new Device()
   {
     .hid = "OMAP_LCD";
     new-res Mmio(0x48050000 .. 0x48050fff);
   }

   i2c1 => new Device()
   {
     .hid = "I2C";
     new-res Mmio(0x48070000 .. 0x48070fff);
   }
}
-----------------------------------------------------------------------
arm-bb-lcd.cfg

require("L4");


local l = L4.default_loader;

local io_buses =
   {
     gui   = l:new_channel();
     fbdrv = l:new_channel();
   };

l:start({
           caps = {
             gui    = io_buses.gui:svr(),
             fbdrv  = io_buses.fbdrv:svr(),

	    icu    = L4.Env.icu,
	    sigma0 = L4.cast(L4.Proto.Factory, 
L4.Env.sigma0):create(L4.Proto.Sigma0),
           },
           log      = { "IO", "y" },
	  l4re_dbg = L4.Dbg.Warn,
         },
         "rom/io rom/arm-omap3.devs rom/arm-bb-lcd.io");

local fbdrv_fb = l:new_channel();

l:startv({
            caps = {
	     vbus = io_buses.fbdrv,
	     fb   = fbdrv_fb:svr(),
	   },
            log      = { "fbdrv", "r" },
	   l4re_dbg = L4.Dbg.Warn,
          },
          "rom/fb-drv", "-c", "1024 565 bgr");

local mag_caps = {
                    mag = l:new_channel(),
		   svc = l:new_channel(),
                  };

l:start({
           caps = {
	    vbus = io_buses.gui,
	    fb   = fbdrv_fb,
	    mag  = mag_caps.mag:svr(),
	    svc  = mag_caps.svc:svr(),
	  },
           log      = { "mag", "g" },
	  l4re_dbg = L4.Dbg.Warn,
	  -- scheduler = L4.Env.user_factory:create(L4.Proto.Scheduler, 0xa0, 
0x80),
         },
	"rom/mag");

e = l:start({ caps = {
                 fb = mag_caps.svc:create(L4.Proto.Goos, "g=640x480"),
	      },
               log      = { "spectrum", "b" },
	      l4re_dbg = L4.Dbg.Warn,
	      -- scheduler = L4.Env.user_factory:create(L4.Proto.Scheduler, 
0x18, 0x8),
	    },
	    "rom/ex_fb_spectrum");
print("ex_fb_spectrum exited with: " .. e:wait());




More information about the l4-hackers mailing list