44 lines
2.2 KiB
C
44 lines
2.2 KiB
C
/*
|
|
* rawnand_base.c for sunxi rawnand base
|
|
*
|
|
* Copyright (C) 2019 Allwinner.
|
|
* SPDX-License-Identifier: GPL-2.0
|
|
*/
|
|
#include "../../aw_nand_type.h"
|
|
#include "controller/ndfc_base.h"
|
|
|
|
extern struct _nand_temp_buf ntf;
|
|
extern struct _nand_permanent_data nand_permanent_data;
|
|
|
|
extern u8 *nand_get_temp_buf(unsigned int size);
|
|
extern int nand_free_temp_buf(unsigned char *buf);
|
|
extern s32 nand_get_dma_desc(struct nand_controller_info *nctri);
|
|
extern s32 nand_free_dma_desc(struct nand_controller_info *nctri);
|
|
extern int nand_init_temp_buf(struct _nand_temp_buf *nand_temp_buf);
|
|
extern int (*nand_physic_special_init)(void);
|
|
extern int (*nand_physic_special_exit)(void);
|
|
struct _nand_info *RawNandHwInit(void);
|
|
int RawNandHwExit(void);
|
|
int rawnand_hw_super_standby(void);
|
|
int rawnand_hw_super_resume(void);
|
|
int rawnand_hw_normal_standby(void);
|
|
int rawnand_hw_normal_resume(void);
|
|
int rawnand_hw_shutdown(void);
|
|
int nand_read_scan_data(unsigned int chip, unsigned int block, unsigned int page, unsigned int bitmap, unsigned char *mbuf, unsigned char *sbuf);
|
|
|
|
int get_nand_structure(struct _nand_super_storage_info *nssi);
|
|
int rawnand_physic_erase_block(unsigned int chip, unsigned int block);
|
|
int rawnand_physic_write_page(unsigned int chip, unsigned int block, unsigned int page, unsigned int bitmap, unsigned char *mbuf, unsigned char *sbuf);
|
|
int rawnand_physic_read_page(unsigned int chip, unsigned int block, unsigned int page, unsigned int bitmap, unsigned char *mbuf, unsigned char *sbuf);
|
|
int rawnand_physic_erase_super_block(unsigned int chip, unsigned int block);
|
|
int rawnand_physic_write_super_page(unsigned int chip, unsigned int block, unsigned int page, unsigned int bitmap, unsigned char *mbuf, unsigned char *sbuf);
|
|
int rawnand_physic_read_super_page(unsigned int chip, unsigned int block, unsigned int page, unsigned int bitmap, unsigned char *mbuf, unsigned char *sbuf);
|
|
int rawnand_physic_super_bad_block_check(unsigned int chip, unsigned int block);
|
|
int rawnand_physic_super_bad_block_mark(unsigned int chip, unsigned int block);
|
|
|
|
struct physic_special_ops {
|
|
int (*nand_physic_special_init)(void);
|
|
int (*nand_physic_special_exit)(void);
|
|
};
|
|
extern struct physic_special_ops special_ops;
|