/* * Copyright (c) Hisilicon Technologies Co., Ltd. 2014-2020. All rights reserved. * Description: boot * Author: SmartMedia_BSP * Create: 2014-06-04 */ #ifndef BOOTH #define BOOTH typedef enum { BOOT_PARTITION_PRIMARY = 0, BOOT_PARTITION_BACKUP, BOOT_PARTITION_A, BOOT_PARTITION_B, BOOT_PARTITION_UNKNOWN } boot_partition_flag; typedef union { struct { unsigned int act_boot : 4; unsigned int exp_boot : 4; unsigned int primary_retry_times : 4; unsigned int backup_retry_times : 4; unsigned int reserved : 16; } bit; unsigned int u32; } boot_flag_reg; typedef int (*fn_init)(void); extern unsigned int _bss_start; extern unsigned int _bss_end; extern unsigned int _text_end; extern unsigned int _blank_zone_start; extern unsigned int _blank_zone_end; extern char __text_start[]; extern char __text_end[]; extern char __bss_start[]; extern char __bss_end[]; extern char __page_table_start[]; extern char __page_table_end[]; extern char __end[]; extern unsigned int __init_start; extern unsigned int __init_end; extern char __symbol_start[]; extern char __symbol_end[]; extern unsigned int g_fbl_version; extern unsigned int g_fbl_version_mask; /* arm system function */ extern void reboot(void); extern void reset_cpu(unsigned long addr); extern long long get_chipid_reg(void); extern unsigned int get_ca_vendor_reg(void); /* cpu.c */ extern unsigned int get_ca_vendor(void); extern unsigned int get_timer_clock(void); unsigned long long get_ddr_actual_size(void); unsigned int get_ddr_size(void); void start_cmdline(void); int boot_start(void); void app_init(void); void uart_init(void); void sysmem_init(void); void key_area_init(void); void bootargs_prepare(void); void boot_second_bootloader(void); void *get_fbl_key_area(unsigned int *length); void switch_starup_partition(void); #endif /* BOOTH */