Openwrt/target/linux/aruba-2.6/files/arch/mips/aruba/prom.c
2007-05-20 21:33:57 +00:00

113 lines
3.3 KiB
C

/**************************************************************************
*
* BRIEF MODULE DESCRIPTION
* prom interface routines
*
* Copyright 2004 IDT Inc. (rischelp@idt.com)
*
* 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 SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* 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.,
* 675 Mass Ave, Cambridge, MA 02139, USA.
*
*
**************************************************************************
* May 2004 rkt, neb
*
* Initial Release
*
*
*
**************************************************************************
*/
#include <linux/autoconf.h>
#include <linux/init.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/string.h>
#include <linux/console.h>
#include <asm/bootinfo.h>
#include <linux/bootmem.h>
#include <linux/ioport.h>
#include <linux/serial.h>
#include <linux/serialP.h>
#include <asm/serial.h>
#include <linux/ioport.h>
unsigned int idt_cpu_freq;
EXPORT_SYMBOL(idt_cpu_freq);
unsigned int arch_has_pci=0;
/* Kernel Boot parameters */
static unsigned char bootparm[] =
"root=/dev/mtdblock1 rootfstype=squashfs,jffs2 noinitrd console=ttyS0,9600 init=/etc/preinit";
extern unsigned long mips_machgroup;
extern unsigned long mips_machtype;
extern void setup_serial_port(void);
extern char * getenv(char *e);
/* IDT 79EB434 memory map -- we really should be auto sizing it */
#define RAM_SIZE 32*1024*1024
char *__init prom_getcmdline(void)
{
return &(arcs_cmdline[0]);
}
void __init prom_init(void)
{
char *boardname;
sprintf(arcs_cmdline, "%s", bootparm);
/* set our arch type */
mips_machgroup = MACH_GROUP_ARUBA;
mips_machtype = MACH_ARUBA_UNKNOWN;
boardname=getenv("boardname");
if (!strcmp(boardname,"Muscat")) {
mips_machtype = MACH_ARUBA_AP70;
idt_cpu_freq = 133000000;
arch_has_pci=1;
} else if (!strcmp(boardname,"Mataro")) {
mips_machtype = MACH_ARUBA_AP65;
idt_cpu_freq = 110000000;
} else if (!strcmp(boardname,"Merlot")) {
mips_machtype = MACH_ARUBA_AP60;
idt_cpu_freq = 90000000;
}
/* turn on the console */
setup_serial_port();
/*
* give all RAM to boot allocator,
* except where the kernel was loaded
*/
add_memory_region(0,RAM_SIZE,BOOT_MEM_RAM);
}
void prom_free_prom_memory(void)
{
printk("stubbed prom_free_prom_memory()\n");
}