Update of /cvsroot/linux-vax/kernel-2.4/arch/arm/mach-anakin
In directory usw-pr-cvs1:/tmp/cvs-serv24336/arm/mach-anakin
Added Files:
Makefile arch.c irq.c mm.c
Log Message:
synch 2.4.15 commit 32
--- NEW FILE ---
#
# Makefile for the linux kernel.
#
# Note! Dependencies are done automagically by 'make dep', which also
# removes any old dependencies. DON'T put your own dependencies here
# unless it's something special (ie not a .c file).
USE_STANDARD_AS_RULE := true
O_TARGET := anakin.o
# Object file lists.
obj-y := arch.o irq.o mm.o
obj-m :=
obj-n :=
obj- :=
export-objs :=
include $(TOPDIR)/Rules.make
--- NEW FILE ---
/*
* linux/arch/arm/mach-anakin/arch.c
*
* Copyright (C) 2001 Aleph One Ltd. for Acunia N.V.
*
* 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:
* 09-Apr-2001 W/TTC Created
*/
#include <linux/config.h>
#include <linux/tty.h>
#include <linux/init.h>
#include <asm/setup.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#ifndef CONFIG_BLK_DEV_RAM_SIZE
#define CONFIG_BLK_DEV_RAM_SIZE 4096
#endif
extern void anakin_map_io(void);
extern void genarch_init_irq(void);
static void __init
fixup_anakin(struct machine_desc *desc, struct param_struct *unused,
char **cmdline, struct meminfo *mi)
{
ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0);
setup_ramdisk(1, 0, 0, CONFIG_BLK_DEV_RAM_SIZE);
setup_initrd(0xc0800000, 4 * 1024 * 1024);
}
MACHINE_START(ANAKIN, "Anakin")
MAINTAINER("Wookey/Tak-Shing Chan")
BOOT_MEM(0x20000000, 0x40000000, 0xe0000000)
VIDEO(0x80000000, 0x8002db40)
FIXUP(fixup_anakin)
MAPIO(anakin_map_io)
INITIRQ(genarch_init_irq)
MACHINE_END
--- NEW FILE ---
/*
* linux/arch/arm/mach-anakin/irq.c
*
* Copyright (C) 2001 Aleph One Ltd. for Acunia N.V.
*
* 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:
* 10-Apr-2001 TTC Created
*/
#include <linux/ptrace.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/init.h>
#include <asm/irq.h>
#include <asm/mach/irq.h>
extern unsigned int anakin_irq_mask, anakin_active_irqs;
extern void do_IRQ(int, struct pt_regs *);
static void
anakin_mask_irq(unsigned int irq)
{
anakin_irq_mask &= ~(1 << irq);
}
static void
anakin_unmask_irq(unsigned int irq)
{
anakin_irq_mask |= (1 << irq);
}
/*
* This is a faked interrupt to deal with parallel interrupt requests
* on the Anakin. Make sure that its interrupt number is not in any
* way conflicting with the hardware interrupt numbers! Check
* IRQ_ANAKIN in linux/include/asm-arm/arch-anakin/irqs.h.
*/
static void
anakin_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
for (irq = 0; irq < NR_IRQS; irq++)
if (anakin_active_irqs & (1 << irq))
do_IRQ(irq, regs);
}
static struct irqaction anakin_irq = {
name: "Anakin IRQ",
handler: anakin_interrupt,
flags: SA_INTERRUPT
};
void __init
irq_init_irq(void)
{
unsigned int irq;
for (irq = 0; irq < NR_IRQS; irq++) {
switch (irq) {
case IRQ_UART0:
case IRQ_UART1:
case IRQ_UART2:
case IRQ_TICK:
case IRQ_CODEC:
case IRQ_UART4:
case IRQ_TOUCHSCREEN:
case IRQ_UART3:
case IRQ_FIFO:
case IRQ_CAN:
case IRQ_COMPACTFLASH:
case IRQ_BOSH:
case IRQ_ANAKIN:
irq_desc[irq].valid = 1;
irq_desc[irq].mask_ack = anakin_mask_irq;
irq_desc[irq].mask = anakin_mask_irq;
irq_desc[irq].unmask = anakin_unmask_irq;
}
}
setup_arm_irq(IRQ_ANAKIN, &anakin_irq);
}
--- NEW FILE ---
/*
* linux/arch/arm/mach-anakin/mm.c
*
* Copyright (C) 2001 Aleph One Ltd. for Acunia N.V.
*
* 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:
* 09-Apr-2001 W/TTC Created
*/
#include <linux/mm.h>
#include <linux/init.h>
#include <asm/io.h>
#include <asm/pgtable.h>
#include <asm/mach/map.h>
static struct map_desc anakin_io_desc[] __initdata = {
{ IO_BASE, IO_START, IO_SIZE, DOMAIN_IO, 0, 1, 0, 0 },
{ FLASH_BASE, FLASH_START, FLASH_SIZE, DOMAIN_IO, 1, 1, 0, 0 },
{ VGA_BASE, VGA_START, VGA_SIZE, DOMAIN_IO, 0, 1, 0, 0 },
LAST_DESC
};
void __init
anakin_map_io(void)
{
iotable_init(anakin_io_desc);
}
|