Commit 741288e1 authored by Tom Rini's avatar Tom Rini

ppc32: Rework the hooks for serial in the bootwrapper.

Signed-off-by: default avatarHollis Blanchard <hollisb@us.ibm.com>
Signed-off-by: default avatarTom Rini <trini@kernel.crashing.org>
parent 5af22ea9
...@@ -526,6 +526,11 @@ _dump_buf(unsigned char *p, int s) ...@@ -526,6 +526,11 @@ _dump_buf(unsigned char *p, int s)
* on others it's an offset from a given location. -- Tom * on others it's an offset from a given location. -- Tom
*/ */
void ISA_init(unsigned long base)
{
ISA_io = (unsigned char *)base;
}
void void
outb(int port, unsigned char val) outb(int port, unsigned char val)
{ {
......
...@@ -11,11 +11,6 @@ ...@@ -11,11 +11,6 @@
* is" without any warranty of any kind, whether express or implied. * is" without any warranty of any kind, whether express or implied.
*/ */
void __attribute__ ((weak))
serial_fixups(void)
{
}
unsigned long __attribute__ ((weak)) unsigned long __attribute__ ((weak))
serial_init(int chan, void *ignored) serial_init(int chan, void *ignored)
{ {
......
...@@ -30,3 +30,5 @@ extern void puthex(unsigned long val); ...@@ -30,3 +30,5 @@ extern void puthex(unsigned long val);
extern void puts(const char *); extern void puts(const char *);
extern void udelay(long delay); extern void udelay(long delay);
extern unsigned char inb(int port); extern unsigned char inb(int port);
extern void board_isa_init(void);
extern void ISA_init(unsigned long base);
...@@ -73,7 +73,7 @@ zimageinitrd-$(CONFIG_OCOTEA) := zImage.initrd-TREE ...@@ -73,7 +73,7 @@ zimageinitrd-$(CONFIG_OCOTEA) := zImage.initrd-TREE
zimageinitrd-$(CONFIG_GEMINI) := zImage.initrd-STRIPELF zimageinitrd-$(CONFIG_GEMINI) := zImage.initrd-STRIPELF
end-$(CONFIG_GEMINI) := gemini end-$(CONFIG_GEMINI) := gemini
extra.o-$(CONFIG_K2) := legacy.o extra.o-$(CONFIG_K2) := prepmap.o
end-$(CONFIG_K2) := k2 end-$(CONFIG_K2) := k2
cacheflag-$(CONFIG_K2) := -include $(clear_L2_L3) cacheflag-$(CONFIG_K2) := -include $(clear_L2_L3)
...@@ -89,7 +89,7 @@ zimageinitrd-$(motorola) := zImage.initrd-PPLUS ...@@ -89,7 +89,7 @@ zimageinitrd-$(motorola) := zImage.initrd-PPLUS
end-$(motorola) := pplus end-$(motorola) := pplus
# Overrides previous assingment # Overrides previous assingment
extra.o-$(CONFIG_PPLUS) := legacy.o extra.o-$(CONFIG_PPLUS) := prepmap.o
extra.o-$(CONFIG_LOPEC) := mpc10x_memory.o extra.o-$(CONFIG_LOPEC) := mpc10x_memory.o
zimage-$(pcore) := zImage-STRIPELF zimage-$(pcore) := zImage-STRIPELF
...@@ -100,7 +100,7 @@ zimageinitrd-$(pcore) := zImage.initrd-STRIPELF ...@@ -100,7 +100,7 @@ zimageinitrd-$(pcore) := zImage.initrd-STRIPELF
zimage-$(CONFIG_PPC_PREP) := zImage-PPLUS zimage-$(CONFIG_PPC_PREP) := zImage-PPLUS
zimageinitrd-$(CONFIG_PPC_PREP) := zImage.initrd-PPLUS zimageinitrd-$(CONFIG_PPC_PREP) := zImage.initrd-PPLUS
extra.o-$(CONFIG_PPC_PREP) := legacy.o extra.o-$(CONFIG_PPC_PREP) := prepmap.o
misc-$(CONFIG_PPC_PREP) += misc-prep.o mpc10x_memory.o misc-$(CONFIG_PPC_PREP) += misc-prep.o mpc10x_memory.o
end-$(CONFIG_PPC_PREP) := prep end-$(CONFIG_PPC_PREP) := prep
......
/*
* arch/ppc/boot/simple/chrpmap.S
*
* Author: Tom Rini <trini@mvista.com>
*
* This will go and setup ISA_io to 0xFE00000 and return.
*/
#include <asm/ppc_asm.h>
.text
.globl serial_fixups
serial_fixups:
lis r3,ISA_io@h /* Load ISA_io */
ori r3,r3,ISA_io@l
lis r4,0xFE00 /* Load the value, 0xFE00000 */
stw r4,0(r3) /* store */
blr
/*
* 2004 (C) IBM. This file is licensed under the terms of the GNU General
* Public License version 2. This program is licensed "as is" without any
* warranty of any kind, whether express or implied.
*/
#include <nonstdio.h>
void board_isa_init(void)
{
ISA_init(0xFE000000);
}
/*
* arch/ppc/boot/simple/legacy.S
*
* Author: Tom Rini <trini@mvista.com>
*
* This will go and setup ISA_io to 0x8000000 and return.
*/
#include <asm/ppc_asm.h>
.text
.globl serial_fixups
serial_fixups:
lis r3,ISA_io@h /* Load ISA_io */
ori r3,r3,ISA_io@l
lis r4,0x8000 /* Load the value, 0x8000000 */
stw r4,0(r3) /* store */
blr
...@@ -88,6 +88,7 @@ load_kernel(unsigned long load_addr, int num_words, unsigned long cksum, ...@@ -88,6 +88,7 @@ load_kernel(unsigned long load_addr, int num_words, unsigned long cksum,
ofinit(OFW_interface); ofinit(OFW_interface);
} }
board_isa_init();
#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 */
......
...@@ -26,7 +26,6 @@ extern unsigned long decompress_kernel(unsigned long load_addr, int num_words, ...@@ -26,7 +26,6 @@ extern unsigned long decompress_kernel(unsigned long load_addr, int num_words,
/* Define some important locations of the Spruce. */ /* Define some important locations of the Spruce. */
#define SPRUCE_PCI_CONFIG_ADDR 0xfec00000 #define SPRUCE_PCI_CONFIG_ADDR 0xfec00000
#define SPRUCE_PCI_CONFIG_DATA 0xfec00004 #define SPRUCE_PCI_CONFIG_DATA 0xfec00004
#define SPRUCE_ISA_IO_BASE 0xf8000000
/* PCI configuration space access routines. */ /* PCI configuration space access routines. */
unsigned int *pci_config_address = (unsigned int *)SPRUCE_PCI_CONFIG_ADDR; unsigned int *pci_config_address = (unsigned int *)SPRUCE_PCI_CONFIG_ADDR;
...@@ -86,8 +85,6 @@ void cpc700_pcibios_write_config_dword(unsigned char bus, unsigned char dev_fn, ...@@ -86,8 +85,6 @@ void cpc700_pcibios_write_config_dword(unsigned char bus, unsigned char dev_fn,
out_le32((unsigned *)pci_config_data, val); out_le32((unsigned *)pci_config_data, val);
} }
unsigned long isa_io_base = SPRUCE_ISA_IO_BASE;
#define PCNET32_WIO_RDP 0x10 #define PCNET32_WIO_RDP 0x10
#define PCNET32_WIO_RAP 0x12 #define PCNET32_WIO_RAP 0x12
#define PCNET32_WIO_RESET 0x14 #define PCNET32_WIO_RESET 0x14
......
...@@ -97,7 +97,6 @@ decompress_kernel(unsigned long load_addr, int num_words, unsigned long cksum) ...@@ -97,7 +97,6 @@ decompress_kernel(unsigned long load_addr, int num_words, unsigned long cksum)
struct bi_record *rec; struct bi_record *rec;
unsigned long initrd_loc, TotalMemory = 0; unsigned long initrd_loc, TotalMemory = 0;
serial_fixups();
#ifdef CONFIG_SERIAL_8250_CONSOLE #ifdef CONFIG_SERIAL_8250_CONSOLE
com_port = serial_init(0, NULL); com_port = serial_init(0, NULL);
#endif #endif
...@@ -268,10 +267,16 @@ decompress_kernel(unsigned long load_addr, int num_words, unsigned long cksum) ...@@ -268,10 +267,16 @@ decompress_kernel(unsigned long load_addr, int num_words, unsigned long cksum)
return rec; return rec;
} }
void __attribute__ ((weak))
board_isa_init(void)
{
}
/* Allow decompress_kernel to be hooked into. This is the default. */ /* Allow decompress_kernel to be hooked into. This is the default. */
void * __attribute__ ((weak)) void * __attribute__ ((weak))
load_kernel(unsigned long load_addr, int num_words, unsigned long cksum, load_kernel(unsigned long load_addr, int num_words, unsigned long cksum,
void *ign1, void *ign2) void *ign1, void *ign2)
{ {
board_isa_init();
return decompress_kernel(load_addr, num_words, cksum); return decompress_kernel(load_addr, num_words, cksum);
} }
/*
* 2004 (C) IBM. This file is licensed under the terms of the GNU General
* Public License version 2. This program is licensed "as is" without any
* warranty of any kind, whether express or implied.
*/
#include <nonstdio.h>
void board_isa_init(void)
{
ISA_init(0x80000000);
}
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