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)
* on others it's an offset from a given location. -- Tom
*/
void ISA_init(unsigned long base)
{
ISA_io = (unsigned char *)base;
}
void
outb(int port, unsigned char val)
{
......
......@@ -11,11 +11,6 @@
* is" without any warranty of any kind, whether express or implied.
*/
void __attribute__ ((weak))
serial_fixups(void)
{
}
unsigned long __attribute__ ((weak))
serial_init(int chan, void *ignored)
{
......
......@@ -30,3 +30,5 @@ extern void puthex(unsigned long val);
extern void puts(const char *);
extern void udelay(long delay);
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
zimageinitrd-$(CONFIG_GEMINI) := zImage.initrd-STRIPELF
end-$(CONFIG_GEMINI) := gemini
extra.o-$(CONFIG_K2) := legacy.o
extra.o-$(CONFIG_K2) := prepmap.o
end-$(CONFIG_K2) := k2
cacheflag-$(CONFIG_K2) := -include $(clear_L2_L3)
......@@ -89,7 +89,7 @@ zimageinitrd-$(motorola) := zImage.initrd-PPLUS
end-$(motorola) := pplus
# Overrides previous assingment
extra.o-$(CONFIG_PPLUS) := legacy.o
extra.o-$(CONFIG_PPLUS) := prepmap.o
extra.o-$(CONFIG_LOPEC) := mpc10x_memory.o
zimage-$(pcore) := zImage-STRIPELF
......@@ -100,7 +100,7 @@ zimageinitrd-$(pcore) := zImage.initrd-STRIPELF
zimage-$(CONFIG_PPC_PREP) := zImage-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
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,
ofinit(OFW_interface);
}
board_isa_init();
#if defined(CONFIG_VGA_CONSOLE)
vga_init((unsigned char *)0xC0000000);
#endif /* CONFIG_VGA_CONSOLE */
......
......@@ -26,7 +26,6 @@ extern unsigned long decompress_kernel(unsigned long load_addr, int num_words,
/* Define some important locations of the Spruce. */
#define SPRUCE_PCI_CONFIG_ADDR 0xfec00000
#define SPRUCE_PCI_CONFIG_DATA 0xfec00004
#define SPRUCE_ISA_IO_BASE 0xf8000000
/* PCI configuration space access routines. */
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,
out_le32((unsigned *)pci_config_data, val);
}
unsigned long isa_io_base = SPRUCE_ISA_IO_BASE;
#define PCNET32_WIO_RDP 0x10
#define PCNET32_WIO_RAP 0x12
#define PCNET32_WIO_RESET 0x14
......
......@@ -97,7 +97,6 @@ decompress_kernel(unsigned long load_addr, int num_words, unsigned long cksum)
struct bi_record *rec;
unsigned long initrd_loc, TotalMemory = 0;
serial_fixups();
#ifdef CONFIG_SERIAL_8250_CONSOLE
com_port = serial_init(0, NULL);
#endif
......@@ -268,10 +267,16 @@ decompress_kernel(unsigned long load_addr, int num_words, unsigned long cksum)
return rec;
}
void __attribute__ ((weak))
board_isa_init(void)
{
}
/* Allow decompress_kernel to be hooked into. This is the default. */
void * __attribute__ ((weak))
load_kernel(unsigned long load_addr, int num_words, unsigned long cksum,
void *ign1, void *ign2)
{
board_isa_init();
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