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

Re: Question about xen and Rasp 4B

Thanks for the response!

On Sat, Jan 23, 2021 at 2:27 AM Stefano Stabellini <sstabellini@xxxxxxxxxx> wrote:
+ xen-devel, Roman,

On Fri, 22 Jan 2021, Jukka Kaartinen wrote:
> Hi Stefano,
> I'm Jukka Kaartinen a SW developer working on enabling hypervisors on mobile platforms. One of our HW that we use on development is
> Raspberry Pi 4B. I wonder if you could help me a bit :).
> I'm trying to enable the GPU with Xen + Raspberry Pi for dom0. https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=232323#p1797605
> I got so far that GPU drivers are loaded (v3d & vc4) without errors. But now Xen returns error when X is starting:
> (XEN) traps.c:1986:d0v1 HSR=0x93880045 pc=0x00007f97b14e70 gva=0x7f7f817000 gpa=0x0000401315d000
>  I tried to debug what causes this and looks like find_mmio_handler cannot find handler.
> (See more here: https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=232323&start=25#p1801691 )
> Any ideas why the handler is not found?

Hi Jukka,

I am glad to hear that you are interested in Xen on RaspberryPi :-)  I
haven't tried the GPU yet, I have been using the serial only.
Roman, did you ever get the GPU working?

The error is a data abort error: Linux is trying to access an address
which is not mapped to dom0. The address seems to be 0x401315d000. It is
a pretty high address; I looked in device tree but couldn't spot it.

>From the HSR (the syndrom register) it looks like it is a translation
fault at EL1 on stage1. As if the Linux address mapping was wrong.
Anyone has any ideas how this could happen? Maybe a reserved-memory
I had issues with loading the driver in the first place. Apparently swiotlb is used, maybe it can cause this. I also tried to enable CMA.

That memory is very high. Success full address is for example this: 0xff841f00
(XEN) GICv2 initialization:
(XEN)         gic_dist_addr=00000000ff841000
(XEN)         gic_cpu_addr=00000000ff842000
(XEN)         gic_hyp_addr=00000000ff844000
(XEN)         gic_vcpu_addr=00000000ff846000
(XEN)         gic_maintenance_irq=25
> p.s.
> While testing I found issue with Xen master branch and your patch: xen/rpi4: implement watchdog-based reset
> Looks like black listing the bcm2835-pm
> @@ -37,12 +41,69 @@ static const struct dt_device_match rpi4_blacklist_dev[] __initconst =
>       * The aux peripheral also shares a page with the aux UART.
>       */
>      DT_MATCH_COMPATIBLE("brcm,bcm2835-aux"),
> +    /* Special device used for rebooting */
> +    DT_MATCH_COMPATIBLE("brcm,bcm2835-pm"),
> will prevent v3d driver to locate phandle. I think it will use the same resource:
>   pm: watchdog@7e100000 {
>       compatible = "brcm,bcm2835-pm", "brcm,bcm2835-pm-wdt";
> #power-domain-cells = <1>;
> #reset-cells = <1>;
> reg = <0x7e100000 0x114>,
>      <0x7e00a000 0x24>,
>      <0x7ec11000 0x20>;
> clocks = <&clocks BCM2835_CLOCK_V3D>,
> <&clocks BCM2835_CLOCK_PERI_IMAGE>,
> <&clocks BCM2835_CLOCK_H264>,
> <&clocks BCM2835_CLOCK_ISP>;
> clock-names = "v3d", "peri_image", "h264", "isp";
> system-power-controller;
> };

Yeah, I imagine it could be possible. Can you post the error message you
are seeing from the v3d driver?
This is the error:
[    0.069682] OF: /v3dbus/v3d@7ec04000: could not find phandle
[    0.074828] OF: /v3dbus/v3d@7ec04000: could not find phandle
v3d driver is not loaded.

Jukka Kaartinen



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