lin
2025-04-14 e0c033f30287744d392a8d700693b1c0b78afc7c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
// SPDX-License-Identifier: GPL-2.0+
/*
 * (C) Copyright 2018-2020
 * Allwinner Technology Co., Ltd. <www.allwinnertech.com>
 * wangwei <wangwei@allwinnertech.com>
 *
 */
 
#ifndef _SUNXI_FLASH_INTERFACE_
#define _SUNXI_FLASH_INTERFACE_
 
 
typedef struct _sunxi_flash_desc {
 
   lbaint_t    lba;        /* number of blocks */
   unsigned long    blksz;        /* block size */
   int (*probe)(void);
   int (*init)(int stage, int);
   int (*exit)(int force);
   int    (*read)(uint start_block, uint nblock, void *buffer);
   int    (*write)(uint start_block, uint nblock, void *buffer);
   int (*erase)(int erase, void *mbr_buffer);
   int (*force_erase)(void);
   int (*flush)(void);
   uint (*size)(void) ;
   int (*phyread) (unsigned int start_block, unsigned int nblock, void *buffer);
   int (*phywrite)(unsigned int start_block, unsigned int nblock, void *buffer);
   int (*secstorage_read)( int item, unsigned char *buf, unsigned int len) ;
   int (*secstorage_write) (int item, unsigned char *buf, unsigned int len);
   int (*download_spl) (unsigned char *buf, int len, unsigned int ext);
   int (*download_toc) (unsigned char *buf, int len, unsigned int ext);
   int (*write_end) (void);
   int (*erase_area)(uint start_bloca, uint nblock);
 
}sunxi_flash_desc;
 
 
extern sunxi_flash_desc sunxi_nand_desc;
extern sunxi_flash_desc sunxi_sdmmc_desc;
extern sunxi_flash_desc sunxi_spinor_desc;
 
extern sunxi_flash_desc sunxi_sdmmcs_desc;
 
 
#endif