Main Page   Modules   Namespace List   Class Hierarchy   Data Structures   File List   Namespace Members   Data Fields   Globals   Related Pages  

RodVmeAddresses.h

Go to the documentation of this file.
00001 //File: RodVmeAddresses.h
00002 
00003 #ifndef SCTPIXELROD_RODVMEADDRESSES_H 
00004 #define SCTPIXELROD_RODVMEADDRESSES_H
00005 
00015 namespace SctPixelRod {
00016 
00017 #include "processor.h"
00018 #include "vmeAddressMap.h"
00019 
00020 // Give some shorter aliases to the HPI registers
00021 const unsigned long HPIC = HPI_CONTROL_REG_REL_ADDR;
00022 const unsigned long HPIA = HPI_ADDRESS_REG_REL_ADDR;
00023 const unsigned long HPID_AUTO = HPI_DATA_REG_WITH_AUTOINC_REL_ADDR;
00024 const unsigned long HPID_NOAUTO = HPI_DATA_REG_WITHOUT_AUTOINC_REL_ADDR;
00025 
00026 //This MUST be a multiple of 0x40 (256 decimal) because of an obscure feature
00027 //in the VME requirement for block transfers.
00028 const long MAX_HPID_WORD_ELEMENTS = 0x40000; // 32b words - 20 bits available for address autoincrement => hwil
00029 
00030 // Flash Registers
00031 const unsigned long FLASH_ADDR_WRITEDATA_REG = 0x00c00010;
00032 const unsigned long FLASH_CONTROL_REG = 0x00c0000c;
00033 
00034 //FPGA Program/Reset Manager - 32bit size registers - valid only low 8 bits! 
00035 const unsigned long FPGA_CONTROL_REG_REL_ADDR[8] = {
00036   FPGA_CONTROL_REG_0_REL_ADDR, // fpga cnfg control reg
00037   FPGA_CONTROL_REG_1_REL_ADDR, // fpga rst control reg
00038   FPGA_CONTROL_REG_2_REL_ADDR, // vme dsp rst control reg
00039   FPGA_CONTROL_REG_3_REL_ADDR, // flash control reg
00040   FPGA_CONTROL_REG_4_REL_ADDR, // flash address(23:0)+data(31:24) reg
00041   FPGA_CONTROL_REG_5_REL_ADDR, // 
00042   FPGA_CONTROL_REG_6_REL_ADDR, // 
00043   FPGA_CONTROL_REG_7_REL_ADDR  // 
00044 };
00045 
00046 // FPGA Registers
00047 const unsigned long FPGA_STATUS_REG_REL_ADDR[8] = {
00048   FPGA_STATUS_REG_0_REL_ADDR, // fpga cnfg status reg
00049   FPGA_STATUS_REG_1_REL_ADDR, // fpga reset status reg
00050   FPGA_STATUS_REG_2_REL_ADDR, // vme dsp reset status reg
00051   FPGA_STATUS_REG_3_REL_ADDR, // fpga init status reg
00052   FPGA_STATUS_REG_4_REL_ADDR, // flash status reg
00053   FPGA_STATUS_REG_5_REL_ADDR, // halt status
00054   FPGA_STATUS_REG_6_REL_ADDR, // ROD Serial Number
00055   FPGA_STATUS_REG_7_REL_ADDR  // flash read data reg
00056 }; 
00057 
00058 // Define flash memory addresses, values, and bits
00059 const unsigned long MDSP_FLASH_BOTTOM = BOOT_ROM_BASE;
00060 const unsigned long MDSP_FLASH_SIZE = 0x40000;
00061 const unsigned long FPGA_FLASH_0_BOTTOM = 0xE00000;
00062 const unsigned long FPGA_FLASH_1_BOTTOM = 0xE80000;
00063 const unsigned long FPGA_FLASH_2_BOTTOM = 0xF00000;
00064 const unsigned long FPGA_FLASH_REL_ADDR_REVE = 0xE00000;
00065 const unsigned long FLASH_MEMORY_SIZE = 0x80000;      // 512 kB
00066 const unsigned long FLASH_MEMORY_SIZE_REVE = 0x200000;      // 2 MB
00067 const unsigned long FLASH_SECTOR_SIZE = 0x1000;       // 4 kB
00068 const unsigned long FLASH_SECTOR_SIZE_REVE = 0x10000;       // 64 kB
00069 const double FLASH_TIMEOUT = 5.0;                     // in seconds
00070 const unsigned long CHIP_ERASE_TIME_MS = 100;
00071 const unsigned long SECTOR_ERASE_TIME_MS = 25*2;   // 25ms times 2 for safety
00072 const unsigned long READ_HANDSHAKE_BIT = 0;
00073 const unsigned long WRITE_COMMAND_HANDSHAKE_BIT = 1;
00074 const unsigned long WRITE_DATA_HANDSHAKE_BIT = 2;
00075 const unsigned long NUMBER_OR_SECTORS = 128;
00076 const unsigned long NUMBER_OF_SECTORS_REVE = 32;
00077 
00078 } //  End namespace SctPixelRod
00079 
00080 #endif // SCTPIXELROD_RODVMEADDRESSES_H

Generated on Mon Dec 15 19:36:13 2003 for SCT DAQ/DCS Software by doxygen1.3-rc3