Re: [Query] Unable to probe reserved-memory carveouts in DomU with Xen
"Orzel, Michal" <[email protected]>
| Newsgroups | org.xenproject.lists.xen-devel |
|---|---|
| Message-ID | <[email protected]> |
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
>
>