* [PATCH 0/2] Port Malta setup patches from linux-mti
@ 2009-07-10 8:57 Raghu Gandham
2009-07-10 8:58 ` [PATCH 1/2] [MTI] Enable PIIX4 PCI2.1 compliancy on Malta Raghu Gandham
2009-07-10 8:58 ` [PATCH 2/2] Added coherentio command line option for DMA_NONCOHERENT kernel Raghu Gandham
0 siblings, 2 replies; 3+ messages in thread
From: Raghu Gandham @ 2009-07-10 8:57 UTC (permalink / raw)
To: linux-mips; +Cc: raghu, chris
The following series of patches port Malta setup patches from linux-mti.git repository to the head of tree.
---
Chris Dearman (2):
Added coherentio command line option for DMA_NONCOHERENT kernel
[MTI] Enable PIIX4 PCI2.1 compliancy on Malta
arch/mips/include/asm/gcmpregs.h | 18 ++--
arch/mips/include/asm/gic.h | 188 ++++---------------------------------
arch/mips/kernel/irq-gic.c | 116 +++++++++--------------
arch/mips/kernel/setup.c | 3 -
arch/mips/kernel/smp-mt.c | 10 ++
arch/mips/kernel/vpe.c | 3 -
arch/mips/mti-malta/malta-amon.c | 7 +
arch/mips/mti-malta/malta-int.c | 101 +++++++++++---------
arch/mips/mti-malta/malta-pci.c | 14 ++-
arch/mips/mti-malta/malta-setup.c | 111 ++++++++++++++++++++++
10 files changed, 271 insertions(+), 300 deletions(-)
^ permalink raw reply [flat|nested] 3+ messages in thread* [PATCH 1/2] [MTI] Enable PIIX4 PCI2.1 compliancy on Malta
2009-07-10 8:57 [PATCH 0/2] Port Malta setup patches from linux-mti Raghu Gandham
@ 2009-07-10 8:58 ` Raghu Gandham
2009-07-10 8:58 ` [PATCH 2/2] Added coherentio command line option for DMA_NONCOHERENT kernel Raghu Gandham
1 sibling, 0 replies; 3+ messages in thread
From: Raghu Gandham @ 2009-07-10 8:58 UTC (permalink / raw)
To: linux-mips; +Cc: raghu, chris
From: Chris Dearman <chris@mips.com>
Signed-off-by: Chris Dearman <chris@mips.com>
---
arch/mips/mti-malta/malta-setup.c | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/arch/mips/mti-malta/malta-setup.c b/arch/mips/mti-malta/malta-setup.c
index dc78b89..69f5f9c 100644
--- a/arch/mips/mti-malta/malta-setup.c
+++ b/arch/mips/mti-malta/malta-setup.c
@@ -223,3 +223,14 @@ void __init plat_mem_setup(void)
board_be_init = malta_be_init;
board_be_handler = malta_be_handler;
}
+/* Enable PCI 2.1 compatibility in PIIX4 */
+static void __init quirk_dlcsetup(struct pci_dev *dev)
+{
+ u8 odlc, ndlc;
+ (void) pci_read_config_byte(dev, 0x82, &odlc);
+ /* Enable passive releases and delayed transaction */
+ ndlc = odlc | 7;
+ (void) pci_write_config_byte(dev, 0x82, ndlc);
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_0,
+ quirk_dlcsetup);
^ permalink raw reply related [flat|nested] 3+ messages in thread* [PATCH 2/2] Added coherentio command line option for DMA_NONCOHERENT kernel
2009-07-10 8:57 [PATCH 0/2] Port Malta setup patches from linux-mti Raghu Gandham
2009-07-10 8:58 ` [PATCH 1/2] [MTI] Enable PIIX4 PCI2.1 compliancy on Malta Raghu Gandham
@ 2009-07-10 8:58 ` Raghu Gandham
1 sibling, 0 replies; 3+ messages in thread
From: Raghu Gandham @ 2009-07-10 8:58 UTC (permalink / raw)
To: linux-mips; +Cc: raghu, chris
From: Chris Dearman <chris@mips.com>
Signed-off-by: Chris Dearman (chris@mips.com)
---
arch/mips/mti-malta/malta-setup.c | 100 +++++++++++++++++++++++++++++++++++++
1 files changed, 100 insertions(+), 0 deletions(-)
diff --git a/arch/mips/mti-malta/malta-setup.c b/arch/mips/mti-malta/malta-setup.c
index 69f5f9c..3f52c31 100644
--- a/arch/mips/mti-malta/malta-setup.c
+++ b/arch/mips/mti-malta/malta-setup.c
@@ -32,6 +32,7 @@
#include <asm/mips-boards/maltaint.h>
#include <asm/dma.h>
#include <asm/traps.h>
+#include <asm/gcmpregs.h>
#ifdef CONFIG_VT
#include <linux/console.h>
#endif
@@ -105,6 +106,103 @@ static void __init fd_activate(void)
}
#endif
+int coherentio = -1;
+static int __init setcoherentio(char *str)
+{
+ if (coherentio < 0)
+ pr_info("Command line checking done before"
+ " plat_setup_iocoherency!!\n");
+ if (coherentio == 0)
+ pr_info("Command line enabling coherentio"
+ " (this will break...)!!\n");
+
+ coherentio = 1;
+ pr_info("Hardware DMA cache coherency (command line)\n");
+ return 1;
+}
+__setup("coherentio", setcoherentio);
+
+static int __init setnocoherentio(char *str)
+{
+ if (coherentio < 0)
+ pr_info("Command line checking done before"
+ " plat_setup_iocoherency!!\n");
+ if (coherentio == 1)
+ pr_info("Command line disabling coherentio\n");
+
+ coherentio = 0;
+ pr_info("Software DMA cache coherency (command line)\n");
+ return 1;
+}
+__setup("nocoherentio", setnocoherentio);
+
+static int __init
+plat_enable_iocoherency(void)
+{
+ int supported = 0;
+ if (mips_revision_sconid == MIPS_REVISION_SCON_BONITO) {
+ if (BONITO_PCICACHECTRL & BONITO_PCICACHECTRL_CPUCOH_PRES) {
+ BONITO_PCICACHECTRL |= BONITO_PCICACHECTRL_CPUCOH_EN;
+ pr_info("Enabled Bonito CPU coherency\n");
+ supported = 1;
+ }
+ if (strstr(prom_getcmdline(), "iobcuncached")) {
+ BONITO_PCICACHECTRL &= ~BONITO_PCICACHECTRL_IOBCCOH_EN;
+ BONITO_PCIMEMBASECFG = BONITO_PCIMEMBASECFG &
+ ~(BONITO_PCIMEMBASECFG_MEMBASE0_CACHED |
+ BONITO_PCIMEMBASECFG_MEMBASE1_CACHED);
+ pr_info("Disabled Bonito IOBC coherency\n");
+ } else {
+ BONITO_PCICACHECTRL |= BONITO_PCICACHECTRL_IOBCCOH_EN;
+ BONITO_PCIMEMBASECFG |=
+ (BONITO_PCIMEMBASECFG_MEMBASE0_CACHED |
+ BONITO_PCIMEMBASECFG_MEMBASE1_CACHED);
+ pr_info("Enabled Bonito IOBC coherency\n");
+ }
+ } else if (gcmp_niocu() != 0) {
+ /* Nothing special needs to be done to enable coherency */
+ pr_info("CMP IOCU detected\n");
+ if ((*(unsigned int *)0xbf403000 & 0x81) != 0x81) {
+ pr_crit("IOCU OPERATION DISABLED BY SWITCH"
+ " - DEFAULTING TO SW IO COHERENCY\n");
+ return 0;
+ }
+ supported = 1;
+ }
+ return supported;
+}
+
+static void __init
+plat_setup_iocoherency(void)
+{
+#ifdef CONFIG_DMA_NONCOHERENT
+ /*
+ * Kernel has been configured with software coherency
+ * but we might choose to turn it off
+ */
+ if (plat_enable_iocoherency()) {
+ if (coherentio == 0)
+ pr_info("Hardware DMA cache coherency supported"
+ " but disabled from command line\n");
+ else {
+ coherentio = 1;
+ printk(KERN_INFO "Hardware DMA cache coherency\n");
+ }
+ } else {
+ if (coherentio == 1)
+ pr_info("Hardware DMA cache coherency not supported"
+ " but enabled from command line\n");
+ else {
+ coherentio = 0;
+ pr_info("Software DMA cache coherency\n");
+ }
+ }
+#else
+ if (!plat_enable_iocoherency())
+ panic("Hardware DMA cache coherency not supported");
+#endif
+}
+
#ifdef CONFIG_BLK_DEV_IDE
static void __init pci_clock_check(void)
{
@@ -207,6 +305,8 @@ void __init plat_mem_setup(void)
if (mips_revision_sconid == MIPS_REVISION_SCON_BONITO)
bonito_quirks_setup();
+ plat_setup_iocoherency();
+
#ifdef CONFIG_BLK_DEV_IDE
pci_clock_check();
#endif
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-07-10 8:59 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-10 8:57 [PATCH 0/2] Port Malta setup patches from linux-mti Raghu Gandham
2009-07-10 8:58 ` [PATCH 1/2] [MTI] Enable PIIX4 PCI2.1 compliancy on Malta Raghu Gandham
2009-07-10 8:58 ` [PATCH 2/2] Added coherentio command line option for DMA_NONCOHERENT kernel Raghu Gandham
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.