patch-2.0.34 linux/include/asm-alpha/lca.h

Next file: linux/include/asm-alpha/pal.h
Previous file: linux/include/asm-alpha/irq.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.0.33/linux/include/asm-alpha/lca.h linux/include/asm-alpha/lca.h
@@ -54,8 +54,18 @@
 
 #include <asm/system.h>
 
+#ifdef CONFIG_ALPHA_SRM_SETUP
+/* if we are using the SRM PCI setup, we'll need to use variables instead */
+#define LCA_DMA_WIN_BASE_DEFAULT    (1024*1024*1024)
+#define LCA_DMA_WIN_SIZE_DEFAULT    (1024*1024*1024)
+
+extern unsigned int LCA_DMA_WIN_BASE;
+extern unsigned int LCA_DMA_WIN_SIZE;
+
+#else /* SRM_SETUP */
 #define LCA_DMA_WIN_BASE	(1024*1024*1024)
 #define LCA_DMA_WIN_SIZE	(1024*1024*1024)
+#endif /* SRM_SETUP */
 
 /*
  * Memory Controller registers:
@@ -130,6 +140,37 @@
 
 #define HAE_ADDRESS	LCA_IOC_HAE
 
+/* LCA PMR Power Management register defines */
+#define LCA_PMR_ADDR	(IDENT_ADDR + 0x120000098UL)
+#define LCA_PMR_PDIV    0x7                     /* Primary clock divisor */
+#define LCA_PMR_ODIV    0x38                    /* Override clock divisor */
+#define LCA_PMR_INTO    0x40                    /* Interrupt override */
+#define LCA_PMR_DMAO    0x80                    /* DMA override */
+#define LCA_PMR_OCCEB   0xffff0000L             /* Override cycle counter - even
+ bits */
+#define LCA_PMR_OCCOB   0xffff000000000000L     /* Override cycle counter - even
+ bits */
+#define LCA_PMR_PRIMARY_MASK    0xfffffffffffffff8
+/* LCA PMR Macros */
+
+#define READ_PMR        (*(volatile unsigned long *)LCA_PMR_ADDR)
+#define WRITE_PMR(d)    (*((volatile unsigned long *)LCA_PMR_ADDR) = (d))
+
+#define GET_PRIMARY(r)  ((r) & LCA_PMR_PDIV)
+#define GET_OVERRIDE(r) (((r) >> 3) & LCA_PMR_PDIV)
+#define SET_PRIMARY_CLOCK(r, c) ((r) = (((r) & LCA_PMR_PRIMARY_MASK) | (c)))
+
+/* LCA PMR Divisor values */
+#define DIV_1   0x0
+#define DIV_1_5 0x1
+#define DIV_2   0x2
+#define DIV_4   0x3
+#define DIV_8   0x4
+#define DIV_16  0x5
+#define DIV_MIN DIV_1
+#define DIV_MAX DIV_16
+
+
 #ifdef __KERNEL__
 
 /*
@@ -317,7 +358,6 @@
  */
 struct el_lca_mcheck_short {
 	struct el_common	h;		/* common logout header */
-	unsigned long		reason;		/* reason for machine check */
 	unsigned long		esr;		/* error-status register */
 	unsigned long		ear;		/* error-address register */
 	unsigned long		dc_stat;	/* dcache status register */
@@ -327,7 +367,7 @@
 
 struct el_lca_mcheck_long {
 	struct el_common	h;		/* common logout header */
-	unsigned long		pt[32];		/* PAL temps (pt[0] is reason) */
+	unsigned long		pt[31];		/* PAL temps */
 	unsigned long		exc_addr;	/* exception address */
 	unsigned long		pad1[3];
 	unsigned long		pal_base;	/* PALcode base address */

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov