Hello Alexander,
On Wed, Jun 20, 2018 at 02:19:29PM +0200, Alexander Weidinger wrote:
Hello everyone,
when executing 'lwip' on the RPi 2, I get the following output for the usb_drv:
[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_error: device descriptor read/all, error -92 [init -> usb_drv] dev_info: new high-speed USB device number 3 using dwc_otg [init -> usb_drv] dev_error: device descriptor read/all, error -92 [init -> usb_drv] dev_info: new high-speed USB device number 4 using dwc_otg [init -> usb_drv] dev_error: device descriptor read/8, error -92 [init -> usb_drv] dev_error: device descriptor read/8, error -92 [init -> usb_drv] dev_info: new high-speed USB device number 5 using dwc_otg [init -> usb_drv] dev_error: device descriptor read/8, error -92 [init -> usb_drv] dev_error: device descriptor read/8, error -92 [init -> usb_drv] dev_error: unable to enumerate USB device
Does anyone have an idea what I can do, to get the Ethernet adapter working? Any help is appreciated! I don't really understand the problem here, since the driver works flawlessly for the RPi 1 B+ (using foc_rpi as platform) - which uses the same chip as the RPi 2 (SMSC LAN9514).
I assume that the driver does not get any interrupt. Probably the interrupt controller hierarchy is different in between Pi 1 and 2 resp. BCM2835 and BCM2836. So the question is how Fiasco.OC maps interrupt numbers that core is asking for to the SoC' ones. To validate or refute my assumption, you can instrument the dde_linux code at:
https://github.com/genodelabs/genode/blob/18.05/repos/dde_linux/src/lx_kit/i...
and proof whether an interrupt is delivered to the driver.
regards Stefan
My Genode version [2] and Fiasco.OC version [3].
To the backstory:
I am currently in the process of "porting" Fiasco.OC/Genode to the Raspberry Pi 2 (Model B).
As a basis I use Genode in the version 18.05 and Fiasco.OC in the version 79. I created a new device, the rpi2, and based it on the already available rpi model.
The main changes I did for the rpi2 platform [1] are
- the different arm architecture - from armv6 to armv7a in a few files
- the different physical base address - from 0x2000:0000 to 0x3f00:0000
- a RAM size of 1008 MB starting at 0x0000:0000 (1024 MB - 16 MB for
peripherals)
I use version 79 of the Fiasco.OC kernel since it adds support for the three different BCM283X platforms. In order to get version 79 of the kernel running with Genode, I used the official 79 as a basis and cherry-picked commits from Genode's version of Fiasco.OC (72). [0]
My setup works completely fine for the RPi 1 (Model B+), even for the usb/nic driver. As the RPi 1 (Model B+) makes use of the SMSC LAN9514, instead of the SMSC LAN9512 (used in RPi Model B) it should also work for the RPi 2 (Model B), since this SBC also uses the SMSC LAN9514.
[0] https://github.com/skalk/foc/commits/r72 [1] https://github.com/irgendwie/genode/commits/foc-rpi2 [2] https://github.com/irgendwie/genode/tree/foc-rpi2 [3] https://github.com/irgendwie/foc/tree/genode-r79-rpi2
Best regards Alexander
pub RSA 4096/2751A2CE 2018-04-04 Alexander Weidinger alexander.weidinger@tum.de
sub RSA 4096/0453A69B 2018-04-04 sub RSA 4096/7852D6D1 2018-04-04
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users