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