diff options
author | Eugene Konev <ejka@imfi.kspu.ru> | 2007-03-18 09:40:51 +0000 |
---|---|---|
committer | Eugene Konev <ejka@imfi.kspu.ru> | 2007-03-18 09:40:51 +0000 |
commit | 6eb218b9c979ddb0f078c733bffacd92e1da8c01 (patch) | |
tree | 85f03f558603853b9adbdb608c7665c484b370df /target/linux/ar7-2.6/files/arch/mips/ar7/setup.c | |
parent | 3dbd8ff32fd6f707a69810152fed225f33dd55a5 (diff) | |
download | upstream-6eb218b9c979ddb0f078c733bffacd92e1da8c01.tar.gz upstream-6eb218b9c979ddb0f078c733bffacd92e1da8c01.tar.bz2 upstream-6eb218b9c979ddb0f078c733bffacd92e1da8c01.zip |
Add ar7-2.6 port (marked as broken for now).
SVN-Revision: 6600
Diffstat (limited to 'target/linux/ar7-2.6/files/arch/mips/ar7/setup.c')
-rw-r--r-- | target/linux/ar7-2.6/files/arch/mips/ar7/setup.c | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/target/linux/ar7-2.6/files/arch/mips/ar7/setup.c b/target/linux/ar7-2.6/files/arch/mips/ar7/setup.c new file mode 100644 index 0000000000..301abe0689 --- /dev/null +++ b/target/linux/ar7-2.6/files/arch/mips/ar7/setup.c @@ -0,0 +1,120 @@ +/* + * $Id$ + * + * Copyright (C) 2006, 2007 OpenWrt.org + * + * Carsten Langgaard, carstenl@mips.com + * Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved. + * + * This program is free software; you can distribute it and/or modify it + * under the terms of the GNU General Public License (Version 2) as + * published by the Free Software Foundation. + * + * This program is distributed in the hope 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 <linux/sched.h> +#include <linux/ioport.h> +#include <linux/pci.h> +#include <linux/tty.h> +#include <linux/pm.h> +#include <linux/serial_8250.h> +#include <linux/serial_core.h> +#include <linux/serial.h> +#include <linux/serial_reg.h> + +#include <asm/cpu.h> +#include <asm/irq.h> +#include <asm/mips-boards/generic.h> +#include <asm/mips-boards/prom.h> +#include <asm/dma.h> +#include <asm/time.h> +#include <asm/traps.h> +#include <asm/io.h> +#include <asm/reboot.h> +#include <asm/gdb-stub.h> +#include <asm/ar7/ar7.h> + +extern void ar7_time_init(void); +static void ar7_machine_restart(char *command); +static void ar7_machine_halt(void); +static void ar7_machine_power_off(void); + +static void ar7_machine_restart(char *command) +{ + volatile u32 *softres_reg = (u32 *)ioremap(AR7_REGS_RESET + + AR7_RESET_SOFTWARE, 1); + prom_printf("Reboot\n"); + *softres_reg = 1; +} + +static void ar7_machine_halt(void) +{ + prom_printf("Halt\n"); + while (1); +} + +static void ar7_machine_power_off(void) +{ + volatile u32 *power_reg = (u32 *)ioremap(AR7_REGS_POWER, 1); + u32 power_state = *power_reg | (3 << 30); + prom_printf("Power off\n"); + *power_reg = power_state; + ar7_machine_halt(); +} + +const char *get_system_type(void) +{ + u16 chip_id = get_chip_id(); + switch (chip_id) { + case 0x5: + return "TI AR7 (TNETD7300)"; + case 0x18: + return "TI AR7 (TNETD7100)"; + case 0x2b: + return "TI AR7 (TNETD7200)"; + default: + return "TI AR7 (Unknown)"; + } +} + +static int __init ar7_init_console(void) +{ + return 0; +} + +/* + * Initializes basic routines and structures pointers, memory size (as + * given by the bios and saves the command line. + */ + +void __init plat_mem_setup(void) +{ + unsigned long io_base; + + _machine_restart = ar7_machine_restart; + _machine_halt = ar7_machine_halt; + pm_power_off = ar7_machine_power_off; + board_time_init = ar7_time_init; + panic_timeout = 3; + + io_base = (unsigned long)ioremap(AR7_REGS_BASE, 0x10000); + if (!io_base) panic("Can't remap IO base!\n"); + set_io_port_base(io_base); + + prom_meminit(); + + ioport_resource.start = 0; + ioport_resource.end = ~0; + iomem_resource.start = 0; + iomem_resource.end = ~0; +} + +console_initcall(ar7_init_console); |