113 #if defined( _USE_PACK ) 114 #pragma pack( 1 ) // set byte alignment 115 #define _USING_BYTE_ALIGNMENT 153 #define _mbg_swab_asic_version( _p ) _mbg_swab32( _p ) 164 #define _mbg_swab_asic_features( _p ) _mbg_swab32( _p ) 175 #define PCI_ASIC_HAS_MM_IO 0x0001 176 #define PCI_ASIC_HAS_PGMB_IRQ 0x0002 231 #define PCI_ASIC_ADD_ON_IRQF 0x00000001UL 242 #define PCI_ASIC_PCI_IRQF 0x00010000UL 257 #define PCI_ASIC_ADDR_RANGE 0x100U 262 #define PCPS_DEV_CLASS_CODE 0x08800000UL 263 #define PCI_ASIC_BADR0_INIT ( ~( PCI_ASIC_ADDR_RANGE - 1 ) | 0x01 ) 266 #define PCI_ASIC_CFG_PCI510 \ 268 _hilo_32( PCPS_DEV_CLASS_CODE ), \ 269 _hilo_16( PCI_ASIC_BADR0_INIT ), \ 270 _hilo_16( PCI_DEV_PCI510 ) \ 273 #define PCI_ASIC_CFG_GPS169PCI \ 275 _hilo_32( PCPS_DEV_CLASS_CODE ), \ 276 _hilo_16( PCI_ASIC_BADR0_INIT ), \ 277 _hilo_16( PCI_DEV_GPS169PCI ) \ 280 #define PCI_ASIC_CFG_TCR510PCI \ 282 _hilo_32( PCPS_DEV_CLASS_CODE ), \ 283 _hilo_16( PCI_ASIC_BADR0_INIT ), \ 284 _hilo_16( PCI_DEV_TCR510PCI ) \ 287 #define PCI_ASIC_CFG_TCR167PCI \ 289 _hilo_32( PCPS_DEV_CLASS_CODE ), \ 290 _hilo_16( PCI_ASIC_BADR0_INIT ), \ 291 _hilo_16( PCI_DEV_TCR167PCI ) \ 294 #define PCI_ASIC_CFG_GPS170PCI \ 296 _hilo_32( PCPS_DEV_CLASS_CODE ), \ 297 _hilo_16( PCI_ASIC_BADR0_INIT ), \ 298 _hilo_16( PCI_DEV_GPS170PCI ) \ 301 #define PCI_ASIC_CFG_PCI511 \ 303 _hilo_32( PCPS_DEV_CLASS_CODE ), \ 304 _hilo_16( PCI_ASIC_BADR0_INIT ), \ 305 _hilo_16( PCI_DEV_PCI511 ) \ 308 #define PCI_ASIC_CFG_TCR511PCI \ 310 _hilo_32( PCPS_DEV_CLASS_CODE ), \ 311 _hilo_16( PCI_ASIC_BADR0_INIT ), \ 312 _hilo_16( PCI_DEV_TCR511PCI ) \ 329 #define _convert_asic_version_number( _n ) \ 330 ( ( (_n) < 0x100 ) ? ( (_n) << 8 ) : (_n) ) 334 #define PCPS_ASIC_STR_FMT "%u.%02X" // TODO Or should this be "%u.%02u" 339 #define _pcps_asic_version_major( _v ) \ 340 ( ( (_v) >> 8 ) & 0xFF ) 346 #define _pcps_asic_version_minor( _v ) \ 354 #define _pcps_asic_version_greater_equal( _v, _v_major, _v_minor ) \ 356 ( _pcps_asic_version_major( _v ) == (_v_major) ) && \ 357 ( _pcps_asic_version_minor( _v ) >= (_v_minor) ) \ 399 #define PCI_ASIC_CURRENT_MINOR_PEX511 0x04 400 #define PCI_ASIC_REQUIRED_MINOR_PEX511 0x03 401 #define PCI_ASIC_FIX_HRT_MINOR_PEX511 0x04 // Increases HRT accuracy 402 #define PCI_ASIC_FIX_IRQ_MINOR_PEX511 0x03 // Fixes IRQ problem 403 #define PCI_ASIC_HR_TIME_MINOR_PEX511 0x02 // Supports HR time with PEX511 405 #define PCI_ASIC_CURRENT_MINOR_GPS170PEX 0x05 406 #define PCI_ASIC_REQUIRED_MINOR_GPS170PEX 0x03 407 #define PCI_ASIC_ENH_HRT_MINOR_GPS170PEX 0x05 // Enhanced MM HRT accuracy 408 #define PCI_ASIC_FIX_HRT_MINOR_GPS170PEX 0x04 // Increases MM HRT accuracy 409 #define PCI_ASIC_FIX_IRQ_MINOR_GPS170PEX 0x03 // Fixes IRQ problem 411 #define PCI_ASIC_CURRENT_MINOR_TCR511PEX 0x04 412 #define PCI_ASIC_REQUIRED_MINOR_TCR511PEX 0x03 414 #define PCI_ASIC_FIX_IRQ_MINOR_TCR511PEX 0x03 // Fixes IRQ problem, increases HRT accuracy 416 #define PCI_ASIC_CURRENT_MINOR_PTP270PEX 0x06 417 #define PCI_ASIC_REQUIRED_MINOR_PTP270PEX 0x01 425 #define PCI_ASIC_CURRENT_MINOR_FRC511PEX 0x01 426 #define PCI_ASIC_REQUIRED_MINOR_FRC511PEX 0x01 428 #define PCI_ASIC_CURRENT_MINOR_TCR170PEX 0x03 429 #define PCI_ASIC_REQUIRED_MINOR_TCR170PEX 0x02 430 #define PCI_ASIC_FIX_EE_ACCESS_TCR170PEX 0x02 // Fixes EE access problem after reset 431 #define PCI_ASIC_FIX_FO_IN_LEVEL_TCR170PEX 0x03 // Correct polarity for fiber optic input 433 #define PCI_ASIC_CURRENT_MINOR_GPS180PEX 0x06 434 #define PCI_ASIC_REQUIRED_MINOR_GPS180PEX 0x01 442 #define PCI_ASIC_CURRENT_MINOR_TCR180PEX 0x00 443 #define PCI_ASIC_REQUIRED_MINOR_TCR180PEX 0x00 445 #define PCI_ASIC_CURRENT_MINOR_PZF180PEX 0x01 446 #define PCI_ASIC_REQUIRED_MINOR_PZF180PEX 0x00 449 #define PCI_ASIC_CURRENT_MINOR_GLN180PEX 0x00 450 #define PCI_ASIC_REQUIRED_MINOR_GLN180PEX 0x00 452 #define PCI_ASIC_CURRENT_MINOR_GNS181PEX 0x00 453 #define PCI_ASIC_REQUIRED_MINOR_GNS181PEX 0x00 481 #define DEFAULT_PCI_ASIC_VERSION_INFO_TABLE \ 483 { PCPS_TYPE_PEX511, PCI_ASIC_MAJOR_PEX511, PCI_ASIC_CURRENT_MINOR_PEX511, PCI_ASIC_REQUIRED_MINOR_PEX511 }, \ 484 { PCPS_TYPE_GPS170PEX, PCI_ASIC_MAJOR_GPS170PEX, PCI_ASIC_CURRENT_MINOR_GPS170PEX, PCI_ASIC_REQUIRED_MINOR_GPS170PEX }, \ 485 { PCPS_TYPE_TCR511PEX, PCI_ASIC_MAJOR_TCR511PEX, PCI_ASIC_CURRENT_MINOR_TCR511PEX, PCI_ASIC_REQUIRED_MINOR_TCR511PEX }, \ 486 { PCPS_TYPE_PTP270PEX, PCI_ASIC_MAJOR_PTP270PEX, PCI_ASIC_CURRENT_MINOR_PTP270PEX, PCI_ASIC_REQUIRED_MINOR_PTP270PEX }, \ 487 { PCPS_TYPE_FRC511PEX, PCI_ASIC_MAJOR_FRC511PEX, PCI_ASIC_CURRENT_MINOR_FRC511PEX, PCI_ASIC_REQUIRED_MINOR_FRC511PEX }, \ 488 { PCPS_TYPE_TCR170PEX, PCI_ASIC_MAJOR_TCR170PEX, PCI_ASIC_CURRENT_MINOR_TCR170PEX, PCI_ASIC_REQUIRED_MINOR_TCR170PEX }, \ 489 { PCPS_TYPE_GPS180PEX, PCI_ASIC_MAJOR_GPS180PEX, PCI_ASIC_CURRENT_MINOR_GPS180PEX, PCI_ASIC_REQUIRED_MINOR_GPS180PEX }, \ 490 { PCPS_TYPE_TCR180PEX, PCI_ASIC_MAJOR_TCR180PEX, PCI_ASIC_CURRENT_MINOR_TCR180PEX, PCI_ASIC_REQUIRED_MINOR_TCR180PEX }, \ 491 { PCPS_TYPE_PZF180PEX, PCI_ASIC_MAJOR_PZF180PEX, PCI_ASIC_CURRENT_MINOR_PZF180PEX, PCI_ASIC_REQUIRED_MINOR_PZF180PEX }, \ 492 { PCPS_TYPE_GLN180PEX, PCI_ASIC_MAJOR_GLN180PEX, PCI_ASIC_CURRENT_MINOR_GLN180PEX, PCI_ASIC_REQUIRED_MINOR_GLN180PEX }, \ 493 { PCPS_TYPE_GPS180AMC, PCI_ASIC_MAJOR_GPS180PEX, PCI_ASIC_CURRENT_MINOR_GPS180PEX, PCI_ASIC_REQUIRED_MINOR_GPS180PEX }, \ 494 { PCPS_TYPE_GNS181PEX, PCI_ASIC_MAJOR_GNS181PEX, PCI_ASIC_CURRENT_MINOR_GNS181PEX, PCI_ASIC_REQUIRED_MINOR_GNS181PEX }, \ 513 #if defined( _USING_BYTE_ALIGNMENT ) 514 #pragma pack() // set default alignment 515 #undef _USING_BYTE_ALIGNMENT PCI_ASIC_ADDON_DATA reserved_2
Currently not implemented / used.
PCI_ASIC_REG reserved_1
Currently not implemented / used.
unsigned int dev_type_num
A structure holding version information for a specific device.
PCI_ASIC_MAJOR_VERSION_NUMBERS
ASIC major version numbers.
PCI_ASIC_ADDON_DATA addon_data
Register set used to return data from add-on to PCI bus.
PCI_ASIC_FEATURES features
PCI ASIC feature mask, see PCI_ASIC_FEATURE_MASKS.
PEX EPLD for GPS180PEX/GPS180AMC.
A PCI ASIC register as 32, 16, or 8 bit accessible union.
Register layout of a PCI ASIC.
fixed version of PCI ASIC
the number of known codes
uint32_t PCI_ASIC_FEATURES
A data type to hold the PCI ASIC feature flags mask.
Set of PCI ASIC registers which are writeable once after power-up.
PCI_ASIC_REG status_port
The status port register.
unsigned int required_minor
The addon-data part of a PCI ASIC.
uint32_t PCI_ASIC_VERSION
A data type to hold the PCI ASIC version code.
PCI_ASIC_VERSION raw_version
Raw version code.
unsigned int current_minor
uint32_t cfg_class_rev_id
PCI_ASIC_REG pci_data
Register used to pass byte from PCI bus to add-on side.
PCI_ASIC_REG control_status
See PCI_ASIC_CONTROL_STATUS_MASKS.
PCI_ASIC_CFG cfg
Registers which are writeable from add-on once after power-up.