URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
Compare Revisions
- This comparison shows the changes necessary to convert path
/or1k/tags/LINUX_2_4_26_OR32/linux/linux-2.4/include/asm-arm/arch-ebsa110
- from Rev 1279 to Rev 1765
- ↔ Reverse comparison
Rev 1279 → Rev 1765
/irq.h
0,0 → 1,13
/* |
* linux/include/asm-arm/arch-ebsa110/irq.h |
* |
* Copyright (C) 1996-1998 Russell King |
* |
* This program is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License version 2 as |
* published by the Free Software Foundation. |
* |
* Changelog: |
* 22-08-1998 RMK Restructured IRQ routines |
*/ |
#define fixup_irq(i) (i) |
/hardware.h
0,0 → 1,66
/* |
* linux/include/asm-arm/arch-ebsa110/hardware.h |
* |
* Copyright (C) 1996-2000 Russell King. |
* |
* This program is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License version 2 as |
* published by the Free Software Foundation. |
* |
* This file contains the hardware definitions of the EBSA-110. |
*/ |
#ifndef __ASM_ARCH_HARDWARE_H |
#define __ASM_ARCH_HARDWARE_H |
|
/* |
* The EBSA110 has a weird "ISA IO" region: |
* |
* Region 0 (addr = 0xf0000000 + io << 2) |
* -------------------------------------------------------- |
* Physical region IO region |
* f0000fe0 - f0000ffc 3f8 - 3ff ttyS0 |
* f0000e60 - f0000e64 398 - 399 |
* f0000de0 - f0000dfc 378 - 37f lp0 |
* f0000be0 - f0000bfc 2f8 - 2ff ttyS1 |
* |
* Region 1 (addr = 0xf0000000 + (io & ~1) << 1 + (io & 1)) |
* -------------------------------------------------------- |
* Physical region IO region |
* f00014f1 a79 pnp write data |
* f00007c0 - f00007c1 3e0 - 3e1 pcmcia |
* f00004f1 279 pnp address |
* f0000440 - f000046c 220 - 236 eth0 |
* f0000405 203 pnp read data |
*/ |
|
#define ISAMEM_PHYS 0xe0000000 |
#define ISAMEM_SIZE 0x10000000 |
|
#define ISAIO_PHYS 0xf0000000 |
#define ISAIO_SIZE PGDIR_SIZE |
|
#define TRICK0_PHYS 0xf2000000 |
#define TRICK1_PHYS 0xf2400000 |
#define TRICK2_PHYS 0xf2800000 |
#define TRICK3_PHYS 0xf2c00000 |
#define TRICK4_PHYS 0xf3000000 |
#define TRICK5_PHYS 0xf3400000 |
#define TRICK6_PHYS 0xf3800000 |
#define TRICK7_PHYS 0xf3c00000 |
|
#define ISAMEM_BASE 0xe0000000 |
#define ISAIO_BASE 0xf0000000 |
|
#define PIT_BASE 0xfc000000 |
#define SOFT_BASE 0xfd000000 |
|
/* |
* RAM definitions |
*/ |
#define FLUSH_BASE_PHYS 0x40000000 |
#define FLUSH_BASE 0xdf000000 |
|
#define UNCACHEABLE_ADDR 0xff000000 /* IRQ_STAT */ |
|
#endif |
|
/vmalloc.h
0,0 → 1,22
/* |
* linux/include/asm-arm/arch-ebsa110/vmalloc.h |
* |
* Copyright (C) 1998 Russell King |
* |
* This program is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License version 2 as |
* published by the Free Software Foundation. |
*/ |
|
/* |
* Just any arbitrary offset to the start of the vmalloc VM area: the |
* current 8MB value just means that there will be a 8MB "hole" after the |
* physical memory until the kernel virtual memory starts. That means that |
* any out-of-bounds memory accesses will hopefully be caught. |
* The vmalloc() routines leaves a hole of 4kB between each vmalloced |
* area for the same reason. ;) |
*/ |
#define VMALLOC_OFFSET (8*1024*1024) |
#define VMALLOC_START (((unsigned long)high_memory + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1)) |
#define VMALLOC_VMADDR(x) ((unsigned long)(x)) |
#define VMALLOC_END (PAGE_OFFSET + 0x10000000) |
/irqs.h
0,0 → 1,20
/* |
* linux/include/asm-arm/arch-ebsa110/irqs.h |
* |
* Copyright (C) 1996 Russell King |
* |
* This program is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License version 2 as |
* published by the Free Software Foundation. |
*/ |
|
#define NR_IRQS 8 |
|
#define IRQ_EBSA110_PRINTER 0 |
#define IRQ_EBSA110_COM1 1 |
#define IRQ_EBSA110_COM2 2 |
#define IRQ_EBSA110_ETHERNET 3 |
#define IRQ_EBSA110_TIMER0 4 |
#define IRQ_EBSA110_TIMER1 5 |
#define IRQ_EBSA110_PCMCIA 6 |
#define IRQ_EBSA110_IMMEDIATE 7 |
/time.h
0,0 → 1,45
/* |
* linux/include/asm-arm/arch-ebsa110/time.h |
* |
* Copyright (C) 1996,1997,1998 Russell King. |
* |
* This program is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License version 2 as |
* published by the Free Software Foundation. |
* |
* No real time clock on the evalulation board! |
* |
* Changelog: |
* 10-Oct-1996 RMK Created |
* 04-Dec-1997 RMK Updated for new arch/arm/kernel/time.c |
* 07-Aug-1998 RMK Updated for arch/arm/kernel/leds.c |
* 28-Dec-1998 APH Made leds code optional |
*/ |
|
#include <asm/leds.h> |
|
extern int ebsa110_reset_timer(void); |
extern void ebsa110_setup_timer(void); |
|
static void timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) |
{ |
if (ebsa110_reset_timer()) { |
do_leds(); |
do_timer(regs); |
do_profile(regs); |
} |
} |
|
/* |
* Set up timer interrupt. |
*/ |
static inline void setup_timer(void) |
{ |
ebsa110_setup_timer(); |
|
timer_irq.handler = timer_interrupt; |
|
setup_arm_irq(IRQ_EBSA110_TIMER0, &timer_irq); |
} |
|
|
/uncompress.h
0,0 → 1,46
/* |
* linux/include/asm-arm/arch-ebsa110/uncompress.h |
* |
* Copyright (C) 1996,1997,1998 Russell King |
* |
* This program is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License version 2 as |
* published by the Free Software Foundation. |
*/ |
|
/* |
* This does not append a newline |
*/ |
static void puts(const char *s) |
{ |
unsigned long tmp1, tmp2; |
|
__asm__ __volatile__(" \n\ |
ldrb %0, [%2], #1 \n\ |
teq %0, #0 \n\ |
beq 3f \n\ |
1: strb %0, [%3] \n\ |
2: ldrb %1, [%3, #0x14] \n\ |
and %1, %1, #0x60 \n\ |
teq %1, #0x60 \n\ |
bne 2b \n\ |
teq %0, #'\n' \n\ |
moveq %0, #'\r' \n\ |
beq 1b \n\ |
ldrb %0, [%2], #1 \n\ |
teq %0, #0 \n\ |
bne 1b \n\ |
3: ldrb %1, [%3, #0x14] \n\ |
and %1, %1, #0x60 \n\ |
teq %1, #0x60 \n\ |
bne 3b \n\ |
" |
: "=&r" (tmp1), "=&r" (tmp2) |
: "r" (s), "r" (0xf0000be0) : "cc"); |
} |
|
/* |
* nothing to do |
*/ |
#define arch_decomp_setup() |
#define arch_decomp_wdog() |
/serial.h
0,0 → 1,37
/* |
* linux/include/asm-arm/arch-ebsa110/serial.h |
* |
* Copyright (C) 1996,1997,1998 Russell King. |
* |
* This program is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License version 2 as |
* published by the Free Software Foundation. |
* |
* Changelog: |
* 15-10-1996 RMK Created |
*/ |
#ifndef __ASM_ARCH_SERIAL_H |
#define __ASM_ARCH_SERIAL_H |
|
/* |
* This assumes you have a 1.8432 MHz clock for your UART. |
* |
* It'd be nice if someone built a serial card with a 24.576 MHz |
* clock, since the 16550A is capable of handling a top speed of 1.5 |
* megabits/second; but this requires the faster clock. |
*/ |
#define BASE_BAUD (1843200 / 16) |
|
#define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST) |
|
#define RS_TABLE_SIZE 2 |
|
/* UART CLK PORT IRQ FLAGS */ |
#define STD_SERIAL_PORT_DEFNS \ |
{ 0, BASE_BAUD, 0x3F8, 1, STD_COM_FLAGS }, /* ttyS0 */ \ |
{ 0, BASE_BAUD, 0x2F8, 2, STD_COM_FLAGS } /* ttyS1 */ |
|
#define EXTRA_SERIAL_PORT_DEFNS |
|
#endif |
|
/param.h
0,0 → 1,3
/* |
* linux/include/asm-arm/arch-ebsa110/param.h |
*/ |
/dma.h
0,0 → 1,19
/* |
* linux/include/asm-arm/arch-ebsa110/dma.h |
* |
* Copyright (C) 1997,1998 Russell King |
* |
* This program is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License version 2 as |
* published by the Free Software Foundation. |
* |
* EBSA110 DMA definitions |
*/ |
#ifndef __ASM_ARCH_DMA_H |
#define __ASM_ARCH_DMA_H |
|
#define MAX_DMA_ADDRESS 0xffffffff |
#define MAX_DMA_CHANNELS 0 |
|
#endif /* _ASM_ARCH_DMA_H */ |
|
/ide.h
0,0 → 1,19
/* no ide */ |
/system.h
0,0 → 1,40
/* |
* linux/include/asm-arm/arch-ebsa110/system.h |
* |
* Copyright (C) 1996-2000 Russell King. |
* |
* This program is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License version 2 as |
* published by the Free Software Foundation. |
*/ |
#ifndef __ASM_ARCH_SYSTEM_H |
#define __ASM_ARCH_SYSTEM_H |
|
/* |
* EBSA110 idling methodology: |
* |
* We can not execute the "wait for interrupt" instruction since that |
* will stop our MCLK signal (which provides the clock for the glue |
* logic, and therefore the timer interrupt). |
* |
* Instead, we spin, polling the IRQ_STAT register for the occurrence |
* of any interrupt with core clock down to the memory clock. |
*/ |
static inline void arch_idle(void) |
{ |
const char *irq_stat = (char *)0xff000000; |
|
/* disable clock switching */ |
asm volatile ("mcr%? p15, 0, %0, c15, c2, 2" : : "r" (0)); |
|
/* wait for an interrupt to occur */ |
while (!*irq_stat) |
cpu_relax(); |
|
/* enable clock switching */ |
asm volatile ("mcr%? p15, 0, %0, c15, c1, 2" : : "r" (0)); |
} |
|
#define arch_reset(mode) cpu_reset(0x80000000) |
|
#endif |
/timex.h
0,0 → 1,19
/* |
* linux/include/asm-arm/arch-ebsa110/timex.h |
* |
* Copyright (C) 1997, 1998 Russell King |
* |
* This program is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License version 2 as |
* published by the Free Software Foundation. |
* |
* EBSA110 architecture timex specifications |
*/ |
|
/* |
* On the EBSA, the clock ticks at weird rates. |
* This is therefore not used to calculate the |
* divisor. |
*/ |
//#define CLOCK_TICK_RATE 2000000 |
|
/io.h
0,0 → 1,81
/* |
* linux/include/asm-arm/arch-ebsa110/io.h |
* |
* Copyright (C) 1997,1998 Russell King |
* |
* This program is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License version 2 as |
* published by the Free Software Foundation. |
* |
* Modifications: |
* 06-Dec-1997 RMK Created. |
*/ |
#ifndef __ASM_ARM_ARCH_IO_H |
#define __ASM_ARM_ARCH_IO_H |
|
#define IO_SPACE_LIMIT 0xffff |
|
/* |
* Generic virtual read/write |
*/ |
#define __arch_getw(a) (*(volatile unsigned short *)(a)) |
#define __arch_putw(v,a) (*(volatile unsigned short *)(a) = (v)) |
|
u8 __inb8(unsigned int port); |
void __outb8(u8 val, unsigned int port); |
|
u8 __inb16(unsigned int port); |
void __outb16(u8 val, unsigned int port); |
|
u16 __inw(unsigned int port); |
void __outw(u16 val, unsigned int port); |
|
u32 __inl(unsigned int port); |
void __outl(u32 val, unsigned int port); |
|
u8 __readb(void *addr); |
u16 __readw(void *addr); |
u32 __readl(void *addr); |
|
void __writeb(u8 val, void *addr); |
void __writew(u16 val, void *addr); |
void __writel(u32 val, void *addr); |
|
/* |
* Argh, someone forgot the IOCS16 line. We therefore have to handle |
* the byte stearing by selecting the correct byte IO functions here. |
*/ |
#ifdef ISA_SIXTEEN_BIT_PERIPHERAL |
#define inb(p) __inb16(p) |
#define outb(v,p) __outb16(v,p) |
#else |
#define inb(p) __inb8(p) |
#define outb(v,p) __outb8(v,p) |
#endif |
|
#define inw(p) __inw(p) |
#define outw(v,p) __outw(v,p) |
|
#define inl(p) __inl(p) |
#define outl(v,p) __outl(v,p) |
|
#define readb(b) __readb(b) |
#define readw(b) __readw(b) |
#define readl(b) __readl(b) |
|
#define writeb(v,b) __writeb(v,b) |
#define writew(v,b) __writew(v,b) |
#define writel(v,b) __writel(v,b) |
|
#define __arch_ioremap(off,sz,c) ((void *)(off)) |
#define __arch_iounmap(virt) do { } while (0) |
|
extern void insb(unsigned int port, void *buf, int sz); |
extern void insw(unsigned int port, void *buf, int sz); |
extern void insl(unsigned int port, void *buf, int sz); |
|
extern void outsb(unsigned int port, const void *buf, int sz); |
extern void outsw(unsigned int port, const void *buf, int sz); |
extern void outsl(unsigned int port, const void *buf, int sz); |
|
#endif |
/memory.h
0,0 → 1,51
/* |
* linux/include/asm-arm/arch-ebsa110/memory.h |
* |
* Copyright (C) 1996-1999 Russell King. |
* |
* This program is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License version 2 as |
* published by the Free Software Foundation. |
* |
* Changelog: |
* 20-Oct-1996 RMK Created |
* 31-Dec-1997 RMK Fixed definitions to reduce warnings |
* 21-Mar-1999 RMK Renamed to memory.h |
* RMK Moved TASK_SIZE and PAGE_OFFSET here |
*/ |
#ifndef __ASM_ARCH_MEMORY_H |
#define __ASM_ARCH_MEMORY_H |
|
/* |
* Task size: 3GB |
*/ |
#define TASK_SIZE (0xc0000000UL) |
#define TASK_SIZE_26 (0x04000000UL) |
|
/* |
* This decides where the kernel will search for a free chunk of vm |
* space during mmap's. |
*/ |
#define TASK_UNMAPPED_BASE (TASK_SIZE / 3) |
|
/* |
* Page offset: 3GB |
*/ |
#define PAGE_OFFSET (0xc0000000UL) |
#define PHYS_OFFSET (0x00000000UL) |
|
#define __virt_to_phys__is_a_macro |
#define __virt_to_phys(vpage) ((vpage) - PAGE_OFFSET) |
#define __phys_to_virt__is_a_macro |
#define __phys_to_virt(ppage) ((ppage) + PAGE_OFFSET) |
|
/* |
* We keep this 1:1 so that we don't interfere |
* with the PCMCIA memory regions |
*/ |
#define __virt_to_bus__is_a_macro |
#define __virt_to_bus(x) (x) |
#define __bus_to_virt__is_a_macro |
#define __bus_to_virt(x) (x) |
|
#endif |