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); } }
Hi,
On Wed Jun 22, 2011 at 12:54:50 +0400, Vasily Sartakov wrote:
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?
The problem is that 'io' does not currently implement any of the i2c and gpio functionality. There was some experiment some longer time ago from which that code is from. For the beagleboard the LCD is configured by u-boot and can then just be used. Isn't that approach possible with your board?
Adam
On Wed Jun 22, 2011 at 12:54:50 +0400, Vasily Sartakov wrote:
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?
The problem is that 'io' does not currently implement any of the i2c and gpio functionality. There was some experiment some longer time ago from which that code is from. For the beagleboard the LCD is configured by u-boot and can then just be used. Isn't that approach possible with your board?
yep, that's the reason why i dint see any think help full for i2c in io. my uboot don't configure LCD, but i added some some scripts for i2c's led power up: imw 0x4a 0xee 0; imw 0x49 0x9e 0x80
and some dss initialisation in LCD driver, so, now i have worked display. and i have some noises on screen, but i think i will fix it.
so, i started MAG and have good worked spectre example then i started DOpE and it worked too. And now its time to choose a GUI engine. correct me plz, if i am wrong: MAG hasn't any widgets and i can use any my one own GUI and use MAG only for draw ad window. DOpe has widgets, and i should make applications with dope_init() dope_cmd(..) and etc. When i do it, i have problem with l4_icu_bind (dope/l4/init.c) to bind event irq. Shell i add in my start configuration file more then:
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");
local dope_caps = { dope = l:new_channel(), svc = l:new_channel(), };
l:start({ caps = { vbus = io_buses.gui, fb = fbdrv_fb, dope = dope_caps.dope:svr(), svc = dope_caps.svc:svr(), }, log = { "DOpe", "g" }, l4re_dbg = L4.Dbg.Warn, -- scheduler = L4.Env.user_factory:create(L4.Proto.Scheduler, 0xa0, 0x80), }, "rom/l4dope", "-en");
e = l:start({ caps = { dope = dope_caps.dope:svr(), }, log = { "spectrum", "b" }, l4re_dbg = L4.Dbg.Warn, -- scheduler = L4.Env.user_factory:create(L4.Proto.Scheduler, 0x18, 0x8), }, "rom/ex_mydop"); print("ex_mydop exited with: " .. e:wait());
Do you have a QT4 or dope "hello world" graphic example?
2011/6/23 Vasily Sartakov sartakov@ksyslabs.org:
On Wed Jun 22, 2011 at 12:54:50 +0400, Vasily Sartakov wrote:
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?
The problem is that 'io' does not currently implement any of the i2c and gpio functionality. There was some experiment some longer time ago from which that code is from. For the beagleboard the LCD is configured by u-boot and can then just be used. Isn't that approach possible with your board?
yep, that's the reason why i dint see any think help full for i2c in io. my uboot don't configure LCD, but i added some some scripts for i2c's led power up: imw 0x4a 0xee 0; imw 0x49 0x9e 0x80
and some dss initialisation in LCD driver, so, now i have worked display. and i have some noises on screen, but i think i will fix it.
-- Sartakov A. Vasily
On Thu Jun 23, 2011 at 16:43:22 +0400, Vasily Sartakov wrote:
so, i started MAG and have good worked spectre example then i started DOpE and it worked too. And now its time to choose a GUI engine. correct me plz, if i am wrong: MAG hasn't any widgets and i can use any my one own GUI and use MAG only for draw ad window.
yes, it's just windowing and framebuffer.
DOpe has widgets, and i should make applications with
DOpE has widgets but can also do the plain framebuffer.
dope_init() dope_cmd(..) and etc. When i do it, i have problem with l4_icu_bind (dope/l4/init.c) to bind event irq. Shell i add in my start configuration file more then:
The following config should be better working.
...
local dope_cap = l:new_channel();
l:start({ caps = { vbus = io_buses.gui, fb = fbdrv_fb, dope = dope_cap:svr(), }, log = { "DOpe", "g" }, }, "rom/l4dope", "-en");
e = l:start({ caps = { dope = dope_cap:create(0, "Vscrtest"), }, log = { "vscrtest", "b" }, }, "rom/vscrtest"); print("vscrtest exited with: " .. e:wait());
Do you have a QT4 or dope "hello world" graphic example?
vscrtest is nice.
Adam
l4-hackers@os.inf.tu-dresden.de