Missing memory. 600 MB in 2GB model

I recently bought another M4 with 2GB RAM. However free in Ubuntu 18 shows only about 600 MB RAM in the system? I can understand that some part is being shared to the GPU but I doubt it needs over 1 GB for it.

Any idea what’s the issue might be?

check this topic

It’s definitely a 2GB model. It’s says so while booting at least. Also cat /proc/meminfo displays among others:

VmallocTotal: 263061440 kB

So I assume it’s physically there but somehow can’t be used. Is there a way to assign all memory to the system instead of GPU? I don’t need X-Server

If your board is 2GB, memTotal is about 1609MB from /proc/meminfo after bootup, about 328MB reserve to a special rpc bluecore processor of rtd1395, ubuntu 18 is a desktop linux image in bpi wiki, you can try ubuntu 16 server without X-server

root@bpi-iot-ros-ai:~# cat /proc/meminfo 
MemTotal:        1609848 kB
MemFree:          675460 kB
MemAvailable:     885404 kB

If someone don’t need media task, please try this patch to save more memory for system use, but you need more stability test.

diff --git a/linux-rtk/arch/arm64/boot/dts/realtek/rtd139x/rtd-1395-bananapi-m4-1GB.dts b/linux-rtk/arch/arm64/boot/dts/realtek/rtd139x/rtd-1395-bananapi-m4-1GB.dts
index 7525be8..710b1ea 100755
--- a/linux-rtk/arch/arm64/boot/dts/realtek/rtd139x/rtd-1395-bananapi-m4-1GB.dts
+++ b/linux-rtk/arch/arm64/boot/dts/realtek/rtd139x/rtd-1395-bananapi-m4-1GB.dts
@@ -7,7 +7,7 @@
 /memreserve/ ROOTFS_NORMAL_START ROOTFS_NORMAL_SIZE;
 /memreserve/ ACPU_IDMEM_PHYS ACPU_IDMEM_SIZE;
 
-#define MEDIA_REQ_SIZE_0 (0x0ce00000) // 206M
+#define MEDIA_REQ_SIZE_0 (0x01000000) // 16M
 #define ION_MEDIA_HEAP_PHYS_0 (MEM_SLOT(0, PHYS, MEDIA_REQ_SIZE_0))
 #define ION_MEDIA_HEAP_SIZE_0 (MEM_SLOT(0, SIZE, MEDIA_REQ_SIZE_0))
 #define ION_MEDIA_HEAP_FLAG_0 (MEM_SLOT(0, FLAG, MEDIA_REQ_SIZE_0))
@@ -17,14 +17,8 @@
 #define ION_AUDIO_HEAP_SIZE_0 (MEM_SLOT(1, SIZE, AUDIO_REQ_SIZE_0))
 #define ION_AUDIO_HEAP_FLAG_0 (MEM_SLOT(1, FLAG, AUDIO_REQ_SIZE_0))
 
-#define MEDIA_REQ_SIZE_1 (0x03c00000) // 60M
-#define ION_MEDIA_HEAP_PHYS_1 (MEM_SLOT(2, PHYS, MEDIA_REQ_SIZE_1))
-#define ION_MEDIA_HEAP_SIZE_1 (MEM_SLOT(2, SIZE, MEDIA_REQ_SIZE_1))
-#define ION_MEDIA_HEAP_FLAG_1 (MEM_SLOT(2, FLAG, MEDIA_REQ_SIZE_1))
-
 /memreserve/ ION_MEDIA_HEAP_PHYS_0  ION_MEDIA_HEAP_SIZE_0;
 /memreserve/ ION_AUDIO_HEAP_PHYS_0  ION_AUDIO_HEAP_SIZE_0;
-/memreserve/ ION_MEDIA_HEAP_PHYS_1  ION_MEDIA_HEAP_SIZE_1;
 
 #include "rtd-139x.dtsi"
 
@@ -58,7 +52,7 @@
 		bootargs = "earlycon=uart8250,mmio32,0x98007800 console=ttyS0,115200 init=/init loglevel=4";
 		swiotlb-memory-reservation-size = <512>; /*  512: 1MB,  2048: 4MB*/
 		swiotlb-force = <0>; /* 0: SWIOTLB_NORMAL, 1: SWIOTLB_FORCE, 2: SWIOTLB_NO_FORCE */
-		cma-region-enable = <1>;
+		cma-region-enable = <0>;
 		cma-region-info = <0x00000000 0x02000000 0x20000000>;
 		/*cma-region-info = <0x00000000 0x01000000 0x12c00000>, <0x00000000 0x12c00000 0x20000000>;*/
 	};
@@ -153,10 +147,7 @@
 			rtk,memory-reserve = <
 				ION_MEDIA_HEAP_PHYS_0
 				ION_MEDIA_HEAP_SIZE_0
-				ION_MEDIA_HEAP_FLAG_0
-				ION_MEDIA_HEAP_PHYS_1
-				ION_MEDIA_HEAP_SIZE_1
-				ION_MEDIA_HEAP_FLAG_1>;
+				ION_MEDIA_HEAP_FLAG_0>;
 		};
 	};
 
diff --git a/linux-rtk/arch/arm64/boot/dts/realtek/rtd139x/rtd-1395-bananapi-m4-2GB.dts b/linux-rtk/arch/arm64/boot/dts/realtek/rtd139x/rtd-1395-bananapi-m4-2GB.dts
index a2bba7c..1329aad 100755
--- a/linux-rtk/arch/arm64/boot/dts/realtek/rtd139x/rtd-1395-bananapi-m4-2GB.dts
+++ b/linux-rtk/arch/arm64/boot/dts/realtek/rtd139x/rtd-1395-bananapi-m4-2GB.dts
@@ -7,7 +7,7 @@
 /memreserve/ ROOTFS_NORMAL_START ROOTFS_NORMAL_SIZE;
 /memreserve/ ACPU_IDMEM_PHYS ACPU_IDMEM_SIZE;
 
-#define MEDIA_REQ_SIZE_0 (0x0ce00000) // 206M
+#define MEDIA_REQ_SIZE_0 (0x01000000) // 16M
 #define ION_MEDIA_HEAP_PHYS_0 (MEM_SLOT(0, PHYS, MEDIA_REQ_SIZE_0))
 #define ION_MEDIA_HEAP_SIZE_0 (MEM_SLOT(0, SIZE, MEDIA_REQ_SIZE_0))
 #define ION_MEDIA_HEAP_FLAG_0 (MEM_SLOT(0, FLAG, MEDIA_REQ_SIZE_0))
@@ -17,14 +17,8 @@
 #define ION_AUDIO_HEAP_SIZE_0 (MEM_SLOT(1, SIZE, AUDIO_REQ_SIZE_0))
 #define ION_AUDIO_HEAP_FLAG_0 (MEM_SLOT(1, FLAG, AUDIO_REQ_SIZE_0))
 
-#define MEDIA_REQ_SIZE_1 (0x0C400000) // 196M
-#define ION_MEDIA_HEAP_PHYS_1 (MEM_SLOT(2, PHYS, MEDIA_REQ_SIZE_1))
-#define ION_MEDIA_HEAP_SIZE_1 (MEM_SLOT(2, SIZE, MEDIA_REQ_SIZE_1))
-#define ION_MEDIA_HEAP_FLAG_1 (MEM_SLOT(2, FLAG, MEDIA_REQ_SIZE_1))
-
 /memreserve/ ION_MEDIA_HEAP_PHYS_0  ION_MEDIA_HEAP_SIZE_0;
 /memreserve/ ION_AUDIO_HEAP_PHYS_0  ION_AUDIO_HEAP_SIZE_0;
-/memreserve/ ION_MEDIA_HEAP_PHYS_1  ION_MEDIA_HEAP_SIZE_1;
 
 #include "rtd-139x.dtsi"
 
@@ -58,7 +52,7 @@
 		bootargs = "earlycon=uart8250,mmio32,0x98007800 console=ttyS0,115200 init=/init loglevel=4";
 		swiotlb-memory-reservation-size = <512>; /*  512: 1MB,  2048: 4MB*/
 		swiotlb-force = <0>; /* 0: SWIOTLB_NORMAL, 1: SWIOTLB_FORCE, 2: SWIOTLB_NO_FORCE */
-		cma-region-enable = <1>;
+		cma-region-enable = <0>;
 		cma-region-info = <0x00000000 0x02000000 0x20000000>;
 		/*cma-region-info = <0x00000000 0x01000000 0x12c00000>, <0x00000000 0x12c00000 0x20000000>;*/
 	};
@@ -159,10 +153,7 @@
 			rtk,memory-reserve = <
 				ION_MEDIA_HEAP_PHYS_0
 				ION_MEDIA_HEAP_SIZE_0
-				ION_MEDIA_HEAP_FLAG_0
-				ION_MEDIA_HEAP_PHYS_1
-				ION_MEDIA_HEAP_SIZE_1
-				ION_MEDIA_HEAP_FLAG_1>;
+				ION_MEDIA_HEAP_FLAG_0>;
 		};
 	};

Ubuntu 18 mate desktop

root@bpi-iot-ros-ai:~# cat /proc/meminfo 
MemTotal:        1975352 kB
MemFree:         1139764 kB
MemAvailable:    1216340 kB

Ubuntu 16 server

root@bpi-iot-ros-ai:~# cat /proc/meminfo 
MemTotal:        1975352 kB
MemFree:         1792460 kB
MemAvailable:    1631816 kB