xref: /rk3399_ARM-atf/plat/hisilicon/hikey/hikey_private.h (revision 08b167e93f479e8b344763d646933a68e7bae279)
1*08b167e9SHaojian Zhuang /*
2*08b167e9SHaojian Zhuang  * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
3*08b167e9SHaojian Zhuang  *
4*08b167e9SHaojian Zhuang  * SPDX-License-Identifier: BSD-3-Clause
5*08b167e9SHaojian Zhuang  */
6*08b167e9SHaojian Zhuang 
7*08b167e9SHaojian Zhuang #ifndef __HIKEY_PRIVATE_H__
8*08b167e9SHaojian Zhuang #define __HIKEY_PRIVATE_H__
9*08b167e9SHaojian Zhuang 
10*08b167e9SHaojian Zhuang #include <bl_common.h>
11*08b167e9SHaojian Zhuang 
12*08b167e9SHaojian Zhuang #define RANDOM_MAX		0x7fffffffffffffff
13*08b167e9SHaojian Zhuang #define RANDOM_MAGIC		0x9a4dbeaf
14*08b167e9SHaojian Zhuang 
15*08b167e9SHaojian Zhuang struct random_serial_num {
16*08b167e9SHaojian Zhuang 	uint64_t	magic;
17*08b167e9SHaojian Zhuang 	uint64_t	data;
18*08b167e9SHaojian Zhuang 	char		serialno[32];
19*08b167e9SHaojian Zhuang };
20*08b167e9SHaojian Zhuang 
21*08b167e9SHaojian Zhuang /*
22*08b167e9SHaojian Zhuang  * Function and variable prototypes
23*08b167e9SHaojian Zhuang  */
24*08b167e9SHaojian Zhuang void hikey_init_mmu_el1(unsigned long total_base,
25*08b167e9SHaojian Zhuang 			unsigned long total_size,
26*08b167e9SHaojian Zhuang 			unsigned long ro_start,
27*08b167e9SHaojian Zhuang 			unsigned long ro_limit,
28*08b167e9SHaojian Zhuang 			unsigned long coh_start,
29*08b167e9SHaojian Zhuang 			unsigned long coh_limit);
30*08b167e9SHaojian Zhuang void hikey_init_mmu_el3(unsigned long total_base,
31*08b167e9SHaojian Zhuang 			unsigned long total_size,
32*08b167e9SHaojian Zhuang 			unsigned long ro_start,
33*08b167e9SHaojian Zhuang 			unsigned long ro_limit,
34*08b167e9SHaojian Zhuang 			unsigned long coh_start,
35*08b167e9SHaojian Zhuang 			unsigned long coh_limit);
36*08b167e9SHaojian Zhuang 
37*08b167e9SHaojian Zhuang void hikey_ddr_init(void);
38*08b167e9SHaojian Zhuang void hikey_io_setup(void);
39*08b167e9SHaojian Zhuang 
40*08b167e9SHaojian Zhuang int hikey_get_partition_size(const char *arg, int left, char *response);
41*08b167e9SHaojian Zhuang int hikey_get_partition_type(const char *arg, int left, char *response);
42*08b167e9SHaojian Zhuang 
43*08b167e9SHaojian Zhuang int hikey_erase(const char *arg);
44*08b167e9SHaojian Zhuang int hikey_flash(const char *arg);
45*08b167e9SHaojian Zhuang int hikey_oem(const char *arg);
46*08b167e9SHaojian Zhuang int hikey_reboot(const char *arg);
47*08b167e9SHaojian Zhuang 
48*08b167e9SHaojian Zhuang const char *hikey_init_serialno(void);
49*08b167e9SHaojian Zhuang int hikey_read_serialno(struct random_serial_num *serialno);
50*08b167e9SHaojian Zhuang int hikey_write_serialno(struct random_serial_num *serialno);
51*08b167e9SHaojian Zhuang 
52*08b167e9SHaojian Zhuang void init_acpu_dvfs(void);
53*08b167e9SHaojian Zhuang 
54*08b167e9SHaojian Zhuang #endif /* __HIKEY_PRIVATE_H__ */
55