arm: dts: k3-binman: Add k3-security.h and include it in k3-binman.dtsi

For readability during configuring firewalls, adding k3-security.h file
and including it in k3-binman.dtsi to be accessible across K3 SoCs

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Andrew Davis <afd@ti.com>
This commit is contained in:
Manorit Chawdhry
2023-12-29 16:16:28 +05:30
committed by Tom Rini
parent ba51299f60
commit 89caf6d6c5
2 changed files with 107 additions and 0 deletions

View File

@@ -3,6 +3,8 @@
* Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/ * Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
*/ */
#include "k3-security.h"
/ { / {
binman: binman { binman: binman {
multiple-images; multiple-images;
@@ -437,6 +439,53 @@
}; };
}; };
}; };
firewall_bg_1: template-5 {
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_bg_3: template-6 {
insert-template = <&firewall_bg_1>;
permissions = <((FWPRIVID_ALL << FWPRIVID_SHIFT) |
FWPERM_SECURE_PRIV_RWCD |
FWPERM_SECURE_USER_RWCD |
FWPERM_NON_SECURE_PRIV_RWCD |
FWPERM_NON_SECURE_USER_RWCD)>,
<((FWPRIVID_ALL << FWPRIVID_SHIFT) |
FWPERM_SECURE_PRIV_RWCD |
FWPERM_SECURE_USER_RWCD |
FWPERM_NON_SECURE_PRIV_RWCD |
FWPERM_NON_SECURE_USER_RWCD)>,
<((FWPRIVID_ALL << FWPRIVID_SHIFT) |
FWPERM_SECURE_PRIV_RWCD |
FWPERM_SECURE_USER_RWCD |
FWPERM_NON_SECURE_PRIV_RWCD |
FWPERM_NON_SECURE_USER_RWCD)>;
};
firewall_armv8_atf_fg: template-7 {
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_armv8_optee_fg: template-8 {
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>;
};
}; };

View File

@@ -0,0 +1,58 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
*/
#ifndef DTS_ARM64_TI_K3_FIREWALL_H
#define DTS_ARM64_TI_K3_FIREWALL_H
#define FWPRIVID_ALL 0xc3
#define FWPRIVID_ARMV8 1
#define FWPRIVID_SHIFT 16
#define FWCTRL_EN 0xA
#define FWCTRL_LOCK (1 << 4)
#define FWCTRL_BG (1 << 8)
#define FWCTRL_CACHE (1 << 9)
#define FWPERM_SECURE_PRIV_WRITE (1 << 0)
#define FWPERM_SECURE_PRIV_READ (1 << 1)
#define FWPERM_SECURE_PRIV_CACHEABLE (1 << 2)
#define FWPERM_SECURE_PRIV_DEBUG (1 << 3)
#define FWPERM_SECURE_PRIV_RWCD (FWPERM_SECURE_PRIV_READ | \
FWPERM_SECURE_PRIV_WRITE | \
FWPERM_SECURE_PRIV_CACHEABLE | \
FWPERM_SECURE_PRIV_DEBUG)
#define FWPERM_SECURE_USER_WRITE (1 << 4)
#define FWPERM_SECURE_USER_READ (1 << 5)
#define FWPERM_SECURE_USER_CACHEABLE (1 << 6)
#define FWPERM_SECURE_USER_DEBUG (1 << 7)
#define FWPERM_SECURE_USER_RWCD (FWPERM_SECURE_USER_READ | \
FWPERM_SECURE_USER_WRITE | \
FWPERM_SECURE_USER_CACHEABLE | \
FWPERM_SECURE_USER_DEBUG)
#define FWPERM_NON_SECURE_PRIV_WRITE (1 << 8)
#define FWPERM_NON_SECURE_PRIV_READ (1 << 9)
#define FWPERM_NON_SECURE_PRIV_CACHEABLE (1 << 10)
#define FWPERM_NON_SECURE_PRIV_DEBUG (1 << 11)
#define FWPERM_NON_SECURE_PRIV_RWCD (FWPERM_NON_SECURE_PRIV_READ | \
FWPERM_NON_SECURE_PRIV_WRITE | \
FWPERM_NON_SECURE_PRIV_CACHEABLE | \
FWPERM_NON_SECURE_PRIV_DEBUG)
#define FWPERM_NON_SECURE_USER_WRITE (1 << 12)
#define FWPERM_NON_SECURE_USER_READ (1 << 13)
#define FWPERM_NON_SECURE_USER_CACHEABLE (1 << 14)
#define FWPERM_NON_SECURE_USER_DEBUG (1 << 15)
#define FWPERM_NON_SECURE_USER_RWCD (FWPERM_NON_SECURE_USER_READ | \
FWPERM_NON_SECURE_USER_WRITE | \
FWPERM_NON_SECURE_USER_CACHEABLE | \
FWPERM_NON_SECURE_USER_DEBUG)
#endif