blob: 33f3d6fcfc107b2bacddd186f9b43928f346bc1e [file] [log] [blame]
Jeenu Viswambharan5c503042017-05-26 14:15:40 +01001/*
Antonio Nino Diazfeacba32018-08-21 16:12:29 +01002 * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
Jeenu Viswambharan5c503042017-05-26 14:15:40 +01003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +00007#ifndef SMMU_V3_H
8#define SMMU_V3_H
Jeenu Viswambharan5c503042017-05-26 14:15:40 +01009
10#include <stdint.h>
Antonio Nino Diaze0f90632018-12-14 00:18:21 +000011
12#include <lib/utils_def.h>
Jeenu Viswambharan5c503042017-05-26 14:15:40 +010013
14/* SMMUv3 register offsets from device base */
Antonio Nino Diazfeacba32018-08-21 16:12:29 +010015#define SMMU_S_IDR1 U(0x8004)
16#define SMMU_S_INIT U(0x803c)
Jeenu Viswambharan5c503042017-05-26 14:15:40 +010017
18/* SMMU_S_IDR1 register fields */
19#define SMMU_S_IDR1_SECURE_IMPL_SHIFT 31
Antonio Nino Diazfeacba32018-08-21 16:12:29 +010020#define SMMU_S_IDR1_SECURE_IMPL_MASK U(0x1)
Jeenu Viswambharan5c503042017-05-26 14:15:40 +010021
22/* SMMU_S_INIT register fields */
Antonio Nino Diazfeacba32018-08-21 16:12:29 +010023#define SMMU_S_INIT_INV_ALL_MASK U(0x1)
Jeenu Viswambharan5c503042017-05-26 14:15:40 +010024
25
26int smmuv3_init(uintptr_t smmu_base);
27
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +000028#endif /* SMMU_V3_H */