From 044ad7c3987460ede48ff27afd6bdb0ca05a0432 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Mon, 4 Jul 2011 20:52:54 +0200 Subject: import at91lib from at91lib_20100901_softpack_1_9_v_1_0_svn_v15011 it's sad to see that atmel doesn't publish their svn repo or has a centralized location or even puts proper version/release info into the library itself --- memories/norflash/NorFlashIntel.h | 99 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 memories/norflash/NorFlashIntel.h (limited to 'memories/norflash/NorFlashIntel.h') diff --git a/memories/norflash/NorFlashIntel.h b/memories/norflash/NorFlashIntel.h new file mode 100644 index 0000000..8934015 --- /dev/null +++ b/memories/norflash/NorFlashIntel.h @@ -0,0 +1,99 @@ +/* ---------------------------------------------------------------------------- + * ATMEL Microcontroller Software Support + * ---------------------------------------------------------------------------- + * Copyright (c) 2008, Atmel Corporation + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * - Redistributions of source code must retain the above copyright notice, + * this list of conditions and the disclaimer below. + * + * Atmel's name may not be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE + * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, + * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * ---------------------------------------------------------------------------- + */ +//------------------------------------------------------------------------------ +/// \unit +/// +/// !!!Purpose +/// +/// The INTERL %norflash Low-level driver code implement procedures to program +/// basic operations described INTEL-specified command set flash devices. +/// The various commands recognized by the devices are listed in the Commands +/// Tables provided in the corresponding INTEL command set compatible flash +/// datasheets. All operation functions are blocked, they wait for the +/// completion of an operation by polling the status register. +/// +/// !!!Usage +/// -# Flash program using INTEL_Write_Data(). +/// - The Program command is used to modify the data stored at the +/// specified device address. Programming can only change bits +/// from ¡®1¡¯ to ¡®0¡¯. It may be necessary to erase the block before +/// programming to addresses within it. Programming modifies a single +/// Word at a time using static function intel_Program(). Programming +/// larger amounts of data must be done in one Word at a time by +/// giving a Program command, waiting for the command to complete, +/// giving the next Program command and so on. +/// -# erase a block within the flash using INTEL_EraseSector(). +/// - Flash erase is performed on a block basis. An entire block is +/// erased each time an erase command sequence is given. +/// -# erase whole blocks within the flash using INTEL_EraseChip(). +/// -# INTEL_Reset() function can be issued, between Bus Write cycles +/// before the start of a program or erase operation, to return the +/// device to read mode. +/// -# INTEL_ReadDeviceID() is used to retrieve information +/// about the Flash Device type. +/// -# INTEL_ReadManufactoryId() is used to retrieve information +/// about the Flash Device Manufactory ID. +//------------------------------------------------------------------------------ +#ifndef NORFLASHINTEL_H +#define NORFLASHINTEL_H + +//------------------------------------------------------------------------------ +// Local functions +//------------------------------------------------------------------------------ + +void INTEL_Reset(struct NorFlashInfo *pNorFlashInfo, unsigned int address); + +unsigned int INTEL_ReadManufactoryId(struct NorFlashInfo *NorFlashInfo); + +unsigned int INTEL_ReadDeviceID(struct NorFlashInfo *pNorFlashInfo); + +unsigned char INTEL_EraseSector( + struct NorFlashInfo *NorFlashInfo, + unsigned int sectorAddr); + +unsigned char INTEL_EraseChip(struct NorFlashInfo *NorFlashInfo); + +unsigned char INTEL_Write_Data( + struct NorFlashInfo *NorFlashInfo, + unsigned int address, + unsigned char *buffer, + unsigned int size); + +const struct NorFlashOperations intelOperations = { + INTEL_Reset, + INTEL_Write_Data, + INTEL_ReadManufactoryId, + INTEL_ReadDeviceID, + INTEL_EraseChip, + INTEL_EraseSector + +}; + +#endif //#ifndef NORFLASHINTEL_H + -- cgit v1.2.3