summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/ppc/boot/common/misc-common.c5
-rw-r--r--arch/ppc/boot/common/serial_stub.c5
-rw-r--r--arch/ppc/boot/include/nonstdio.h2
-rw-r--r--arch/ppc/boot/simple/Makefile6
-rw-r--r--arch/ppc/boot/simple/chrpmap.S19
-rw-r--r--arch/ppc/boot/simple/chrpmap.c12
-rw-r--r--arch/ppc/boot/simple/legacy.S19
-rw-r--r--arch/ppc/boot/simple/misc-prep.c1
-rw-r--r--arch/ppc/boot/simple/misc-spruce.c3
-rw-r--r--arch/ppc/boot/simple/misc.c7
-rw-r--r--arch/ppc/boot/simple/prepmap.c12
-rw-r--r--arch/ppc/platforms/sbc82xx.c1
12 files changed, 41 insertions, 51 deletions
diff --git a/arch/ppc/boot/common/misc-common.c b/arch/ppc/boot/common/misc-common.c
index 868fa81b7708..98c80829a34a 100644
--- a/arch/ppc/boot/common/misc-common.c
+++ b/arch/ppc/boot/common/misc-common.c
@@ -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)
{
diff --git a/arch/ppc/boot/common/serial_stub.c b/arch/ppc/boot/common/serial_stub.c
index 2dc176ed0580..03dfaa01fa63 100644
--- a/arch/ppc/boot/common/serial_stub.c
+++ b/arch/ppc/boot/common/serial_stub.c
@@ -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)
{
diff --git a/arch/ppc/boot/include/nonstdio.h b/arch/ppc/boot/include/nonstdio.h
index 7a0f027f9ee1..f2b5526faef3 100644
--- a/arch/ppc/boot/include/nonstdio.h
+++ b/arch/ppc/boot/include/nonstdio.h
@@ -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);
diff --git a/arch/ppc/boot/simple/Makefile b/arch/ppc/boot/simple/Makefile
index e31b7e499122..8344108cd1a4 100644
--- a/arch/ppc/boot/simple/Makefile
+++ b/arch/ppc/boot/simple/Makefile
@@ -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
diff --git a/arch/ppc/boot/simple/chrpmap.S b/arch/ppc/boot/simple/chrpmap.S
deleted file mode 100644
index 7aba1c0d8003..000000000000
--- a/arch/ppc/boot/simple/chrpmap.S
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * 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
diff --git a/arch/ppc/boot/simple/chrpmap.c b/arch/ppc/boot/simple/chrpmap.c
new file mode 100644
index 000000000000..14d9e05d98bb
--- /dev/null
+++ b/arch/ppc/boot/simple/chrpmap.c
@@ -0,0 +1,12 @@
+/*
+ * 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);
+}
diff --git a/arch/ppc/boot/simple/legacy.S b/arch/ppc/boot/simple/legacy.S
deleted file mode 100644
index 1c7e2976433a..000000000000
--- a/arch/ppc/boot/simple/legacy.S
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * 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
diff --git a/arch/ppc/boot/simple/misc-prep.c b/arch/ppc/boot/simple/misc-prep.c
index da29deca4c52..75380ac41669 100644
--- a/arch/ppc/boot/simple/misc-prep.c
+++ b/arch/ppc/boot/simple/misc-prep.c
@@ -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 */
diff --git a/arch/ppc/boot/simple/misc-spruce.c b/arch/ppc/boot/simple/misc-spruce.c
index fa181ffb79ed..d012c39278fd 100644
--- a/arch/ppc/boot/simple/misc-spruce.c
+++ b/arch/ppc/boot/simple/misc-spruce.c
@@ -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
diff --git a/arch/ppc/boot/simple/misc.c b/arch/ppc/boot/simple/misc.c
index f09af4f28f10..f04d2d441df9 100644
--- a/arch/ppc/boot/simple/misc.c
+++ b/arch/ppc/boot/simple/misc.c
@@ -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);
}
diff --git a/arch/ppc/boot/simple/prepmap.c b/arch/ppc/boot/simple/prepmap.c
new file mode 100644
index 000000000000..c871a4db6e8c
--- /dev/null
+++ b/arch/ppc/boot/simple/prepmap.c
@@ -0,0 +1,12 @@
+/*
+ * 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);
+}
diff --git a/arch/ppc/platforms/sbc82xx.c b/arch/ppc/platforms/sbc82xx.c
index 41c8c6349c12..3a404a88cab1 100644
--- a/arch/ppc/platforms/sbc82xx.c
+++ b/arch/ppc/platforms/sbc82xx.c
@@ -240,7 +240,6 @@ m82xx_board_init(void)
/* Anything special for this platform */
callback_init_IRQ = ppc_md.init_IRQ;
- ppc_md.setup_arch = sbc82xx_setup_arch;
ppc_md.init_IRQ = sbc82xx_init_IRQ;
ppc_md.pci_map_irq = sbc82xx_pci_map_irq;
#ifdef CONFIG_GEN_RTC