1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * (C) Copyright 2019 Rockchip Electronics Co., Ltd 4 */ 5 6 #ifndef _MEMBLK_H 7 #define _MEMBLK_H 8 9 enum memblk_id { 10 MEMBLK_ID_UNK, 11 12 /* Preloader */ 13 MEMBLK_ID_ATF, 14 MEMBLK_ID_OPTEE, 15 MEMBLK_ID_SHM, 16 17 /* U-Boot self */ 18 MEMBLK_ID_UBOOT, 19 MEMBLK_ID_STACK, 20 MEMBLK_ID_FASTBOOT, 21 22 /* Image */ 23 MEMBLK_ID_RAMDISK, 24 MEMBLK_ID_FDT, 25 MEMBLK_ID_FDT_DTBO, 26 MEMBLK_ID_FDT_AOSP, 27 MEMBLK_ID_KERNEL, 28 MEMBLK_ID_UNCOMP_KERNEL, 29 MEMBLK_ID_ANDROID, 30 MEMBLK_ID_AVB_ANDROID, 31 32 /* Other */ 33 MEMBLK_ID_BY_NAME, 34 MEMBLK_ID_FDT_RESV, 35 MEMBLK_ID_DEMO, 36 MEMBLK_ID_MAX, 37 }; 38 39 struct memblk_attr { 40 const char *name; 41 const char *alias[2]; 42 u32 flags; 43 }; 44 45 struct memblock { 46 phys_addr_t base; 47 phys_size_t size; 48 struct memblk_attr attr; 49 struct list_head node; 50 }; 51 52 extern const struct memblk_attr *mem_attr; 53 54 #define SIZE_MB(len) ((len) >> 20) 55 #define SIZE_KB(len) (((len) % (1 << 20)) >> 10) 56 57 #define M_ATTR_NONE 0 58 /* Over-Flow-Check for region tail */ 59 #define M_ATTR_OFC (1 << 0) 60 /* Over-Flow-Check for region Head, only for U-Boot stack */ 61 #define M_ATTR_HOFC (1 << 1) 62 /* Memory can be overlap by fdt reserved memory */ 63 #define M_ATTR_OVERLAP (1 << 2) 64 /* Just peek, always return success */ 65 #define M_ATTR_PEEK (1 << 3) 66 67 #endif /* _MEMBLK_H */ 68