Hello Stefano and Julien,
I tried to do some debugging by adding a printk inside the function idle_loop in file arm/domain.c. Looks like the idle function is running
normally because the printk function is getting called without stalling. But the vga screen is still blacked out and the serial terminal does not
display any login message.
the grub config for xen 4.17 is
submenu 'Xen hypervisor, version 4.17' $menuentry_id_option 'xen-hypervisor-4.17-5ebc23af-c2e2-4ac3-b308-3e82ec786c04' {
menuentry 'Debian GNU/Linux, with Xen 4.17 and Linux 5.10.0-23-arm64' --class debian --class gnu-linux --class gnu --class os --class xen $menuentry_id_option 'xen-gnulinux-5.10.0-23-arm64-advanced-5ebc23af-c2e2-4ac3-b308-3e82ec786c04' {
insmod part_gpt
insmod ext2
set root='hd0,gpt2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//sas/disk@20000,gpt2' --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 5ebc23af-c2e2-4ac3-b308-3e82ec786c04
else
search --no-floppy --fs-uuid --set=root 5ebc23af-c2e2-4ac3-b308-3e82ec786c04
fi
echo 'Loading Xen 4.17 ...'
if [ "$grub_platform" = "pc" -o "$grub_platform" = "" ]; then
xen_rm_opts=
else
xen_rm_opts="no-real-mode edd=off"
fi
xen_hypervisor /boot/xen-4.17 placeholder ${xen_rm_opts}
echo 'Loading Linux 5.10.0-23-arm64 ...'
xen_module /boot/vmlinuz-5.10.0-23-arm64 placeholder root=UUID=5ebc23af-c2e2-4ac3-b308-3e82ec786c04 ro quiet
echo 'Loading initial ramdisk ...'
xen_module --nounzip /boot/initrd.img-5.10.0-23-arm64
}
The code I am modifying is
static void noreturn idle_loop(void)
{
unsigned int cpu = smp_processor_id();
for ( ; ; )
{
dprintk(XENLOG_INFO, "running idle loop \n");
if ( cpu_is_offline(cpu) )
stop_cpu();
}
}
}
Hopes this debugging makes some sense.
Best Regards,
Jiatong Shen