Files
moslab-code/src/l4/conf/examples/vm-multi-p2p.cfg
2025-09-12 15:55:45 +02:00

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])