From: Andy P. <at...@us...> - 2002-04-10 18:39:22
|
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); } |