diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1999-02-15 02:15:32 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1999-02-15 02:15:32 +0000 |
commit | 86464aed71025541805e7b1515541aee89879e33 (patch) | |
tree | e01a457a4912a8553bc65524aa3125d51f29f810 /include/asm-arm/arch-rpc | |
parent | 88f99939ecc6a95a79614574cb7d95ffccfc3466 (diff) |
Merge with Linux 2.2.1.
Diffstat (limited to 'include/asm-arm/arch-rpc')
-rw-r--r-- | include/asm-arm/arch-rpc/a.out.h | 1 | ||||
-rw-r--r-- | include/asm-arm/arch-rpc/dma.h | 9 | ||||
-rw-r--r-- | include/asm-arm/arch-rpc/hardware.h | 61 | ||||
-rw-r--r-- | include/asm-arm/arch-rpc/ide.h | 55 | ||||
-rw-r--r-- | include/asm-arm/arch-rpc/io.h | 28 | ||||
-rw-r--r-- | include/asm-arm/arch-rpc/keyboard.h | 1 | ||||
-rw-r--r-- | include/asm-arm/arch-rpc/processor.h | 5 | ||||
-rw-r--r-- | include/asm-arm/arch-rpc/system.h | 4 |
8 files changed, 72 insertions, 92 deletions
diff --git a/include/asm-arm/arch-rpc/a.out.h b/include/asm-arm/arch-rpc/a.out.h index 6b55ee076..598614f23 100644 --- a/include/asm-arm/arch-rpc/a.out.h +++ b/include/asm-arm/arch-rpc/a.out.h @@ -9,7 +9,6 @@ #ifdef __KERNEL__ #define STACK_TOP ((current->personality==PER_LINUX_32BIT)? 0xc0000000 : 0x04000000) -#define LIBRARY_START_TEXT (0x00c00000) #endif #endif diff --git a/include/asm-arm/arch-rpc/dma.h b/include/asm-arm/arch-rpc/dma.h index 0f556e856..c6b6679af 100644 --- a/include/asm-arm/arch-rpc/dma.h +++ b/include/asm-arm/arch-rpc/dma.h @@ -7,15 +7,6 @@ * bytes of RAM. */ #define MAX_DMA_ADDRESS 0xd0000000 - -/* - * DMA modes - we have two, IN and OUT - */ -typedef enum { - DMA_MODE_READ, - DMA_MODE_WRITE -} dmamode_t; - #define MAX_DMA_CHANNELS 8 #define DMA_0 0 diff --git a/include/asm-arm/arch-rpc/hardware.h b/include/asm-arm/arch-rpc/hardware.h index 706992b78..8ca6273ff 100644 --- a/include/asm-arm/arch-rpc/hardware.h +++ b/include/asm-arm/arch-rpc/hardware.h @@ -13,33 +13,46 @@ * What hardware must be present */ #define HAS_IOMD -#define HAS_PCIO +#include <asm/iomd.h> #define HAS_VIDC20 -/* - * Optional hardware - */ -#define HAS_EXPMASK - -/* - * Physical definitions +/* Hardware addresses of major areas. + * *_START is the physical address + * *_SIZE is the size of the region + * *_BASE is the virtual address */ +#define RAM_SIZE 0x10000000 #define RAM_START 0x10000000 -#define IO_START 0x03000000 + +#define EASI_SIZE 0x08000000 /* EASI I/O */ +#define EASI_START 0x08000000 +#define EASI_BASE 0xe8000000 + +#define IO_START 0x03000000 /* I/O */ +#define IO_SIZE 0x01000000 +#define IO_BASE 0xe0000000 + #define SCREEN_START 0x02000000 /* VRAM */ +#define SCREEN2_END 0xe0000000 +#define SCREEN2_BASE 0xd8000000 +#define SCREEN1_END 0xd8000000 +#define SCREEN1_BASE 0xd0000000 + #ifndef __ASSEMBLER__ /* * for use with inb/outb */ -#define VIDC_AUDIO_BASE 0x80140000 -#define VIDC_BASE 0x80100000 -#define IOCEC4IO_BASE 0x8009c000 -#define IOCECIO_BASE 0x80090000 -#define IOMD_BASE 0x80080000 -#define MEMCEC8IO_BASE 0x8000ac00 -#define MEMCECIO_BASE 0x80000000 +#define IO_VIDC_AUDIO_BASE 0x80140000 +#define IO_VIDC_BASE 0x80100000 +#define IO_IOMD_BASE 0x80080000 + +#define IO_EC_EASI_BASE 0x82000000 +#define IO_EC_IOC4_BASE 0x8009c000 +#define IO_EC_IOC_BASE 0x80090000 +#define IO_EC_MEMC8_BASE 0x8000ac00 +#define IO_EC_MEMC_BASE 0x80000000 /* * IO definitions @@ -51,21 +64,6 @@ #define PCIO_BASE 0xe0010000 /* - * Mapping areas - */ -#define IO_END 0xe1000000 -#define IO_BASE 0xe0000000 -#define IO_SIZE (IO_END - IO_BASE) - -/* - * Screen mapping information - */ -#define SCREEN2_END 0xe0000000 -#define SCREEN2_BASE 0xd8000000 -#define SCREEN1_END SCREEN2_BASE -#define SCREEN1_BASE 0xd0000000 - -/* * Offsets from RAM base */ #define PARAMS_OFFSET 0x0100 @@ -95,7 +93,6 @@ #define IOC_BASE 0xe0200000 #define PCIO_FLOPPYDMABASE 0xe002a000 #define PCIO_BASE 0xe0010000 -#define IO_BASE 0xe0000000 #endif #endif diff --git a/include/asm-arm/arch-rpc/ide.h b/include/asm-arm/arch-rpc/ide.h index 311a98853..ccbc7cf76 100644 --- a/include/asm-arm/arch-rpc/ide.h +++ b/include/asm-arm/arch-rpc/ide.h @@ -2,44 +2,41 @@ * linux/include/asm-arm/arch-rpc/ide.h * * Copyright (c) 1997 Russell King + * + * Modifications: + * 29-07-1998 RMK Major re-work of IDE architecture specific code */ #include <asm/irq.h> -static __inline__ int -ide_default_irq(ide_ioreg_t base) +/* + * Set up a hw structure for a specified data port, control port and IRQ. + * This should follow whatever the default interface uses. + */ +static __inline__ void +ide_init_hwif_ports(hw_regs_t *hw, int data_port, int ctrl_port, int irq) { - if (base == 0x1f0) - return IRQ_HARDDISK; - return 0; -} + ide_ioreg_t reg = (ide_ioreg_t) data_port; + int i; -static __inline__ ide_ioreg_t -ide_default_io_base(int index) -{ - if (index == 0) - return 0x1f0; - return 0; -} + memset(hw, 0, sizeof(*hw)); -static __inline__ int -ide_default_stepping(int index) -{ - return 0; + for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) { + hw->io_ports[i] = reg; + reg += 1; + } + hw->io_ports[IDE_CONTROL_OFFSET] = (ide_ioreg_t) ctrl_port; + hw->irq = irq; } +/* + * This registers the standard ports for this architecture with the IDE + * driver. + */ static __inline__ void -ide_init_hwif_ports (ide_ioreg_t *p, ide_ioreg_t base, int stepping, int *irq) +ide_init_default_hwifs(void) { - ide_ioreg_t port = base; - ide_ioreg_t ctrl = base + 0x206; - int i; + hw_regs_t hw; - i = 8; - while (i--) { - *p++ = port; - port += 1 << stepping; - } - *p++ = ctrl; - if (irq != NULL) - *irq = 0; + ide_init_hwif_ports(&hw, 0x1f0, 0x3f6, IRQ_HARDDISK); + ide_register_hw(&hw, NULL); } diff --git a/include/asm-arm/arch-rpc/io.h b/include/asm-arm/arch-rpc/io.h index 43d787b96..ecf07c17c 100644 --- a/include/asm-arm/arch-rpc/io.h +++ b/include/asm-arm/arch-rpc/io.h @@ -36,7 +36,7 @@ extern __inline__ void __out##fnsuffix (unsigned int value, unsigned int port) \ "tst %2, #0x80000000\n\t" \ "mov %0, %4\n\t" \ "addeq %0, %0, %3\n\t" \ - "str" ##instr## " %1, [%0, %2, lsl #2]" \ + "str" ##instr## " %1, [%0, %2, lsl #2] @ out"###fnsuffix \ : "=&r" (temp) \ : "r" (value), "r" (port), "Ir" (PCIO_BASE - IO_BASE), "Ir" (IO_BASE) \ : "cc"); \ @@ -50,7 +50,7 @@ extern __inline__ unsigned sz __in##fnsuffix (unsigned int port) \ "tst %2, #0x80000000\n\t" \ "mov %0, %4\n\t" \ "addeq %0, %0, %3\n\t" \ - "ldr" ##instr## " %1, [%0, %2, lsl #2]" \ + "ldr" ##instr## " %1, [%0, %2, lsl #2] @ in"###fnsuffix \ : "=&r" (temp), "=r" (value) \ : "r" (port), "Ir" (PCIO_BASE - IO_BASE), "Ir" (IO_BASE) \ : "cc"); \ @@ -87,11 +87,11 @@ DECLARE_IO(long,l,"") ({ \ if (__PORT_PCIO((port))) \ __asm__ __volatile__( \ - "strb %0, [%1, %2]" \ + "strb %0, [%1, %2] @ outbc" \ : : "r" (value), "r" (PCIO_BASE), "Jr" ((port) << 2)); \ else \ __asm__ __volatile__( \ - "strb %0, [%1, %2]" \ + "strb %0, [%1, %2] @ outbc" \ : : "r" (value), "r" (IO_BASE), "r" ((port) << 2)); \ }) @@ -100,11 +100,11 @@ DECLARE_IO(long,l,"") unsigned char result; \ if (__PORT_PCIO((port))) \ __asm__ __volatile__( \ - "ldrb %0, [%1, %2]" \ + "ldrb %0, [%1, %2] @ inbc" \ : "=r" (result) : "r" (PCIO_BASE), "Jr" ((port) << 2)); \ else \ __asm__ __volatile__( \ - "ldrb %0, [%1, %2]" \ + "ldrb %0, [%1, %2] @ inbc" \ : "=r" (result) : "r" (IO_BASE), "r" ((port) << 2)); \ result; \ }) @@ -114,11 +114,11 @@ DECLARE_IO(long,l,"") unsigned long v = value; \ if (__PORT_PCIO((port))) \ __asm__ __volatile__( \ - "str %0, [%1, %2]" \ + "str %0, [%1, %2] @ outwc" \ : : "r" (v|v<<16), "r" (PCIO_BASE), "Jr" ((port) << 2)); \ else \ __asm__ __volatile__( \ - "str %0, [%1, %2]" \ + "str %0, [%1, %2] @ outwc" \ : : "r" (v|v<<16), "r" (IO_BASE), "r" ((port) << 2)); \ }) @@ -127,11 +127,11 @@ DECLARE_IO(long,l,"") unsigned short result; \ if (__PORT_PCIO((port))) \ __asm__ __volatile__( \ - "ldr %0, [%1, %2]" \ + "ldr %0, [%1, %2] @ inwc" \ : "=r" (result) : "r" (PCIO_BASE), "Jr" ((port) << 2)); \ else \ __asm__ __volatile__( \ - "ldr %0, [%1, %2]" \ + "ldr %0, [%1, %2] @ inwc" \ : "=r" (result) : "r" (IO_BASE), "r" ((port) << 2)); \ result & 0xffff; \ }) @@ -141,11 +141,11 @@ DECLARE_IO(long,l,"") unsigned long v = value; \ if (__PORT_PCIO((port))) \ __asm__ __volatile__( \ - "str %0, [%1, %2]" \ + "str %0, [%1, %2] @ outlc" \ : : "r" (v), "r" (PCIO_BASE), "Jr" ((port) << 2)); \ else \ __asm__ __volatile__( \ - "str %0, [%1, %2]" \ + "str %0, [%1, %2] @ outlc" \ : : "r" (v), "r" (IO_BASE), "r" ((port) << 2)); \ }) @@ -154,11 +154,11 @@ DECLARE_IO(long,l,"") unsigned long result; \ if (__PORT_PCIO((port))) \ __asm__ __volatile__( \ - "ldr %0, [%1, %2]" \ + "ldr %0, [%1, %2] @ inlc" \ : "=r" (result) : "r" (PCIO_BASE), "Jr" ((port) << 2)); \ else \ __asm__ __volatile__( \ - "ldr %0, [%1, %2]" \ + "ldr %0, [%1, %2] @ inlc" \ : "=r" (result) : "r" (IO_BASE), "r" ((port) << 2)); \ result; \ }) diff --git a/include/asm-arm/arch-rpc/keyboard.h b/include/asm-arm/arch-rpc/keyboard.h index 44090e122..6c04cf074 100644 --- a/include/asm-arm/arch-rpc/keyboard.h +++ b/include/asm-arm/arch-rpc/keyboard.h @@ -40,3 +40,4 @@ extern unsigned char ps2kbd_sysrq_xlate[NR_SCANCODES]; #define kbd_disable_irq() disable_irq(IRQ_KEYBOARDRX) #define kbd_enable_irq() enable_irq(IRQ_KEYBOARDRX) +#define SYSRQ_KEY 13 diff --git a/include/asm-arm/arch-rpc/processor.h b/include/asm-arm/arch-rpc/processor.h index cdb79eeed..2fd9155b2 100644 --- a/include/asm-arm/arch-rpc/processor.h +++ b/include/asm-arm/arch-rpc/processor.h @@ -26,12 +26,7 @@ /* This decides where the kernel will search for a free chunk of vm * space during mmap's. */ -#if 0 -#define TASK_UNMAPPED_BASE(off) (TASK_SIZE / 3) -#else #define TASK_UNMAPPED_BASE (TASK_SIZE / 3) -#endif -#define TASK_UNMAPPED_ALIGN(addr, off) PAGE_ALIGN(addr) #define INIT_MMAP \ { &init_mm, 0, 0, PAGE_SHARED, VM_READ | VM_WRITE | VM_EXEC, NULL, &init_mm.mmap } diff --git a/include/asm-arm/arch-rpc/system.h b/include/asm-arm/arch-rpc/system.h index aa6e645c6..e0a16f61d 100644 --- a/include/asm-arm/arch-rpc/system.h +++ b/include/asm-arm/arch-rpc/system.h @@ -8,10 +8,10 @@ #include <asm/proc-fns.h> -#define arch_hard_reset() { \ +#define arch_reset(mode) { \ extern void ecard_reset (int card); \ outb (0, IOMD_ROMCR0); \ - ecard_reset (-1); \ + ecard_reset(-1); \ cli(); \ __asm__ __volatile__("msr spsr, r1;" \ "mcr p15, 0, %0, c1, c0, 0;" \ |