patch-2.1.51 linux/include/asm-sparc64/psycho.h
Next file: linux/include/asm-sparc64/sab82532.h
Previous file: linux/include/asm-sparc64/pgtable.h
Back to the patch index
Back to the overall index
- Lines: 351
- Date:
Sat Aug 16 09:51:10 1997
- Orig file:
v2.1.50/linux/include/asm-sparc64/psycho.h
- Orig date:
Wed Dec 31 16:00:00 1969
diff -u --recursive --new-file v2.1.50/linux/include/asm-sparc64/psycho.h linux/include/asm-sparc64/psycho.h
@@ -0,0 +1,350 @@
+/* $Id: psycho.h,v 1.2 1997/08/11 14:35:40 davem Exp $
+ * psycho.h: UltraSparc AX specific PCI definitions.
+ *
+ * Copyright (C) 1997 Eddie C. Dost (ecd@skynet.be)
+ */
+
+#ifndef __SPARC64_PSYCHO_H
+#define __SPARC64_PSYCHO_H
+
+#include <linux/types.h>
+
+/* Ultra AX PSYCHO Register Set, one per controller probed. */
+struct psycho_regs {
+/*0x0000*/ u64 upa_id; /* PSYCHO UPA Port ID Register */
+/*0x0008*/ u64 upa_cfg; /* PSYCHO UPA Config Register */
+/*0x0010*/ u64 control; /* PSYCHO Control Register */
+/*0x0018*/ u64 __pad0;
+/*0x0020*/ u64 ecc_control; /* ECC Control Register */
+/*0x0028*/ u64 __pad1;
+
+ /* Uncorrectable Error Fault Registers */
+/*0x0030*/ u64 ue_afsr; /* UE Async Fault Status */
+/*0x0038*/ u64 ue_afar; /* UE Async Fault Address */
+
+ /* Correctable Error Fault Registers */
+/*0x0040*/ u64 ce_afsr; /* CE Async Fault Status */
+/*0x0048*/ u64 ce_afar; /* CE Async Fault Address */
+
+ u64 __pad2[0x16];
+
+ /* Performance Monitoring Registers */
+/*0x0100*/ u64 pmon_control;
+/*0x0108*/ u64 pmon_counter;
+
+ u64 __pad3[0x1e];
+
+ /* PCI Bus IOMMU lives here */
+/*0x0200*/ u64 iommu_control; /* IOMMU Control */
+/*0x0208*/ u64 iommu_tsbbase; /* IOMMU TSB Base */
+/*0x0210*/ u64 iommu_flush; /* IOMMU Flush Register */
+
+ u64 __pad4[0x13d];
+
+ /* Interrupt mapping/control registers */
+/*0x0c00*/ u64 imap_a_slot0; /* PCI A Slot 0 Int Mapping */
+/*0x0c08*/ u64 imap_a_slot1; /* PCI A Slot 1 Int Mapping */
+
+ u64 __pad5[0x2];
+
+/*0x0c20*/ u64 imap_b_slot0; /* PCI B Slot 0 Int Mapping */
+/*0x0c28*/ u64 imap_b_slot1; /* PCI B Slot 1 Int Mapping */
+/*0x0c30*/ u64 imap_b_slot2; /* PCI B Slot 2 Int Mapping */
+/*0x0c38*/ u64 imap_b_slot3; /* PCI B Slot 3 Int Mapping */
+
+ u64 __pad6[0x78];
+
+/*0x1000*/ u64 imap_scsi; /* SCSI Int Mapping */
+/*0x1008*/ u64 imap_eth; /* Ethernet Int Mapping */
+/*0x1010*/ u64 imap_bpp; /* Parallel Port Int Mapping */
+/*0x1018*/ u64 imap_au_rec; /* Audio Record Int Mapping */
+/*0x1020*/ u64 imap_au_play; /* Audio Playback Int Mapping */
+/*0x1028*/ u64 imap_pfail; /* Power Fail Int Mapping */
+/*0x1030*/ u64 imap_kms; /* Kbd/Mouse/Ser Int Mapping */
+/*0x1038*/ u64 imap_flpy; /* Floppy Int Mapping */
+/*0x1040*/ u64 imap_shw; /* Spare HW Int Mapping */
+/*0x1048*/ u64 imap_kbd; /* Kbd Only Int Mapping */
+/*0x1050*/ u64 imap_ms; /* Mouse Only Int Mapping */
+/*0x1058*/ u64 imap_ser; /* Serial Only Int Mapping */
+/*0x1060*/ u64 imap_tim0; /* Timer 0 Int Mapping */
+/*0x1068*/ u64 imap_tim1; /* Timer 1 Int Mapping */
+/*0x1070*/ u64 imap_ue; /* UE Int Mapping */
+/*0x1078*/ u64 imap_ce; /* CE Int Mapping */
+/*0x1080*/ u64 imap_a_err; /* PCI A Err Int Mapping */
+/*0x1088*/ u64 imap_b_err; /* PCI B Err Int Mapping */
+/*0x1090*/ u64 imap_pmgmt; /* Power Mgmt Int Mapping */
+/*0x1098*/ u64 imap_gfx; /* OB Graphics Int Mapping */
+/*0x10a0*/ u64 imap_eupa; /* UPA Expansion Int Mapping */
+
+ u64 __pad7[0x6b];
+
+ /* Interrupt Clear Registers */
+/*0x1400*/ u64 iclr_a_slot0[4]; /* PCI A Slot 0 Clear Int Reg */
+/*0x1420*/ u64 iclr_a_slot1[4]; /* PCI A Slot 1 Clear Int Reg */
+
+ u64 __pad8[0x8];
+
+/*0x1480*/ u64 iclr_b_slot0[4]; /* PCI B Slot 0 Clear Int Reg */
+/*0x14a0*/ u64 iclr_b_slot1[4]; /* PCI B Slot 1 Clear Int Reg */
+/*0x14c0*/ u64 iclr_b_slot2[4]; /* PCI B Slot 2 Clear Int Reg */
+/*0x14e0*/ u64 iclr_b_slot3[4]; /* PCI B Slot 3 Clear Int Reg */
+
+ u64 __pad9[0x60];
+
+/*0x1800*/ u64 iclr_scsi;
+/*0x1808*/ u64 iclr_eth;
+/*0x1810*/ u64 iclr_bpp;
+/*0x1818*/ u64 iclr_au_rec;
+/*0x1820*/ u64 iclr_au_play;
+/*0x1828*/ u64 iclr_pfail;
+/*0x1830*/ u64 iclr_kms;
+/*0x1838*/ u64 iclr_flpy;
+/*0x1840*/ u64 iclr_shw;
+/*0x1848*/ u64 iclr_kbd;
+/*0x1850*/ u64 iclr_ms;
+/*0x1858*/ u64 iclr_ser;
+/*0x1860*/ u64 iclr_tim0;
+/*0x1868*/ u64 iclr_tim1;
+/*0x1870*/ u64 iclr_ue;
+/*0x1878*/ u64 iclr_ce;
+/*0x1880*/ u64 iclr_a_err;
+/*0x1888*/ u64 iclr_b_err;
+/*0x1890*/ u64 iclr_pmgmt;
+
+ u64 __pad10[0x2d];
+
+ /* Interrupt Retry Timer. */
+/*0x1a00*/ u64 irq_retry;
+
+ u64 __pad11[0x3f];
+
+ /* Counters/Timers */
+/*0x1c00*/ u64 tim0_cnt;
+/*0x1c08*/ u64 tim0_lim;
+/*0x1c10*/ u64 tim1_cnt;
+/*0x1c18*/ u64 tim1_lim;
+
+ u64 __pad12[0x7c];
+
+ /* PCI Bus A Registers */
+/*0x2000*/ u64 pci_a_control; /* PCI Bus A Control Register */
+/*0x2008*/ u64 __pad13;
+/*0x2010*/ u64 pci_a_afsr; /* PCI Bus A Async Fault Status */
+/*0x2018*/ u64 pci_a_afar; /* PCI Bus A Async Fault Address*/
+/*0x2020*/ u64 pci_a_diag; /* PCI Bus A Diag Register */
+
+ u64 __pad14[0xfb];
+
+ /* PCI Bus A/IOMMU Streaming Buffer Registers */
+/*0x2800*/ u64 sbuf_a_control; /* StrBuffer Control */
+/*0x2808*/ u64 sbuf_a_pflush; /* StrBuffer Page Flush */
+/*0x2810*/ u64 sbuf_a_fsync; /* StrBuffer Flush Sync Reg */
+
+ u64 __pad15[0x2fd];
+
+ /* PCI Bus B Registers */
+/*0x4000*/ u64 pci_b_control; /* PCI Bus B Control Register */
+/*0x4008*/ u64 __pad16;
+/*0x4010*/ u64 pci_b_afsr; /* PCI Bus B Async Fault Status */
+/*0x4018*/ u64 pci_b_afar; /* PCI Bus B Async Fault Address*/
+/*0x4020*/ u64 pci_b_diag; /* PCI Bus B Diag Register */
+
+ u64 __pad17[0x7b];
+
+ /* IOMMU diagnostic things */
+/*0x4400*/ u64 iommu_vdiag; /* VADDR Diagnostic Register */
+/*0x4408*/ u64 iommu_tcompare; /* IOMMU TLB Tag Compare */
+
+ u64 __pad18[0x7e];
+
+ /* PCI Bus B/IOMMU Streaming Buffer Registers */
+/*0x4800*/ u64 sbuf_b_control; /* StrBuffer Control */
+/*0x4808*/ u64 sbuf_b_pflush; /* StrBuffer Page Flush */
+/*0x4810*/ u64 sbuf_b_fsync; /* StrBuffer Flush Sync Reg */
+
+ u64 __pad19[0xafd];
+
+ /* DMA Scoreboard Diagnostic Registers */
+/*0xa000*/ u64 dscore_reg0; /* DMA Scoreboard Diag Reg 0 */
+/*0xa008*/ u64 dscore_reg1; /* DMA Scoreboard Diag Reg 1 */
+
+ u64 __pad20[0x9e];
+
+ /* More IOMMU diagnostic things */
+/*0xa500*/ u64 iommu_lru[16]; /* IOMMU LRU Queue Diag */
+/*0xa580*/ u64 iommu_tag[16]; /* IOMMU TLB Tag Diag */
+/*0xa600*/ u64 iommu_data[16]; /* IOMMU TLB Data RAM Diag */
+
+ u64 __pad21[0x30];
+
+ /* Interrupt State Diagnostics */
+/*0xa800*/ u64 pci_istate;
+/*0xa808*/ u64 obio_istate;
+
+ u64 __pad22[0xfe];
+
+ /* Streaming Buffer A Diagnostic Area */
+/*0xb000*/ u64 sbuf_a_data[128]; /* StrBuffer Data Ram Diag */
+/*0xb400*/ u64 sbuf_a_errs[128]; /* StrBuffer Error Status Diag*/
+/*0xb800*/ u64 sbuf_a_ptag[16]; /* StrBuffer Page Tag Diag */
+/*0xb880*/ u64 __pad23[16];
+/*0xb900*/ u64 sbuf_a_ltag[16]; /* StrBuffer Line Tag Diag */
+
+ u64 __pad24[0xd0];
+
+ /* Streaming Buffer B Diagnostic Area */
+/*0xc000*/ u64 sbuf_b_data[128]; /* StrBuffer Data Ram Diag */
+/*0xc400*/ u64 sbuf_b_errs[128]; /* StrBuffer Error Status Diag*/
+/*0xc800*/ u64 sbuf_b_ptag[16]; /* StrBuffer Page Tag Diag */
+/*0xc880*/ u64 __pad25[16];
+/*0xc900*/ u64 sbuf_b_ltag[16]; /* StrBuffer Line Tag Diag */
+};
+
+/* PSYCHO UPA Port ID */
+#define PSYCHO_UPPID_FESC 0xff00000000000000 /* FCode escape, 0xfc */
+#define PSYCHO_UPPID_RESV1 0x00fffff800000000 /* Reserved */
+#define PSYCHO_UPPID_ENV 0x0000000400000000 /* Cannot generate ECC */
+#define PSYCHO_UPPID_ORD 0x0000000200000000 /* One Outstanding Read */
+#define PSYCHO_UPPID_RESV2 0x0000000180000000 /* Reserved */
+#define PSYCHO_UPPID_PDQ 0x000000007e000000 /* Data Queue size */
+#define PSYCHO_UPPID_PRQ 0x0000000001e00000 /* Request Queue size */
+#define PSYCHO_UPPID_UCAP 0x00000000001f0000 /* UPA Capabilities */
+#define PSYCHO_UPPID_JEDEC 0x000000000000ffff /* JEDEC ID for PSYCHO */
+
+/* PSYCHO UPA Configuration Register */
+#define PSYCHO_UPCFG_RESV 0xffffffffffffff00 /* Reserved */
+#define PSYCHO_UPCFG_SCIQ1 0x00000000000000f0 /* Unused, always zero */
+#define PSYCHO_UPCFG_SCIQ2 0x000000000000000f /* Requests Queue size 0x2 */
+
+/* PSYCHO Control Register */
+#define PSYCHO_CONTROL_IMPL 0xf000000000000000 /* Implementation of this PSYCHO*/
+#define PSYCHO_CONTROL_VER 0x0f00000000000000 /* Version of this PSYCHO */
+#define PSYCHO_CONTROL_MID 0x00f8000000000000 /* UPA Module ID of PSYCHO */
+#define PSYCHO_CONTROL_IGN 0x0007c00000000000 /* Interrupt Group Number */
+#define PSYCHO_CONTROL_RESV 0x00003ffffffffff0 /* Reserved */
+#define PSYCHO_CONTROL_APCKEN 0x0000000000000008 /* Address Parity Check Enable */
+#define PSYCHO_CONTROL_APERR 0x0000000000000004 /* Incoming System Addr Parerr */
+#define PSYCHO_CONTROL_IAP 0x0000000000000002 /* Invert UPA Parity */
+#define PSYCHO_CONTROL_MODE 0x0000000000000001 /* PSYCHO clock mode */
+
+/* PSYCHO ECC Control Register */
+#define PSYCHO_ECNTRL_ECCEN 0x8000000000000000 /* Enable ECC Checking */
+#define PSYCHO_ECNTRL_UEEN 0x4000000000000000 /* Enable UE Interrupts */
+#define PSYCHO_ECNTRL_CEEN 0x2000000000000000 /* Enable CE Interrupts */
+
+/* Uncorrectable Error AFSR, AFAR holds low 40bits of faulting physical address. */
+#define PSYCHO_UEAFSR_PPIO 0x8000000000000000 /* Primary PIO is cause */
+#define PSYCHO_UEAFSR_PDRD 0x4000000000000000 /* Primary DVMA read is cause */
+#define PSYCHO_UEAFSR_PDWR 0x2000000000000000 /* Primary DVMA write is cause */
+#define PSYCHO_UEAFSR_SPIO 0x1000000000000000 /* Secondary PIO is cause */
+#define PSYCHO_UEAFSR_SDRD 0x0800000000000000 /* Secondary DVMA read is cause */
+#define PSYCHO_UEAFSR_SDWR 0x0400000000000000 /* Secondary DVMA write is cause*/
+#define PSYCHO_UEAFSR_RESV1 0x03ff000000000000 /* Reserved */
+#define PSYCHO_UEAFSR_BMSK 0x0000ffff00000000 /* Bytemask of failed transfer */
+#define PSYCHO_UEAFSR_DOFF 0x00000000e0000000 /* Doubleword Offset */
+#define PSYCHO_UEAFSR_MID 0x000000001f000000 /* UPA MID causing the fault */
+#define PSYCHO_UEAFSR_BLK 0x0000000000800000 /* Trans was block operation */
+#define PSYCHO_UEAFSR_RESV2 0x00000000007fffff /* Reserved */
+
+/* Correctable Error AFSR, AFAR holds low 40bits of faulting physical address. */
+#define PSYCHO_CEAFSR_PPIO 0x8000000000000000 /* Primary PIO is cause */
+#define PSYCHO_CEAFSR_PDRD 0x4000000000000000 /* Primary DVMA read is cause */
+#define PSYCHO_CEAFSR_PDWR 0x2000000000000000 /* Primary DVMA write is cause */
+#define PSYCHO_CEAFSR_SPIO 0x1000000000000000 /* Secondary PIO is cause */
+#define PSYCHO_CEAFSR_SDRD 0x0800000000000000 /* Secondary DVMA read is cause */
+#define PSYCHO_CEAFSR_SDWR 0x0400000000000000 /* Secondary DVMA write is cause*/
+#define PSYCHO_CEAFSR_RESV1 0x0300000000000000 /* Reserved */
+#define PSYCHO_CEAFSR_ESYND 0x00ff000000000000 /* Syndrome Bits */
+#define PSYCHO_UEAFSR_SIZE 0x0000ffff00000000 /* Bytemask of failed transfer */
+#define PSYCHO_CEAFSR_DOFF 0x00000000e0000000 /* Double Offset */
+#define PSYCHO_CEAFSR_MID 0x000000001f000000 /* UPA MID causing the fault */
+#define PSYCHO_CEAFSR_BLK 0x0000000000800000 /* Trans was block operation */
+#define PSYCHO_CEAFSR_RESV2 0x00000000007fffff /* Reserved */
+
+/* DMA Scoreboard Diagnostic Register(s) */
+#define PSYCHO_DSCORE_VALID 0x8000000000000000 /* Entry is valid */
+#define PSYCHO_DSCORE_C 0x4000000000000000 /* Transaction cacheable */
+#define PSYCHO_DSCORE_READ 0x2000000000000000 /* Transaction was a read */
+#define PSYCHO_DSCORE_TAG 0x1f00000000000000 /* Transaction ID */
+#define PSYCHO_DSCORE_ADDR 0x00fffffffff80000 /* Transaction PADDR */
+#define PSYCHO_DSCORE_BMSK 0x000000000007fff8 /* Bytemask of pending transfer */
+#define PSYCHO_DSCORE_SRC 0x0000000000000007 /* Transaction source */
+
+/* PSYCHO PCI Control Register */
+#define PSYCHO_PCICTRL_RESV1 0xfffffff000000000 /* Reserved */
+#define PSYCHO_PCICTRL_SBH_ERR 0x0000000800000000 /* Streaming byte hole error */
+#define PSYCHO_PCICTRL_SERR 0x0000000400000000 /* SERR signal asserted */
+#define PSYCHO_PCICTRL_SPEED 0x0000000200000000 /* PCI speed (1 is U2P clock) */
+#define PSYCHO_PCICTRL_RESV2 0x00000001ffc00000 /* Reserved */
+#define PSYCHO_PCICTRL_ARB_PARK 0x0000000000200000 /* PCI arbitration parking */
+#define PSYCHO_PCICTRL_RESV3 0x00000000001ff800 /* Reserved */
+#define PSYCHO_PCICTRL_SBH_INT 0x0000000000000400 /* Streaming byte hole int enab */
+#define PSYCHO_PCICTRL_WEN 0x0000000000000200 /* Power Mgmt Wake Enable */
+#define PSYCHO_PCICTRL_EEN 0x0000000000000100 /* PCI Error Interrupt Enable */
+#define PSYCHO_PCICTRL_RESV4 0x00000000000000c0 /* Reserved */
+#define PSYCHO_PCICTRL_AEN 0x000000000000003f /* PCI DVMA Arbitration Enable */
+
+/* PSYCHO PCI AFSR, AFAR holds low 40 bits of physical address causing the fault. */
+#define PSYCHO_PCIAFSR_PMA 0x8000000000000000 /* Primary Master Abort Error */
+#define PSYCHO_PCIAFSR_PTA 0x4000000000000000 /* Primary Target Abort Error */
+#define PSYCHO_PCIAFSR_PRTRY 0x2000000000000000 /* Primary Excessive Retries */
+#define PSYCHO_PCIAFSR_PPERR 0x1000000000000000 /* Primary Parity Error */
+#define PSYCHO_PCIAFSR_SMA 0x0800000000000000 /* Secondary Master Abort Error */
+#define PSYCHO_PCIAFSR_STA 0x0400000000000000 /* Secondary Target Abort Error */
+#define PSYCHO_PCIAFSR_SRTRY 0x0200000000000000 /* Secondary Excessive Retries */
+#define PSYCHO_PCIAFSR_SPERR 0x0100000000000000 /* Secondary Parity Error */
+#define PSYCHO_PCIAFSR_RESV1 0x00ff000000000000 /* Reserved */
+#define PSYCHO_PCIAFSR_SIZE 0x0000ffff00000000 /* Bytemask of failed transfer */
+#define PSYCHO_PCIAFSR_BLK 0x0000000080000000 /* Trans was block operation */
+#define PSYCHO_PCIAFSR_RESV2 0x0000000040000000 /* Reserved */
+#define PSYCHO_PCIAFSR_MID 0x000000003e000000 /* MID causing the error */
+#define PSYCHO_PCIAFSR_RESV3 0x0000000001ffffff /* Reserved */
+
+/* IOMMU things defined fully in asm-sparc64/iommu.h */
+
+/* Streaming Buffer Control Register */
+#define PSYCHO_SBUFCTRL_RESV 0xffffffffffffff80 /* Reserved */
+#define PSYCHO_SBUFCTRL_LRU_LP 0x0000000000000070 /* LRU Lock Pointer */
+#define PSYCHO_SBUFCTRL_LRU_LE 0x0000000000000008 /* LRU Lock Enable */
+#define PSYCHO_SBUFCTRL_RR_DIS 0x0000000000000004 /* Rerun Disable */
+#define PSYCHO_SBUFCTRL_DE 0x0000000000000002 /* Diag Mode Enable */
+#define PSYCHO_SBUFCTRL_SB_EN 0x0000000000000001 /* Streaming Buffer Enable */
+
+/* Streaming Buffer Page Invalidate/Flush Register */
+#define PSYCHO_SBUFFLUSH_ADDR 0x00000000ffffe000 /* DVMA Page to be flushed */
+#define PSYCHO_SBUFFLUSH_RESV 0x0000000000001fff /* Ignored bits */
+
+/* Streaming Buffer Flush Synchronization Register */
+#define PSYCHO_SBUFSYNC_ADDR 0x000001ffffffffc0 /* Physical address to update */
+#define PSYCHO_SBUFSYNC_RESV 0x000000000000003f /* Ignored bits */
+
+/* PSYCHO Interrupt mapping register(s). */
+#define PSYCHO_IMAP_RESV1 0xffffffff00000000 /* Reserved */
+#define PSYCHO_IMAP_VALID 0x0000000080000000 /* This enables delivery. */
+#define PSYCHO_IMAP_TID 0x000000007c000000 /* Target ID (MID to send it to)*/
+#define PSYCHO_IMAP_RESV2 0x0000000003fff800 /* Reserved */
+#define PSYCHO_IMAP_IGN 0x00000000000007c0 /* Interrupt Group Number. */
+#define PSYCHO_IMAP_INO 0x000000000000003f /* Interrupt Number Offset. */
+#define PSYCHO_IMAP_INR 0x00000000000007ff /* Interrupt # (Gfx/UPA_slave) */
+
+/* PSYCHO Interrupt clear pseudo register(s). */
+#define PSYCHO_ICLR_RESV1 0xfffffffffffffff0 /* Reserved */
+#define PSYCHO_ICLR_IDLE 0x0000000000000000 /* Transition to idle state. */
+#define PSYCHO_ICLR_TRANSMIT 0x0000000000000001 /* Transition to transmit state */
+#define PSYCHO_ICLR_RESV2 0x0000000000000002 /* Reserved. */
+#define PSYCHO_ICLR_PENDING 0x0000000000000003 /* Transition to pending state. */
+
+/* PSYCHO Interrupt Retry Timer register. */
+#define PSYCHO_IRETRY_LIMIT 0x00000000000fffff /* The retry interval. */
+
+/* PSYCHO Interrupt State registers. XXX fields to be documented later */
+
+/* PSYCHO Counter register. XXX fields to be documented later */
+
+/* PSYCHO Limit register. XXX fields to be documented later */
+
+/* PSYCHO Performance Monitor Control register. XXX fields to be documented later */
+
+/* PSYCHO Performance Monitor Counter register. XXX fields to be documented later */
+
+#endif /* !(__SPARC64_PSYCHO_H) */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov