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

Tomasz Gajewski tomga at
Mon Apr 15 10:54:39 CEST 2019

Sebastian Sumpf <Sebastian.Sumpf at> writes:

> Hello Tomasz,
> On 4/15/19 9:42 AM, Christian Helmuth wrote:
>> Hello Tomasz,
>> On Sat, Apr 13, 2019 at 18:40:59 CEST, Tomasz Gajewski wrote:
>>> On rpi3 (and others) there is a difference between bus addresses and
>>> physical addresses. In [1] I made a "brutal" fix working for
>>> rpi3. It is definitely not the final one as it is not just for rpi.
>> Great finding! I instantly had a look into the BCM2835/7 ARM
>> Peripherals manuals and it seems the 0x40000000 bus address range is
>> specified as L2-cache coherent alias of the first 256 MiB SDRAM, which
>> are also mapped uncached to bus address 0xc0000000.
>> Do you agree that from this specification 0xc0000000 should also work
>> for DMA-based devices on Rpi1?
> great findings. I didn't know about address ranges on Rpi's and
> definitely will have a look at them when fixing issue 3247 [1].

You, as Genode Team, knew about this but it is somewhat hidden in rpi.h

	enum Videocore_cache_policy { NON_COHERENT = 0,
	                              COHERENT     = 1,
	                              L2_ONLY      = 2,
	                              UNCACHED     = 3 };

which is later translated to bits 30 and 31 of addresses in framebuffer
code. Anyway it probably didn't matter much on rpi1 as problems started
to be observable on later versions.

Tomasz Gajewski

More information about the users mailing list