52 lines
1.3 KiB
Lua
52 lines
1.3 KiB
Lua
-- vim:set ft=lua:
|
|
|
|
local L4 = require("L4");
|
|
|
|
local l = L4.default_loader;
|
|
|
|
local cons = l:new_channel();
|
|
|
|
l:start({ caps = { cons = cons:svr(); },
|
|
log = L4.Env.log
|
|
},
|
|
"rom/cons -a");
|
|
|
|
l.log_fab = cons;
|
|
|
|
local p2p = l:new_channel();
|
|
l:start({
|
|
caps = { svr = p2p:svr() },
|
|
log = { "p2p", "Blue" }
|
|
},
|
|
"rom/l4vio_net_p2p" );
|
|
|
|
local ports = {}
|
|
ports[1] = p2p:create(0, "ds-max=4")
|
|
ports[2] = p2p:create(0, "ds-max=4")
|
|
|
|
local serialdev = { arm = "ttyAMA0", arm64 = "ttyAMA0", amd64 = "ttyS0", riscv = "ttyS0" };
|
|
|
|
function start_vm(num, port)
|
|
local flags = L4.Mem_alloc_flags.Continuous
|
|
| L4.Mem_alloc_flags.Pinned
|
|
| L4.Mem_alloc_flags.Super_pages;
|
|
local align = 21;
|
|
l:startv({
|
|
caps = {
|
|
ram = L4.Env.user_factory:create(L4.Proto.Dataspace,
|
|
128 * 1024 * 1024,
|
|
flags, align):m("rw"),
|
|
net = port
|
|
},
|
|
log = { "vm-" .. num, "", "key=" .. num },
|
|
},
|
|
"rom/uvmm", "-v",
|
|
"-krom/linux",
|
|
"-rrom/ramdisk.cpio.gz",
|
|
"-drom/virt.dtb",
|
|
"-cconsole=" .. serialdev[L4.Info.arch()] .. " rw");
|
|
end
|
|
|
|
start_vm(1, ports[1])
|
|
start_vm(2, ports[2])
|