📄 flash.h
字号:
/*-------------------------------------------------------------------------
* Filename: flash.h
* Version: $Id: flash.h,v 1.9 2001/12/31 00:28:53 erikm Exp $
* Copyright: Copyright (C) 1999, Jan-Derk Bakker
* Author: Jan-Derk Bakker <J.D.Bakker@its.tudelft.nl>
* Description: Flash I/O functions for the blob loader
* Created at: Mon Aug 23 20:00:00 1999
* Modified by: Erik Mouw <J.A.K.Mouw@its.tudelft.nl>
* Modified at: Sun Oct 3 21:35:12 1999
*-----------------------------------------------------------------------*/
/*
* flash.c: Flash I/O functions for the blob bootloader
*
* Copyright (C) 1999 Jan-Derk Bakker (J.D.Bakker@its.tudelft.nl)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ident "$Id: flash.h,v 1.9 2001/12/31 00:28:53 erikm Exp $"
#ifndef BLOB_FLASH_H
#define BLOB_FLASH_H
#include <blob/types.h>
typedef struct {
u32 size;
u32 num;
int lockable;
} flash_descriptor_t;
typedef int (*flash_erase_func_t)(u32 *);
typedef int (*flash_write_func_t)(u32 *, const u32 *);
typedef int (*flash_lock_block_func_t)(u32 *);
typedef int (*flash_unlock_block_func_t)(u32 *);
typedef int (*flash_query_block_lock_func_t)(u32 *);
typedef int (*flash_enable_vpp_func_t)(void);
typedef int (*flash_disable_vpp_func_t)(void);
typedef struct {
/* the following functions should be implemented by all flash
* drivers*/
flash_erase_func_t erase;
flash_write_func_t write;
flash_lock_block_func_t lock_block;
flash_unlock_block_func_t unlock_block;
flash_query_block_lock_func_t query_block_lock;
/* this is platform specific, so it should be implemented by
* the platform specific code. a flash driver can leave these
* functions unimplemented, blob will safely work around it */
flash_enable_vpp_func_t enable_vpp;
flash_disable_vpp_func_t disable_vpp;
} flash_driver_t;
/* implemented flash drivers */
extern flash_driver_t amd32_flash_driver;
extern flash_driver_t intel16_flash_driver;
extern flash_driver_t intel32_flash_driver;
extern flash_driver_t null_flash_driver;
/* should be filled out by the architecture dependent files */
extern flash_descriptor_t *flash_descriptors;
extern flash_driver_t *flash_driver;
/* flash data mangle functions */
u32 data_from_flash(u32 what);
u32 data_to_flash(u32 what);
/* exported functions */
int flash_erase_region(u32 *start, u32 nwords);
int flash_write_region(u32 *dst, const u32 *src, u32 nwords);
int flash_lock_region(u32 *start, u32 nwords);
int flash_unlock_region(u32 *start, u32 nwords);
int flash_query_region(u32 *start, u32 nwords);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -