xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-rockchip/param.h (revision 1a7a2cb2bf3f8ce54416ccd5dd901d9cc7a80698)
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 /**
13*1a7a2cb2SXuhui Lin  * ddr_mem_get_usable_size() - Get ddr memory region size that loader can use
14*1a7a2cb2SXuhui Lin  *
15*1a7a2cb2SXuhui Lin  * @base: ddr memory region base.
16*1a7a2cb2SXuhui Lin  * @size: ddr memory region size.
17*1a7a2cb2SXuhui Lin  * @return ddr memory region size that loader can use.
18*1a7a2cb2SXuhui Lin  */
19*1a7a2cb2SXuhui Lin phys_size_t ddr_mem_get_usable_size(u64 base, u64 size);
20*1a7a2cb2SXuhui Lin 
21*1a7a2cb2SXuhui Lin /**
22b9bc76b4SJoseph Chen  * param_parse_ddr_mem() - Parse ddr memory region
23b9bc76b4SJoseph Chen  *
24b9bc76b4SJoseph Chen  * @out_count: valid count of memblock for memblock list.
25b9bc76b4SJoseph Chen  * @return memblock structure list which contains base and size info.
26b9bc76b4SJoseph Chen  */
27b9bc76b4SJoseph Chen struct memblock *param_parse_ddr_mem(int *out_count);
28b9bc76b4SJoseph Chen 
29b9bc76b4SJoseph Chen /**
301a4d12c4SJoseph Chen  * param_simple_parse_ddr_mem() - Simple parse ddr memory region
311a4d12c4SJoseph Chen  */
321a4d12c4SJoseph Chen #ifndef CONFIG_BIDRAM
331a4d12c4SJoseph Chen phys_size_t param_simple_parse_ddr_mem(int init_bank);
341a4d12c4SJoseph Chen #endif
351a4d12c4SJoseph Chen 
361a4d12c4SJoseph Chen /**
37dbf8423eSJoseph Chen  * param_parse_atf_mem() - Parse atf memory region
38dbf8423eSJoseph Chen  *
396e15146eSJoseph Chen  * @return memblock structure which contains base and size info.
40dbf8423eSJoseph Chen  */
416e15146eSJoseph Chen struct memblock param_parse_atf_mem(void);
42dbf8423eSJoseph Chen 
43dbf8423eSJoseph Chen /**
44dbf8423eSJoseph Chen  * param_parse_atf_mem() - Parse op-tee memory region
45dbf8423eSJoseph Chen  *
466e15146eSJoseph Chen  * @return memblock structure which contains base and size info.
47dbf8423eSJoseph Chen  */
486e15146eSJoseph Chen struct memblock param_parse_optee_mem(void);
49dbf8423eSJoseph Chen 
50dbf8423eSJoseph Chen /**
51dbf8423eSJoseph Chen  * param_parse_atf_mem() - Parse platform common reserved memory region
52dbf8423eSJoseph Chen  *
536e15146eSJoseph Chen  * @return memblock structure which contains base and size info.
54dbf8423eSJoseph Chen  */
556e15146eSJoseph Chen struct memblock param_parse_common_resv_mem(void);
56dbf8423eSJoseph Chen 
57dbf8423eSJoseph Chen /**
585029b474SJoseph Chen  * param_parse_atags_bootdev() - Parse boot device info from atags.
59dbf8423eSJoseph Chen  *
60dbf8423eSJoseph Chen  * @devtype: out data to store dev type
61dbf8423eSJoseph Chen  * @devnum: out data to store dev number
62dbf8423eSJoseph Chen  *
63dbf8423eSJoseph Chen  * @return 0 on success, otherwise failed.
64dbf8423eSJoseph Chen  */
655029b474SJoseph Chen int param_parse_atags_bootdev(char **devtype, char **devtnum);
665029b474SJoseph Chen 
675029b474SJoseph Chen /**
685029b474SJoseph Chen  * param_parse_assign_bootdev() - Parse boot device info from configuration.
695029b474SJoseph Chen  *
705029b474SJoseph Chen  * @devtype: out data to store dev type
715029b474SJoseph Chen  * @devnum: out data to store dev number
725029b474SJoseph Chen  *
735029b474SJoseph Chen  * @return 0 on success, otherwise failed.
745029b474SJoseph Chen  */
755029b474SJoseph Chen int param_parse_assign_bootdev(char **devtype, char **devtnum);
76dbf8423eSJoseph Chen 
77045d3eaaSJoseph Chen /**
78045d3eaaSJoseph Chen  * param_parse_pre_serial() - Parse and Init serial according to pre-loader serial.
79045d3eaaSJoseph Chen  *
80045d3eaaSJoseph Chen  * @return 0 on success, otherwise failed.
81045d3eaaSJoseph Chen  */
829d10124aSJoseph Chen int param_parse_pre_serial(int *flags);
83045d3eaaSJoseph Chen 
84045d3eaaSJoseph Chen /**
85045d3eaaSJoseph Chen  * param_parse_pubkey_fuse_programmed() - Parse and pass fuse programmed state.
86045d3eaaSJoseph Chen  *
87045d3eaaSJoseph Chen  * @return 0 on success, otherwise failed.
88045d3eaaSJoseph Chen  */
89045d3eaaSJoseph Chen int param_parse_pubkey_fuse_programmed(void);
90045d3eaaSJoseph Chen 
91ad771a9cSHuibin Hong #ifdef CONFIG_PSTORE
92ad771a9cSHuibin Hong /**
93ad771a9cSHuibin Hong  * param_parse_pstore() - Parse and Init pstore according to pre-loader atags.
94ad771a9cSHuibin Hong  *
95ad771a9cSHuibin Hong  * @return 0 on success, otherwise failed.
96ad771a9cSHuibin Hong  */
97ad771a9cSHuibin Hong int param_parse_pstore(void);
98ad771a9cSHuibin Hong #endif
99dbf8423eSJoseph Chen #endif
100