usb_drv error -92 for RPi | Genode 18.05 with Fiasco.OC 79

Alexander Weidinger alexander.weidinger at tum.de
Tue Apr 16 14:44:52 CEST 2019


Hi Tomasz,

just for clarity, I am using run/lwip for testing the network.

It may also be important, that I'm still using Genode 18.05 and Fiasco.OC r79 for this
and that I made small adaptions, mostly for the changed memory addresses from 0x20* to 0x3f*.
(Every change I did should be documented in the e-mail history.)

Afaik the new VFS plugin for TCP/IP is still broken when using Genode with Fiasco.OC,
correct me if I'm wrong here Genode folks.
But since you also used lwip(_legacy) it should work.

The output looks like this on my end:
> [init -> platform_drv] --- Raspberry Pi platform driver ---
> [...]
> [init -> usb_drv] No <hid> config node found - not starting the USB HID (Input) service
> [init -> usb_drv] No <storage> config node found - not starting the USB Storage (Block) service
> [init -> foc_gpio_drv] --- Raspberry Pi GPIO driver ---
> [init -> usb_drv] No <raw> config node found - not starting external USB service
> [init -> foc_gpio_drv] Warning: no GPIO config
> [init -> usb_drv] Enabled EHCI (USB 2.0) support
> [init -> foc_gpio_drv] Warning: no GPIO config
> [init] child "platform_drv" announces service "Platform"
> [init] child "foc_gpio_drv" announces service "Gpio"
> [init -> usb_drv] Using configured mac: 0x405ffbfc
> [init -> usb_drv] dev_info: DWC OTG Controller
> [init -> usb_drv] dev_info: new USB bus registered, assigned bus number 1
> [init -> usb_drv] dev_info: irq 9, io mem 0x00000000
> [init -> usb_drv] dev_info: USB hub found
> [init -> usb_drv] dev_info: 1 port detected
> [init -> usb_drv] dev_info: new high-speed USB device number 2 using dwc_otg
> [init -> usb_drv] dev_info: USB hub found
> [init -> usb_drv] dev_info: 5 ports detected
> [init -> usb_drv] dev_info: new high-speed USB device number 3 using dwc_otg
> [init -> usb_drv] Using configured mac: 0x408ffc24
> [init -> usb_drv] netif_info: open: enable queueing (rx 4, tx 60) mtu 1500 simple framing
> [init -> usb_drv] nedev_info: hardware isn't capable of remote wakeup
> [init] child "usb_drv" announces service "Nic"
> [init -> usb_drv] netif_info: register 'smsc95xx' at usb-dwc_otg-1.1, smsc95xx USB 2.0 Ethernet, 02:00:00:00:01:01
> [init -> test-lwip_httpsrv] Create new socket ...
> [init -> test-lwip_httpsrv] Now, I will bind ...
> [init -> test-lwip_httpsrv] Now, I will listen ...
> [init -> test-lwip_httpsrv] Start the server loop ...
> [init -> test-lwip_httpsrv] got IP address 10.0.0.5
> [init -> test-lwip_httpsrv] Packet received!
> [init -> test-lwip_httpsrv] Will send response

Best regards,
Alexander

PS: I attached the complete log of one boot.

On Mon, Apr 15, 2019 at 12:37:14AM +0200, Tomasz Gajewski wrote:
> Tomasz Gajewski <tomga at wp.pl> writes:
> 
> > Alexander Weidinger <alexander.weidinger at tum.de> writes:
> >
> >>> I did not check networking yet but eliminated -92 errors for keyboard
> >>> and mouse.
> >> I integrated your "brutal" fix and did a short test with a RPi 3.
> >> Networking seems to work and the error seems to be eliminated.
> >
> > It's a great news.
> >
> > I'd like to ask you how do you test networking. Sometimes I have
> > problems with establishing which test programs are supposed to work and
> > therefore sometimes fight with more than one problem at a time.
> 
> Alexander, after a while I realized you wrote which scenario you were
> running and that I have already tried running it earlier. If that's not
> a problem could you post a log of it when it is working?
> 
> I don't have any errors when running it but there is also nothing that
> would suggest that an address from dhcp is retrieved so probably
> something is missing and it would help me to know what it is.
> 
> My log for lwip ends with:
> 
> [init -> usb_drv] No <hid> config node found - not starting the USB HID (Input) service
> [init -> usb_drv] No <storage> config node found - not starting the USB Storage (Block) service
> [init -> usb_drv] No <raw> config node found - not starting external USB service
> [init -> usb_drv] Enabled EHCI (USB 2.0) support
> [init -> usb_drv] Using configured mac: 0x404fec2c
> 
> 
> Regards,
> Tomasz Gajewski
-------------- next part --------------


U-Boot 2019.04 (Apr 14 2019 - 13:51:23 +0200)

DRAM:  948 MiB
RPI 3 Model B (0xa02082)
MMC:   mmc at 7e202000: 0, sdhci at 7e300000: 1
Loading Environment from FAT... OK
In:    serial
Out:   vidconsole
Err:   vidconsole
Net:   No ethernet found.
starting USB...
USB0:   scanning bus 0 for devices... 3 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot:  2  1  0 
Waiting for Ethernet connection... done.
BOOTP broadcast 1
BOOTP broadcast 2
DHCP client bound to address 10.0.0.4 (261 ms)
Using smsc95xx_eth device
TFTP from server 10.0.0.1; our IP address is 10.0.0.4
Filename 'uImage'.
Load address: 0x200000
Loading: *##################################################  2 MiB
	 1.7 MiB/s
done
Bytes transferred = 2123198 (2065be hex)
## Booting kernel from Legacy Image at 00200000 ...
   Image Name:   
   Image Type:   ARM Linux Kernel Image (gzip compressed)
   Data Size:    2123134 Bytes = 2 MiB
   Load Address: 01000000
   Entry Point:  01000000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK

Starting kernel ...


L4 Bootstrapper
  Build: #2 Sun Apr 14 18:31:54 CEST 2019, 6.3.0
  Scanning up to 512 MB RAM, starting at offset 32MB
  Memory size is 512MB (00000000 - 1fffffff)
  RAM: 0000000000000000 - 000000001fffffff: 524288kB
  Total RAM: 512MB
  Scanning /home/alex/Projects/2019-04-14_rpi3/genode/build/rpi3/bin/foc
  Scanning sigma0
  Scanning image.elf
  Moving up to 3 modules behind 1100000
  moving module 02 { 10b8000-14b1283 } -> { 11a8000-15a1283 } [4166276]
  moving module 01 { 10ac000-10b73fb } -> { 119c000-11a73fb } [46076]
  moving module 00 { 1010000-10abef7 } -> { 1100000-119bef7 } [638712]
  Loading /alex/Projects/2019-04-14_rpi3/genode/build/rpi3/bin/foc
  Loading sigma0
  Loading image.elf
  find kernel info page...
  found kernel info page (via ELF) at 2000
Regions of list 'regions'
    [     1000,      1a3f] {      a40} Kern   /alex/Projects/2019-04-14_rpi3/genode/build/rpi3/bin/foc
    [     2000,     abfff] {    aa000} Kern   /alex/Projects/2019-04-14_rpi3/genode/build/rpi3/bin/foc
    [    ac000,     ac0e7] {       e8} Root   mbi_rt
    [   100000,    10a1d3] {     a1d4} Sigma0 sigma0
    [   11b000,    11f17b] {     417c} Sigma0 sigma0
    [   800000,    c6efff] {   46f000} Root   image.elf
    [  1000000,   100f4ef] {     f4f0} Boot   bootstrap
  found kernel options (via ELF) at 3000
  Sigma0 config    ip:00100464 sp:00000000
  Roottask config  ip:00800000 sp:00000000
  Starting kernel /alex/Projects/2019-04-14_rpi3/genode/build/rpi3/bin/foc at 00001220
  Non-HYP kernel detected but running in HYP mode, switching back.
Hello from Startup::stage2
FPU: Initialize
FPU0: Subarch: 3, Part: 40, Rev: 4, Var: 3, Impl: 41
ARM generic timer: freq=19200000 interval=19200 cnt=237668959993114439
SERIAL ESC: allocated IRQ 29 for serial uart
Not using serial hack in slow timer handler.
Welcome to L4/Fiasco.OC!
L4/Fiasco.OC microkernel on arm
Rev: 0743bd88-dirty compiled with gcc 6.3.0 for Broadcom 2837    []
Build: #1 Sun Apr 14 18:31:14 CEST 2019

Calibrating timer loop... FPU1: Subarch: 3, Part: 40, Rev: 4, Var: 3, Impl: 41
done.
Cache config: ON
FPU2: Subarch: 3, Part: 40, Rev: 4, Var: 3, Impl: 41
ID_PFR[01]:  00000131 00011011MDB: use page size: 20
FPU3: Subarch: 3, Part: 40, Rev: 4, Var: 3, Impl: 41
Cache config: ON
Cache config: ON
MDB: use page size: 12
ID_PFR[01]:  00000131 00011011 ID_[DA]FR0: 03010066 00000000
SID_PFR[01]:  00000131 00011011IID_MMFR[04]: 10201105 40000000 01260000 02102211
 ID_[DA]FR0: 03010066 00000000
G ID_[DA]FR0: 03010066 00000000
MID_MMFR[04]: 10201105 40000000 01260000 02102211
ID_MMFR[04]: 10201105 40000000 01260000 02102211
A0: Hello!
  KIP @ 2000
  allocated 4KB for maintenance structures
SIGMA0: Dump of all resource maps
RAM:------------------------
[0:0;fff]
[4:ac000;acfff]
[0:ad000;fffff]
[0:10b000;11afff]
[0:120000;7fffff]
[4:800000;c6efff]
[0:c6f000;1effffff]
IOMEM:----------------------
[0:20000000;ffffffff]

KIP @ 0x2000
    magic: 0x4be6344c
  version: 0x87034444
MBI @ 0xac000
ROM modules:
 ROM: [00c58000,00c5855f) config
 ROM: [00c59000,00c6e468) foc_gpio_drv
 ROM: [00c19000,00c4b88c) init
 ROM: [00002000,00003000) l4v2_kip
 ROM: [00b5e000,00bed340) ld.lib.so
 ROM: [00a1c000,00b03500) libc.lib.so
 ROM: [00929000,0095183c) libm.lib.so
 ROM: [00bee000,00c183d4) lwip_legacy.lib.so
 ROM: [00b4b000,00b5ac9c) platform_drv
 ROM: [00c4c000,00c576f8) posix.lib.so
 ROM: [00b5b000,00b5d4dc) test-lwip_httpsrv
 ROM: [00917000,00928e3c) timer
 ROM: [00952000,00a1babc) usb_drv
 ROM: [00b04000,00b4a858) vfs.lib.so

Genode 18.02-445-g8741fc4b1 <local changes>
490 MiB RAM and 9239 caps assigned to init
[init] parent provides
[init]   service "ROM"
[init]   service "IRQ"
[init]   service "IO_MEM"
[init]   service "IO_PORT"
[init]   service "PD"
[init]   service "RM"
[init]   service "CPU"
[init]   service "LOG"
[init] child "timer"
[init]   RAM quota:  872K
[init]   cap quota:  68
[init]   ELF binary: timer
[init]   priority:   0
[init]   provides service Timer
[init] child "test-lwip_httpsrv"
[init]   RAM quota:  4968K
[init]   cap quota:  68
[init]   ELF binary: test-lwip_httpsrv
[init]   priority:   0
[init] child "foc_gpio_drv"
[init]   RAM quota:  3944K
[init]   cap quota:  68
[init]   ELF binary: foc_gpio_drv
[init]   priority:   0
[init]   provides service Gpio
[init] child "usb_drv"
[init]   RAM quota:  14184K
[init]   cap quota:  88
[init]   ELF binary: usb_drv
[init]   priority:   0
[init]   provides service Nic
[init] child "platform_drv"
[init]   RAM quota:  3944K
[init]   cap quota:  768
[init]   ELF binary: platform_drv
[init]   priority:   0
[init]   provides service Platform
[init]   provides service Regulator
[init -> platform_drv] --- Raspberry Pi platform driver ---
[init] child "timer" announces service "Timer"
[init -> usb_drv] No <hid> config node found - not starting the USB HID (Input) service
[init -> usb_drv] No <storage> config node found - not starting the USB Storage (Block) service
[init -> foc_gpio_drv] --- Raspberry Pi GPIO driver ---
[init -> usb_drv] No <raw> config node found - not starting external USB service
[init -> foc_gpio_drv] Warning: no GPIO config
[init -> usb_drv] Enabled EHCI (USB 2.0) support
[init -> foc_gpio_drv] Warning: no GPIO config
[init] child "platform_drv" announces service "Platform"
[init] child "foc_gpio_drv" announces service "Gpio"
[init -> usb_drv] Using configured mac: 0x405ffbfc
[init -> usb_drv] dev_info: DWC OTG Controller
[init -> usb_drv] dev_info: new USB bus registered, assigned bus number 1
[init -> usb_drv] dev_info: irq 9, io mem 0x00000000
[init -> usb_drv] dev_info: USB hub found
[init -> usb_drv] dev_info: 1 port detected
[init -> usb_drv] dev_info: new high-speed USB device number 2 using dwc_otg
[init -> usb_drv] dev_info: USB hub found
[init -> usb_drv] dev_info: 5 ports detected
[init -> usb_drv] dev_info: new high-speed USB device number 3 using dwc_otg
[init -> usb_drv] Using configured mac: 0x408ffc24
[init -> usb_drv] netif_info: open: enable queueing (rx 4, tx 60) mtu 1500 simple framing
[init -> usb_drv] nedev_info: hardware isn't capable of remote wakeup
[init] child "usb_drv" announces service "Nic"
[init -> usb_drv] netif_info: register 'smsc95xx' at usb-dwc_otg-1.1, smsc95xx USB 2.0 Ethernet, 02:00:00:00:01:01
[init -> test-lwip_httpsrv] Create new socket ...
[init -> test-lwip_httpsrv] Now, I will bind ...
[init -> test-lwip_httpsrv] Now, I will listen ...
[init -> test-lwip_httpsrv] Start the server loop ...
[init -> test-lwip_httpsrv] got IP address 10.0.0.5
[init -> test-lwip_httpsrv] Packet received!
[init -> test-lwip_httpsrv] Will send response


More information about the users mailing list