Re: Enable L4Linux network access on Raspberry Pi-b.
Hi,
On Fri Jun 21, 2019 at 17:39:11 +, Lei Zhou wrote:
> Did some research into L4Re memory management and IO server.
>
> For my original question 1: on native device tree file adapting to L4linux:
> 1> Since Sigma0 got one-2-one mapping statically from Fiasco microkernel, I
> think I still can directly use those reg_address declaration for each device
> nodes within native rpi3's bcm2710-rpi-3-b.dts.
Yes, that's identity mapped but that has nothing really to do with
sigma0, that's io job.
> I will only make following simple changes comparing to simple.dts from l4re
> in case they are necessary for L4Linux to use.
> >>model = "L4Linux (DT)";
>
> >>compatible = "L4Linux";
>
>
> <
> <
> /*-- copied from l4re..simple.dts --*/
>
> intc: l4icu {
>
> compatible = "l4,icu";
>
> interrupt-controller;
>
> /* type can be 'gic' or 'single' currently */
>
> l4icu-type = "gic";
>
> #interrupt-cells = <3>;
>
> /*
>
> l4icu-type = "single";
>
> #interrupt-cells = <1>;
>
> */
>
> };
>
> /*--*/
ok.
> 2> For my original question 3: in terms of io config for IO server. Still
> don't have clear idea how to do it.
> Should I only need create a vBUS and grant access for L4linux to
> network NIC devices?
> Specifically I copied Raspberry PI3 NIC part of device tree node here
> for reference as below
You need to put those device on the vbus that the Linux needs access to,
in this case that would be the MMIO and IRQs for the USB controller as
the NIC is a USB NIC on the rpi.
>
> -
>usb@7e98 {
>
> compatible = "brcm,bcm2708-usb";
>
> reg = <0x7e98 0x1 0x7e006000 0x1000>;
>
> interrupts = <0x2 0x0 0x1 0x9>;
>
> #address-cells = <0x1>;
>
> #size-cells = <0x0>;
>
> clocks = <0x18>;
>
> clock-names = "otg";
>
> phys = <0x19>;
>
> phy-names = "usb2-phy";
>
> power-domains = <0x14 0x6>;
>
> phandle = <0x6d>;
>
>
>
> usb1@1 {
>
> compatible = "usb424,9514";
>
> reg = <0x1>;
>
> #address-cells = <0x1>;
>
> #size-cells = <0x0>;
>
>
>
> usbether@1 {
>
> compatible = "usb424,ec00";
>
> reg = <0x1>;
>
> phandle = <0x6e>;
>
> };
>
> };
>
> };
>
>
> Is this
RE: Enable L4Linux network access on Raspberry Pi-b.
Hi Adam & Hackers,
Did some research into L4Re memory management and IO server.
For my original question 1: on native device tree file adapting to L4linux:
1> Since Sigma0 got one-2-one mapping statically from Fiasco microkernel, I
think I still can directly use those reg_address declaration for each device
nodes within native rpi3's bcm2710-rpi-3-b.dts. I will only make following
simple changes comparing to simple.dts from l4re in case they are necessary for
L4Linux to use.
>>model = "L4Linux (DT)";
>>compatible = "L4Linux";
<;
/*
l4icu-type = "single";
#interrupt-cells = <1>;
*/
};
/*--*/
2> For my original question 3: in terms of io config for IO server. Still
don't have clear idea how to do it.
Should I only need create a vBUS and grant access for L4linux to network
NIC devices?
Specifically I copied Raspberry PI3 NIC part of device tree node here for
reference as below
-
usb@7e98 {
compatible = "brcm,bcm2708-usb";
reg = <0x7e98 0x1 0x7e006000 0x1000>;
interrupts = <0x2 0x0 0x1 0x9>;
#address-cells = <0x1>;
#size-cells = <0x0>;
clocks = <0x18>;
clock-names = "otg";
phys = <0x19>;
phy-names = "usb2-phy";
power-domains = <0x14 0x6>;
phandle = <0x6d>;
usb1@1 {
compatible = "usb424,9514";
reg = <0x1>;
#address-cells = <0x1>;
#size-cells = <0x0>;
usbether@1 {
compatible = "usb424,ec00";
reg = <0x1>;
phandle = <0x6e>;
};
};
};
Is this sufficient to do IO config as following rpi_devices.io?
Within rpi_devices.io, I defined a named vBUS as l4lx. How does L4linux
client know this "l4lx" vBUS is for me? Should I need configure it within
L4linux somewhere?
local Res = Io.Res
local Hw = Io.Hw
local hw = Io.system_bus()
-- create a virtual bus for client with its name as 'l4lx'
-- Give it access to NIC device
-- 'l4lx is name of vbus
Io.add_vbus("l4lx", Io.Vi.System_bus
{
-- a
