# # IP27 multi-processor product definitions. # # SN0 R10K with KONA # # Fundamental constants of the build tree (distinct from source tree). # They may be different for each product. Therefore if several products are # built from one source tree, that source tree should contain a commondefs # for each product. # SYSTEM = SVR4 CPUBOARD= IP27 COMPLEX = MP CPUARCH = R10000 PRODDEFS=-DSN0 GFXBOARD= KONA SUBGR = IP27 KMODEOPT = -DDISCONTIG_PHYSMEM -DNUMA_BASE -DNUMA_PM \ -DNUMA_TBORROW -DNUMA_MIGRATION -DNUMA_MIGR_CONTROL \ -DNUMA_REPLICATION -DNUMA_REPL_CONTROL -DNUMA_SCHED \ -DPTE_64BIT -DLARGE_CPU_COUNT -DHUB1_WAR \ -DHUB1_II_TIMEOUT_WAR -DHUB1_INTR_WAR \ -DBRIDGE_ERROR_INTR_WAR -DIP27_NIC_WAR -DHUB_POQ_PIO_WAR \ -DMAPPED_KERNEL -DIOC3_INTR_WAR \ -DHUB_ERR_STS_WAR -DHUB_MIGR_WAR \ -DSN0_INTR_BROKEN -DFRU -DFORCE_ERRORS -DT5_WB_SURPRISE_WAR \ -DREV1_BRIDGE_SUPPORTED -DMIDPLANE_NIC_WAR -DFAKE_ROUTER_SLOT_WAR SUBPRODUCT=H1 LARGE_CPU_COUNT=1 COMPILATION_MODEL=64 IOC3_PIO_MODE=0 include $(RELEASEDEFS) # # Workaround definitions # # -DHUB1_WAR - Change register definitions for HUB1. This will # be removed when we switch to Hub 2. # -DBRIDGE1_TIMEOUT_WAR - Adjust the arbitartion time to keep the # 1.0 bridge chip from corrupting data. Also disable # certain error interrupts. # -DHUB1_II_TIMEOUT_WAR - This is a nasty one. Periodically stop # _all_ I/O and reset the hub timeout value. See # hub_dmatimeout_kick(). # -DHUB1_INTR_WAR - Send interrupts to the junk bus interrupt controller. # The II has a bug that makes non-cache-aligned writes # from the II corrupt DMA data. # -DBRIDGE_ERROR_INTR_WAR - We seem to get erroneous error interrupts # from the bridge. Disable BRIDGE_IMR_PCI_MST_TIMEOUT, # BRIDGE_ISR_RESP_XTLK_ERR, and BRIDGE_ISR_LLP_TX_RETRY # -DIP27_NIC_WAR - The numer in a can doesn't work on early IP27 boards. # -DHUB_POQ_PIO_WAR - 64-bit writes to HUB PI registers can cause # the PI to become confused and issue a bogus message. # do 32-bit writes knowing that T5 will provide all # of the bits and Hub will ignore the byte enables. # # -sw, 5/28/96 # # IOC3_INTR_WAR: with the junk interrupt it is required that an interrupt # handler ensure that its interrupt line is deasserted before returning. # This is problematic in the case of the IOC3 because the status of the # interrupt line cannot be read atomically from the hardware, and # there are no common locks between the various IOC3 sub-devices. The # upshot is occasionally we return from the handler without deasserting # the interrupt line, and all subsequent interrupts are lost. The # simple workaround to this is to poll for the interrupt once per # second. # -tcl # HUB_MIGR_WAR: The hub logic to generate a migration interrupt based # on the difference of home and remote reference counters # is not right. Probably it will be fixed in rev2.1. # The workaround provides an alternative by not using # the migration difference threshold register. # # HUB_ERR_STS_WAR: If any write errors happen when the hub error # registers are clear, we start losing WRB and subsequently # hang the CPU. This WAR ensures that the error status registers # have a RRB error in them. # # T5_WB_SURPRISE_WAR: The T5 incorrectly acknowledges a cache line # invalidate under some circumstances. It later proceeds to # writeback the cache line, resulting in a protocol error. This # will be fixed in T5 2.6, but in the meanwhile this WAR # attempts to detect if we ran into this problem. # Later, we should be able to kill user processes refrerencing # the page and let the system not panic. #