Enable L4Linux network access on Raspberry Pi-b.
Lei Zhou
lezhou at blackberry.com
Fri Jun 21 00:43:57 CEST 2019
Hi Adam & Hackers,
Has anybody enabled network access for L4linux Raspberry pi3? I read through all the history on related topics and understand the process to get it working. I summarized the steps as below and major problem for me is how to convert device tree for L4linux and compose corresponding rpi_deices.io configuration. Please see my specific question inlined in those steps. Thanks in advance for your feedback.
1. configure and Compile l4linux to support flattened device tree support. Also enables
CONFIG_USB_LAN78XX=y &&
CONFIG_USB_USBNET=y
CONFIG_USB_NET_SMSC95XX=y
CONFIG_L4_SERVER = y
CONFIG_USE_OF = y
2. Adapt https://github.com/raspberrypi/linux/blob/rpi-4.19.y/arch/arm/boot/dts/bcm2710-rpi-3-b.dts into ./l4linux/arch/l4/boot/dts/simple.dts
[Lei's question]: I understand why bcm2710-rpi-3-b.dts cannot be used directly because some of the reg_address physical address doesn't apply and might fail to be mapped. How can I pick network access specific device nodes and its dependancies(power or clock etc) and how to change those illegal reg_address?
3. Create an rpi3_devices.io for L4Re with the devices and their resources and assign the desired devices to a vbus.
[Lei's question]: Should I define all device nodes one-2-one mapping from step 2's device tree?
4. Update your ned script and modules.list
-- vim:set ft=lua:
local L4 = require("L4");
loader = L4.default_loader;
-- Start io
vbus_l4linux = loader:new_channel();
--vbus_input = loader:new_channel();
--vbus_fbdrv = loader:new_channel();
loader:start(
{
caps = {
sigma0 = L4.cast(L4.Proto.Factory, L4.Env.sigma0):create(L4.Proto.Sigma0);
icu = L4.Env.icu;
-- input = vbus_input:svr();
l4linux = vbus_l4linux:svr();
-- fbdrv = vbus_fbdrv:svr();
},
log = {"IO", "y"},
l4re_dbg = L4.Dbg.Warn,
}, "rom/io -vvv rom/rpi_devices.io");
-- Start L4linux
loader:start(
{
caps = {
-- fb = mag_svc:create(L4.Proto.Goos, "g=640x480");
vbus = vbus_l4linux;
},
log = L4.Env.log:m("rws"),
l4re_dbg = L4.Dbg.Warn,
},
"rom/vmlinuz mem=64M console=ttyLv0 l4x_rd=rom/ramdisk- l4x_dtb=rom/rpi3b-simple.dtb"
.. L4.Info.arch() .. ".rd " ..
"root=1:0 ramdisk_size=4000 init=/bin/sh earlyprintk=1 ");
5. Build final bootstrap_l4linux.uimage for Raspberry.
Thanks very much!
Lei Zhou
More information about the l4-hackers
mailing list