How to use CMA on Jetson AGX Xavier Industrial

I would like to reserve 4GiB area using the CMA (Contiguous Memory Allocator) on the Jetson AGX Xavier Industrial.
I thought it would work by adding the following to the reserved-memory section of the device tree, but after booting and checking dmesg, it seems that only 64MiB is reserved.
How can I reserve 4GiB area?

※I use JetPack 4.6.3.

reserved-memory {
	#address-cells = <0x2>;
	#size-cells = <0x2>;
	ranges;

	generic_carveout {
		compatible = "nvidia,generic_carveout";
		size = <0x0 0x0>;
		alignment = <0x0 0x100000>;
		alloc-ranges = <0x0 0x0 0x1 0x0>;
		no-map;
		status = "disabled";
		linux,phandle = <0xcb>;
		phandle = <0xcb>;
	};

	grid-of-semaphores {
		compatible = "nvidia,gosmem";
		size = <0x0 0x6000>;
		alignment = <0x0 0x1000>;
		no-map;
		status = "okay";
		cvdevs = <0xc6 0xc7 0xc8 0xc9 0x89 0x90>;
		linux,phandle = <0xca>;
		phandle = <0xca>;
	};

	ramoops_carveout {
		compatible = "nvidia,ramoops";
		size = <0x0 0x200000>;
		alignment = <0x0 0x10000>;
		alloc-ranges = <0x0 0x0 0x1 0x0>;
		no-map;
		status = "okay";
		linux,phandle = <0x1c2>;
		phandle = <0x1c2>;
	};

	fb0_carveout {
		reg = <0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0>;
		reg-names = "surface", "lut";
		no-map;
		linux,phandle = <0x69>;
		phandle = <0x69>;
	};

	fb1_carveout {
		reg = <0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0>;
		reg-names = "surface", "lut";
		no-map;
		linux,phandle = <0x6a>;
		phandle = <0x6a>;
	};

	fb2_carveout {
		reg = <0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0>;
		reg-names = "surface", "lut";
		no-map;
		linux,phandle = <0x6b>;
		phandle = <0x6b>;
	};

	fb3_carveout {
		reg = <0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0>;
		reg-names = "surface", "lut";
		no-map;
		linux,phandle = <0x6c>;
		phandle = <0x6c>;
	};

	vpr-carveout {
		compatible = "nvidia,vpr-carveout";
		size = <0x0 0x2a000000>;
		alignment = <0x0 0x400000>;
		alloc-ranges = <0x0 0x80000000 0x0 0x70000000>;
		reusable;
		linux,phandle = <0x1c3>;
		phandle = <0x1c3>;
	};

    ///////////////////////////addition///////////////////////////////
    cma_4G {
		compatible = "shared-dma-pool";
		reusable;
		reg = <0x1 0x0 0x1 0x0>; // offset:4GiB, size:4GiB
        label = "cma_4G";
	};
    ///////////////////////////addition///////////////////////////////
};

[ 0.000000] cma: Reserved 64 MiB at 0x00000000fbc00000
[ 0.000000] Memory: 27788508K/29095924K available (15358K kernel code, 2956K rwdata, 6692K rodata, 640K init, 612K bss, 553752K reserved, 753664K cma-reserved)
[ 1.119279] dma_declare_coherent_resizable_cma_memory:324: resizable heap=vpr, ase=0x00000000c6000000, size=0x2a000000
[ 1.119655] cma: enabled page replacement for spfn=c6000, epfn=f0000
[ 1.119663] dma_declare_coherent_resizable_cma_memory:373: resizable cma heap=vpr create successful

Hi,
We don’t support customizing the size. Please check the similar topic:
How to enlarge the shared-dma-pool on orin?

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.