mirror of
https://github.com/torvalds/linux
synced 2024-09-06 18:01:05 +00:00
[PATCH] add STB810 support (Philips PNX8550-based)
Signed-off-by: Vitaly Wool <vitalywool@gmail.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
c25c79d80e
commit
f0647a5297
|
@ -461,6 +461,11 @@ config PNX8550_JBS
|
|||
select PNX8550
|
||||
select SYS_SUPPORTS_LITTLE_ENDIAN
|
||||
|
||||
config PNX8550_STB810
|
||||
bool "Support for Philips PNX8550 based STB810 board"
|
||||
select PNX8550
|
||||
select SYS_SUPPORTS_LITTLE_ENDIAN
|
||||
|
||||
config DDB5477
|
||||
bool "NEC DDB Vrc-5477"
|
||||
select DDB5XXX_COMMON
|
||||
|
|
|
@ -463,6 +463,11 @@ libs-$(CONFIG_PNX8550_JBS) += arch/mips/philips/pnx8550/jbs/
|
|||
#cflags-$(CONFIG_PNX8550_JBS) += -Iinclude/asm-mips/mach-pnx8550
|
||||
load-$(CONFIG_PNX8550_JBS) += 0xffffffff80060000
|
||||
|
||||
# Philips PNX8550 STB810 board
|
||||
#
|
||||
libs-$(CONFIG_PNX8550_STB810) += arch/mips/philips/pnx8550/stb810/
|
||||
load-$(CONFIG_PNX8550_STB810) += 0xffffffff80060000
|
||||
|
||||
# NEC EMMA2RH boards
|
||||
#
|
||||
core-$(CONFIG_EMMA2RH) += arch/mips/emma2rh/common/
|
||||
|
|
1229
arch/mips/configs/pnx8550-stb810_defconfig
Normal file
1229
arch/mips/configs/pnx8550-stb810_defconfig
Normal file
File diff suppressed because it is too large
Load diff
|
@ -33,7 +33,7 @@
|
|||
#define DBG(x...)
|
||||
#endif
|
||||
|
||||
extern char irq_tab_jbs[][5];
|
||||
extern char pnx8550_irq_tab[][5];
|
||||
|
||||
void __init pcibios_fixup_resources(struct pci_dev *dev)
|
||||
{
|
||||
|
@ -47,7 +47,7 @@ void __init pcibios_fixup(void)
|
|||
|
||||
int __init pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
|
||||
{
|
||||
return irq_tab_jbs[slot][pin];
|
||||
return pnx8550_irq_tab[slot][pin];
|
||||
}
|
||||
|
||||
/* Do platform specific device initialization at pci_enable_device() time */
|
||||
|
|
|
@ -35,23 +35,15 @@ char * prom_getcmdline(void)
|
|||
return &(arcs_cmdline[0]);
|
||||
}
|
||||
|
||||
void prom_init_cmdline(void)
|
||||
void __init prom_init_cmdline(void)
|
||||
{
|
||||
char *cp;
|
||||
int actr;
|
||||
int i;
|
||||
|
||||
actr = 1; /* Always ignore argv[0] */
|
||||
|
||||
cp = &(arcs_cmdline[0]);
|
||||
while(actr < prom_argc) {
|
||||
strcpy(cp, prom_argv[actr]);
|
||||
cp += strlen(prom_argv[actr]);
|
||||
*cp++ = ' ';
|
||||
actr++;
|
||||
arcs_cmdline[0] = '\0';
|
||||
for (i = 0; i < prom_argc; i++) {
|
||||
strcat(arcs_cmdline, prom_argv[i]);
|
||||
strcat(arcs_cmdline, " ");
|
||||
}
|
||||
if (cp != &(arcs_cmdline[0])) /* get rid of trailing space */
|
||||
--cp;
|
||||
*cp = '\0';
|
||||
}
|
||||
|
||||
char *prom_getenv(char *envname)
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
#include <linux/init.h>
|
||||
#include <int.h>
|
||||
|
||||
char irq_tab_jbs[][5] __initdata = {
|
||||
char pnx8550_irq_tab[][5] __initdata = {
|
||||
[8] = { -1, PNX8550_INT_PCI_INTA, 0xff, 0xff, 0xff},
|
||||
[9] = { -1, PNX8550_INT_PCI_INTA, 0xff, 0xff, 0xff},
|
||||
[17] = { -1, PNX8550_INT_PCI_INTA, 0xff, 0xff, 0xff},
|
||||
|
|
4
arch/mips/philips/pnx8550/stb810/Makefile
Normal file
4
arch/mips/philips/pnx8550/stb810/Makefile
Normal file
|
@ -0,0 +1,4 @@
|
|||
|
||||
# Makefile for the Philips STB810 Board.
|
||||
|
||||
lib-y := prom_init.o board_setup.o irqmap.o
|
49
arch/mips/philips/pnx8550/stb810/board_setup.c
Normal file
49
arch/mips/philips/pnx8550/stb810/board_setup.c
Normal file
|
@ -0,0 +1,49 @@
|
|||
/*
|
||||
* STB810 specific board startup routines.
|
||||
*
|
||||
* Based on the arch/mips/philips/pnx8550/jbs/board_setup.c
|
||||
*
|
||||
* Author: MontaVista Software, Inc.
|
||||
* source@mvista.com
|
||||
*
|
||||
* Copyright 2005 MontaVista Software Inc.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/ioport.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/console.h>
|
||||
#include <linux/mc146818rtc.h>
|
||||
#include <linux/delay.h>
|
||||
|
||||
#include <asm/cpu.h>
|
||||
#include <asm/bootinfo.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/mipsregs.h>
|
||||
#include <asm/reboot.h>
|
||||
#include <asm/pgtable.h>
|
||||
|
||||
#include <glb.h>
|
||||
|
||||
void __init board_setup(void)
|
||||
{
|
||||
unsigned long config0, configpr;
|
||||
|
||||
config0 = read_c0_config();
|
||||
|
||||
/* clear all three cache coherency fields */
|
||||
config0 &= ~(0x7 | (7<<25) | (7<<28));
|
||||
config0 |= (CONF_CM_DEFAULT | (CONF_CM_DEFAULT<<25) |
|
||||
(CONF_CM_DEFAULT<<28));
|
||||
write_c0_config(config0);
|
||||
|
||||
configpr = read_c0_config7();
|
||||
configpr |= (1<<19); /* enable tlb */
|
||||
write_c0_config7(configpr);
|
||||
}
|
23
arch/mips/philips/pnx8550/stb810/irqmap.c
Normal file
23
arch/mips/philips/pnx8550/stb810/irqmap.c
Normal file
|
@ -0,0 +1,23 @@
|
|||
/*
|
||||
* Philips STB810 board irqmap.
|
||||
*
|
||||
* Author: MontaVista Software, Inc.
|
||||
* source@mvista.com
|
||||
*
|
||||
* Copyright 2005 MontaVista Software Inc.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <int.h>
|
||||
|
||||
char pnx8550_irq_tab[][5] __initdata = {
|
||||
[8] = { -1, PNX8550_INT_PCI_INTA, 0xff, 0xff, 0xff},
|
||||
[9] = { -1, PNX8550_INT_PCI_INTA, 0xff, 0xff, 0xff},
|
||||
[10] = { -1, PNX8550_INT_PCI_INTA, 0xff, 0xff, 0xff},
|
||||
};
|
||||
|
49
arch/mips/philips/pnx8550/stb810/prom_init.c
Normal file
49
arch/mips/philips/pnx8550/stb810/prom_init.c
Normal file
|
@ -0,0 +1,49 @@
|
|||
/*
|
||||
* STB810 specific prom routines
|
||||
*
|
||||
* Author: MontaVista Software, Inc.
|
||||
* source@mvista.com
|
||||
*
|
||||
* Copyright 2005 MontaVista Software Inc.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/bootmem.h>
|
||||
#include <asm/addrspace.h>
|
||||
#include <asm/bootinfo.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/kernel.h>
|
||||
|
||||
int prom_argc;
|
||||
char **prom_argv, **prom_envp;
|
||||
extern void __init prom_init_cmdline(void);
|
||||
extern char *prom_getenv(char *envname);
|
||||
|
||||
const char *get_system_type(void)
|
||||
{
|
||||
return "Philips PNX8550/STB810";
|
||||
}
|
||||
|
||||
void __init prom_init(void)
|
||||
{
|
||||
unsigned long memsize;
|
||||
|
||||
prom_argc = (int) fw_arg0;
|
||||
prom_argv = (char **) fw_arg1;
|
||||
prom_envp = (char **) fw_arg2;
|
||||
|
||||
prom_init_cmdline();
|
||||
|
||||
mips_machgroup = MACH_GROUP_PHILIPS;
|
||||
mips_machtype = MACH_PHILIPS_STB810;
|
||||
|
||||
memsize = 0x08000000; /* Trimedia uses memory above */
|
||||
add_memory_region(0, memsize, BOOT_MEM_RAM);
|
||||
}
|
|
@ -131,6 +131,7 @@
|
|||
#define MACH_PHILIPS_NINO 0 /* Nino */
|
||||
#define MACH_PHILIPS_VELO 1 /* Velo */
|
||||
#define MACH_PHILIPS_JBS 2 /* JBS */
|
||||
#define MACH_PHILIPS_STB810 3 /* STB810 */
|
||||
|
||||
/*
|
||||
* Valid machtype for group SIBYTE
|
||||
|
|
Loading…
Reference in a new issue