From 9e87248154a633b18b4900ee742d9894b49e019b Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Mon, 26 Jul 2021 11:05:18 +0100 Subject: [PATCH] overlays: Set CMA to 512MB on Pi 4 for vc4 Pi 4s have at least 1GB, and there are advantages to having more CMA available (HEVC works out of the box, support for more complex video setups, etc.) without significant disadvantages. Can be overridden by appending a parameter to the dtoverlay line, e.g. dtoverlay=vc4-fkms-v3d,cma-256 Signed-off-by: Phil Elwell --- arch/arm/boot/dts/overlays/Makefile | 1 + arch/arm/boot/dts/overlays/README | 17 +++++++++ arch/arm/boot/dts/overlays/overlay_map.dts | 9 +++++ .../arm/boot/dts/overlays/upstream-pi4-overlay.dts | 2 +- .../boot/dts/overlays/vc4-fkms-v3d-pi4-overlay.dts | 44 ++++++++++++++++++++++ .../boot/dts/overlays/vc4-kms-v3d-pi4-overlay.dts | 6 ++- 6 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 arch/arm/boot/dts/overlays/vc4-fkms-v3d-pi4-overlay.dts diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile index 11b2f5b..bb350f6 100644 --- a/arch/arm/boot/dts/overlays/Makefile +++ b/arch/arm/boot/dts/overlays/Makefile @@ -220,6 +220,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ upstream.dtbo \ upstream-pi4.dtbo \ vc4-fkms-v3d.dtbo \ + vc4-fkms-v3d-pi4.dtbo \ vc4-kms-dpi-at056tn53v1.dtbo \ vc4-kms-dsi-7inch.dtbo \ vc4-kms-dsi-lt070me05000.dtbo \ diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README index 72e954f..a2c7631 100644 --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -3268,6 +3268,23 @@ Params: cma-512 CMA is 512MB (needs 1GB) cma-default Use upstream's default value +Name: vc4-fkms-v3d-pi4 +Info: Enable Eric Anholt's DRM VC4 V3D driver on top of the dispmanx + display stack. +Load: dtoverlay=vc4-fkms-v3d-pi4, +Params: cma-512 CMA is 512MB (needs 1GB) + cma-448 CMA is 448MB (needs 1GB) + cma-384 CMA is 384MB (needs 1GB) + cma-320 CMA is 320MB (needs 1GB) + cma-256 CMA is 256MB (needs 1GB) + cma-192 CMA is 192MB (needs 1GB) + cma-128 CMA is 128MB + cma-96 CMA is 96MB + cma-64 CMA is 64MB + cma-size CMA size in bytes, 4MB aligned + cma-default Use upstream's default value + + Name: vc4-kms-dpi-at056tn53v1 Info: Enable an Innolux 5.6in VGA TFT connected to DPI interface under KMS. Requires vc4-kms-v3d to be loaded. diff --git a/arch/arm/boot/dts/overlays/overlay_map.dts b/arch/arm/boot/dts/overlays/overlay_map.dts index e9a15fa..bc6e3bc 100644 --- a/arch/arm/boot/dts/overlays/overlay_map.dts +++ b/arch/arm/boot/dts/overlays/overlay_map.dts @@ -138,6 +138,15 @@ bcm2711; }; + vc4-fkms-v3d { + bcm2835; + bcm2711 = "vc4-fkms-v3d-pi4"; + }; + + vc4-fkms-v3d-pi4 { + bcm2711; + }; + vc4-kms-v3d { bcm2835; bcm2711 = "vc4-kms-v3d-pi4"; diff --git a/arch/arm/boot/dts/overlays/upstream-pi4-overlay.dts b/arch/arm/boot/dts/overlays/upstream-pi4-overlay.dts index f73a187..f432863 100644 --- a/arch/arm/boot/dts/overlays/upstream-pi4-overlay.dts +++ b/arch/arm/boot/dts/overlays/upstream-pi4-overlay.dts @@ -6,7 +6,7 @@ #include / { - compatible = "brcm,bcm2835"; + compatible = "brcm,bcm2711"; fragment@0 { target = <&ddc0>; __overlay__ { diff --git a/arch/arm/boot/dts/overlays/vc4-fkms-v3d-pi4-overlay.dts b/arch/arm/boot/dts/overlays/vc4-fkms-v3d-pi4-overlay.dts new file mode 100644 index 0000000..bb6731e --- /dev/null +++ b/arch/arm/boot/dts/overlays/vc4-fkms-v3d-pi4-overlay.dts @@ -0,0 +1,44 @@ +/* + * vc4-fkms-v3d-overlay.dts + */ + +/dts-v1/; +/plugin/; + +#include "cma-overlay.dts" + +&frag0 { + size = <(512*1024*1024)>; +}; + +/ { + compatible = "brcm,bcm2711"; + + fragment@1 { + target = <&fb>; + __overlay__ { + status = "disabled"; + }; + }; + + fragment@2 { + target = <&firmwarekms>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@3 { + target = <&v3d>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@4 { + target = <&vc4>; + __overlay__ { + status = "okay"; + }; + }; +}; diff --git a/arch/arm/boot/dts/overlays/vc4-kms-v3d-pi4-overlay.dts b/arch/arm/boot/dts/overlays/vc4-kms-v3d-pi4-overlay.dts index 6a11260..0480fa7 100644 --- a/arch/arm/boot/dts/overlays/vc4-kms-v3d-pi4-overlay.dts +++ b/arch/arm/boot/dts/overlays/vc4-kms-v3d-pi4-overlay.dts @@ -9,8 +9,12 @@ #include "cma-overlay.dts" +&frag0 { + size = <(512*1024*1024)>; +}; + / { - compatible = "brcm,bcm2835"; + compatible = "brcm,bcm2711"; fragment@1 { target = <&ddc0>; -- 2.7.4