> On 26 Sep 2023, at 06:33, Leo Yan <[email protected]> wrote:
> 
> During the Linux kernel booting, an error is reported by the Xen
> hypervisor:
> 
>  (XEN) arch/arm/p2m.c:2202: d0v0: Failing to acquire the MFN 0x1a02dc
> 
> The kernel attempts to use an invalid memory frame number, which can be
> converted to: 0x1a02dc << PAGE_SHIFT, resulting in 0x1_a02d_c000.
> 
> The invalid memory frame falls into a reserved memory node, which is
> defined in the device tree as below:
> 
>  reserved-memory {
>          #address-cells = <0x02>;
>          #size-cells = <0x02>;
>          ranges;
> 
>  ...
> 
>          ethosn_reserved {
>                  compatible = "shared-dma-pool";
>                  reg = <0x01 0xa0000000 0x00 0x20000000>;
>                  status = "disabled";
>                  no-map;
>          };
> 
>  ...
>  };
> 
> Xen excludes all reserved memory regions from the frame management
> through the dt_unreserved_regions() function. On the other hand, the
> reserved memory nodes are passed to the Linux kernel. However, the Linux
> kernel ignores the 'ethosn_reserved' node since its status is
> "disabled". This leads to the Linux kernel to allocate pages from the
> reserved memory range.

I might be wrong, but reading the specifications seems that “status” is not a 
property
of the child nodes of /reserved-memory, so I’m not sure Xen should do something 
about it.

If it is the case, it’s possible that the device tree is wrong in this case.


Reply via email to