1dbf8423eSJoseph Chen /* 2dbf8423eSJoseph Chen * (C) Copyright 2019 Rockchip Electronics Co., Ltd 3dbf8423eSJoseph Chen * 4dbf8423eSJoseph Chen * SPDX-License-Identifier: GPL-2.0+ 5dbf8423eSJoseph Chen */ 6dbf8423eSJoseph Chen 7dbf8423eSJoseph Chen #ifndef __ROCKCHIP_PARAM_H_ 8dbf8423eSJoseph Chen #define __ROCKCHIP_PARAM_H_ 9dbf8423eSJoseph Chen 106e15146eSJoseph Chen #include <memblk.h> 11dbf8423eSJoseph Chen 12dbf8423eSJoseph Chen /** 13b9bc76b4SJoseph Chen * param_parse_ddr_mem() - Parse ddr memory region 14b9bc76b4SJoseph Chen * 15b9bc76b4SJoseph Chen * @out_count: valid count of memblock for memblock list. 16b9bc76b4SJoseph Chen * @return memblock structure list which contains base and size info. 17b9bc76b4SJoseph Chen */ 18b9bc76b4SJoseph Chen struct memblock *param_parse_ddr_mem(int *out_count); 19b9bc76b4SJoseph Chen 20b9bc76b4SJoseph Chen /** 211a4d12c4SJoseph Chen * param_simple_parse_ddr_mem() - Simple parse ddr memory region 221a4d12c4SJoseph Chen */ 231a4d12c4SJoseph Chen #ifndef CONFIG_BIDRAM 241a4d12c4SJoseph Chen phys_size_t param_simple_parse_ddr_mem(int init_bank); 251a4d12c4SJoseph Chen #endif 261a4d12c4SJoseph Chen 271a4d12c4SJoseph Chen /** 28dbf8423eSJoseph Chen * param_parse_atf_mem() - Parse atf memory region 29dbf8423eSJoseph Chen * 306e15146eSJoseph Chen * @return memblock structure which contains base and size info. 31dbf8423eSJoseph Chen */ 326e15146eSJoseph Chen struct memblock param_parse_atf_mem(void); 33dbf8423eSJoseph Chen 34dbf8423eSJoseph Chen /** 35dbf8423eSJoseph Chen * param_parse_atf_mem() - Parse op-tee memory region 36dbf8423eSJoseph Chen * 376e15146eSJoseph Chen * @return memblock structure which contains base and size info. 38dbf8423eSJoseph Chen */ 396e15146eSJoseph Chen struct memblock param_parse_optee_mem(void); 40dbf8423eSJoseph Chen 41dbf8423eSJoseph Chen /** 42dbf8423eSJoseph Chen * param_parse_atf_mem() - Parse platform common reserved memory region 43dbf8423eSJoseph Chen * 446e15146eSJoseph Chen * @return memblock structure which contains base and size info. 45dbf8423eSJoseph Chen */ 466e15146eSJoseph Chen struct memblock param_parse_common_resv_mem(void); 47dbf8423eSJoseph Chen 48dbf8423eSJoseph Chen /** 495029b474SJoseph Chen * param_parse_atags_bootdev() - Parse boot device info from atags. 50dbf8423eSJoseph Chen * 51dbf8423eSJoseph Chen * @devtype: out data to store dev type 52dbf8423eSJoseph Chen * @devnum: out data to store dev number 53dbf8423eSJoseph Chen * 54dbf8423eSJoseph Chen * @return 0 on success, otherwise failed. 55dbf8423eSJoseph Chen */ 565029b474SJoseph Chen int param_parse_atags_bootdev(char **devtype, char **devtnum); 575029b474SJoseph Chen 585029b474SJoseph Chen /** 595029b474SJoseph Chen * param_parse_assign_bootdev() - Parse boot device info from configuration. 605029b474SJoseph Chen * 615029b474SJoseph Chen * @devtype: out data to store dev type 625029b474SJoseph Chen * @devnum: out data to store dev number 635029b474SJoseph Chen * 645029b474SJoseph Chen * @return 0 on success, otherwise failed. 655029b474SJoseph Chen */ 665029b474SJoseph Chen int param_parse_assign_bootdev(char **devtype, char **devtnum); 67dbf8423eSJoseph Chen 68045d3eaaSJoseph Chen /** 69045d3eaaSJoseph Chen * param_parse_pre_serial() - Parse and Init serial according to pre-loader serial. 70045d3eaaSJoseph Chen * 71045d3eaaSJoseph Chen * @return 0 on success, otherwise failed. 72045d3eaaSJoseph Chen */ 73*9d10124aSJoseph Chen int param_parse_pre_serial(int *flags); 74045d3eaaSJoseph Chen 75045d3eaaSJoseph Chen /** 76045d3eaaSJoseph Chen * param_parse_pubkey_fuse_programmed() - Parse and pass fuse programmed state. 77045d3eaaSJoseph Chen * 78045d3eaaSJoseph Chen * @return 0 on success, otherwise failed. 79045d3eaaSJoseph Chen */ 80045d3eaaSJoseph Chen int param_parse_pubkey_fuse_programmed(void); 81045d3eaaSJoseph Chen 82dbf8423eSJoseph Chen #endif 83