70 lines
2.0 KiB
C
70 lines
2.0 KiB
C
/*
|
|
* board/novatek/evb670b/nt72670b_emmc_partition.h
|
|
*
|
|
* Author: Alvin lin
|
|
* Created: May 21, 2013
|
|
* Copyright: Novatek Inc.
|
|
*
|
|
*/
|
|
#ifndef __NVT_EMMC_PARTITION_H__
|
|
#define __NVT_EMMC_PARTITION_H__
|
|
#include "nvt_tk_gpt.h"
|
|
|
|
typedef enum {
|
|
PART_TYPE_BOOT1 = 1,
|
|
PART_TYPE_BOOT2,
|
|
PART_TYPE_BIN,
|
|
PART_TYPE_FS,
|
|
PART_TYPE_MAX
|
|
}NVT_EMMC_PART_TYPE;
|
|
|
|
typedef enum {
|
|
PHY_PART_TYPE_BOOT1 = 1,
|
|
PHY_PART_TYPE_BOOT2,
|
|
PHY_PART_TYPE_RPMB,
|
|
PHY_PART_TYPE_USER,
|
|
PHY_PART_TYPE_MAX
|
|
} NVT_EMMC_PHY_PART_TYPE;
|
|
|
|
typedef enum {
|
|
IMG_HELP_READ,
|
|
IMG_HELP_WRITE,
|
|
IMG_HELP_ERASE,
|
|
IMG_HELP_MAX,
|
|
}NVT_EMMC_IMG_HELP_TYPE;
|
|
|
|
struct _nvt_emmc_image_info;
|
|
|
|
#define INVAILD_USER_PART_ID -1
|
|
#define FS_ERASE_BLK_CNT 4096
|
|
#define EMMC_BOOT0_PART_NAME "emmc_boot0"
|
|
#define EMMC_BOOT1_PART_NAME "emmc_boot1"
|
|
#define EMMC_RPMB_SECTOR_SIZE 256
|
|
|
|
typedef struct _nvt_emmc_image_info {
|
|
char *user_part_name;
|
|
char *image_name;
|
|
char *default_name;
|
|
NVT_EMMC_PART_TYPE part_type;
|
|
int (*image_help)(struct _nvt_emmc_image_info *this, NVT_EMMC_IMG_HELP_TYPE help_type);
|
|
int (*read_img)(struct _nvt_emmc_image_info *this, unsigned char *buf, unsigned int *rdlen, void* args);
|
|
int (*write_img)(struct _nvt_emmc_image_info *this, unsigned char *buf, unsigned int buf_sz, void* args);
|
|
int (*erase_img)(struct _nvt_emmc_image_info *this, void* args);
|
|
unsigned int part_offset;//count in sector, only vaild if partition type is boot or bin, others are set to 0
|
|
unsigned int size;//count in sector
|
|
} nvt_emmc_image_info;
|
|
|
|
|
|
unsigned int nvt_emmc_get_image_cnt(void);
|
|
unsigned char* nvt_emmc_get_partition_name_by_name(char *img_name);
|
|
unsigned long long nvt_emmc_get_part_start_sector(unsigned char* part_name);
|
|
unsigned long long nvt_emmc_get_part_size(unsigned char* part_name);
|
|
nvt_emmc_image_info* nvt_emmc_get_img_by_name(char *name);
|
|
int nvt_emmc_get_partition_id_by_name(char *name);
|
|
nvt_emmc_image_info* nvt_emmc_get_img_by_index(unsigned int index);
|
|
|
|
void nvt_emmc_part_init(void);
|
|
int nvt_ewritepart(unsigned int ptableaddr,int ptablelen);
|
|
#endif
|
|
|