Commit a832c38b authored by Paul Mackerras's avatar Paul Mackerras

Merge bk://24.221.152.185/linux-2.5-misc

into samba.org:/home/paulus/kernel/for-linus-ppc
parents 8e70b6f7 cb472547
...@@ -75,7 +75,7 @@ static int _cvt(unsigned long val, char *buf, long radix, char *digits); ...@@ -75,7 +75,7 @@ static int _cvt(unsigned long val, char *buf, long radix, char *digits);
void _vprintk(void(*putc)(const char), const char *fmt0, va_list ap); void _vprintk(void(*putc)(const char), const char *fmt0, va_list ap);
unsigned char *ISA_io = NULL; unsigned char *ISA_io = NULL;
#if defined(CONFIG_SERIAL_CONSOLE) #if defined(CONFIG_SERIAL_CONSOLE) || defined(CONFIG_SERIAL_8250_CONSOLE)
extern unsigned long com_port; extern unsigned long com_port;
extern int serial_tstc(unsigned long com_port); extern int serial_tstc(unsigned long com_port);
...@@ -96,7 +96,7 @@ void exit(void) ...@@ -96,7 +96,7 @@ void exit(void)
int tstc(void) int tstc(void)
{ {
#if defined(CONFIG_SERIAL_CONSOLE) #if defined(CONFIG_SERIAL_CONSOLE) || defined(CONFIG_SERIAL_8250_CONSOLE)
if(keyb_present) if(keyb_present)
return (CRT_tstc() || serial_tstc(com_port)); return (CRT_tstc() || serial_tstc(com_port));
else else
...@@ -109,10 +109,10 @@ int tstc(void) ...@@ -109,10 +109,10 @@ int tstc(void)
int getc(void) int getc(void)
{ {
while (1) { while (1) {
#if defined(CONFIG_SERIAL_CONSOLE) #if defined(CONFIG_SERIAL_CONSOLE) || defined(CONFIG_SERIAL_8250_CONSOLE)
if (serial_tstc(com_port)) if (serial_tstc(com_port))
return (serial_getc(com_port)); return (serial_getc(com_port));
#endif /* CONFIG_SERIAL_CONSOLE */ #endif /* serial console */
if (keyb_present) if (keyb_present)
if(CRT_tstc()) if(CRT_tstc())
return (CRT_getc()); return (CRT_getc());
...@@ -124,11 +124,11 @@ putc(const char c) ...@@ -124,11 +124,11 @@ putc(const char c)
{ {
int x,y; int x,y;
#if defined(CONFIG_SERIAL_CONSOLE) #if defined(CONFIG_SERIAL_CONSOLE) || defined(CONFIG_SERIAL_8250_CONSOLE)
serial_putc(com_port, c); serial_putc(com_port, c);
if ( c == '\n' ) if ( c == '\n' )
serial_putc(com_port, '\r'); serial_putc(com_port, '\r');
#endif /* CONFIG_SERIAL_CONSOLE */ #endif /* serial console */
x = orig_x; x = orig_x;
y = orig_y; y = orig_y;
...@@ -171,10 +171,10 @@ void puts(const char *s) ...@@ -171,10 +171,10 @@ void puts(const char *s)
y = orig_y; y = orig_y;
while ( ( c = *s++ ) != '\0' ) { while ( ( c = *s++ ) != '\0' ) {
#if defined(CONFIG_SERIAL_CONSOLE) #if defined(CONFIG_SERIAL_CONSOLE) || defined(CONFIG_SERIAL_8250_CONSOLE)
serial_putc(com_port, c); serial_putc(com_port, c);
if ( c == '\n' ) serial_putc(com_port, '\r'); if ( c == '\n' ) serial_putc(com_port, '\r');
#endif /* CONFIG_SERIAL_CONSOLE */ #endif /* serial console */
if ( c == '\n' ) { if ( c == '\n' ) {
x = 0; x = 0;
......
...@@ -27,7 +27,7 @@ boot-y := head.o ../simple/legacy.o misc.o of1275.o \ ...@@ -27,7 +27,7 @@ boot-y := head.o ../simple/legacy.o misc.o of1275.o \
OBJCOPY_ARGS = -O elf32-powerpc OBJCOPY_ARGS = -O elf32-powerpc
LIBS = ../lib/zlib.a LIBS = ../lib/zlib.a
boot-$(CONFIG_SERIAL_CONSOLE) += ../common/ns16550.o boot-$($CONFIG_SERIAL_8250_CONSOLE) += ../common/ns16550.o
boot-$(CONFIG_VGA_CONSOLE) += vreset.o kbd.o boot-$(CONFIG_VGA_CONSOLE) += vreset.o kbd.o
EXTRA_TARGETS := $(boot-y) EXTRA_TARGETS := $(boot-y)
......
...@@ -56,9 +56,9 @@ unsigned long orig_MSR; ...@@ -56,9 +56,9 @@ unsigned long orig_MSR;
char *zimage_start; char *zimage_start;
int zimage_size; int zimage_size;
#if defined(CONFIG_SERIAL_CONSOLE) #if defined(CONFIG_SERIAL_8250_CONSOLE)
unsigned long com_port; unsigned long com_port;
#endif /* CONFIG_SERIAL_CONSOLE */ #endif /* CONFIG_SERIAL_8250_CONSOLE */
#ifdef CONFIG_VGA_CONSOLE #ifdef CONFIG_VGA_CONSOLE
char *vidmem = (char *)0xC00B8000; char *vidmem = (char *)0xC00B8000;
int lines = 25, cols = 80; int lines = 25, cols = 80;
...@@ -135,9 +135,9 @@ decompress_kernel(unsigned long load_addr, int num_words, unsigned long cksum, ...@@ -135,9 +135,9 @@ decompress_kernel(unsigned long load_addr, int num_words, unsigned long cksum,
unsigned int pci_viddid, pci_did, tulip_pci_base, tulip_base; unsigned int pci_viddid, pci_did, tulip_pci_base, tulip_base;
serial_fixups(); serial_fixups();
#if defined(CONFIG_SERIAL_CONSOLE) #if defined(CONFIG_SERIAL_8250_CONSOLE)
com_port = serial_init(0, NULL); com_port = serial_init(0, NULL);
#endif /* CONFIG_SERIAL_CONSOLE */ #endif /* CONFIG_SERIAL_8250_CONSOLE */
#if defined(CONFIG_VGA_CONSOLE) #if defined(CONFIG_VGA_CONSOLE)
vga_init((unsigned char *)0xC0000000); vga_init((unsigned char *)0xC0000000);
#endif /* CONFIG_VGA_CONSOLE */ #endif /* CONFIG_VGA_CONSOLE */
......
...@@ -136,9 +136,9 @@ boot-$(CONFIG_RPXLITE) += iic.o ...@@ -136,9 +136,9 @@ boot-$(CONFIG_RPXLITE) += iic.o
ifeq ($(CONFIG_SERIAL_CONSOLE),y) ifeq ($(CONFIG_SERIAL_CONSOLE),y)
boot-$(CONFIG_8xx) += m8xx_tty.o boot-$(CONFIG_8xx) += m8xx_tty.o
boot-$(CONFIG_8260) += m8260_tty.o boot-$(CONFIG_8260) += m8260_tty.o
boot-$(CONFIG_GT64260_CONSOLE) += gt64260_tty.o boot-$(CONFIG_GT64260_CONSOLE) += gt64260_tty.o
boot-$(CONFIG_SERIAL) += ../common/ns16550.o
endif endif
boot-$(CONFIG_SERIAL_8250_CONSOLE) += ../common/ns16550.o
EXTRA_TARGETS := $(boot-y) EXTRA_TARGETS := $(boot-y)
LIBS := ../lib/zlib.a LIBS := ../lib/zlib.a
......
...@@ -189,7 +189,7 @@ decompress_kernel(unsigned long load_addr, int num_words, unsigned long cksum) ...@@ -189,7 +189,7 @@ decompress_kernel(unsigned long load_addr, int num_words, unsigned long cksum)
unsigned char header_type; unsigned char header_type;
unsigned int bar0; unsigned int bar0;
#ifdef CONFIG_SERIAL_CONSOLE #ifdef CONFIG_SERIAL_8250_CONSOLE
/* Initialize the serial console port */ /* Initialize the serial console port */
com_port = serial_init(0, NULL); com_port = serial_init(0, NULL);
#endif #endif
......
...@@ -365,6 +365,10 @@ if [ "$CONFIG_ALL_PPC" = "y" ]; then ...@@ -365,6 +365,10 @@ if [ "$CONFIG_ALL_PPC" = "y" ]; then
bool 'Support for RTAS (RunTime Abstraction Services) in /proc' CONFIG_PPC_RTAS bool 'Support for RTAS (RunTime Abstraction Services) in /proc' CONFIG_PPC_RTAS
bool 'Support for PReP Residual Data' CONFIG_PREP_RESIDUAL bool 'Support for PReP Residual Data' CONFIG_PREP_RESIDUAL
dep_bool ' Support for reading of PReP Residual Data in /proc' CONFIG_PROC_PREPRESIDUAL $CONFIG_PREP_RESIDUAL dep_bool ' Support for reading of PReP Residual Data in /proc' CONFIG_PROC_PREPRESIDUAL $CONFIG_PREP_RESIDUAL
define_bool CONFIG_PPCBUG_NVRAM y
fi
if [ "$CONFIG_PPLUS" = "y" -o "$CONFIG_LOPEC" = "y" ]; then
bool 'Enable reading PPCBUG NVRAM during boot' CONFIG_PPCBUG_NVRAM
fi fi
bool 'Default bootloader kernel arguments' CONFIG_CMDLINE_BOOL bool 'Default bootloader kernel arguments' CONFIG_CMDLINE_BOOL
......
...@@ -35,6 +35,7 @@ obj-$(CONFIG_PCI) += pci.o ...@@ -35,6 +35,7 @@ obj-$(CONFIG_PCI) += pci.o
ifneq ($(CONFIG_PPC_ISERIES),y) ifneq ($(CONFIG_PPC_ISERIES),y)
obj-$(CONFIG_PCI) += pci-dma.o obj-$(CONFIG_PCI) += pci-dma.o
endif endif
obj-$(CONFIG_PPCBUG_NVRAM) += prep_nvram.o
obj-$(CONFIG_KGDB) += ppc-stub.o obj-$(CONFIG_KGDB) += ppc-stub.o
obj-$(CONFIG_SMP) += smp.o obj-$(CONFIG_SMP) += smp.o
obj-$(CONFIG_TAU) += temp.o obj-$(CONFIG_TAU) += temp.o
......
...@@ -2,9 +2,14 @@ ...@@ -2,9 +2,14 @@
* BK Id: %F% %I% %G% %U% %#% * BK Id: %F% %I% %G% %U% %#%
*/ */
/* /*
* arch/ppc/platforms/prep_nvram.c * arch/ppc/kernel/prep_nvram.c
* *
* Copyright (C) 1998 Corey Minyard * Copyright (C) 1998 Corey Minyard
*
* This reads the NvRAM on PReP compliant machines (generally from IBM or
* Motorola). Motorola kept the format of NvRAM in their ROM, PPCBUG, the
* same, long after they had stopped producing PReP compliant machines. So
* this code is useful in those cases as well.
* *
*/ */
#include <linux/init.h> #include <linux/init.h>
......
...@@ -32,7 +32,7 @@ endif ...@@ -32,7 +32,7 @@ endif
obj-$(CONFIG_ALL_PPC) += pmac_pic.o pmac_setup.o pmac_time.o \ obj-$(CONFIG_ALL_PPC) += pmac_pic.o pmac_setup.o pmac_time.o \
pmac_feature.o pmac_pci.o chrp_setup.o\ pmac_feature.o pmac_pci.o chrp_setup.o\
chrp_time.o chrp_pci.o prep_pci.o \ chrp_time.o chrp_pci.o prep_pci.o \
prep_time.o prep_nvram.o prep_setup.o prep_time.o prep_setup.o
ifeq ($(CONFIG_ALL_PPC),y) ifeq ($(CONFIG_ALL_PPC),y)
obj-$(CONFIG_NVRAM) += pmac_nvram.o obj-$(CONFIG_NVRAM) += pmac_nvram.o
endif endif
...@@ -50,7 +50,7 @@ obj-$(CONFIG_MENF1) += menf1_setup.o menf1_pci.o ...@@ -50,7 +50,7 @@ obj-$(CONFIG_MENF1) += menf1_setup.o menf1_pci.o
obj-$(CONFIG_MVME5100) += mvme5100_setup.o mvme5100_pci.o obj-$(CONFIG_MVME5100) += mvme5100_setup.o mvme5100_pci.o
obj-$(CONFIG_PCORE) += pcore_setup.o pcore_pci.o obj-$(CONFIG_PCORE) += pcore_setup.o pcore_pci.o
obj-$(CONFIG_POWERPMC250) += powerpmc250.o obj-$(CONFIG_POWERPMC250) += powerpmc250.o
obj-$(CONFIG_PPLUS) += pplus_pci.o pplus_setup.o prep_nvram.o obj-$(CONFIG_PPLUS) += pplus_pci.o pplus_setup.o
obj-$(CONFIG_PRPMC750) += prpmc750_setup.o prpmc750_pci.o obj-$(CONFIG_PRPMC750) += prpmc750_setup.o prpmc750_pci.o
obj-$(CONFIG_PRPMC800) += prpmc800_setup.o prpmc800_pci.o obj-$(CONFIG_PRPMC800) += prpmc800_setup.o prpmc800_pci.o
obj-$(CONFIG_SANDPOINT) += sandpoint_setup.o sandpoint_pci.o obj-$(CONFIG_SANDPOINT) += sandpoint_setup.o sandpoint_pci.o
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* Author: Mark A. Greer * Author: Mark A. Greer
* mgreer@mvista.com * mgreer@mvista.com
* *
* Copyright 2000 MontaVista Software Inc. * Copyright 2000-2002 MontaVista Software Inc.
* *
* This program is free software; you can redistribute it and/or modify it * 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 * under the terms of the GNU General Public License as published by the
...@@ -101,7 +101,7 @@ ...@@ -101,7 +101,7 @@
* UIC Exports... * UIC Exports...
*/ */
extern struct hw_interrupt_type cpc700_pic; extern struct hw_interrupt_type cpc700_pic;
extern unsigned int cpc700_irq_assigns[27][2]; extern unsigned int cpc700_irq_assigns[32][2];
extern void __init cpc700_init_IRQ(void); extern void __init cpc700_init_IRQ(void);
extern int cpc700_get_irq(struct pt_regs *); extern int cpc700_get_irq(struct pt_regs *);
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
* mporter@mvista.com * mporter@mvista.com
* jpeters@mvista.com * jpeters@mvista.com
* *
* Copyright 2001 MontaVista Software Inc. * Copyright 2001-2002 MontaVista Software Inc.
* *
* This program is free software; you can redistribute it and/or modify it * 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 * under the terms of the GNU General Public License as published by the
...@@ -168,7 +168,7 @@ cpc700_init_IRQ(void) ...@@ -168,7 +168,7 @@ cpc700_init_IRQ(void)
cpc700_pic_init_irq(i); cpc700_pic_init_irq(i);
} }
for (i = 20; i < 27; i++) { for (i = 20; i < 32; i++) {
irq_desc[i].handler = &cpc700_pic; irq_desc[i].handler = &cpc700_pic;
cpc700_pic_init_irq(i); cpc700_pic_init_irq(i);
} }
......
...@@ -33,8 +33,15 @@ ...@@ -33,8 +33,15 @@
#include <asm/bootinfo.h> #include <asm/bootinfo.h>
#include <asm/mpc10x.h> #include <asm/mpc10x.h>
#include <asm/hw_irq.h> #include <asm/hw_irq.h>
#include <asm/prep_nvram.h>
#include <asm/keyboard.h>
extern char saved_command_line[];
extern void lopec_find_bridges(void); extern void lopec_find_bridges(void);
extern int pckbd_translate(unsigned char scancode, unsigned char *keycode,
char raw_mode);
extern char pckbd_unexpected_up(unsigned char keycode);
extern unsigned char pckbd_sysrq_xlate[128];
/* /*
* Define all of the IRQ senses and polarities. Taken from the * Define all of the IRQ senses and polarities. Taken from the
...@@ -333,6 +340,21 @@ lopec_setup_arch(void) ...@@ -333,6 +340,21 @@ lopec_setup_arch(void)
#ifdef CONFIG_DUMMY_CONSOLE #ifdef CONFIG_DUMMY_CONSOLE
conswitchp = &dummy_con; conswitchp = &dummy_con;
#endif #endif
#ifdef CONFIG_PPCBUG_NVRAM
/* Read in NVRAM data */
init_prep_nvram();
/* if no bootargs, look in NVRAM */
if ( cmd_line[0] == '\0' ) {
char *bootargs;
bootargs = prep_nvram_get_var("bootargs");
if (bootargs != NULL) {
strcpy(cmd_line, bootargs);
/* again.. */
strcpy(saved_command_line, cmd_line);
}
}
#endif
} }
void __init void __init
...@@ -362,6 +384,14 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5, ...@@ -362,6 +384,14 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
ppc_md.find_end_of_memory = lopec_find_end_of_memory; ppc_md.find_end_of_memory = lopec_find_end_of_memory;
ppc_md.setup_io_mappings = lopec_map_io; ppc_md.setup_io_mappings = lopec_map_io;
#ifdef CONFIG_VT
ppc_md.kbd_translate = pckbd_translate;
ppc_md.kbd_unexpected_up = pckbd_unexpected_up;
#ifdef CONFIG_MAGIC_SYSRQ
ppc_md.ppc_kbd_sysrq_xlate = pckbd_sysrq_xlate;
#endif /* CONFIG_MAGIC_SYSRQ */
#endif /* CONFIG_VT */
ppc_md.time_init = todc_time_init; ppc_md.time_init = todc_time_init;
ppc_md.set_rtc_time = todc_set_rtc_time; ppc_md.set_rtc_time = todc_set_rtc_time;
ppc_md.get_rtc_time = todc_get_rtc_time; ppc_md.get_rtc_time = todc_get_rtc_time;
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
* Cort Dougan, Johnnie Peters, Matt Porter, and * Cort Dougan, Johnnie Peters, Matt Porter, and
* Troy Benjegerdes. * Troy Benjegerdes.
* *
* Copyright 2001 MontaVista Software Inc. * Copyright 2001-2002 MontaVista Software Inc.
* *
* This program is free software; you can redistribute it and/or modify it * 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 * under the terms of the GNU General Public License as published by the
...@@ -76,8 +76,9 @@ ...@@ -76,8 +76,9 @@
TODC_ALLOC(); TODC_ALLOC();
extern void pplus_setup_hose(void); extern char saved_command_line[];
extern void pplus_setup_hose(void);
extern void pplus_set_VIA_IDE_native(void); extern void pplus_set_VIA_IDE_native(void);
extern unsigned long loops_per_jiffy; extern unsigned long loops_per_jiffy;
...@@ -131,7 +132,8 @@ pplus_setup_arch(void) ...@@ -131,7 +132,8 @@ pplus_setup_arch(void)
ROOT_DEV = Root_SDA2; ROOT_DEV = Root_SDA2;
#endif #endif
printk("PowerPlus port (C) 2001 MontaVista Software, Inc. (source@mvista.com)\n"); printk(KERN_INFO "Motorola PowerPlus Platform\n");
printk(KERN_INFO "Port by MontaVista Software, Inc. (source@mvista.com)\n");
if ( ppc_md.progress ) if ( ppc_md.progress )
ppc_md.progress("pplus_setup_arch: raven_init\n", 0); ppc_md.progress("pplus_setup_arch: raven_init\n", 0);
...@@ -144,6 +146,21 @@ pplus_setup_arch(void) ...@@ -144,6 +146,21 @@ pplus_setup_arch(void)
conswitchp = &vga_con; conswitchp = &vga_con;
#elif defined(CONFIG_DUMMY_CONSOLE) #elif defined(CONFIG_DUMMY_CONSOLE)
conswitchp = &dummy_con; conswitchp = &dummy_con;
#endif
#ifdef CONFIG_PPCBUG_NVRAM
/* Read in NVRAM data */
init_prep_nvram();
/* if no bootargs, look in NVRAM */
if ( cmd_line[0] == '\0' ) {
char *bootargs;
bootargs = prep_nvram_get_var("bootargs");
if (bootargs != NULL) {
strcpy(cmd_line, bootargs);
/* again.. */
strcpy(saved_command_line, cmd_line);
}
}
#endif #endif
if ( ppc_md.progress ) if ( ppc_md.progress )
ppc_md.progress("pplus_setup_arch: exit\n", 0); ppc_md.progress("pplus_setup_arch: exit\n", 0);
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* Authors: Johnnie Peters <jpeters@mvista.com> * Authors: Johnnie Peters <jpeters@mvista.com>
* Matt Porter <mporter@mvista.com> * Matt Porter <mporter@mvista.com>
* *
* Copyright 2001 MontaVista Software Inc. * Copyright 2001-2002 MontaVista Software Inc.
* *
* This program is free software; you can redistribute it and/or modify it * 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 * under the terms of the GNU General Public License as published by the
...@@ -70,7 +70,7 @@ extern char cmd_line[]; ...@@ -70,7 +70,7 @@ extern char cmd_line[];
* *
* First entry is the sensitivity (level/edge), second is the polarity. * First entry is the sensitivity (level/edge), second is the polarity.
*/ */
unsigned int cpc700_irq_assigns[27][2] = { unsigned int cpc700_irq_assigns[32][2] = {
{ 1, 1 }, /* IRQ 0: ECC Correctable Error - rising edge */ { 1, 1 }, /* IRQ 0: ECC Correctable Error - rising edge */
{ 1, 1 }, /* IRQ 1: PCI Write Mem Range - rising edge */ { 1, 1 }, /* IRQ 1: PCI Write Mem Range - rising edge */
{ 0, 1 }, /* IRQ 2: PCI Write Command Reg - active high */ { 0, 1 }, /* IRQ 2: PCI Write Command Reg - active high */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment