blob: 1b7ffb8db099d0f508f836fc01d344aafb8d89ed [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 Diaz5eb88372018-11-08 10:20:19 +000011#include <utils_def.h>
Jeenu Viswambharan5c503042017-05-26 14:15:40 +010012
13/* SMMUv3 register offsets from device base */
Antonio Nino Diazfeacba32018-08-21 16:12:29 +010014#define SMMU_S_IDR1 U(0x8004)
15#define SMMU_S_INIT U(0x803c)
Jeenu Viswambharan5c503042017-05-26 14:15:40 +010016
17/* SMMU_S_IDR1 register fields */
18#define SMMU_S_IDR1_SECURE_IMPL_SHIFT 31
Antonio Nino Diazfeacba32018-08-21 16:12:29 +010019#define SMMU_S_IDR1_SECURE_IMPL_MASK U(0x1)
Jeenu Viswambharan5c503042017-05-26 14:15:40 +010020
21/* SMMU_S_INIT register fields */
Antonio Nino Diazfeacba32018-08-21 16:12:29 +010022#define SMMU_S_INIT_INV_ALL_MASK U(0x1)
Jeenu Viswambharan5c503042017-05-26 14:15:40 +010023
24
25int smmuv3_init(uintptr_t smmu_base);
26
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +000027#endif /* SMMU_V3_H */