meklort <PROJECT> SHM Register Definitions 1.0 SHM Device APE SHM Registers SHM SHM> Device APE SHM Registers 0xC0014000 SEG_SIG APE_APE_MAGIC ('APE!') when all is well. 0x0 32 true Sig 0 32 read-write LOADER 0x10AD10AD APE_SEG_LENGTH Set to 0x34. 0x4 32 true FW_STATUS 0xc 32 true Ready 8 1 read-write unknown_31_28 If this is all-ones, it appears to mean the APE FW is halted. 28 4 read-write FW_FEATURES 0x10 32 true NCSI 1 1 read-write 4014 Unknown. 0x14 32 true FW_VERSION 0x18 32 true Patch 0 16 read-write Minor 16 8 read-write Major 24 8 read-write SEG_MESSAGE_BUFFER_OFFSET Specifies the offset of a scratchpad area, relative to the start of the APE SHM area (i.e., relative to APE_REG(0x4000)). 0x1c 32 true SEG_MESSAGE_BUFFER_LENGTH Specifies the size of the scratchpad area in bytes. 0x20 32 true 4024 Unknown. Bootcode related. 0x24 32 true 4028 Unknown. Bootcode related. 0x28 32 true Driver_Buffer Communication channel between the host driver and the APE. 2 0x30 32 true Loader_Command Command sent when using the the APE loader. Zero once handled. 0x38 32 true Command 0 32 read-write NOP 0 READ_MEM 1 WRITE_MEM 2 CALL 3 Loader_Arg0 Argument 0 for the APE loader. 0x3c 32 true Loader_Arg1 Argument 1 for the APE loader. 0x40 32 true RCPU_SEG_SIG Set to APE_RCPU_MAGIC ('RCPU') by RX CPU. 0x100 32 true Sig 0 32 read-write RCPU_MAGIC 0x52435055 RCPU_SEG_LENGTH Set to 0x34. 0x104 32 true RCPU_INIT_COUNT Incremented by RX CPU every boot. 0x108 32 true RCPU_FW_VERSION Set to the bootcode version. e.g. 0x0127 -> v1.39. 0x10c 32 true RCPU_CFG_FEATURE Set to 0x110 32 true RCPU_PCI_VENDOR_DEVICE_ID Set to PCI Vendor/Device ID by S2. 0x114 32 true Device ID 0 16 read-write Vendor ID 16 16 read-write RCPU_PCI_SUBSYSTEM_ID Set to PCI Subsystem Vendor/Subsystem ID by S2. 0x118 32 true Subsystem Vendor ID 0 16 read-write Subsystem ID 16 16 read-write RCPU_APE_RESET_COUNT Unknown. Incremented by frobnicating routine. 0x11c 32 true RCPU_LAST_APE_STATUS Unknown. Written by frobnicating routine. 0x120 32 true RCPU_LAST_APE_FW_STATUS Unknown. 0x124 32 true RCPU_CFG_HW Set from 0x128 32 true RCPU_CFG_HW_2 Set from 0x12c 32 true RCPU_CPMU_STATUS Set from 0x130 32 true Address 0 16 read-write ADDRESS 0x362C Status 16 16 read-write HOST_SEG_SIG Set to APE_HOST_MAGIC ('HOST') to indicate the section is valid. 0x200 32 true HOST_SEG_LEN Set to 0x20. 0x204 32 true HOST_INIT_COUNT Incremented by host on every initialization. 0x208 32 true HOST_DRIVER_ID Linux sets this to 0xF0MM_mm00, where M is the major version of Linux and m is the minor version. 0x20c 32 true HOST_BEHAVIOR 0x210 32 true No PHYLock 0 1 read-write HEARTBEAT_INTERVAL In milliseconds. Set to 0 to disable heartbeating. 0x214 32 true HEARTBEAT_COUNT 0x218 32 true HOST_DRIVER_STATE 0x21c 32 true State 0 32 read-write Start 1 Unload 2 WOL 3 WOL_SPEED 0x224 32 true EVENT_STATUS 0x300 32 true Driver Event 4 1 read-write Command 8 8 read-write State Change 5 Scratchpad Read 22 Scratchpad Write 23 State 16 3 read-write Start 1 Unload 2 WOL 3 Suspend 4 Pending 31 1 read-write PROT_MAGIC This is set to APE_PROT_MAGIC ('PROT') on all functions. If it is 'PROT', the following fields (MAC0_HIGH/LOW) are valid 0x308 32 true PROT_MAC0_HIGH High 16 bits of MAC address 0. Only valid if 0x314 32 true PROT_MAC0_LOW Low 16 bits of MAC address 0. 0x318 32 true RCPU Write Pointer Index into the printf buffer for last valid byte. 0x324 32 true RCPU Host Read Pointer Index into the printf buffer for last read byte. 0x328 32 true RCPU Read Pointer Index into the printf buffer for last read byte. 0x32C 32 true RCPU Printf Buffer Printf buffer from the APE to the Rcpu for NVRAM printout or the host 0x330 372 32 true SHM_CHANNEL0 Device APE SHM Channel Registers SHM_CHANNEL0 SHM_CHANNEL> Device APE SHM Channel Registers 0xC0014900 NCSI_CHANNEL_INFO 0x0 32 true Enabled This can be modified via NCSI SELECT PACKAGE and NCSI DESELECT PACKAGE. 0 1 read-write TX Passthrough TX passthrough has been enabled by BMC NCSI command. 1 1 read-write Ready 2 1 read-write Init 3 1 read-write MFILT 4 1 read-write BFILT 5 1 read-write SERDES 6 1 read-write VLAN 8 1 read-write B2H 10 1 read-write B2N 11 1 read-write EEE 12 1 read-write Driver 14 1 read-write PDead 15 1 read-write NCSI_CHANNEL_MCID AEN Management Controller ID, set by BMC when sending AEN ENABLE command and used when sending AENs. 0x4 32 true NCSI_CHANNEL_AEN Set via NCSI ENABLE AEN. 0x8 32 true Enable Link Status Change AEN 0 1 read-write Enable Configuration Required AEN 1 1 read-write Enable Host NC Driver Status Change AEN 2 1 read-write NCSI_CHANNEL_BFILT 0xc 32 true ARP Packet 0 1 read-write DHCP Client Packet 1 1 read-write DHCP Server Packet 2 1 read-write NetBIOS Packet 3 1 read-write NCSI_CHANNEL_MFILT 0x10 32 true IPv6 Neighbour Advertisement 0 1 read-write IPv6 Router Advertisement 1 1 read-write DHCPv6 Relay and Server Multicast 2 1 read-write NCSI_CHANNEL_SETTING_1 This is the "Link Settings" value from NCSI Set Link. 0x14 32 true Autonegotiation enabled 0 1 read-write Link Speed 10M enable 1 1 read-write Link Speed 100M enable 2 1 read-write Link Speed 100M enable 2 1 read-write Link Speed 1000M enable 3 1 read-write Link Speed 10G enable 4 1 read-write Half duplex enable 8 1 read-write Full duplex enable 9 1 read-write Pause capability enable 10 1 read-write Asymmetric pause capability enable 11 1 read-write OEM link settings field valid 12 1 read-write NCSI_CHANNEL_SETTING_2 This is the "OEM Settings" value from NCSI Set Link. 0x18 32 true NCSI_CHANNEL_VLAN Receives VLAN mode from NCSI specification "Enable VLAN" command. 0x1c 32 true NCSI_CHANNEL_ALT_HOST_MAC_HIGH Lower 16 bits of this word contains upper 16 bits of the MAC. 0x24 32 true NCSI_CHANNEL_ALT_HOST_MAC_MID Lower 16 bits of this word contains mid 16 bits of the MAC. 0x28 32 true NCSI_CHANNEL_ALT_HOST_MAC_LOW Lower 16 bits of this word contains low 16 bits of the MAC. 0x2c 32 true NCSI_CHANNEL_MAC0_HIGH MAC_HIGH> Lower 16 bits of this word contains upper 16 bits of the MAC. 0x34 32 true NCSI_CHANNEL_MAC0_MID MAC_MID> Lower 16 bits of this word contains mid 16 bits of the MAC. 0x38 32 true NCSI_CHANNEL_MAC0_LOW MAC_LOW> Lower 16 bits of this word contains low 16 bits of the MAC. 0x3c 32 true NCSI_CHANNEL_MAC1_HIGH MAC_HIGH> Lower 16 bits of this word contains upper 16 bits of the MAC. 0x44 32 true NCSI_CHANNEL_MAC1_MID MAC_MID> Lower 16 bits of this word contains mid 16 bits of the MAC. 0x48 32 true NCSI_CHANNEL_MAC1_LOW MAC_LOW> Lower 16 bits of this word contains low 16 bits of the MAC. 0x4c 32 true NCSI_CHANNEL_MAC2_HIGH MAC_HIGH> Lower 16 bits of this word contains upper 16 bits of the MAC. 0x54 32 true NCSI_CHANNEL_MAC2_MID MAC_MID> Lower 16 bits of this word contains mid 16 bits of the MAC. 0x58 32 true NCSI_CHANNEL_MAC2_LOW MAC_LOW> Lower 16 bits of this word contains low 16 bits of the MAC. 0x5c 32 true NCSI_CHANNEL_MAC3_HIGH MAC_HIGH> Lower 16 bits of this word contains upper 16 bits of the MAC. 0x64 32 true NCSI_CHANNEL_MAC3_MID MAC_MID> Lower 16 bits of this word contains mid 16 bits of the MAC. 0x68 32 true NCSI_CHANNEL_MAC3_LOW MAC_LOW> Lower 16 bits of this word contains low 16 bits of the MAC. 0x6c 32 true NCSI_CHANNEL_MAC0_VLAN_VALID Nonzero indicates VLAN field is valid 0x70 32 true NCSI_CHANNEL_MAC0_VLAN 0x74 32 true NCSI_CHANNEL_MAC1_VLAN_VALID Nonzero indicates VLAN field is valid 0x78 32 true NCSI_CHANNEL_MAC1_VLAN 0x7c 32 true NCSI_CHANNEL_STATUS 0x80 32 true Link up 0 1 read-write Link Status 1 4 read-write No Link 0 10BASE-T half-duplex 1 10BASE-T full-duplex 2 100BASE-TX half-duplex 3 100BASE-T4 4 100BASE-TX full-duplex 5 1000BASE-T half-duplex 6 1000BASE-T full-duplex 7 10G-BASE-T 8 Autonegotiation Enabled Auto-negotiation is enabled. This field always returns 0 if auto-negotiation is not supported. 5 1 read-write Autonegotiation Complete Set if autonegotiation is complete. 6 1 read-write Parallel Detection Link partner did not support auto-negotiation and parallel detection was used to get link. 7 1 read-write Link Speed 1000M Full Duplex Capable Link partner is 1000BASE-T full-duplex capable 9 1 read-write Link Speed 1000M Half Duplex Capable Link partner is 1000BASE-T half-duplex capable 10 1 read-write Link Speed 100M-T4 Capable Link partner is 100BASE-T4 capable 11 1 read-write Link Speed 100M-TX Full Duplex Capable Link partner 100BASE-TX full-duplex capable 12 1 read-write Link Speed 100M-TX Half Duplex Capable Link partner 100BASE-TX half-duplex capable 13 1 read-write Link Speed 10M-T Full Duplex Capable Link partner 10BASE-T full-duplex capable 14 1 read-write Link Speed 10M-T Half Duplex Capable Link partner 10BASE-T half-duplex capable 15 1 read-write TX Flow Control Flag Pause Flow Control enabled for TX on the external network interface. 16 1 read-write RX Flow Control Flag Pause Flow Control enabled for RX on the external network interface. 17 1 read-write Link Partner Advertised Flow Control Flow control supported by partner. 18 2 read-write Not Capable 0 Symmetric Pause 1 Asymmetric Pause 2 Symmetric and Asymmetric Pause 3 SerDes Link SerDes status. 20 1 read-write OEM Link Status Valid If set, OEM Link Status was populated and is valid. 21 1 read-write NCSI_CHANNEL_RESET_COUNT 0x84 32 true NCSI_CHANNEL_PXE 0x88 32 true NCSI_CHANNEL_DROPFIL 0x8c 32 true NCSI_CHANNEL_SLINK 0x90 32 true NCSI_CHANNEL_DBG 0xa0 32 true NCSI_CHANNEL_NETWORK_RX Number of packets received from the external network interface 0xb0 32 true NCSI_CHANNEL_NETWORK_TX Number of packets transmited from the BCM5719 to external network interface 0xb4 32 true NCSI_CHANNEL_NCSI_RX Number of packets received from the BMC via NCSI 0xb8 32 true NCSI_CHANNEL_NCSI_TX Number of packets transmitted from the BCM5719 to the BMC via NCSI 0xbc 32 true NCSI_CHANNEL_NCSI_DROPPED Number of packets dropped on the NCSI interface. 0xc0 32 true NCSI_CHANNEL_NETWORK_DROPPED Number of packets dropped on the external network interface. 0xc4 32 true NCSI_CHANNEL_AEN Number of AEN packets sent via NCSI 0xc8 32 true 8 SHM_CHANNEL1 Device APE SHM Channel Registers SHM_CHANNEL1 SHM_CHANNEL> Device APE SHM Channel Registers 0xC0014a00 8 SHM_CHANNEL2 Device APE SHM Channel Registers SHM_CHANNEL2 SHM_CHANNEL> Device APE SHM Channel Registers 0xC0014b00 8 SHM_CHANNEL3 Device APE SHM Channel Registers SHM_CHANNEL3 SHM_CHANNEL> Device APE SHM Channel Registers 0xC0014c00 8