Enable L4Linux network access on Raspberry Pi-b.

Lei Zhou <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.