[[ Sorry. Needed to send another mail because I forgot to add xen-devel lists to CC. ]] Hello, I applied your direct-map patch, Stefano, on top of RELEASE-4.13.0 Xen. I also took your advice and used the Imagebuilder tool to setup my u-boot environment. I modified the tool to allow SDCard booting and tweaked the parameters a little to fit our platforms, also introducing support to add "direct-map" parameter in specific /chosen/DomU node and "xen,passthrough" in the host dts. The tool is very helpful and allows me to quickly change the u-boot environment without manually entering all the fdt formatting commands. The dom0less booting is successful, however, when I try to passthrough any device (I tried with ethernet card and uSDHC) I get a kernel panic in DomU when it tries to probe the driver, because of an unhandled fault: (XEN) DOM1: [ 3.883482] sdhci: Secure Digital Host Controller Interface driver (XEN) DOM1: [ 3.891021] sdhci: Copyright(c) Pierre Ossman (XEN) DOM1: [ 3.896389] sdhci-pltfm: SDHCI platform and OF driver helper (XEN) DOM1: [ 3.903298] Unhandled fault at 0xffffff800800d048 (XEN) DOM1: [ 3.909021] Mem abort info: (XEN) DOM1: [ 3.912863] ESR = 0x96000000 (XEN) DOM1: [ 3.917019] Exception class = DABT (current EL), IL = 32 bits (XEN) DOM1: [ 3.924115] SET = 0, FnV = 0 (XEN) DOM1: [ 3.928206] EA = 0, S1PTW = 0 (XEN) DOM1: [ 3.932457] Data abort info: (XEN) DOM1: [ 3.936514] ISV = 0, ISS = 0x00000000 (XEN) DOM1: [ 3.941398] CM = 0, WnR = 0 (XEN) DOM1: [ 3.945481] swapper pgtable: 4k pages, 39-bit VAs, pgdp = (____ptrval____) (XEN) DOM1: [ 3.953532] [ffffff800800d048] pgd=00000000bfffe803, pud=00000000bfffe803, pmd=00000000bfffd803, pte=00e80000402f0f07 (XEN) DOM1: [ 3.965278] Internal error: ttbr address size fault: 96000000 [#1] PREEMPT SMP (XEN) DOM1: [ 3.973546] Modules linked in: (XEN) DOM1: [ 3.977709] Process swapper/0 (pid: 1, stack limit = 0x(____ptrval____)) (XEN) DOM1: [ 3.985525] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.19.59-rt24+g00334f2 #1 (XEN) DOM1: [ 3.993855] pstate: 60000005 (nZCv daif -PAN -UAO) (XEN) DOM1: [ 3.999755] pc : 0xffffff80083ac864 (XEN) DOM1: [ 4.004354] lr : 0xffffff80083ac810 (XEN) DOM1: [ 4.008955] sp : ffffff800800bba0 (XEN) DOM1: [ 4.013382] x29: ffffff800800bba0 x28: 0000000000000000 (XEN) DOM1: [ 4.019805] x27: ffffff800864f068 x26: ffffff80086ba000 (XEN) DOM1: [ 4.026228] x25: ffffffc031564980 x24: ffffff800856e0c0 (XEN) DOM1: [ 4.032651] x23: ffffffc03e8eec00 x22: ffffffc03e8eec10 (XEN) DOM1: [ 4.039074] x21: ffffffc03e8bf500 x20: ffffffc03e8bf800 (XEN) DOM1: [ 4.045497] x19: 0000000000000000 x18: ffffffffffffffff (XEN) DOM1: [ 4.051921] x17: 0000000000000000 x16: 0000000000000000 (XEN) DOM1: [ 4.058344] x15: ffffff8008678548 x14: ffffffffffffffff (XEN) DOM1: [ 4.064767] x13: 0000000000000018 x12: 0101010101010101 (XEN) DOM1: [ 4.071190] x11: 0000000000000020 x10: 0101010101010101 (XEN) DOM1: [ 4.077613] x9 : 0000000000000000 x8 : ffffffc031564c00 (XEN) DOM1: [ 4.084036] x7 : 0000000000000000 x6 : 000000000000003f (XEN) DOM1: [ 4.090459] x5 : 0000000000000002 x4 : ffffffc03e83b4c0 (XEN) DOM1: [ 4.096883] x3 : 0000000000000000 x2 : 0000000000000000 (XEN) DOM1: [ 4.103306] x1 : ffffffc03e8bf000 x0 : ffffff800800d048 (XEN) DOM1: [ 4.109729] Call trace: (XEN) DOM1: [ 4.113290] 0xffffff80083ac864 (XEN) DOM1: [ 4.117541] 0xffffff800832e3b8 (XEN) DOM1: [ 4.121795] 0xffffff800832c49c (XEN) DOM1: [ 4.126047] 0xffffff800832c6bc (XEN) DOM1: [ 4.130301] 0xffffff800832c808 (XEN) DOM1: [ 4.134554] 0xffffff800832a208 (XEN) DOM1: [ 4.138807] 0xffffff800832bd38 (XEN) DOM1: [ 4.143060] 0xffffff800832b5d8 (XEN) DOM1: [ 4.147314] 0xffffff800832d1f0 (XEN) DOM1: [ 4.151567] 0xffffff800832e318 (XEN) DOM1: [ 4.155820] 0xffffff800861d5f8 (XEN) DOM1: [ 4.160073] 0xffffff800808397c (XEN) DOM1: [ 4.164326] 0xffffff8008600db4 (XEN) DOM1: [ 4.168580] 0xffffff80085078c0 (XEN) DOM1: [ 4.172833] 0xffffff8008084c30 (XEN) DOM1: [ 4.177091] Code: b9000ea0 d5033e9f f9400ea0 91012000 (b900001f) (XEN) DOM1: [ 4.184298] ---[ end trace 7dc5f6b878cccbfa ]--- (XEN) DOM1: [ 4.191546] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b I uploaded on pastebin.com the u-boot env settings [0], my device passthrough partial dts [1], and the whole log of boot messages from xen, Dom0 and DomU [2]. I also modified the guest address layout and mapped the PL011 UART and GICv3 addresses to match the physical ones, as well as setting the GUEST_GNTTAB_BASE and GUEST_MAGIC_BASE to addresses before our board's RAM start address. I updated the GUEST_RAM0_BASE and GUEST_RAM0_SIZE to match the physical ones. Maybe you could check if I did anything wrong, because I couldn't figure it out. [0] https://pastebin.com/As6PgVFf [1] https://pastebin.com/j0NS4x5Z [2] https://pastebin.com/TaZR8pii Thank you once again for your support, Andrei