Commit c93f8313 authored by Russell King's avatar Russell King

[ARM] Remove TBOX.

This platform is no longer maintained, and its maintainer says that
the hardware is obsolete and out of circulation.
parent 5397fc64
......@@ -76,7 +76,6 @@ textaddr-$(CONFIG_ARCH_CO285) := 0x60008000
incdir-$(CONFIG_ARCH_CO285) := ebsa285
machine-$(CONFIG_ARCH_FTVPCI) := ftvpci
incdir-$(CONFIG_ARCH_FTVPCI) := nexuspci
machine-$(CONFIG_ARCH_TBOX) := tbox
machine-$(CONFIG_ARCH_SHARK) := shark
machine-$(CONFIG_ARCH_SA1100) := sa1100
ifeq ($(CONFIG_ARCH_SA1100),y)
......
#
# Makefile for the linux kernel.
#
# Object file lists.
obj-y := core.o
obj-m :=
obj-n :=
obj- :=
/*
* linux/arch/arm/mm/mm-tbox.c
*
* Copyright (C) 1998, 1999, 2000 Phil Blundell
* Copyright (C) 1998-1999 Russell King
*
* Extra MM routines for the Tbox architecture
*/
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/init.h>
#include <asm/elf.h>
#include <asm/setup.h>
#include <asm/mach-types.h>
#include <asm/io.h>
#include <asm/pgtable.h>
#include <asm/page.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
extern unsigned long soft_irq_mask;
static void tbox_mask_irq(unsigned int irq)
{
__raw_writel(0, INTCONT + (irq << 2));
soft_irq_mask &= ~(1<<irq);
}
static void tbox_unmask_irq(unsigned int irq)
{
soft_irq_mask |= (1<<irq);
__raw_writel(1, INTCONT + (irq << 2));
}
static void tbox_init_irq(void)
{
unsigned int i;
/* Disable all interrupts initially. */
for (i = 0; i < NR_IRQS; i++) {
if (i <= 10 || (i >= 12 && i <= 13)) {
irq_desc[i].valid = 1;
irq_desc[i].probe_ok = 0;
irq_desc[i].mask_ack = tbox_mask_irq;
irq_desc[i].mask = tbox_mask_irq;
irq_desc[i].unmask = tbox_unmask_irq;
tbox_mask_irq(i);
} else {
irq_desc[i].valid = 0;
irq_desc[i].probe_ok = 0;
}
}
}
static struct map_desc tbox_io_desc[] __initdata = {
/* See hardware.h for details */
{ IO_BASE, IO_START, 0x00100000, MT_DEVICE }
};
static void __init tbox_map_io(void)
{
iotable_init(tbox_io_desc, ARRAY_SIZE(tbox_io_desc));
}
MACHINE_START(TBOX, "unknown-TBOX")
MAINTAINER("Philip Blundell")
BOOT_MEM(0x80000000, 0x00400000, 0xe0000000)
MAPIO(tbox_map_io)
INITIRQ(tbox_init_irq)
MACHINE_END
/*
* linux/include/asm-arm/arch-tbox/dma.h
*
* Architecture DMA routines. We have to contend with the bizarre DMA
* machine built into the Tbox hardware.
*
* Copyright (C) 1998 Philip Blundell
*/
/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
/*
* DMA channel definitions. Some of these are physically strange but
* we sort it out inside dma.c so the user never has to care. The
* exception is the double-buffering which we can't really abstract
* away sensibly.
*/
#define DMA_VIDEO 0
#define DMA_MPEG_B 1
#define DMA_AUDIO_B 2
#define DMA_ASHRX_B 3
#define DMA_ASHTX 4
#define DMA_MPEG 5
#define DMA_AUDIO 6
#define DMA_ASHRX 7
#define MAX_DMA_CHANNELS 0 /* XXX */
/*
* This is the maximum DMA address that can be DMAd to.
*/
#define MAX_DMA_ADDRESS 0xffffffff
/*
* linux/include/asm-arm/arch-tbox/hardware.h
*
* Copyright (C) 1998, 1999, 2000 Philip Blundell
* Copyright (C) 2000 FutureTV Labs Ltd
*
* This file contains the hardware definitions of the Tbox
*/
/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#ifndef __ASM_ARCH_HARDWARE_H
#define __ASM_ARCH_HARDWARE_H
/* Logical Physical
* 0xfff00000 0x00100000 I/O
* 0xfff00000 0x00100000 Expansion CS0
* 0xfff10000 0x00110000 DMA
* 0xfff20000 0x00120000 C-Cube
* 0xfff30000 0x00130000 FPGA 1
* 0xfff40000 0x00140000 UART 2
* 0xfff50000 0x00150000 UART 1
* 0xfff60000 0x00160000 CS8900
* 0xfff70000 0x00170000 INTCONT
* 0xfff80000 0x00180000 RAMDAC
* 0xfff90000 0x00190000 Control 0
* 0xfffa0000 0x001a0000 Control 1
* 0xfffb0000 0x001b0000 Control 2
* 0xfffc0000 0x001c0000 FPGA 2
* 0xfffd0000 0x001d0000 INTRESET
* 0xfffe0000 0x001e0000 C-Cube DMA throttle
* 0xffff0000 0x001f0000 Expansion CS1
* 0xffe00000 0x82000000 cache flush
*/
/*
* Mapping areas
*/
#define IO_BASE 0xfff00000
#define IO_START 0x00100000
#define FLUSH_BASE 0xffe00000
#define INTCONT 0xfff70000
#define FPGA1CONT 0xffff3000
/*
* RAM definitions
*/
#define RAM_BASE 0x80000000
#define FLUSH_BASE_PHYS 0x82000000
#define UNCACHEABLE_ADDR INTCONT
#endif
/*
* linux/include/asm-arm/arch-tbox/io.h
*
* Copyright (C) 1996-1999 Russell King
* Copyright (C) 1998, 1999 Philip Blundell
*
*/
#ifndef __ASM_ARM_ARCH_IO_H
#define __ASM_ARM_ARCH_IO_H
#define IO_SPACE_LIMIT 0xffffffff
#define __io(_x) ((_x) << 2)
/*
* Generic virtual read/write
*/
static inline unsigned int __arch_getw(unsigned long a)
{
unsigned int value;
__asm__ __volatile__("ldr%?h %0, [%1, #0] @ getw"
: "=&r" (value)
: "r" (a));
return value;
}
static inline void __arch_putw(unsigned int value, unsigned long a)
{
__asm__ __volatile__("str%?h %0, [%1, #0] @ putw"
: : "r" (value), "r" (a));
}
/* Idem, for devices on the upper byte lanes */
#define inb_u(p) __arch_getb(__io_pc(p) + 2)
#define inw_u(p) __arch_getw(__io_pc(p) + 2)
#define outb_u(v,p) __arch_putb(v,__io_pc(p) + 2)
#define outw_u(v,p) __arch_putw(v,__io_pc(p) + 2)
#endif
/*
* linux/include/asm-arm/arch-tbox/irqs.h
*
* Copyright (C) 1998, 2000 Philip Blundell
*/
/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#define IRQ_MPEGDMA 0
#define IRQ_ASHTX 1
#define IRQ_ASHRX 2
#define IRQ_VSYNC 3
#define IRQ_HSYNC 4
#define IRQ_MPEG 5
#define IRQ_UART2 6
#define IRQ_UART1 7
#define IRQ_ETHERNET 8
#define IRQ_TIMER 9
#define IRQ_AUDIODMA 10
/* bit 11 used for video field ident */
#define IRQ_EXPMODCS0 12
#define IRQ_EXPMODCS1 13
#define irq_canonicalize(i) (i)
/*
* linux/include/asm-arm/arch-tbox/memory.h
*
* Copyright (c) 1996-1999 Russell King.
* Copyright (c) 1998-1999 Phil Blundell
*/
#ifndef __ASM_ARCH_MEMORY_H
#define __ASM_ARCH_MEMORY_H
/*
* Physical DRAM offset.
*/
#define PHYS_OFFSET (0x80000000UL)
/*
* Bus view is the same as physical view
*/
#define __virt_to_bus(x) __virt_to_phys(x)
#define __bus_to_virt(x) __phys_to_virt(x)
#endif
/*
* linux/include/asm-arm/arch-tbox/param.h
*/
#define __KERNEL_HZ 1000
/*
* linux/include/asm-arm/arch-tbox/serial.h
*
* Copyright (c) 1996 Russell King.
* Copyright (c) 1998 Phil Blundell
*
* Changelog:
* 15-10-1996 RMK Created
* 09-06-1998 PJB tbox version
*/
#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)
/* UART CLK PORT IRQ FLAGS */
#define STD_SERIAL_PORT_DEFNS \
{ 0, BASE_BAUD, 0xffff4000 >> 2, 6, STD_COM_FLAGS }, /* ttyS0 */ \
{ 0, BASE_BAUD, 0xffff5000 >> 2, 7, STD_COM_FLAGS }, /* ttyS1 */
#define EXTRA_SERIAL_PORT_DEFNS
#endif
/*
* linux/include/asm-arm/arch-tbox/system.h
*
* Copyright (c) 1996-1999 Russell King.
*/
#ifndef __ASM_ARCH_SYSTEM_H
#define __ASM_ARCH_SYSTEM_H
static inline void arch_idle(void)
{
cpu_do_idle();
}
#define arch_reset(mode) do { } while (0)
#endif
/*
* linux/include/asm-arm/arch-tbox/time.h
*
* Copyright (c) 1997, 1999 Phil Blundell.
* Copyright (c) 2000 FutureTV Labs Ltd
*
* Tbox has no real-time clock -- we get millisecond ticks to update
* our soft copy.
*/
/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#include <asm/io.h>
#include <asm/hardware.h>
#define update_rtc()
static irqreturn_t
timer_interrupt (int irq, void *dev_id, struct pt_regs *regs)
{
/* Clear irq */
__raw_writel(1, FPGA1CONT + 0xc);
__raw_writel(0, FPGA1CONT + 0xc);
do_timer(regs);
return IRQ_HANDLED;
}
void __init time_init(void)
{
timer_irq.handler = timer_interrupt;
setup_irq(IRQ_TIMER, &timer_irq);
}
/*
* linux/include/asm-arm/arch-tbox/timex.h
*
* Tbox timex specifications
*
* Copyright (C) 1999 Philip Blundell
*/
/*
* linux/include/asm-arm/arch-nexuspci/uncompress.h
* from linux/include/asm-arm/arch-ebsa110/uncompress.h
*
* Copyright (C) 1996,1997,1998 Russell King
* Copyright (C) 1998, 1999 Phil Blundell
*/
#include <asm/io.h>
#define UARTBASE 0x00400000
/*
* This does not append a newline
*/
static void puts(const char *s)
{
while (*s)
{
char c = *(s++);
while (!(__raw_readb(UARTBASE + 0x14) & 0x20));
__raw_writeb(c, UARTBASE);
if (c == 10) {
while (!(__raw_readb(UARTBASE + 0x14) & 0x20));
__raw_writeb(13, UARTBASE);
}
}
}
/*
* nothing to do
*/
#define arch_decomp_setup()
/*
* Stroke the watchdog so we don't get reset during decompression.
*/
#define arch_decomp_wdog() \
do { \
__raw_writel(1, 0xa00000); \
__raw_writel(0, 0xa00000); \
} while (0)
/*
* linux/include/asm-arm/arch-tbox/vmalloc.h
*/
/*
* 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_END (PAGE_OFFSET + 0x10000000)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment