[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Porting Xen to Jetson Nano

  • To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: "Srinivas Bangalore" <srini@xxxxxxxxxx>
  • Date: Mon, 20 Jul 2020 03:50:30 -0700
  • Delivery-date: Mon, 20 Jul 2020 10:50:48 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AdZeg0x1DrNeeg9GRtKkTne7zCxl1g==



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) 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) 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 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.






Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.