Hi,
On Fri, Nov 09, 2018 at 08:49:00PM +0800, lzSun wrote:
Hello,Stefan
did you followed my advice to first enable the FPU in the kernel? Otherwise it is totally clear to not work at all, because -O3 compiledcode make heavily use of the >FPU.
Thanks for your patient reply. I have tried to compile the hard-float genode toolchain by modifying the repos/tool/tool_chain like this: -TARGET_NAME_arm = arm-none-eabi +TARGET_NAME_arm = arm-none-eabihf And I use tool_chain script to compile hard-float compiler by "./tool/tool_chain arm" command. Then , I followed your advice to enable the FPU in the kernel according to this patch[1]. But when I want to build the project by "make run/tz_vmm", the compiling stage seems completed, but there's error occurred in linking stage.The error message like this:
genode build completed using 'hw_timer_drv' as 'timer' using 'ld-hw.lib.so' as 'ld.lib.so' core link address is 0x80000000 /usr/local/genode-gcc2/bin/../lib/gcc/arm-none-eabihf/6.3.0/../../../../arm-none-eabihf/bin/ld: error: var/run/tz_vmm.core uses VFP register arguments, /usr/local/genode-gcc2/bin/../lib/gcc/arm-none-eabihf/6.3.0/libgcc.a(_fixsfdi.o) does not
I am a little confused. I think I have build the hard-float compiler and enabled the FPU in the kernel. Did I missed something? I also tried to change the flag "-mfloat-abi=hard" to "-mfloat-abi=softfp" in repos/base/mk/global.mk and repos/base/mk/spec/arm_v7a.mk, then the project can be build successfully but still stuck at "Starting kernel ..." at booting stage.
I've compiled a hard-float compiler like advised to you, took that topic branch, and recognized that for the i.MX53 one needs to set the -mfpu flag to neon. Then I could measure the performance gain on the i.MX53 Quickstart board. I've updated my topic branch to be ready-to-merge, and prepared a topic branch that uses hard-float neon FPU at least on i.MX53 here:
I think you used the "old" topic branch that enabled the FPU, but in my last e-mail I referred to a new branch that uses the "neon" FPU compiler flags and the correct GCC support library that I've uploaded for you. Here it is again:
https://github.com/skalk/genode/tree/imx53-hf-neon
Thank you very much for providing such a patch to me. But since the patch you provided is based on genode 18.08 and I am using 18.05 now, I can't use "git diff" command to see which files are modified. Because there are too many file changes. And it seems that the patch you provided can not be used by me directly. So, as I said before, I refer to this patch[1] to enable FPU in kernel.At beginning, I just modify the file that I think related to i.mx53 ,here's the list of those file. Then, I also tried to modify all the file related to the patch[1] but the result have not changed . I know my questions are quite more and odd, please do not mind and thanks for your patience.
Sorry, but if you want to use "new" features you need to stay up-to-date here, or port back relevant changes (see above branch). I cannot help you here.
Regards Stefan
[1] https://github.com/skalk/genode/commit/cf02346cef59a6752c9a07494d812c8ada701... [2] repos/base-hw/lib/mk/spec/armv7/core-hw.inc repos/base-hw/src/bootstrap/spec/arm/crt0.s repos/base-hw/src/core/spec/arm/cpu_support.h repos/base-hw/src/core/spec/arm/exception_vector.s repos/base-hw/src/core/spec/arm/kernel/thread.cc repos/base-hw/src/core/spec/arm/vfpv3-d32.s repos/base/mk/spec/arm_v7a.mk
Best wishes
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users