bbclone fbdrv lcd problem

Vasily Sartakov sartakov at ksyslabs.org
Wed Jun 22 10:54:50 CEST 2011


Hello.
I try to start ex_fb_spectrum example on beagleboard clone with 7"
480x800 LCD and have error in fbdrv//lcd-omap3.c:
when a i call any l4vbus_i2c* and l4vbus_gpio function i have return
-38 --- ENOSYS error
whats may be wrong?
my configs:

--------------------------------------
arm-rv-lcd-io:

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

fbdrv => new System_bus()
{
  sys => wrap(hw-root.sys);
  lcd => wrap(hw-root.lcd);
  i2c1 => wrap(hw-root.i2c1);
  gpio => wrap(hw-root.gpio);
}

-------------------------------------
arm-rv-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-full.devs rom/arm-rv-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", "init");

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=480x480"),
	      },
              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());

------------------------------------
arm-omap3-full.devs:

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

  prcm => new Device()
  {
    .hid = "OMAP PRCM qq";
    new-res Mmio(0x48000000 .. 0x48000fff);
    new-res Mmio(0x48001000 .. 0x48001fff);
    new-res Mmio(0x48002000 .. 0x48002fff);
    new-res Mmio(0x48003000 .. 0x48003fff);
    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);
  }
}

-- 
Sartakov A. Vasily




More information about the l4-hackers mailing list