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