Hi Arm Community,
I'm trying PIE/POE feature provided by v8.9, and I notice Linux becomes compatible with this feature since v6.5. Thus I use scripts provided here to setup the environment. However, when I enable PIE feature, the boot seems to get stuck. This is my fvp settings:
-C pctl.startup=0.0.0.0 \ -C bp.secure_memory=0 \ -C cluster0.NUM_CORES=2 \ -C cluster1.NUM_CORES=0 \ -C cluster0.has_permission_indirection_s1=2 \ -C cluster0.has_permission_indirection_s2=2 \ -C cluster0.has_permission_overlay_s1=2 \ -C cluster0.has_permission_overlay_s2=2 \ -C cache_state_modelled=0 \ -C bp.pl011_uart0.untimed_fifos=1 \ -C bp.pl011_uart0.unbuffered_output=1 \ -C bp.pl011_uart0.out_file="${WORKSPACE}/aemfvp-a/uart0.log" \ -C bp.pl011_uart1.out_file="${WORKSPACE}/aemfvp-a/uart1.log" \ -C bp.secureflashloader.fname="${WORKSPACE}/output/aemfvp-a/aemfvp-a/tf-bl1.bin" \ -C bp.flashloader0.fname="${WORKSPACE}/output/aemfvp-a/aemfvp-a/fip-uboot.bin" \ -C cluster0.cpu0.semihosting-cwd="${WORKSPACE}/output/aemfvp-a/aemfvp-a/" \ -C bp.ve_sysregs.mmbSiteDefault=0 \ -C bp.ve_sysregs.exit_on_shutdown=1 \ -C bp.virtioblockdevice.image_path="${WORKSPACE}/output/aemfvp-a/components/aemfvp-a/grub-busybox.img" \
And I got this output:
But once I remove "-C cluster0.has_permission_indirection_s1=2 -C cluster0.has_permission_indirection_s2=2 -C cluster0.has_permission_overlay_s1=2 -C cluster0.has_permission_overlay_s2=2" to disable PIE/POE, then everything is OK, kernel can boot successfully.
How can I solve it? Or anyone successfully run Linux with PIE enabled can share some setup configurations or steps?
Your log shows that Linux kernel boot.img and ramdisk.img may be too big to be loaded successfully.
You have to reduce the image sizes. If you want to enable the PIE/POE features, please disable other unnecessary features or drivers to reduce the image size.