@@ -54,11 +54,6 @@
stdout-path = "serial0:115200n8";
};
- memory@0 {
- device_type = "memory";
- reg = <0x0 0x0 0x0 0x80000000>;
- };
-
vddio_boot: regulator-vddio_boot {
compatible = "regulator-fixed";
regulator-name = "VDDIO_BOOT";
@@ -55,6 +55,18 @@
#address-cells = <2>;
#size-cells = <2>;
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ /* 2MiB reserved for ARM Trusted Firmware (BL31) */
+ secmon: secmon {
+ reg = <0x0 0x10000000 0x0 0x200000>;
+ no-map;
+ };
+ };
+
cpus {
#address-cells = <0x2>;
#size-cells = <0x0>;
@@ -62,7 +62,11 @@
memory@0 {
device_type = "memory";
- reg = <0x0 0x0 0x0 0x40000000>;
+ /*
+ * The first 16MiB and last 16MiB of the DDR memory
+ * are reserved to the Hardware ROM Firmware
+ */
+ linux,usable-memory = <0x0 0x1000000 0x0 0x3f000000>;
};
leds {
@@ -61,7 +61,11 @@
memory@0 {
device_type = "memory";
- reg = <0x0 0x0 0x0 0x80000000>;
+ /*
+ * The first 16MiB and last 16MiB of the DDR memory
+ * are reserved to the Hardware ROM Firmware
+ */
+ linux,usable-memory = <0x0 0x1000000 0x0 0x7f000000>;
};
usb_otg_pwr: regulator-usb-pwrs {
@@ -49,6 +49,15 @@
/ {
compatible = "amlogic,p200", "amlogic,meson-gxbb";
model = "Amlogic Meson GXBB P200 Development Board";
+
+ memory@0 {
+ device_type = "memory";
+ /*
+ * The first 16MiB and last 16MiB of the DDR memory
+ * are reserved to the Hardware ROM Firmware
+ */
+ linux,usable-memory = <0x0 0x1000000 0x0 0x3f000000>;
+ };
};
&i2c_B {
@@ -49,4 +49,13 @@
/ {
compatible = "amlogic,p201", "amlogic,meson-gxbb";
model = "Amlogic Meson GXBB P201 Development Board";
+
+ memory@0 {
+ device_type = "memory";
+ /*
+ * The first 16MiB and last 16MiB of the DDR memory
+ * are reserved to the Hardware ROM Firmware
+ */
+ linux,usable-memory = <0x0 0x1000000 0x0 0x3f000000>;
+ };
};
@@ -53,11 +53,6 @@
stdout-path = "serial0:115200n8";
};
- memory@0 {
- device_type = "memory";
- reg = <0x0 0x0 0x0 0x40000000>;
- };
-
usb_pwr: regulator-usb-pwrs {
compatible = "regulator-fixed";
@@ -50,6 +50,10 @@
memory@0 {
device_type = "memory";
- reg = <0x0 0x0 0x0 0x80000000>;
+ /*
+ * The first 16MiB and last 16MiB of the DDR memory
+ * are reserved to the Hardware ROM Firmware
+ */
+ linux,usable-memory = <0x0 0x1000000 0x0 0x7f000000>;
};
};
@@ -50,6 +50,10 @@
memory@0 {
device_type = "memory";
- reg = <0x0 0x0 0x0 0x40000000>;
+ /*
+ * The first 16MiB and last 16MiB of the DDR memory
+ * are reserved to the Hardware ROM Firmware
+ */
+ linux,usable-memory = <0x0 0x1000000 0x0 0x3f000000>;
};
};
@@ -50,6 +50,10 @@
memory@0 {
device_type = "memory";
- reg = <0x0 0x0 0x0 0x80000000>;
+ /*
+ * The first 16MiB and last 16MiB of the DDR memory
+ * are reserved to the Hardware ROM Firmware
+ */
+ linux,usable-memory = <0x0 0x1000000 0x0 0x7f000000>;
};
};
@@ -60,7 +60,11 @@
memory@0 {
device_type = "memory";
- reg = <0x0 0x0 0x0 0x80000000>;
+ /*
+ * The first 16MiB and last 16MiB of the DDR memory
+ * are reserved to the Hardware ROM Firmware
+ */
+ linux,usable-memory = <0x0 0x1000000 0x0 0x3f000000>;
};
vddio_card: gpio-regulator {
@@ -49,6 +49,15 @@
/ {
compatible = "amlogic,p230", "amlogic,s905d", "amlogic,meson-gxl";
model = "Amlogic Meson GXL (S905D) P230 Development Board";
+
+ memory@0 {
+ device_type = "memory";
+ /*
+ * The first 16MiB and last 16MiB of the DDR memory
+ * are reserved to the Hardware ROM Firmware
+ */
+ linux,usable-memory = <0x0 0x1000000 0x0 0x7f000000>;
+ };
};
/* P230 has exclusive choice between internal or external PHY */
@@ -49,6 +49,15 @@
/ {
compatible = "amlogic,p231", "amlogic,s905d", "amlogic,meson-gxl";
model = "Amlogic Meson GXL (S905D) P231 Development Board";
+
+ memory@0 {
+ device_type = "memory";
+ /*
+ * The first 16MiB and last 16MiB of the DDR memory
+ * are reserved to the Hardware ROM Firmware
+ */
+ linux,usable-memory = <0x0 0x1000000 0x0 0x3f000000>;
+ };
};
/* P231 has only internal PHY port */
@@ -59,7 +59,11 @@
memory@0 {
device_type = "memory";
- reg = <0x0 0x0 0x0 0x80000000>;
+ /*
+ * The first 16MiB and last 16MiB of the DDR memory
+ * are reserved to the Hardware ROM Firmware
+ */
+ linux,usable-memory = <0x0 0x1000000 0x0 0x3f000000>;
};
};
@@ -62,7 +62,11 @@
memory@0 {
device_type = "memory";
- reg = <0x0 0x0 0x0 0x80000000>;
+ /*
+ * The first 16MiB and last 16MiB of the DDR memory
+ * are reserved to the Hardware ROM Firmware
+ */
+ linux,usable-memory = <0x0 0x1000000 0x0 0x7f000000>;
};
vddio_boot: regulator-vddio-boot {
@@ -49,6 +49,15 @@
/ {
compatible = "amlogic,q200", "amlogic,s912", "amlogic,meson-gxm";
model = "Amlogic Meson GXM (S912) Q200 Development Board";
+
+ memory@0 {
+ device_type = "memory";
+ /*
+ * The first 16MiB and last 16MiB of the DDR memory
+ * are reserved to the Hardware ROM Firmware
+ */
+ linux,usable-memory = <0x0 0x1000000 0x0 0x7f000000>;
+ };
};
/* Q200 has exclusive choice between internal or external PHY */
@@ -49,6 +49,15 @@
/ {
compatible = "amlogic,q201", "amlogic,s912", "amlogic,meson-gxm";
model = "Amlogic Meson GXM (S912) Q201 Development Board";
+
+ memory@0 {
+ device_type = "memory";
+ /*
+ * The first 16MiB and last 16MiB of the DDR memory
+ * are reserved to the Hardware ROM Firmware
+ */
+ linux,usable-memory = <0x0 0x1000000 0x0 0x3f000000>;
+ };
};
/* Q201 has only internal PHY port */
The Amlogic Meson GXBB/GXL/GXM secure monitor uses part of the memory space, this patch adds this reserved zone and redefines the usable memory range. The memory node is also moved from the dtsi files into the proper dts files to handle variants memory sizes. This patch also fixes the memory sizes for the following platforms : - gxl-s905x-p212 : 2GiB instead of 4GiB, a proper 4GiB dts should be pushed - gxm-s912-q201 : 2GiB instead of 4GiB, a proper 4GiB dts should be pushed - gxl-s905d-p231 : 2GiB instead of 4GiB, a proper 4GiB dts should be pushed - gxl-nexbox-a95x : 2GiB instead of 4GiB, a proper 4GiB dts should be pushed Signed-off-by: Neil Armstrong <narmstrong@baylibre.com> --- arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi | 5 ----- arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 12 ++++++++++++ arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts | 6 +++++- arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | 6 +++++- arch/arm64/boot/dts/amlogic/meson-gxbb-p200.dts | 9 +++++++++ arch/arm64/boot/dts/amlogic/meson-gxbb-p201.dts | 9 +++++++++ arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi | 5 ----- arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95-meta.dts | 6 +++++- arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95-pro.dts | 6 +++++- arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95-telos.dts | 6 +++++- arch/arm64/boot/dts/amlogic/meson-gxl-nexbox-a95x.dts | 6 +++++- arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts | 9 +++++++++ arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p231.dts | 9 +++++++++ arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts | 6 +++++- arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts | 6 +++++- arch/arm64/boot/dts/amlogic/meson-gxm-s912-q200.dts | 9 +++++++++ arch/arm64/boot/dts/amlogic/meson-gxm-s912-q201.dts | 9 +++++++++ 17 files changed, 106 insertions(+), 18 deletions(-) Changes since v2 at [2]: - Moved all memory node out of dtsi - Added comment about useable memory - Fixed comment about secmon reserved zone Changes since v1 at [1] : - Renamed reg into linux,usable-memory to ovveride u-boot memory - only kept secmon memory zone [1] http://lkml.kernel.org/r/20161212101801.28491-1-narmstrong@baylibre.com [2] http://lkml.kernel.org/r/1483105232-6242-1-git-send-email-narmstrong@baylibre.com