From: Jun Sun <jsun@mvista.com>
To: linux-mips@linux-mips.org
Cc: jsun@mvista.com
Subject: [PATCH 2.6] make swarm compile and run again
Date: Tue, 9 Mar 2004 18:15:50 -0800 [thread overview]
Message-ID: <20040310021550.GT31326@mvista.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 305 bytes --]
Ralf,
This patch makes swarm compile and run again on 2.6.
I had to introduce a global function pointer, board_pcibios_init.
This setup needs ioremap() which is too early for any other
board setup hooks.
I think other boards will need this hookup too (e.g., NEC vr7701)
Does the patch look ok?
Jun
[-- Attachment #2: swarm.patch --]
[-- Type: text/plain, Size: 3656 bytes --]
diff -Nru linux/arch/mips/pci/pci.c.orig linux/arch/mips/pci/pci.c
--- linux/arch/mips/pci/pci.c.orig 2004-03-09 17:40:10.000000000 -0800
+++ linux/arch/mips/pci/pci.c 2004-03-09 17:43:23.000000000 -0800
@@ -28,6 +28,8 @@
unsigned int pci_probe = PCI_ASSIGN_ALL_BUSSES;
+void (*board_pcibios_init)(void) __initdata;
+
/*
* The PCI controller list.
*/
@@ -118,6 +120,9 @@
int next_busno;
int need_domain_info = 0;
+ if (board_pcibios_init)
+ board_pcibios_init();
+
/* Scan all of the recorded PCI controllers. */
for (next_busno = 0, hose = hose_head; hose; hose = hose->next) {
diff -Nru linux/arch/mips/pci/pci-sb1250.c.orig linux/arch/mips/pci/pci-sb1250.c
--- linux/arch/mips/pci/pci-sb1250.c.orig 2004-03-09 16:38:36.000000000 -0800
+++ linux/arch/mips/pci/pci-sb1250.c 2004-03-09 17:39:55.000000000 -0800
@@ -84,6 +84,11 @@
*(u32 *) (cfg_space + (addr & ~3)) = data;
}
+int pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
+{
+ return dev->irq;
+}
+
/*
* Some checks before doing config cycles:
* In PCI Device Mode, hide everything on bus 0 except the LDT host
@@ -194,10 +199,18 @@
.io_resource = &sb1250_io_resource
};
-int __init pcibios_init(void) xxx This needs to be called somehow ...
+int __init sb1250_pcibios_init(void)
{
uint32_t cmdreg;
uint64_t reg;
+ extern int pci_probe_only;
+
+ /* CFE will assign PCI resources */
+ pci_probe_only = 1;
+
+ /* fake resource limit to avoid errors */
+ iomem_resource.end = 0xffffffff;
+ ioport_resource.end = 0xffffffff;
cfg_space =
ioremap(A_PHYS_LDTPCI_CFG_MATCH_BITS, 16 * 1024 * 1024);
diff -Nru linux/arch/mips/sibyte/swarm/setup.c.orig linux/arch/mips/sibyte/swarm/setup.c
--- linux/arch/mips/sibyte/swarm/setup.c.orig 2004-03-09 16:40:21.000000000 -0800
+++ linux/arch/mips/sibyte/swarm/setup.c 2004-03-09 17:52:42.000000000 -0800
@@ -34,12 +34,14 @@
#include <asm/reboot.h>
#include <asm/time.h>
#include <asm/traps.h>
+#include <asm/pci_channel.h>
#include <asm/sibyte/sb1250.h>
#include <asm/sibyte/sb1250_regs.h>
#include <asm/sibyte/sb1250_genbus.h>
#include <asm/sibyte/board.h>
extern void sb1250_setup(void);
+extern void sb1250_pcibios_init(void);
extern int xicor_probe(void);
extern int xicor_set_time(unsigned long);
@@ -80,7 +82,7 @@
return (is_fixup ? MIPS_BE_FIXUP : MIPS_BE_FATAL);
}
-static void __init swarm_setup(void)
+static int __init swarm_setup(void)
{
extern int panic_timeout;
@@ -131,6 +133,12 @@
};
/* XXXKW for CFE, get lines/cols from environment */
#endif
+
+#ifdef CONFIG_SIBYTE_HAS_PCI
+ board_pcibios_init = sb1250_pcibios_init;
+#endif
+
+ return 0;
}
early_initcall(swarm_setup);
diff -Nru linux/drivers/net/sb1250-mac.c.orig linux/drivers/net/sb1250-mac.c
diff -Nru linux/include/asm-mips/sibyte/board.h.orig linux/include/asm-mips/sibyte/board.h
--- linux/include/asm-mips/sibyte/board.h.orig 2004-01-05 10:48:39.000000000 -0800
+++ linux/include/asm-mips/sibyte/board.h 2004-03-09 17:52:17.000000000 -0800
@@ -56,8 +56,6 @@
#else
-void swarm_setup(void);
-
#ifdef LEDS_PHYS
extern void setleds(char *str);
#else
diff -Nru linux/include/asm-mips/pci_channel.h.orig linux/include/asm-mips/pci_channel.h
--- linux/include/asm-mips/pci_channel.h.orig 2003-11-13 18:35:35.000000000 -0800
+++ linux/include/asm-mips/pci_channel.h 2004-03-09 17:38:54.000000000 -0800
@@ -43,4 +43,10 @@
*/
extern int pcibios_map_irq(struct pci_dev *dev, u8 slot, u8 pin);
+/*
+ * board pci initialization routine. If set, it is called at the beginning
+ * of pcibios_init().
+ */
+extern void (*board_pcibios_init)(void);
+
#endif /* __ASM_PCI_CHANNEL_H */
next reply other threads:[~2004-03-10 2:15 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-10 2:15 Jun Sun [this message]
2004-03-10 19:07 ` [PATCH 2.6] make swarm compile and run again Jun Sun
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20040310021550.GT31326@mvista.com \
--to=jsun@mvista.com \
--cc=linux-mips@linux-mips.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox