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());