blob: 742725c6923f7b7910153cefc38a46555059da12 [file] [log] [blame]
Haojian Zhuang602362d2017-06-01 12:15:14 +08001/*
Arthur Cassegrain97d4d812021-11-26 16:39:12 +01002 * Copyright (c) 2017-2022, ARM Limited and Contributors. All rights reserved.
Haojian Zhuang602362d2017-06-01 12:15:14 +08003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +00007#ifndef HIKEY960_PRIVATE_H
8#define HIKEY960_PRIVATE_H
Haojian Zhuang602362d2017-06-01 12:15:14 +08009
Antonio Nino Diaze0f90632018-12-14 00:18:21 +000010#include <common/bl_common.h>
Haojian Zhuang602362d2017-06-01 12:15:14 +080011
Arthur Cassegrain97d4d812021-11-26 16:39:12 +010012/* Fastboot serial number */
13#define HIKEY960_SERIAL_NUMBER_LBA (UFS_BASE + 20)
14#define HIKEY960_SERIAL_NUMBER_SIZE 16
15
Haojian Zhuang602362d2017-06-01 12:15:14 +080016/*
17 * Function and variable prototypes
18 */
19void hikey960_init_mmu_el1(unsigned long total_base,
20 unsigned long total_size,
21 unsigned long ro_start,
22 unsigned long ro_limit,
23 unsigned long coh_start,
24 unsigned long coh_limit);
25void hikey960_init_mmu_el3(unsigned long total_base,
26 unsigned long total_size,
27 unsigned long ro_start,
28 unsigned long ro_limit,
29 unsigned long coh_start,
30 unsigned long coh_limit);
31void hikey960_io_setup(void);
32int hikey960_read_boardid(unsigned int *id);
Haojian Zhuang32052ab2019-09-14 18:43:51 +080033int hikey960_set_fip_addr(unsigned int image_id, const char *name);
Arthur Cassegrain97d4d812021-11-26 16:39:12 +010034int hikey960_load_serialno(uint64_t *serno);
Haojian Zhuangd82e29d2018-03-05 13:20:33 +080035void hikey960_clk_init(void);
36void hikey960_pmu_init(void);
37void hikey960_regulator_enable(void);
38void hikey960_tzc_init(void);
39void hikey960_peri_init(void);
40void hikey960_pinmux_init(void);
Kaihua Zhong39ff2ee2018-07-16 17:33:48 +080041void hikey960_gpio_init(void);
Haojian Zhuang1b5c2252017-06-01 15:20:46 +080042void set_retention_ticks(unsigned int val);
43void clr_retention_ticks(unsigned int val);
44void clr_ex(void);
45void nop(void);
Haojian Zhuang602362d2017-06-01 12:15:14 +080046
Arthur Cassegrain97d4d812021-11-26 16:39:12 +010047/*******************************************************************************
48 * Struct for parameters received from BL2
49 ******************************************************************************/
50typedef struct plat_params_from_bl2 {
51 /* Fastboot serial number gathered from UFS */
52 uint64_t fastboot_serno;
53} plat_params_from_bl2_t;
54
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +000055#endif /* HIKEY960_PRIVATE_H */