100 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0 */
 | 
						|
/*
 | 
						|
 * Copyright (C) 2018 MediaTek Inc.
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef __PRELOADER_H_
 | 
						|
#define __PRELOADER_H_
 | 
						|
 | 
						|
enum forbidden_mode {
 | 
						|
	F_FACTORY_MODE = 0x0001
 | 
						|
};
 | 
						|
 | 
						|
union lk_hdr {
 | 
						|
	struct {
 | 
						|
		u32 magic;
 | 
						|
		u32 size;
 | 
						|
		char name[32];
 | 
						|
		u32 loadaddr;
 | 
						|
	};
 | 
						|
 | 
						|
	u8 data[512];
 | 
						|
};
 | 
						|
 | 
						|
struct sec_limit {
 | 
						|
	unsigned int magic_num;
 | 
						|
	enum forbidden_mode forbid_mode;
 | 
						|
};
 | 
						|
 | 
						|
enum bootmode {
 | 
						|
	NORMAL_BOOT = 0,
 | 
						|
	META_BOOT = 1,
 | 
						|
	RECOVERY_BOOT = 2,
 | 
						|
	SW_REBOOT = 3,
 | 
						|
	FACTORY_BOOT = 4,
 | 
						|
	ADVMETA_BOOT = 5,
 | 
						|
	ATE_FACTORY_BOOT = 6,
 | 
						|
	ALARM_BOOT = 7,
 | 
						|
 | 
						|
	KERNEL_POWER_OFF_CHARGING_BOOT = 8,
 | 
						|
	LOW_POWER_OFF_CHARGING_BOOT = 9,
 | 
						|
 | 
						|
	FAST_BOOT = 99,
 | 
						|
	DOWNLOAD_BOOT = 100,
 | 
						|
	UNKNOWN_BOOT
 | 
						|
};
 | 
						|
 | 
						|
enum boot_reason {
 | 
						|
	BR_POWER_KEY = 0,
 | 
						|
	BR_USB,
 | 
						|
	BR_RTC,
 | 
						|
	BR_WDT,
 | 
						|
	BR_WDT_BY_PASS_PWK,
 | 
						|
	BR_TOOL_BY_PASS_PWK,
 | 
						|
	BR_2SEC_REBOOT,
 | 
						|
	BR_UNKNOWN
 | 
						|
};
 | 
						|
 | 
						|
enum meta_com_type {
 | 
						|
	META_UNKNOWN_COM = 0,
 | 
						|
	META_UART_COM,
 | 
						|
	META_USB_COM
 | 
						|
};
 | 
						|
 | 
						|
struct da_info_t {
 | 
						|
	u32 addr;
 | 
						|
	u32 arg1;
 | 
						|
	u32 arg2;
 | 
						|
	u32 len;
 | 
						|
	u32 sig_len;
 | 
						|
};
 | 
						|
 | 
						|
struct boot_argument {
 | 
						|
	u32 magic;
 | 
						|
	enum bootmode boot_mode;
 | 
						|
	u32 e_flag;
 | 
						|
	u32 log_port;
 | 
						|
	u32 log_baudrate;
 | 
						|
	u8 log_enable;
 | 
						|
	u8 part_num;
 | 
						|
	u8 reserved[2];
 | 
						|
	u32 dram_rank_num;
 | 
						|
	u32 dram_rank_size[4];
 | 
						|
	u32 boot_reason;
 | 
						|
	enum meta_com_type meta_com_type;
 | 
						|
	u32 meta_com_id;
 | 
						|
	u32 boot_time;
 | 
						|
	struct da_info_t da_info;
 | 
						|
	struct sec_limit sec_limit;
 | 
						|
	union lk_hdr *part_info;
 | 
						|
	u8 md_type[4];
 | 
						|
	u32 ddr_reserve_enable;
 | 
						|
	u32 ddr_reserve_success;
 | 
						|
	u32 chip_ver;
 | 
						|
	char pl_version[8];
 | 
						|
};
 | 
						|
 | 
						|
#define BOOT_ARGUMENT_MAGIC	0x504c504c
 | 
						|
 | 
						|
#endif /* __PRELOADER_H_ */
 |