rrcc/asm/api.asm
DataHoarder e3535abed0
All checks were successful
continuous-integration/drone/push Build is passing
Added new ASM register fields, made std_divide use scratch registers
2021-08-06 00:04:44 +02:00

124 lines
9.6 KiB
NASM

;; Definition of registers found on FM10000 official images for comunication back with driver/manager
;; Based on Intel datasheet and BSD-3 code.
.reserve api_SPI_LOCK_STATE, 0x000
.reserve api_PCIE_SBUS_LOCK_STATE, 0x001
.reserve api_SOFT_RESET_LOCK_STATE, 0x002
.reserve api_RECOVERY_STATUS_VECTOR, 0x003
.reserve api_PEP_MAC_BASE, 0x00a
.reserve api_CUSTOM_MAC_BASE, 0x064
.reserve api_BSM_STATUS, 0x190
;; Steps with extra data:
;; 0x0D
;; 0x0F
;; 0x0E
;; 0x11
;; 0x0F
.bitfield api_BSM_STATUS.Step 0, 8
.constant api_BSM_STATUS.Cold_Reset_DeAsserted 0x0000000A ;; Cold Reset De-Asserted
.constant api_BSM_STATUS.EPL_PCIE_SBUS_Controller_Reset_Starting 0x0000000B ;; EPL/PCIe SBUS Controller Reset (Starting)
.constant api_BSM_STATUS.EPL_PCIE_SBUS_Controller_Reset_Complete 0x0001000B ;; EPL/PCIe SBUS Controller Reset (Complete)
.constant api_BSM_STATUS.Memory_Repair_Starting 0x0000000C ;; Memory repair step starting
.constant api_BSM_STATUS.Memory_Repair_Running 0x0001000C ;; Memory repair is running
.constant api_BSM_STATUS.Memory_Repair_Completed_Pass 0x0011000C ;; Memory repair completed: pass
.constant api_BSM_STATUS.Memory_Repair_Completed_Fail 0x0021000C ;; Memory repair completed: fail
.constant api_BSM_STATUS.Memory_Repair_Not_Completed 0x0031000C ;; Memory repair did not complete
.constant api_BSM_STATUS.Memory_Repair_Skipped_Config 0x0041000C ;; Memory repair skipped (config option)
.constant api_BSM_STATUS.Memory_Init_Starting 0x0000000D ;; Memory init starting
.constant api_BSM_STATUS.Memory_Init_Running 0x0010000D ;; Memory init running
.constant api_BSM_STATUS.Memory_Init_Stopped 0x0110000D ;; Memory init stopped
.constant api_BSM_STATUS.Disable_PCIe_PCS_Interrupts_Starting 0x0009000D ;; Disable PCIe PCS interrupts starting
.constant api_BSM_STATUS.PCIe_PCS_Interrupts_Disabled 0x0009000D ;; PCIe PCS interrupts disabled (mask 0x000FFFFF)
.constant api_BSM_STATUS.PCIe_Master_SPICO_Pre_FirmwareDownload 0x0101000E ;; PCIe Master SPICO Pre-firmware download
.constant api_BSM_STATUS.PCIe_Master_SPICO_FirmwareDownload 0x0102000E ;; PCIe Master SPICO firmware download
.constant api_BSM_STATUS.PCIe_Master_SPICO_Post_FirmwareDownload 0x0103000E ;; PCIe Master SPICO Post-firmware download
.constant api_BSM_STATUS.PCIe_Master_SPICO_FirmwareDownload_Success 0x0108000E ;; PCIe Master SPICO firmware download complete and successful
.constant api_BSM_STATUS.PCIe_Master_SPICO_FirmwareDownload_Error 0x0108FFFE ;; PCIe Master SPICO Firmware download error (mask 0x0000FFFF)
.constant api_BSM_STATUS.PCIe_SerDes_Pre_FirmwareDownload 0x0001000E ;; PCIe SerDes Pre-firmware download
.constant api_BSM_STATUS.PCIe_SerDes_FirmwareDownload 0x0002000E ;; PCIe SerDes firmware download
.constant api_BSM_STATUS.PCIe_SerDes_Post_FirmwareDownload 0x0003000E ;; PCIe SerDes Post-firmware download
.constant api_BSM_STATUS.PCIe_SerDes_Firmware_Verification_Status_Version_CRC 0x0004000E ;; PCIe SerDes firmware Verification (Version and CRC)
.constant api_BSM_STATUS.PCIe_SerDes_Firmware_Verification_Status 0x0004000E ;; PCIe SerDes Firmware Verification Status (mask 0xF00FFFFF)
.constant api_BSM_STATUS.PCIe_SerDes_FirmwareDownload_Success 0x0008000E ;; PCIe SerDes Firmware download complete and successful
.constant api_BSM_STATUS.PCIe_SerDes_FirmwareDownload_Error 0x0008FFFE ;; PCIe SerDes Firmware download error (mask 0x000FFFFF)
.constant api_BSM_STATUS.PCIe_SerDes_Initialization_Starting 0x0000000F ;; PCIe SerDes Initialization starting
.constant api_BSM_STATUS.PCIe_SerDes_RX_TX_reflck_Ratio 0x0001000F ;; PCIe SerDes RX & TX reflck ratio
.constant api_BSM_STATUS.PCIe_SerDes_Equalization_Seed 0x0002000F ;; PCIe SerDes Equalization seed
.constant api_BSM_STATUS.PCIe_SerDes_Configure_iCal_First_Equalization 0x0003000F ;; PCIe SerDes Configure iCal to run on first equalization
.constant api_BSM_STATUS.PCIe_SerDes_Complete_Success 0x0004000F ;; PCIe SerDes Complete and successful
.constant api_BSM_STATUS.Enable_PCIe_PCS_Interrupts_Starting 0x0009000F ;; Enable PCIe PCS interrupts starting
.constant api_BSM_STATUS.PCIe_PCS_Interrupts_Enabled_Core 0x0009000F ;; PCIe PCS interrupts enabled for core (mask 0x000FFFFF)
.constant api_BSM_STATUS.PCIe_SerDes_RX_TX_reflck_Ratio_Error 0x0001FFFF ;; PCIe SerDes RX & TX reflck ratio, ERROR
.constant api_BSM_STATUS.PCIe_SerDes_Equalization_Seed_Error 0x0002FFFF ;; PCIe SerDes Equalization seed, ERROR
.constant api_BSM_STATUS.PCIe_SerDes_Configure_iCal_First_Equalization_Error 0x0003FFFF ;; PCIe SerDes Configure iCal to run on first equalization, ERROR
.constant api_BSM_STATUS.PCIe_Warm_Reset_Deassert_Starting 0x00000010 ;; PCIe warm reset deassert starting
.constant api_BSM_STATUS.PCIe_Warm_Reset_Deassert_Completed 0x00010010 ;; PCIe warm reset deassert completed
.constant api_BSM_STATUS.ISR_Starting 0x000F0011 ;; ISR starting
.constant api_BSM_STATUS.Interrupt_Host 0x00000011 ;; Interrupt Host Y (mask 0xFFF0FFFF)
.constant api_BSM_STATUS.Interrupt_Host_0 0x00000011
.constant api_BSM_STATUS.Interrupt_Host_1 0x00010011
.constant api_BSM_STATUS.Interrupt_Host_2 0x00020011
.constant api_BSM_STATUS.Interrupt_Host_3 0x00030011
.constant api_BSM_STATUS.Interrupt_Host_4 0x00040011
.constant api_BSM_STATUS.Interrupt_Host_5 0x00050011
.constant api_BSM_STATUS.Interrupt_Host_6 0x00060011
.constant api_BSM_STATUS.Interrupt_Host_7 0x00070011
.constant api_BSM_STATUS.Interrupt_Host_8 0x00080011
.constant api_BSM_STATUS.Interrupt_Processing_OutOfReset 0x01000011 ;; Interrupt Processing, OutOfReset (mask 0xFFF0FFFF)
.constant api_BSM_STATUS.Interrupt_Processing_VPD 0x02000011 ;; Interrupt Processing, VPD (mask 0xFFF0FFFF)
.constant api_BSM_STATUS.Interrupt_Processing_HotReset 0x04000011 ;; Interrupt Processing, HotReset (mask 0xFFF0FFFF)
.constant api_BSM_STATUS.Interrupt_Processing_DeviceStateChange 0x08000011 ;; Interrupt Processing, DeviceStateChange (mask 0xFFF0FFFF)
.constant api_BSM_STATUS.Interrupt_Processing_DataPathReset 0x10000011 ;; Interrupt Processing, DataPathReset (mask 0xFFF0FFFF)
.constant api_BSM_STATUS.Interrupt_Processing_PFLR 0x20000011 ;; Interrupt Processing, PFLR (mask 0xFFF0FFFF)
.constant api_BSM_STATUS.Interrupt_Complete_OutOfReset 0x00000111 ;; Interrupt Complete, OutOfReset (mask 0x0000FFFF)
.constant api_BSM_STATUS.Interrupt_Complete_VPD 0x00000211 ;; Interrupt Complete, VPD (mask 0x0000FFFF)
.constant api_BSM_STATUS.Interrupt_Complete_HotReset 0x00000411 ;; Interrupt Complete, HotReset (mask 0x0000FFFF)
.constant api_BSM_STATUS.Interrupt_Complete_DeviceStateChange 0x00000811 ;; Interrupt Complete, DeviceStateChange (mask 0x0000FFFF)
.constant api_BSM_STATUS.Interrupt_Complete_DataPathReset 0x00001011 ;; Interrupt Complete, DataPathReset (mask 0x0000FFFF)
.constant api_BSM_STATUS.Interrupt_Complete_PFLR 0x00002011 ;; Interrupt Complete, PFLR (mask 0x0000FFFF)
.reserve api_EEPROM_IMAGE_VERSION, 0x191
.reserve api_MASTER_FW_VERSION, 0x192
.reserve api_SERDES_FW_VERSION, 0x193
.reserve api_SERDES_STATUS_1, 0x194
.reserve api_SERDES_STATUS_2, 0x195
.reserve api_SERDES_STATUS_3, 0x196
.reserve api_SERDES_STATUS_4, 0x197
.reserve api_PCIE_MASTER_STATUS, 0x198
.reserve api_PCIE_SERDES_STATUS, 0x199
.reserve api_DE_COLD_RESET_STATUS, 0x1ae
.reserve api_SBUS_RESET_STATUS, 0x1af
.reserve api_MEMORY_REPAIR_STATUS, 0x1b0
.reserve api_MEMORY_INIT_STATUS, 0x1b1
.reserve api_PCIE_PCS_DIS_STATUS, 0x1b2
.reserve api_PCIE_MASTER_FW_DL_STATUS, 0x1b3
.reserve api_PCIE_FW_CHECK_STATUS, 0x1b4
.reserve api_PCIE_SERDES_FW_DL_STATUS, 0x1b5
.reserve api_PCIE_SERDES_INIT_STATUS, 0x1b6
.reserve api_PCIE_PCS_EN_STATUS, 0x1b7
.reserve api_PCIE_DE_WARM_RESET_STATUS, 0x1b8
.reserve api_PCIE_ISR_STATUS_0, 0x1b9
.reserve api_PCIE_ISR_STATUS_1, 0x1ba
.reserve api_PCIE_ISR_STATUS_2, 0x1bb
.reserve api_PCIE_ISR_STATUS_3, 0x1bc
.reserve api_PCIE_ISR_STATUS_4, 0x1bd
.reserve api_PCIE_ISR_STATUS_5, 0x1be
.reserve api_PCIE_ISR_STATUS_6, 0x1bf
.reserve api_PCIE_ISR_STATUS_7, 0x1c0
.reserve api_PCIE_ISR_STATUS_8, 0x1c1
.reserve api_SERDES_OOR_STATUS_PASS_1, 0x1c2
.reserve api_SERDES_OOR_STATUS_PASS_2, 0x1c3
.reserve api_SW_LOCK_ERR_STATUS, 0x1c4
.reserve api_PCIE_EN_REFCLK_STATUS, 0x1c5
.reserve api_RE_RESET_MASK_STATUS_1, 0x1c6
.reserve api_RE_RESET_MASK_STATUS_2, 0x1c7
.reserve api_RE_RESET_ERR_STATUS, 0x1c8