Hi,all I mentioned in previous email that I am trying to use the file system in the tz_vmm demo and use the SD card as a storage device which is formatted as ext2. Now I have included sd_card driver, part_blk, rump_fs etc. in the tz_vmm.run script which I show it in [1]. But when I try to create a file in tz_vmm, I get this error: [init -> tz_vmm] --- start test --- [init -> tz_vmm] current working directory : / [init -> sd_card_drv] Error: wait till issuing a new command is allowed timed out
I have no idea how to fix this problem, so I want to ask for your help. I also provide my test code in [2]. In addition, I saw in this link: https://sourceforge.net/p/genode/mailman/genode-main/thread/CABDqRrJei5p5JyM... , Martin said "Be aware, that you should not run 'sd_card' with Genodes Trustzone feature-set (platform 'hw_imx53_qsb_tz'), because Genode will then declare the ESDHC-IRQ to be unsecure to enable Linux to drive SD cards. Use the platform 'hw_imx53_qsb' instead when issuing 'create_builddir'. I know he is targeting genode 15.08, so I want to know how about this situation in Genode's latest version? If genode can directly drive the SD card now , does this meas the SD card can not accessed by linux because the ESDHC-IRQ is configured to be secure ? Thanks for your help in advance!
[1] part of tz_vmm.run script: <start name="platform_drv"> <resource name="RAM" quantum="3M"/> <provides> <service name="Regulator"/> <service name="Platform"/> </provides> </start> <start name="sd_card_drv"> <resource name="RAM" quantum="3M"/> <provides><service name="Block"/></provides> </start> <start name="part_blk"> <resource name="RAM" quantum="10M" /> <provides><service name="Block" /></provides> <route> <service name="Block"><child name="sd_card_drv" /></service> <any-service><parent/><any-child/></any-service> </route> <config> <policy label_prefix="rump_fs" partition="1" writeable="yes"/> </config> </start> <start name="rump_fs" caps="200"> <resource name="RAM" quantum="16M"/> <provides><service name="File_system"/></provides> <config fs="ext2fs"> <policy label_prefix="" root="/" writeable="yes"/> </config> <route> <service name="Block"> <child name="part_blk"/> </service> <any-service> <parent/> <any-child/> </any-service> </route> </start>
<start name="tz_vmm" caps="400"> <resource name="RAM" quantum="160M"/> <config> <vfs> <tar name="darknet.tar"/> <dir name="dev"> <log/> <inline name="rtc">2000-01-01 00:00</inline> </dir> <fs/> </vfs> <libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc" /> </config>
[2] test code: int fd; ssize_t n; off_t offset; static char buf[16384]; static char str[] = "hello,world!";
printf("--- start test ---\n");
getcwd(buf, sizeof(buf)); printf("current working directory : %s\n", buf); fd = open("file.txt",O_WRONLY|O_CREAT); if (fd == -1) { perror("open"); return; } n = write(fd, str, sizeof (str)); printf("write %d bytes.\n",n); close(fd); printf("--- test finished ---\n");
------------------ Best wishes