1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2017-2022, ARM Limited and Contributors. All rights reserved. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu #ifndef HIKEY960_PRIVATE_H 8*91f16700Schasinglulu #define HIKEY960_PRIVATE_H 9*91f16700Schasinglulu 10*91f16700Schasinglulu #include <common/bl_common.h> 11*91f16700Schasinglulu 12*91f16700Schasinglulu /* Fastboot serial number */ 13*91f16700Schasinglulu #define HIKEY960_SERIAL_NUMBER_LBA (UFS_BASE + 20) 14*91f16700Schasinglulu #define HIKEY960_SERIAL_NUMBER_SIZE 16 15*91f16700Schasinglulu 16*91f16700Schasinglulu /* 17*91f16700Schasinglulu * Function and variable prototypes 18*91f16700Schasinglulu */ 19*91f16700Schasinglulu void hikey960_init_mmu_el1(unsigned long total_base, 20*91f16700Schasinglulu unsigned long total_size, 21*91f16700Schasinglulu unsigned long ro_start, 22*91f16700Schasinglulu unsigned long ro_limit, 23*91f16700Schasinglulu unsigned long coh_start, 24*91f16700Schasinglulu unsigned long coh_limit); 25*91f16700Schasinglulu void hikey960_init_mmu_el3(unsigned long total_base, 26*91f16700Schasinglulu unsigned long total_size, 27*91f16700Schasinglulu unsigned long ro_start, 28*91f16700Schasinglulu unsigned long ro_limit, 29*91f16700Schasinglulu unsigned long coh_start, 30*91f16700Schasinglulu unsigned long coh_limit); 31*91f16700Schasinglulu void hikey960_io_setup(void); 32*91f16700Schasinglulu int hikey960_read_boardid(unsigned int *id); 33*91f16700Schasinglulu int hikey960_set_fip_addr(unsigned int image_id, const char *name); 34*91f16700Schasinglulu int hikey960_load_serialno(uint64_t *serno); 35*91f16700Schasinglulu void hikey960_clk_init(void); 36*91f16700Schasinglulu void hikey960_pmu_init(void); 37*91f16700Schasinglulu void hikey960_regulator_enable(void); 38*91f16700Schasinglulu void hikey960_tzc_init(void); 39*91f16700Schasinglulu void hikey960_peri_init(void); 40*91f16700Schasinglulu void hikey960_pinmux_init(void); 41*91f16700Schasinglulu void hikey960_gpio_init(void); 42*91f16700Schasinglulu void set_retention_ticks(unsigned int val); 43*91f16700Schasinglulu void clr_retention_ticks(unsigned int val); 44*91f16700Schasinglulu void clr_ex(void); 45*91f16700Schasinglulu void nop(void); 46*91f16700Schasinglulu 47*91f16700Schasinglulu /******************************************************************************* 48*91f16700Schasinglulu * Struct for parameters received from BL2 49*91f16700Schasinglulu ******************************************************************************/ 50*91f16700Schasinglulu typedef struct plat_params_from_bl2 { 51*91f16700Schasinglulu /* Fastboot serial number gathered from UFS */ 52*91f16700Schasinglulu uint64_t fastboot_serno; 53*91f16700Schasinglulu } plat_params_from_bl2_t; 54*91f16700Schasinglulu 55*91f16700Schasinglulu #endif /* HIKEY960_PRIVATE_H */ 56