[[ 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