Hello,
I am trying to get Xen working on a Jetson Nano board (which is based on NVIDIA's Tegra210 SoC). After some searching through the Xen-devel archives, I learnt that there was a set of patches developed in 2017 to port Xen to Tegra (https://lists.xenproject.org/archives/html/xen-devel/2017-04/msg00991.html) . However these patches don't appear in the main source repository. Therefore, I applied these manually to Xen-4.8.5. With these changes, Xen now boots up successfully on the Jetson Nano, but there is no Dom0 output on the console. I can switch between Xen and Dom0 with CTRL-a-a-a. I am using Linux kernel version 5.7 for Dom0. I also tried using the native Linux kernel that comes with the Nano board, but that doesn't help. Here's the console screen capture: ## Flattened Device Tree blob at e3000000 Booting using the fdt blob at 0xe3000000 reserving fdt memory region: addr=80000000 size=20000 reserving fdt memory region: addr=e3000000 size=35000 Loading Device Tree to 00000000fc7f8000, end 00000000fc82ffff ... OK Starting kernel ... - UART enabled - - CPU 00000000 booting - - Current EL 00000008 - - Xen starting at EL2 - - Zero BSS - - Setting up control registers - - Turning on paging - - Ready - (XEN) Checking for initrd in /chosen (XEN) linux,initrd limits invalid: 0000000084100000 >= 0000000084100000 (XEN) RAM: 0000000080000000 - 00000000fedfffff (XEN) RAM: 0000000100000000 - 000000017f1fffff (XEN) (XEN) MODULE[0]: 00000000fc7f8000 - 00000000fc82d000 Device Tree (XEN) MODULE[1]: 00000000e1000000 - 00000000e2cbe200 Kernel console=hvc0 earlyprintk=uart8250-32bit,0x70006000 rootfstype=ext4 rw rootwait root=/dev/mmcblk0p1 (XEN) RESVD[0]: 0000000080000000 - 0000000080020000 (XEN) RESVD[1]: 00000000e3000000 - 00000000e3035000 (XEN) RESVD[2]: 00000000fc7f8000 - 00000000fc82d000 (XEN) (XEN) Command line: console=dtuart earlyprintk=xen earlycon=xenboot dom0_mem=512M loglevel=all (XEN) Placing Xen at 0x00000000fec00000-0x00000000fee00000 (XEN) Update BOOTMOD_XEN from 0000000080080000-0000000080188e01 => 00000000fec00000-00000000fed08e01 (XEN) Domain heap initialised (XEN) Taking dtuart configuration from /chosen/stdout-path (XEN) Looking for dtuart at "/serial@70 Xen 4.8.5 (XEN) Xen version 4.8.5 (srinivas@) (aarch64-linux-gnu-gcc (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0) debug=n Sun Jul 19 07:44:00 PDT 2020 (XEN) Latest ChangeSet: (XEN) Processor: 411fd071: "ARM Limited", variant: 0x1, part 0xd07, rev 0x1 (XEN) 64-bit Execution: (XEN) Processor Features: 0000000000002222 0000000000000000 (XEN) Exception Levels: EL3:64+32 EL2:64+32 EL1:64+32 EL0:64+32 (XEN) Extensions: FloatingPoint AdvancedSIMD (XEN) Debug Features: 0000000010305106 0000000000000000 (XEN) Auxiliary Features: 0000000000000000 0000000000000000 (XEN) Memory Model Features: 0000000000001124 0000000000000000 (XEN) ISA Features: 0000000000011120 0000000000000000 (XEN) 32-bit Execution: (XEN) Processor Features: 00000131:00011011 (XEN) Instruction Sets: AArch32 A32 Thumb Thumb-2 Jazelle (XEN) Extensions: GenericTimer Security (XEN) Debug Features: 03010066 (XEN) Auxiliary Features: 00000000 (XEN) Memory Model Features: 10101105 40000000 01260000 02102211 (XEN) ISA Features: 02101110 13112111 21232042 01112131 00011142 00011121 (XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 19200 KHz (XEN) GICv2 initialization: (XEN) gic_dist_addr=0000000050041000 (XEN) gic_cpu_addr=0000000050042000 (XEN) gic_hyp_addr=0000000050044000 (XEN) gic_vcpu_addr=0000000050046000 (XEN) gic_maintenance_irq=25 (XEN) GICv2: 224 lines, 4 cpus, secure (IID 0200143b). (XEN) Using scheduler: SMP Credit Scheduler (credit) (XEN) Allocated console ring of 16 KiB. (XEN) Bringing up CPU1 - CPU 00000001 booting - - Current EL 00000008 - - Xen starting at EL2 - - Setting up control registers - - Turning on paging - - Ready - (XEN) Bringing up CPU2 - CPU 00000002 booting - - Current EL 00000008 - - Xen starting at EL2 - - Setting up control registers - - Turning on paging - - Ready - (XEN) Bringing up CPU3 - CPU 00000003 booting - - Current EL 00000008 - - Xen starting at EL2 - - Setting up control registers - - Turning on paging - - Ready - (XEN) Brought up 4 CPUs (XEN) P2M: 44-bit IPA with 44-bit PA (XEN) P2M: 4 levels with order-0 root, VTCR 0x80043594 (XEN) I/O virtualisation disabled (XEN) *** LOADING DOMAIN 0 *** (XEN) Loading kernel from boot module @ 00000000e1000000 (XEN) Allocating 1:1 mappings totalling 512MB for dom0: (XEN) BANK[0] 0x000000a0000000-0x000000c0000000 (512MB) (XEN) Grant table range: 0x000000fec00000-0x000000fec60000 (XEN) Loading zImage from 00000000e1000000 to 00000000a0080000-00000000a1d3e200 (XEN) Allocating PPI 16 for event channel interrupt (XEN) Loading dom0 DTB to 0x00000000a8000000-0x00000000a8034354 (XEN) Scrubbing Free RAM on 1 nodes using 4 CPUs (XEN) ........done. (XEN) Initial low memory virq threshold set at 0x4000 pages. (XEN) Std. Loglevel: Errors and warnings (XEN) Guest Loglevel: Nothing (Rate-limited: Errors and warnings) (XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch input to Xen) (XEN) Freed 300kB init memory. Any suggestions/pointers to move forward would be much appreciated. Thanks, Srini