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