1 /* 2 * Copyright (c) 2021, Arm Limited. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 * 6 */ 7 #ifndef __ASSET_DEFS_H__ 8 #define __ASSET_DEFS_H__ 9 10 #include <stdint.h> 11 12 /* Memory, MMIO and PPB asset attributes */ 13 #define ASSET_ATTR_READ_ONLY (1U << 0) /* 1: Read-only MMIO */ 14 #define ASSET_ATTR_READ_WRITE (1U << 1) /* 1: Read-write MMIO */ 15 #define ASSET_ATTR_PPB (1U << 2) /* 1: PPB indicator */ 16 17 #define ASSET_ATTR_NAMED_MMIO (1U << 3) /* 1: Named mmio object */ 18 #define ASSET_ATTR_NUMBERED_MMIO (1U << 4) /* 1: Numbered mmio object */ 19 #define ASSET_ATTR_MMIO (ASSET_ATTR_NAMED_MMIO | \ 20 ASSET_ATTR_NUMBERED_MMIO) 21 22 struct asset_desc_t { 23 union { 24 struct { /* Memory-based asset type */ 25 uintptr_t start; 26 uintptr_t limit; 27 } mem; 28 struct { /* Device asset type */ 29 uintptr_t dev_ref; 30 uintptr_t reserved; 31 } dev; 32 }; 33 uint32_t attr; /* Asset attributes */ 34 } __attribute__((aligned(4))); 35 36 #endif /* __ASSET_DEFS_H__ */ 37