sd_card driver Block service prevents FFAT file system use by multiple clients?

Bob Stewart robjsstewart at ...196...
Wed Jan 27 02:33:40 CET 2016

I was doing some testing with the 3rd party FFAT file system which 
multiplexes clients accessing the file system. This was done in base-hw 
on release 15.11.

The first client connected to the file system as expected and two files 
were read and processed. When the second client attempted to make a 
connection to the Block service, a "could not open block connection" 
error was issued by the disk_initialize method in 
(partial log below).

The Block service is provided by an sd_card driver (identical to the 
omap4 driver for the Panda board). Based on my limited understanding of 
the Genode architecture, I would think that is the correct behavior 
since the first client is still connected and that the a multiplexer for 
the service needs to be provided.

If that is correct, the FFAT file system effectively does not multiplex 
client connections in a useful manner, for this scenario. How would one 
go about doing that?

Bob Stewart

[init -> pruss_drv] void init_libc_ffat(): using the libc_ffat plugin
[init -> pruss_drv] --- am33xx PRU driver ---
[init -> pruss_drv] PRUSS quota super period 1000000
[init -> pruss_drv] PRUSS quota 199981
[init -> motor_ctl] --- Motor Control application starting ---
[init -> Autopilot] void init_libc_ffat(): using the libc_ffat plugin
[init -> Autopilot] --- Autopilot application starting ---
[init -> sd_card_drv] CID: 0x1d414453 0x44202020 0x02b16703 0xea00d927
[init -> sd_card_drv] RCA: 0x59b4
Quota exceeded! amount=24576, size=12288, consumed=24576
[init -> sd_card_drv] Block::Omap3_driver::Omap3_driver(bool): SDCard 
driver getting m
mc1 ready with dma 0
[init -> sd_card_drv] SD card detected
[init -> sd_card_drv] capacity: 60303 MiB
[init -> pruss_drv] Loaded PRU-0 program 123 words
[init -> pruss_drv] Loaded PRU-1 program 337 words
[init -> Autopilot] opening file /Autopilot/ap_config.xml
[init -> Autopilot] could not open block connection
[init -> Autopilot] No file system available
[init] virtual void Genode::Child_policy::exit(int): child "Autopilot" 
exited with exi
t value -1
[init -> motor_ctl] Config not set in time
[init] virtual void Genode::Child_policy::exit(int): child "motor_ctl" 
exited with exi
t value -2

More information about the users mailing list