From: Andy P. <at...@us...> - 2002-04-10 18:40:56
|
Update of /cvsroot/linux-vax/kernel-2.4/arch/arm/mach-epxa10db In directory usw-pr-cvs1:/tmp/cvs-serv24336/arm/mach-epxa10db Added Files: Makefile arch.c dma.c irq.c mm.c time.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 := epxa10db.o # Object file lists. obj-y := arch.o irq.o mm.o time.o obj-m := obj-n := obj- := export-objs := include $(TOPDIR)/Rules.make --- NEW FILE --- /* * linux/arch/arm/mach-epxa10db/arch.c * * Copyright (C) 2000 Deep Blue Solutions Ltd * Copyright (C) 2001 Altera Corporation * * 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. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/config.h> #include <linux/types.h> #include <linux/sched.h> #include <linux/interrupt.h> #include <linux/init.h> #include <asm/hardware.h> #include <asm/irq.h> #include <asm/setup.h> #include <asm/mach-types.h> #include <asm/mach/arch.h> extern void epxa10db_map_io(void); extern void epxa10db_init_irq(void); static void __init epxa10db_fixup(struct machine_desc *desc, struct param_struct *params, char **cmdline, struct meminfo *mi) { mi->nr_banks = 1; mi->bank[0].start = 0; mi->bank[0].size = (32*1024*1024); mi->bank[0].node = 0; /* ROOT_DEV = MKDEV(RAMDISK_MAJOR,0); setup_ramdisk( 1, 0, 0, 8192 ); setup_initrd(0xc0200000, 6*1024*1024); */ } MACHINE_START(CAMELOT, "Altera Epxa10db") MAINTAINER("Altera Corporation") BOOT_MEM(0x00000000, 0x7fffc000, 0xffffc000) FIXUP(epxa10db_fixup) MAPIO(epxa10db_map_io) INITIRQ(epxa10db_init_irq) MACHINE_END --- NEW FILE --- /* * linux/arch/arm/mach-epxa10db/dma.c * * Copyright (C) 1999 ARM Limited * Copyright (C) 2000 Deep Blue Solutions Ltd * * 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. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/sched.h> #include <linux/slab.h> #include <linux/mman.h> #include <linux/init.h> #include <asm/page.h> #include <asm/pgtable.h> #include <asm/dma.h> #include <asm/io.h> #include <asm/hardware.h> #include <asm/mach/dma.h> void __init arch_dma_init(dma_t *dma) { } --- NEW FILE --- /* * linux/arch/arm/mach-epxa10db/irq.c * * Copyright (C) 2001 Altera Corporation * * 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. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/init.h> #include <asm/hardware.h> #include <asm/irq.h> #include <asm/io.h> #include <asm/mach/irq.h> #include <asm/arch/platform.h> #include <asm/arch/int_ctrl00.h> static void mask_irq(unsigned int irq) { __raw_writel(1 << irq, INT_MC(IO_ADDRESS(EXC_INT_CTRL00_BASE))); } static void unmask_irq(unsigned int irq) { __raw_writel(1 << irq, INT_MS(IO_ADDRESS(EXC_INT_CTRL00_BASE))); } void __init epxa10db_init_irq(void) { unsigned int i; /* * This bit sets up the interrupt controller using * the 6 PLD interrupts mode (the default) each * irqs is assigned a priority which is the same * as its interrupt number. This scheme is used because * its easy, but you may want to change it depending * on the contents of your PLD */ __raw_writel(3,INT_MODE(IO_ADDRESS(EXC_INT_CTRL00_BASE))); for (i = 0; i < NR_IRQS; i++){ __raw_writel(i+1, INT_PRIORITY_P0(IO_ADDRESS(EXC_INT_CTRL00_BASE)) + (4*i)); } for (i = 0; i < NR_IRQS; i++) { irq_desc[i].valid = 1; irq_desc[i].probe_ok = 1; irq_desc[i].mask_ack = mask_irq; irq_desc[i].mask = mask_irq; irq_desc[i].unmask = unmask_irq; } /* Disable all interrupt */ __raw_writel(-1,INT_MC(IO_ADDRESS(EXC_INT_CTRL00_BASE))); } --- NEW FILE --- /* * linux/arch/arm/mach-epxa10db/mm.c * * MM routines for Altera'a Epxa10db board * * Copyright (C) 2001 Altera Corporation * * 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. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <linux/sched.h> #include <linux/mm.h> #include <linux/init.h> #include <asm/hardware.h> #include <asm/io.h> #include <asm/pgtable.h> #include <asm/page.h> #include <asm/mach/map.h> /* Page table mapping for I/O region */ static struct map_desc epxa10db_io_desc[] __initdata = { { IO_ADDRESS(EXC_REGISTERS_BASE), EXC_REGISTERS_BASE, SZ_16K , DOMAIN_IO, 0, 1}, {IO_ADDRESS(EXC_PLD_BLOCK0_BASE), EXC_PLD_BLOCK0_BASE, SZ_16K , DOMAIN_IO, 0, 1}, {IO_ADDRESS(EXC_PLD_BLOCK1_BASE), EXC_PLD_BLOCK1_BASE, SZ_16K , DOMAIN_IO, 0, 1}, {IO_ADDRESS(EXC_PLD_BLOCK2_BASE), EXC_PLD_BLOCK2_BASE, SZ_16K , DOMAIN_IO, 0, 1}, {IO_ADDRESS(EXC_PLD_BLOCK3_BASE), EXC_PLD_BLOCK3_BASE, SZ_16K , DOMAIN_IO, 0, 1}, { FLASH_VADDR(EXC_EBI_BLOCK0_BASE), EXC_EBI_BLOCK0_BASE, SZ_16M , DOMAIN_IO, 0, 1}, LAST_DESC }; void __init epxa10db_map_io(void) { iotable_init(epxa10db_io_desc); } --- NEW FILE --- /* * linux/arch/arm/mach-epxa10db/time.c * * Copyright (C) 2000 Deep Blue Solutions * Copyright (C) 2001 Altera Corporation * * 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. */ #include <linux/kernel.h> #include <linux/sched.h> #include <linux/init.h> #include <asm/hardware.h> extern int (*set_rtc)(void); static int epxa10db_set_rtc(void) { return 1; } static int epxa10db_rtc_init(void) { set_rtc = epxa10db_set_rtc; return 0; } __initcall(epxa10db_rtc_init); |