52 lines
1.4 KiB
C
52 lines
1.4 KiB
C
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
|
|
/*
|
|
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
|
|
*/
|
|
|
|
#ifndef __NOCS_SEB_H__
|
|
#define __NOCS_SEB_H__
|
|
|
|
#define CA_NOCS_MODE 0x05
|
|
#define CA_NOCS_SCS 0X0C00
|
|
#define CA_NOCS_MODE_REG 0xfe440070
|
|
#define CA_NOCS_SCS_STATUS 0xfe440040
|
|
#define MAX_SKIP_NUM 0x05
|
|
|
|
/*S905C2 TYPE1*/
|
|
#define CMP_OFFSET_TYPE1 0x3f840
|
|
#define CMP_SIZE 72
|
|
#define INFO_OFFSET 0x3f884
|
|
#define REPLACE_INFO_OFFSET 0x3f800
|
|
#define REPLACE_INFO_SIZE 512
|
|
|
|
typedef enum {
|
|
NOCS_UNDEFINE = 0,
|
|
NOCS_S905C2_TYPE1,
|
|
LAST_NOCS_TYPE
|
|
} nocs_chip_type;
|
|
|
|
typedef enum {
|
|
SEB_NO_ERROR = 0,
|
|
SEB_ERROR,
|
|
SEB_UNSUPPORT,
|
|
LAST_SEB_STATUS
|
|
} nocs_seb_status;
|
|
|
|
typedef enum {
|
|
NOCS_SCS_DISABLE = 0,
|
|
NOCS_SCS_ENABLE,
|
|
} nocs_scs_status;
|
|
|
|
typedef struct {
|
|
unsigned int area_num;
|
|
unsigned int offset[MAX_SKIP_NUM];
|
|
unsigned int size[MAX_SKIP_NUM];
|
|
} nocs_boot_replace;
|
|
|
|
nocs_seb_status get_nocs_inf(nocs_chip_type *chip_type, nocs_scs_status *scs_status);
|
|
nocs_seb_status nocs_secure_boot_modify(nocs_chip_type chip_type,
|
|
unsigned char *flash_boot, unsigned int flash_boot_size,
|
|
unsigned char *update_boot, unsigned int update_boot_size,
|
|
nocs_boot_replace *nocs_replace);
|
|
#endif /* __NOCS_SEB_H__ */
|