1 /* 2 * Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef SMMU_V3_H 8 #define SMMU_V3_H 9 10 #include <stdint.h> 11 #include <lib/utils_def.h> 12 13 /* SMMUv3 register offsets from device base */ 14 #define SMMU_GBPA U(0x0044) 15 #define SMMU_S_IDR1 U(0x8004) 16 #define SMMU_S_INIT U(0x803c) 17 #define SMMU_S_GBPA U(0x8044) 18 19 /* SMMU_GBPA register fields */ 20 #define SMMU_GBPA_UPDATE (1UL << 31) 21 #define SMMU_GBPA_ABORT (1UL << 20) 22 23 /* SMMU_S_IDR1 register fields */ 24 #define SMMU_S_IDR1_SECURE_IMPL (1UL << 31) 25 26 /* SMMU_S_INIT register fields */ 27 #define SMMU_S_INIT_INV_ALL (1UL << 0) 28 29 /* SMMU_S_GBPA register fields */ 30 #define SMMU_S_GBPA_UPDATE (1UL << 31) 31 #define SMMU_S_GBPA_ABORT (1UL << 20) 32 33 int smmuv3_init(uintptr_t smmu_base); 34 int smmuv3_security_init(uintptr_t smmu_base); 35 36 #endif /* SMMU_V3_H */ 37