70 lines
1.7 KiB
Lua
70 lines
1.7 KiB
Lua
-- vim:set ft=lua:
|
|
|
|
-- This script shall start mag. For that we need a frame-buffer and io to
|
|
-- get access to the required hardware resources. Target platform is ARM
|
|
-- Real-View as used with QEmu.
|
|
|
|
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-rv-eb.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", "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());
|