summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorWilliam Lee Irwin III <wli@holomorphy.com>2005-01-01 17:47:21 -0800
committerLinus Torvalds <torvalds@evo.osdl.org>2005-01-01 17:47:21 -0800
commit693c84fdaf03e73c5a441d5fed662f52216a17d9 (patch)
tree11a4368c12712af8b1dd031a21239849f9ed3a11 /include
parent0f86e14f22e45754e1492aff3626b4f163f0738b (diff)
[PATCH] sparc32: sun4d update
Chris Newport and Thomas Bogendoerfer have been working to get the sun4d port functional again. This patch updates 2.6.10-rc3 to a current snapshot of their work. It does the following 3 things: (1) add sun4d hook to sbus_bus_ranges_init() (2) fix up pgd_offset() call in sun4d iommu code (3) fix up sun4d's definition of current Signed-off-by: Chris Newport <crn@netunix.com> Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Acked-by: William Irwin <wli@holomorphy.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r--include/asm-sparc/asi.h3
-rw-r--r--include/asm-sparc/sbus.h2
-rw-r--r--include/asm-sparc/winmacro.h9
3 files changed, 10 insertions, 4 deletions
diff --git a/include/asm-sparc/asi.h b/include/asm-sparc/asi.h
index 72ccc64ba560..58c3754da926 100644
--- a/include/asm-sparc/asi.h
+++ b/include/asm-sparc/asi.h
@@ -104,7 +104,8 @@
#define ASI_M_DCDR 0x39 /* Data Cache Diagnostics Register rw, ss */
#define ASI_M_VIKING_TMP1 0x40 /* Emulation temporary 1 on Viking */
-#define ASI_M_VIKING_TMP2 0x41 /* Emulation temporary 2 on Viking */
+/* only available on SuperSparc I */
+/* #define ASI_M_VIKING_TMP2 0x41 */ /* Emulation temporary 2 on Viking */
#define ASI_M_ACTION 0x4c /* Breakpoint Action Register (GNU/Viking) */
diff --git a/include/asm-sparc/sbus.h b/include/asm-sparc/sbus.h
index 4072875c773c..3a8b3908728a 100644
--- a/include/asm-sparc/sbus.h
+++ b/include/asm-sparc/sbus.h
@@ -106,6 +106,8 @@ extern void sbus_set_sbus64(struct sbus_dev *, int);
/* These yield IOMMU mappings in consistent mode. */
extern void *sbus_alloc_consistent(struct sbus_dev *, long, u32 *dma_addrp);
extern void sbus_free_consistent(struct sbus_dev *, long, void *, u32);
+void prom_adjust_ranges(struct linux_prom_ranges *, int,
+ struct linux_prom_ranges *, int);
#define SBUS_DMA_BIDIRECTIONAL DMA_BIDIRECTIONAL
#define SBUS_DMA_TODEVICE DMA_TO_DEVICE
diff --git a/include/asm-sparc/winmacro.h b/include/asm-sparc/winmacro.h
index cb80840b111e..557257eef3f9 100644
--- a/include/asm-sparc/winmacro.h
+++ b/include/asm-sparc/winmacro.h
@@ -112,9 +112,12 @@
and %idreg, 0xc, %idreg; \
ld [%idreg + %dest_reg], %dest_reg;
-/* Sliiick. We have a Linux current register :) -jj */
-#define LOAD_CURRENT4D(dest_reg) \
- lda [%g0] ASI_M_VIKING_TMP2, %dest_reg;
+#define LOAD_CURRENT4D(dest_reg, idreg) \
+ lda [%g0] ASI_M_VIKING_TMP1, %idreg; \
+ sethi %hi(C_LABEL(current_set)), %dest_reg; \
+ sll %idreg, 2, %idreg; \
+ or %dest_reg, %lo(C_LABEL(current_set)), %dest_reg; \
+ ld [%idreg + %dest_reg], %dest_reg;
/* Blackbox - take care with this... - check smp4m and smp4d before changing this. */
#define LOAD_CURRENT(dest_reg, idreg) \