/****************************************************************************** * * Title : flashUtility.h * Version 0.0 * * Description: header file * Related files: flashUtility.c * * Author: Lukas Tomasek, tomasekl@fzu.cz * ******************************************************************************/ #ifndef FLASH_UTILITY_H /* multiple inclusion protection */ #define FLASH_UTILITY_H /****************************************************************************** * Header files * ******************************************************************************/ #include "hostDefinitions.h" /****************************************************************************** * Definitions * ******************************************************************************/ #define FLASH_MEMORY_SIZE 0x80000 /* 512kB */ #define FLASH_MEMORY_SIZE_revE 0x200000 /* 2MB */ #define FLASH_SECTOR_SIZE 0x1000 /* 4kB */ #define FLASH_SECTOR_SIZE_revE 0x10000 /* 64kB */ #define NUMBER_OF_SECTORS 128 #define NUMBER_OF_SECTORS_revE 32 #define SECTOR_ADDR(sectorNumber) ((FLASH_SECTOR_SIZE)*(sectorNumber)) /* start sector relative address */ #define SECTOR_ADDR_revE(sectorNumber) ((FLASH_SECTOR_SIZE_revE)*(sectorNumber)) /* start sector relative address */ /* * Time intervals (flash type specs) */ #define CHIP_ERASE_TIME_ms 100 /* max. chip-erase time in miliseconds */ #define SECTOR_ERASE_TIME_ms 50 /* max. sector-erase time in miliseconds */ /* * FPGA Program Flash memory - 8bit size registers - NOT DIRECT VME access!!! * Access through FPGA Control registers!! */ #define FPGA_FLASH_0_BOTTOM_REL_ADDR 0xE00000 #define FPGA_FLASH_1_BOTTOM_REL_ADDR 0xE80000 #define FPGA_FLASH_2_BOTTOM_REL_ADDR 0xF00000 #define FPGA_FLASH_REL_ADDR_revE 0xE00000 #define MDSP_FLASH_BOTTOM_REL_ADDR BOOT_ROM_BASE /****************************************************************************** * Global Function Declarations * ******************************************************************************/ ERROR_ID chipErase(unsigned char slotNumber, unsigned int flashBaseAddr, int newFlashLoc); ERROR_ID chipEraseHpi(unsigned char slotNumber); ERROR_ID sectorErase(unsigned char slotNumber, unsigned int sectorBaseAddr, int newFlashLoc); ERROR_ID sectorEraseHpi(unsigned char slotNumber, unsigned int sectorBaseAddr); ERROR_ID writeByteToFlash(unsigned char slotNumber, UINT32 address, UINT8 data); ERROR_ID writeByteToFlashHpi(unsigned char slotNumber, UINT32 address, UINT8 data); ERROR_ID writeBlockToFlash(unsigned char slotNumber, UINT32 address, UINT8 *data, unsigned int numberOfBytes, int newFlashLoc); ERROR_ID writeBlockToFlashHpi(unsigned char slotNumber, UINT32 address, UINT8 *data, unsigned int numberOfBytes); ERROR_ID readByteFromFlash(unsigned char slotNumber, UINT32 address, UINT8 *value, int updateAddress); ERROR_ID readBlockFromFlash(unsigned char slotNumber, UINT32 address, UINT8 *buffer, unsigned int numberOfBytes, int newFlashLoc); /******************************************************************************/ #endif /* FLASH_UTILITY_H */