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

Re: [Query] Unable to probe reserved-memory carveouts in DomU with Xen


  • To: "Orzel, Michal" <michal.orzel@xxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: "Padhi, Beleswar" <b-padhi@xxxxxx>
  • Date: Fri, 24 Jul 2026 14:02:23 +0530
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 198.47.23.195) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=ti.com; dmarc=pass (p=quarantine sp=none pct=100) action=none header.from=ti.com; dkim=none (message not signed); arc=none (0)
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=hn4uvu6xUHqmPN17z9JfBf/PvTCha8Eab+twlmEpdeA=; b=vXhIDmkLB/BNB3qMvGcgLaLRRHa3fuQFNcpECfzJKBWVpzha4gGpXHV63D/l9dfVUHHrmfyXE0hpknlkcJJGa5RDJNXzpzgP8gV3bC+VGsG2hiRhwOCeoAOIo7c8wFXrlOTbqzaRU8QU2FKLBl4eQ3piQOcVbBB9RfG6FIEGS8h86e7yShxl4wsqV9vKy+FsFoghrnF+7bDlOVdAl9Y5vZ0ocDOLdbGn8V9m1wJvNHNmfvFIhyL1Vtx1biVq5ASZlRKwAp7XCiWDr7dNE9zLef0IFFTISOg93Zu/8TpHsX60U6ZzPdDhvbDT6NF7JTolIVXY6E4b4df1OdJeD5Ynzg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YalrudPRN2tTA9y7waWzphZgf10hQ7I9s7NRMmVtsJK+uvHOfHneX80bVFS/EeahouKJ1fQ8yffJnnG4LWKTSEuJiJi0c5yWgeXdKFXBZfRB4tHUNBuVAGlXSzEvOkBJ36dw4h0jxTAySyFFGO79CpgOTWffQsAXD4YbTiJXCy5aIZBVs+f+3UV1MHPsUz1FEdOA+iIJXjAmny2sRXEt2PJIibqoUloc1z3be9NAFBZdN7P+c6Ut0LRH/4Q2yXB9jCmiYnq3TdxfntqUEH8X6S9WkZX5SCL383E7lkERmxpBZNmuJ+StJuwLDXT27SohlKoyMK+QH54VCVDUkcrpig==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=proofpoint-05-2026 header.d=ti.com header.i="@ti.com" header.h="Content-Transfer-Encoding:Content-Type:Date:From:In-Reply-To:Message-ID:MIME-Version:References:Subject:To"; dkim=pass header.s=selector1 header.d=ti.com header.i="@ti.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
  • Delivery-date: Fri, 24 Jul 2026 08:32:49 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Hello,

Thanks for the response! I see, this would solve the cma problem. But there are usecases when we want to use the reserved-memory node; one example is the firmware for remote processors. In that case, how do we passthrough reserved-memory nodes to
DomUs?

Example:
 60
 61                 mcu_r52_0_fw_memory_region: memory@a1000000 {
 62                         compatible = "shared-dma-pool";
 63                         reg = <0x00 0xa1000000 0x00 0x100000>;
 64                         no-map;
 65                 };

Thanks,
Beleswar

On 7/24/2026 1:52 PM, Orzel, Michal wrote:
Hi,

I'm afraid this will not work. The reason is that Xen only copies nodes from the
passthrough DTB to final DTB that are placed under `/passthrough` node and
`/aliases`. /reserved-memory needs to be under root node `/`, therefore it will
not be copied. However, it seems like you are not using CMA node specifying a
fixed memory region (using `reg`) but size. In that case you should be able to
achieve the same using `cma=128M` kernel cmdline parameter.

~Michal

On 24-Jul-26 08:55, Beleswar Prasad Padhi wrote:
Hi all,

I have been trying to use reserved-memory carveouts in DomU, but failing 
constantly.

This is the log from Dom1 boot:

[    0.000000] earlycon: uart8250 at MMIO32 0x0000000053914000 (options '115200n
8')
[    0.000000] printk: legacy bootconsole [uart8250] enabled
[    0.000000] Xen 4.21 support found
[    0.000000] efi: UEFI not found.
*[    0.000000] OF: reserved mem: Reserved memory: No reserved-memory node in 
the DT*
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000040000000-0x0000000051ffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x0000000051ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x0000000051ffffff]
[    0.000000] On node 0, zone DMA: 24576 pages in unavailable ranges
[    0.000000] cma: Reserved 32 MiB at 0x000000004f800000

This is my passthrough.dts:

     1 /*
     2 * This is a partial DT for passthrough node to DomU.
     3 */
     4 #include <dt-bindings/interrupt-controller/irq.h>
     5 #include <dt-bindings/interrupt-controller/arm-gic.h>
     6
     7 /dts-v1/;
     8
     9 / {
    10         #address-cells = <2>;
    11         #size-cells = <1>;
    12
~  13         reserved-memory {
~  14                 #address-cells = <2>;
~  15                 #size-cells = <2>;
+  16                 ranges;
+  17
+  18                 /* CMA region for framebuffer allocation */
+  19                 linux,cma {
+  20                         compatible = "shared-dma-pool";
+  21                         reusable;
+  22                         size = <0x00 0x08000000>; /* 128MB CMA pool */
+  23                         linux,cma-default;
+  24                 };
    25         };
    26
    27         passthrough {
    28                 compatible = "simple-bus";
    29                 ranges;
    30                 #address-cells = <2>;
    31                 #size-cells = <1>;
    32
    33                 misc_clk: misc_clk {
    34                         #clock-cells = <0>;
    35                         clock-frequency = <100000000>;
    36                         compatible = "fixed-clock";
    37                 };

    73                 uart@53914000 {
    74                         compatible = "ns16550a";
    75                         reg = <0x00 0x53914000 0x1000>;
~_ 76                         interrupts = <0 302 4>;
    77                         reg-shift = <2>;
    78                         reg-io-width = <4>;
    79                         clocks = <&misc_clk>;
    80                         oversampling-rate = <16>;
    81                         programmable-char-timeout = <4>;
    82                         status = "okay";
    83                         xen,path = 
"/bus@100000/bus@22000000/uart@53914000";
    84                         xen,reg = <0x0 0x53914000 0x1000 0x0 0x53914000>;
    85                         xen,force-assign-without-iommu;
    86                 };
    87          };

    88    };


And this is my dom1.cfg file:

  1 name = "dom1"
  2 memory = 256
  3 vcpus = 4
  4
  5 kernel = "/boot/xen-dom1/Image"
  6 extra = "console=ttyS0,115200n8 earlycon=uart8250,mmio32,0x53914000,115200n8 
loglevel=8 root=/dev/xvda rw"
  7
  8 # UART1 (0x53914000) passthrough to Dom1 console
  9 iomem = ["0x53914,1"]
11 irqs = [ 334 ]
12 dtdev = [ "/bus@100000/bus@22000000/uart@53914000"]
13 vif = ["script=vif-route"]
14 device_tree = "/boot/xen-dom1/passthrough.dtb"
15 #
17 disk = ["phy:/dev/vda2,xvda,rw"]


Am I doing something wrong? Any help or debugging leads would be really 
appreciated...

Thank you,
Beleswar





 


Rackspace

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