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/bcm27... 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