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