The following commits adds the configuration of firewalls required to
protect ATF and OP-TEE memory region from non-secure reads and
writes using master and slave firewalls present in our K3 SOCs.

Signed-off-by: Manorit Chawdhry <m-chawd...@ti.com>
---
 arch/arm/dts/k3-j721e-binman.dtsi | 187 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 187 insertions(+)

diff --git a/arch/arm/dts/k3-j721e-binman.dtsi 
b/arch/arm/dts/k3-j721e-binman.dtsi
index 4f566c21a9af..a2ad86822112 100644
--- a/arch/arm/dts/k3-j721e-binman.dtsi
+++ b/arch/arm/dts/k3-j721e-binman.dtsi
@@ -330,6 +330,102 @@
                                        ti-secure {
                                                content = <&atf>;
                                                keyfile = "custMpk.pem";
+                                               auth_in_place = <0xa02>;
+
+                                               firewall-257-0 {
+                                                       /* cpu_0_cpu_0_msmc 
Background Firewall */
+                                                       id = <257>;
+                                                       region = <0>;
+                                                       control = <(FWCTRL_EN | 
FWCTRL_LOCK |
+                                                                               
FWCTRL_BG | FWCTRL_CACHE)>;
+                                                       permissions = 
<((FWPRIVID_ALL << FWPRIVID_SHIFT) |
+                                                                               
        FWPERM_SECURE_PRIV_RWCD |
+                                                                               
        FWPERM_SECURE_USER_RWCD |
+                                                                               
        FWPERM_NON_SECURE_PRIV_RWCD |
+                                                                               
        FWPERM_NON_SECURE_USER_RWCD)>;
+                                                       start_address = <0x0 
0x0>;
+                                                       end_address = <0xff 
0xffffffff>;
+                                               };
+
+                                               firewall-257-1 {
+                                                       /* cpu_0_cpu_0_msmc 
Foreground Firewall */
+                                                       id = <257>;
+                                                       region = <1>;
+                                                       control = <(FWCTRL_EN | 
FWCTRL_LOCK |
+                                                                               
FWCTRL_CACHE)>;
+                                                       permissions = 
<((FWPRIVID_ARMV8 << FWPRIVID_SHIFT) |
+                                                                               
        FWPERM_SECURE_PRIV_RWCD |
+                                                                               
        FWPERM_SECURE_USER_RWCD)>;
+                                                       start_address = <0x0 
0x70000000>;
+                                                       end_address = <0x0 
0x7001ffff>;
+                                               };
+
+                                               firewall-284-0 {
+                                                       /* dru_0_msmc 
Background Firewall */
+                                                       id = <284>;
+                                                       region = <0>;
+                                                       control = <(FWCTRL_EN | 
FWCTRL_LOCK |
+                                                                               
FWCTRL_BG | FWCTRL_CACHE)>;
+                                                       permissions = 
<((FWPRIVID_ALL << FWPRIVID_SHIFT) |
+                                                                               
        FWPERM_SECURE_PRIV_RWCD |
+                                                                               
        FWPERM_SECURE_USER_RWCD |
+                                                                               
        FWPERM_NON_SECURE_PRIV_RWCD |
+                                                                               
        FWPERM_NON_SECURE_USER_RWCD)>;
+                                                       start_address = <0x0 
0x0>;
+                                                       end_address = <0xff 
0xffffffff>;
+                                               };
+
+                                               firewall-284-1 {
+                                                       /* dru_0_msmc 
Foreground Firewall */
+                                                       id = <284>;
+                                                       region = <1>;
+                                                       control = <(FWCTRL_EN | 
FWCTRL_LOCK |
+                                                                               
FWCTRL_CACHE)>;
+                                                       permissions = 
<((FWPRIVID_ARMV8 << FWPRIVID_SHIFT) |
+                                                                               
        FWPERM_SECURE_PRIV_RWCD |
+                                                                               
        FWPERM_SECURE_USER_RWCD)>;
+                                                       start_address = <0x0 
0x70000000>;
+                                                       end_address = <0x0 
0x7001ffff>;
+                                               };
+
+                                               /*      firewall-4760-0 {
+                                                *              nb_slv0__mem0 
Background Firewall
+                                                *              Already 
configured by the secure entity
+                                                *      };
+                                                */
+
+                                               firewall-4760-1 {
+                                                       /* nb_slv0__mem0 
Foreground Firewall */
+                                                       id = <4760>;
+                                                       region = <1>;
+                                                       control = <(FWCTRL_EN | 
FWCTRL_LOCK |
+                                                                               
FWCTRL_CACHE)>;
+                                                       permissions = 
<((FWPRIVID_ARMV8 << FWPRIVID_SHIFT) |
+                                                                               
        FWPERM_SECURE_PRIV_RWCD |
+                                                                               
        FWPERM_SECURE_USER_RWCD)>;
+                                                       start_address = <0x0 
0x70000000>;
+                                                       end_address = <0x0 
0x7001ffff>;
+                                               };
+
+                                               /*      firewall-4761-0 {
+                                                *              nb_slv1__mem0 
Background Firewall
+                                                *              Already 
configured by the secure entity
+                                                *      };
+                                                */
+
+                                               firewall-4761-1 {
+                                                       /* nb_slv1__mem0 
Foreground Firewall */
+                                                       id = <4761>;
+                                                       region = <1>;
+                                                       control = <(FWCTRL_EN | 
FWCTRL_LOCK |
+                                                                               
FWCTRL_CACHE)>;
+                                                       permissions = 
<((FWPRIVID_ARMV8 << FWPRIVID_SHIFT) |
+                                                                               
        FWPERM_SECURE_PRIV_RWCD |
+                                                                               
        FWPERM_SECURE_USER_RWCD)>;
+                                                       start_address = <0x0 
0x70000000>;
+                                                       end_address = <0x0 
0x7001ffff>;
+                                               };
+
                                        };
                                        atf: atf-bl31 {
                                        };
@@ -346,6 +442,97 @@
                                        ti-secure {
                                                content = <&tee>;
                                                keyfile = "custMpk.pem";
+                                               auth_in_place = <0xa02>;
+
+                                               /* cpu_0_cpu_0_msmc region 0 
and 1 configured
+                                                * during ATF Firewalling
+                                                */
+
+                                               firewall-257-2 {
+                                                       /* cpu_0_cpu_0_msmc 
Foreground Firewall */
+                                                       id = <257>;
+                                                       region = <2>;
+                                                       control = <(FWCTRL_EN | 
FWCTRL_LOCK |
+                                                                               
FWCTRL_CACHE)>;
+                                                       permissions = 
<((FWPRIVID_ARMV8 << FWPRIVID_SHIFT) |
+                                                                               
        FWPERM_SECURE_PRIV_RWCD |
+                                                                               
        FWPERM_SECURE_USER_RWCD)>;
+                                                       start_address = <0x0 
0x9e800000>;
+                                                       end_address = <0x0 
0x9fffffff>;
+                                               };
+
+                                               /* dru_0_msmc region 0 and 1 
configured
+                                                * during ATF Firewalling
+                                                */
+
+                                               firewall-284-2 {
+                                                       /* dru_0_msmc 
Foreground Firewall */
+                                                       id = <284>;
+                                                       region = <2>;
+                                                       control = <(FWCTRL_EN | 
FWCTRL_LOCK |
+                                                                               
FWCTRL_CACHE)>;
+                                                       permissions = 
<((FWPRIVID_ARMV8 << FWPRIVID_SHIFT) |
+                                                                               
        FWPERM_SECURE_PRIV_RWCD |
+                                                                               
        FWPERM_SECURE_USER_RWCD)>;
+                                                       start_address = <0x0 
0x9e800000>;
+                                                       end_address = <0x0 
0x9fffffff>;
+                                               };
+
+                                               firewall-4762-0 {
+                                                       /* nb_slv2__mem0 
Background Firewall */
+                                                       id = <4762>;
+                                                       region = <0>;
+                                                       control = <(FWCTRL_EN | 
FWCTRL_LOCK |
+                                                                               
FWCTRL_BG | FWCTRL_CACHE)>;
+                                                       permissions = 
<((FWPRIVID_ALL << FWPRIVID_SHIFT) |
+                                                                               
        FWPERM_SECURE_PRIV_RWCD |
+                                                                               
        FWPERM_SECURE_USER_RWCD |
+                                                                               
        FWPERM_NON_SECURE_PRIV_RWCD |
+                                                                               
        FWPERM_NON_SECURE_USER_RWCD)>;
+                                                       start_address = <0x0 
0x0>;
+                                                       end_address = <0xff 
0xffffffff>;
+                                               };
+
+                                               firewall-4762-1 {
+                                                       /* nb_slv2__mem0 
Foreground Firewall */
+                                                       id = <4762>;
+                                                       region = <1>;
+                                                       control = <(FWCTRL_EN | 
FWCTRL_LOCK |
+                                                                               
FWCTRL_CACHE)>;
+                                                       permissions = 
<((FWPRIVID_ARMV8 << FWPRIVID_SHIFT) |
+                                                                               
        FWPERM_SECURE_PRIV_RWCD |
+                                                                               
        FWPERM_SECURE_USER_RWCD)>;
+                                                       start_address = <0x0 
0x9e800000>;
+                                                       end_address = <0x0 
0x9fffffff>;
+                                               };
+
+                                               firewall-4763-0 {
+                                                       /* nb_slv3__mem0 
Background Firewall */
+                                                       id = <4763>;
+                                                       region = <0>;
+                                                       control = <(FWCTRL_EN | 
FWCTRL_LOCK |
+                                                                               
FWCTRL_BG | FWCTRL_CACHE)>;
+                                                       permissions = 
<((FWPRIVID_ALL << FWPRIVID_SHIFT) |
+                                                                               
        FWPERM_SECURE_PRIV_RWCD |
+                                                                               
        FWPERM_SECURE_USER_RWCD |
+                                                                               
        FWPERM_NON_SECURE_PRIV_RWCD |
+                                                                               
        FWPERM_NON_SECURE_USER_RWCD)>;
+                                                       start_address = <0x0 
0x0>;
+                                                       end_address = <0xff 
0xffffffff>;
+                                               };
+
+                                               firewall-4763-1 {
+                                                       /* nb_slv3__mem0 
Foreground Firewall */
+                                                       id = <4763>;
+                                                       region = <1>;
+                                                       control = <(FWCTRL_EN | 
FWCTRL_LOCK |
+                                                                               
FWCTRL_CACHE)>;
+                                                       permissions = 
<((FWPRIVID_ARMV8 << FWPRIVID_SHIFT) |
+                                                                               
        FWPERM_SECURE_PRIV_RWCD |
+                                                                               
        FWPERM_SECURE_USER_RWCD)>;
+                                                       start_address = <0x0 
0x9e800000>;
+                                                       end_address = <0x0 
0x9fffffff>;
+                                               };
                                        };
                                        tee: tee-os {
                                        };

-- 
2.41.0

Reply via email to