[mips] Fix boot from ATA hard drives (Closes: #584784):
- Set io_map_base for several PCI bridges lacking it - Replace per-platform built-in IDE drivers with libata-based drivers - Enable BLK_DEV_SD as built-in on all platforms svn path=/dists/trunk/linux-2.6/; revision=15867
This commit is contained in:
parent
ef951cd9a1
commit
14fd830fa6
|
@ -2,6 +2,10 @@ linux-2.6 (2.6.34-1~experimental.3) UNRELEASED; urgency=low
|
|||
|
||||
[ Ben Hutchings ]
|
||||
* ipr: add writeq definition if needed (Closes: #584840)
|
||||
* [mips] Fix boot from ATA hard drives (Closes: #584784):
|
||||
- Set io_map_base for several PCI bridges lacking it
|
||||
- Replace per-platform built-in IDE drivers with libata-based drivers
|
||||
- Enable BLK_DEV_SD as built-in on all platforms
|
||||
|
||||
-- Ben Hutchings <ben@decadent.org.uk> Wed, 09 Jun 2010 23:03:38 +0100
|
||||
|
||||
|
|
|
@ -134,12 +134,14 @@ CONFIG_SATA_SIL=y
|
|||
# CONFIG_SATA_VITESSE is not set
|
||||
CONFIG_PATA_CMD64X=y
|
||||
CONFIG_ATA_GENERIC=y
|
||||
CONFIG_PATA_HPT366=y
|
||||
CONFIG_PATA_MPIIX=y
|
||||
CONFIG_PATA_OLDPIIX=y
|
||||
CONFIG_PATA_NETCELL=y
|
||||
CONFIG_PATA_NS87410=y
|
||||
CONFIG_PATA_PDC_OLD=y
|
||||
CONFIG_PATA_PDC2027X=y
|
||||
CONFIG_PATA_PLATFORM=y
|
||||
CONFIG_PATA_SIL680=y
|
||||
|
||||
##
|
||||
|
@ -359,38 +361,7 @@ CONFIG_I2C_VOODOO3=m
|
|||
##
|
||||
## file: drivers/ide/Kconfig
|
||||
##
|
||||
CONFIG_IDE=y
|
||||
# CONFIG_BLK_DEV_IDE_SATA is not set
|
||||
CONFIG_IDE_GD=y
|
||||
CONFIG_IDE_GD_ATA=y
|
||||
CONFIG_BLK_DEV_IDECD=m
|
||||
CONFIG_BLK_DEV_IDETAPE=m
|
||||
# CONFIG_IDE_TASK_IOCTL is not set
|
||||
CONFIG_IDE_GENERIC=y
|
||||
# CONFIG_BLK_DEV_OFFBOARD is not set
|
||||
# CONFIG_BLK_DEV_GENERIC is not set
|
||||
# CONFIG_BLK_DEV_OPTI621 is not set
|
||||
# CONFIG_BLK_DEV_AEC62XX is not set
|
||||
# CONFIG_BLK_DEV_ALI15X3 is not set
|
||||
# CONFIG_BLK_DEV_AMD74XX is not set
|
||||
# CONFIG_BLK_DEV_CMD64X is not set
|
||||
# CONFIG_BLK_DEV_TRIFLEX is not set
|
||||
# CONFIG_BLK_DEV_CY82C693 is not set
|
||||
# CONFIG_BLK_DEV_CS5520 is not set
|
||||
# CONFIG_BLK_DEV_CS5530 is not set
|
||||
CONFIG_BLK_DEV_HPT366=y
|
||||
# CONFIG_BLK_DEV_JMICRON is not set
|
||||
# CONFIG_BLK_DEV_SC1200 is not set
|
||||
CONFIG_BLK_DEV_PIIX=y
|
||||
# CONFIG_BLK_DEV_IT821X is not set
|
||||
# CONFIG_BLK_DEV_NS87415 is not set
|
||||
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
|
||||
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
|
||||
# CONFIG_BLK_DEV_SVWKS is not set
|
||||
# CONFIG_BLK_DEV_SIIMAGE is not set
|
||||
# CONFIG_BLK_DEV_SLC90E66 is not set
|
||||
# CONFIG_BLK_DEV_TRM290 is not set
|
||||
# CONFIG_BLK_DEV_VIA82CXXX is not set
|
||||
# CONFIG_IDE is not set
|
||||
|
||||
##
|
||||
## file: drivers/input/gameport/Kconfig
|
||||
|
@ -869,6 +840,7 @@ CONFIG_RTC_DRV_M48T86=m
|
|||
## file: drivers/scsi/Kconfig
|
||||
##
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_SCSI_DPT_I2O=m
|
||||
CONFIG_SCSI_ARCMSR=m
|
||||
CONFIG_SCSI_HPTIOP=m
|
||||
|
|
|
@ -120,12 +120,14 @@ CONFIG_SATA_SIL=y
|
|||
CONFIG_SATA_INIC162X=m
|
||||
CONFIG_PATA_CMD64X=y
|
||||
CONFIG_ATA_GENERIC=y
|
||||
CONFIG_PATA_HPT366=y
|
||||
CONFIG_PATA_MPIIX=y
|
||||
CONFIG_PATA_OLDPIIX=y
|
||||
CONFIG_PATA_NETCELL=y
|
||||
CONFIG_PATA_NS87410=y
|
||||
CONFIG_PATA_PDC_OLD=y
|
||||
CONFIG_PATA_PDC2027X=y
|
||||
CONFIG_PATA_PLATFORM=y
|
||||
CONFIG_PATA_SIL680=y
|
||||
|
||||
##
|
||||
|
@ -348,40 +350,7 @@ CONFIG_I2C_VOODOO3=m
|
|||
##
|
||||
## file: drivers/ide/Kconfig
|
||||
##
|
||||
CONFIG_IDE=y
|
||||
# CONFIG_BLK_DEV_IDE_SATA is not set
|
||||
CONFIG_IDE_GD=y
|
||||
CONFIG_IDE_GD_ATA=y
|
||||
CONFIG_BLK_DEV_IDECD=m
|
||||
CONFIG_BLK_DEV_IDETAPE=m
|
||||
# CONFIG_IDE_TASK_IOCTL is not set
|
||||
CONFIG_IDE_PROC_FS=y
|
||||
CONFIG_IDE_GENERIC=y
|
||||
CONFIG_IDEPCI_PCIBUS_ORDER=y
|
||||
# CONFIG_BLK_DEV_OFFBOARD is not set
|
||||
# CONFIG_BLK_DEV_GENERIC is not set
|
||||
# CONFIG_BLK_DEV_OPTI621 is not set
|
||||
# CONFIG_BLK_DEV_AEC62XX is not set
|
||||
# CONFIG_BLK_DEV_ALI15X3 is not set
|
||||
# CONFIG_BLK_DEV_AMD74XX is not set
|
||||
# CONFIG_BLK_DEV_CMD64X is not set
|
||||
# CONFIG_BLK_DEV_TRIFLEX is not set
|
||||
# CONFIG_BLK_DEV_CY82C693 is not set
|
||||
# CONFIG_BLK_DEV_CS5520 is not set
|
||||
# CONFIG_BLK_DEV_CS5530 is not set
|
||||
CONFIG_BLK_DEV_HPT366=y
|
||||
# CONFIG_BLK_DEV_JMICRON is not set
|
||||
# CONFIG_BLK_DEV_SC1200 is not set
|
||||
CONFIG_BLK_DEV_PIIX=y
|
||||
# CONFIG_BLK_DEV_IT821X is not set
|
||||
# CONFIG_BLK_DEV_NS87415 is not set
|
||||
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
|
||||
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
|
||||
# CONFIG_BLK_DEV_SVWKS is not set
|
||||
# CONFIG_BLK_DEV_SIIMAGE is not set
|
||||
# CONFIG_BLK_DEV_SLC90E66 is not set
|
||||
# CONFIG_BLK_DEV_TRM290 is not set
|
||||
# CONFIG_BLK_DEV_VIA82CXXX is not set
|
||||
# CONFIG_IDE is not set
|
||||
|
||||
##
|
||||
## file: drivers/ieee1394/Kconfig
|
||||
|
@ -916,6 +885,7 @@ CONFIG_RTC_DRV_M48T86=m
|
|||
## file: drivers/scsi/Kconfig
|
||||
##
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
CONFIG_SCSI_ARCMSR=m
|
||||
CONFIG_SCSI_HPTIOP=m
|
||||
CONFIG_SCSI_DMX3191D=m
|
||||
|
|
|
@ -120,7 +120,7 @@ CONFIG_CMDLINE=""
|
|||
##
|
||||
## file: drivers/ata/Kconfig
|
||||
##
|
||||
CONFIG_ATA=m
|
||||
CONFIG_ATA=y
|
||||
CONFIG_SATA_AHCI=m
|
||||
CONFIG_SATA_SIL24=m
|
||||
CONFIG_SATA_SVW=m
|
||||
|
@ -140,12 +140,14 @@ CONFIG_PATA_ALI=m
|
|||
CONFIG_PATA_AMD=m
|
||||
CONFIG_PATA_CMD64X=m
|
||||
CONFIG_PATA_CS5530=m
|
||||
CONFIG_PATA_CYPRESS=y
|
||||
CONFIG_PATA_EFAR=m
|
||||
CONFIG_PATA_TRIFLEX=m
|
||||
CONFIG_PATA_MPIIX=m
|
||||
CONFIG_PATA_OLDPIIX=m
|
||||
CONFIG_PATA_NS87415=m
|
||||
CONFIG_PATA_PDC_OLD=m
|
||||
CONFIG_PATA_PLATFORM=y
|
||||
CONFIG_PATA_SC1200=m
|
||||
CONFIG_PATA_SERVERWORKS=m
|
||||
CONFIG_PATA_PDC2027X=m
|
||||
|
@ -288,36 +290,7 @@ CONFIG_I2C_STUB=m
|
|||
##
|
||||
## file: drivers/ide/Kconfig
|
||||
##
|
||||
CONFIG_IDE=y
|
||||
# CONFIG_BLK_DEV_IDE_SATA is not set
|
||||
CONFIG_IDE_GD=y
|
||||
CONFIG_IDE_GD_ATA=y
|
||||
CONFIG_BLK_DEV_IDECD=m
|
||||
CONFIG_BLK_DEV_IDETAPE=m
|
||||
CONFIG_IDE_GENERIC=y
|
||||
# CONFIG_BLK_DEV_OFFBOARD is not set
|
||||
# CONFIG_BLK_DEV_GENERIC is not set
|
||||
# CONFIG_BLK_DEV_OPTI621 is not set
|
||||
# CONFIG_BLK_DEV_AEC62XX is not set
|
||||
# CONFIG_BLK_DEV_ALI15X3 is not set
|
||||
# CONFIG_BLK_DEV_AMD74XX is not set
|
||||
# CONFIG_BLK_DEV_CMD64X is not set
|
||||
# CONFIG_BLK_DEV_TRIFLEX is not set
|
||||
CONFIG_BLK_DEV_CY82C693=m
|
||||
# CONFIG_BLK_DEV_CS5520 is not set
|
||||
# CONFIG_BLK_DEV_CS5530 is not set
|
||||
CONFIG_BLK_DEV_HPT366=m
|
||||
# CONFIG_BLK_DEV_SC1200 is not set
|
||||
CONFIG_BLK_DEV_PIIX=m
|
||||
# CONFIG_BLK_DEV_IT821X is not set
|
||||
# CONFIG_BLK_DEV_NS87415 is not set
|
||||
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
|
||||
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
|
||||
# CONFIG_BLK_DEV_SVWKS is not set
|
||||
# CONFIG_BLK_DEV_SIIMAGE is not set
|
||||
# CONFIG_BLK_DEV_SLC90E66 is not set
|
||||
CONFIG_BLK_DEV_TRM290=m
|
||||
# CONFIG_BLK_DEV_VIA82CXXX is not set
|
||||
# CONFIG_IDE is not set
|
||||
|
||||
##
|
||||
## file: drivers/infiniband/Kconfig
|
||||
|
@ -566,6 +539,8 @@ CONFIG_BROADCOM_PHY=y
|
|||
##
|
||||
## file: drivers/scsi/Kconfig
|
||||
##
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
# CONFIG_SCSI_MULTI_LUN is not set
|
||||
# CONFIG_SCSI_CONSTANTS is not set
|
||||
# CONFIG_SCSI_LOGGING is not set
|
||||
|
|
|
@ -88,6 +88,13 @@ CONFIG_CMDLINE=""
|
|||
# CONFIG_TOSHIBA_RBTX4927 is not set
|
||||
# CONFIG_TOSHIBA_RBTX4938 is not set
|
||||
|
||||
##
|
||||
## file: drivers/ata/Kconfig
|
||||
##
|
||||
CONFIG_ATA=y
|
||||
CONFIG_PATA_PLATFORM=y
|
||||
CONFIG_PATA_VIA=y
|
||||
|
||||
##
|
||||
## file: drivers/base/Kconfig
|
||||
##
|
||||
|
@ -163,36 +170,7 @@ CONFIG_VT_CONSOLE=y
|
|||
##
|
||||
## file: drivers/ide/Kconfig
|
||||
##
|
||||
CONFIG_IDE=y
|
||||
# CONFIG_BLK_DEV_IDE_SATA is not set
|
||||
CONFIG_IDE_GD=y
|
||||
CONFIG_IDE_GD_ATA=y
|
||||
# CONFIG_BLK_DEV_IDECD is not set
|
||||
# CONFIG_BLK_DEV_IDETAPE is not set
|
||||
CONFIG_IDE_GENERIC=y
|
||||
# CONFIG_BLK_DEV_OFFBOARD is not set
|
||||
# CONFIG_BLK_DEV_GENERIC is not set
|
||||
# CONFIG_BLK_DEV_OPTI621 is not set
|
||||
# CONFIG_BLK_DEV_AEC62XX is not set
|
||||
# CONFIG_BLK_DEV_ALI15X3 is not set
|
||||
# CONFIG_BLK_DEV_AMD74XX is not set
|
||||
# CONFIG_BLK_DEV_CMD64X is not set
|
||||
# CONFIG_BLK_DEV_TRIFLEX is not set
|
||||
# CONFIG_BLK_DEV_CY82C693 is not set
|
||||
# CONFIG_BLK_DEV_CS5520 is not set
|
||||
# CONFIG_BLK_DEV_CS5530 is not set
|
||||
# CONFIG_BLK_DEV_HPT366 is not set
|
||||
# CONFIG_BLK_DEV_SC1200 is not set
|
||||
# CONFIG_BLK_DEV_PIIX is not set
|
||||
# CONFIG_BLK_DEV_IT821X is not set
|
||||
# CONFIG_BLK_DEV_NS87415 is not set
|
||||
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
|
||||
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
|
||||
# CONFIG_BLK_DEV_SVWKS is not set
|
||||
# CONFIG_BLK_DEV_SIIMAGE is not set
|
||||
# CONFIG_BLK_DEV_SLC90E66 is not set
|
||||
# CONFIG_BLK_DEV_TRM290 is not set
|
||||
CONFIG_BLK_DEV_VIA82CXXX=y
|
||||
# CONFIG_IDE is not set
|
||||
|
||||
##
|
||||
## file: drivers/infiniband/Kconfig
|
||||
|
@ -590,6 +568,8 @@ CONFIG_RTC_DRV_CMOS=y
|
|||
##
|
||||
## file: drivers/scsi/Kconfig
|
||||
##
|
||||
CONFIG_SCSI=y
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
# CONFIG_SCSI_MULTI_LUN is not set
|
||||
# CONFIG_SCSI_CONSTANTS is not set
|
||||
# CONFIG_SCSI_LOGGING is not set
|
||||
|
|
85
debian/patches/bugfix/mips/mips-Set-io_map_base-for-several-PCI-bridges-lacking.patch
vendored
Normal file
85
debian/patches/bugfix/mips/mips-Set-io_map_base-for-several-PCI-bridges-lacking.patch
vendored
Normal file
|
@ -0,0 +1,85 @@
|
|||
From 75841ebf0d47558653b21d6cc88942c397d40a98 Mon Sep 17 00:00:00 2001
|
||||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Sun, 13 Jun 2010 21:23:29 +0100
|
||||
Subject: [PATCH] mips: Set io_map_base for several PCI bridges lacking it
|
||||
|
||||
Several MIPS platforms don't set pci_controller::io_map_base for their
|
||||
PCI bridges. This results in a panic in pci_iomap(). (The panic is
|
||||
conditional on CONFIG_PCI_DOMAINS, but that is now enabled for all PCI
|
||||
MIPS systems.)
|
||||
|
||||
I have tested the change to Malta in qemu; the other platforms not at
|
||||
all.
|
||||
---
|
||||
arch/mips/mti-malta/malta-pci.c | 2 ++
|
||||
arch/mips/nxp/pnx8550/common/pci.c | 1 +
|
||||
arch/mips/nxp/pnx8550/common/setup.c | 2 +-
|
||||
arch/mips/pci/ops-pmcmsp.c | 1 +
|
||||
arch/mips/pci/pci-yosemite.c | 1 +
|
||||
5 files changed, 6 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/arch/mips/mti-malta/malta-pci.c b/arch/mips/mti-malta/malta-pci.c
|
||||
index 2fbfa1a..bf80921 100644
|
||||
--- a/arch/mips/mti-malta/malta-pci.c
|
||||
+++ b/arch/mips/mti-malta/malta-pci.c
|
||||
@@ -247,6 +247,8 @@ void __init mips_pcibios_init(void)
|
||||
iomem_resource.end &= 0xfffffffffULL; /* 64 GB */
|
||||
ioport_resource.end = controller->io_resource->end;
|
||||
|
||||
+ controller->io_map_base = mips_io_port_base;
|
||||
+
|
||||
register_pci_controller(controller);
|
||||
}
|
||||
|
||||
diff --git a/arch/mips/nxp/pnx8550/common/pci.c b/arch/mips/nxp/pnx8550/common/pci.c
|
||||
index eee4f3d..98e86dd 100644
|
||||
--- a/arch/mips/nxp/pnx8550/common/pci.c
|
||||
+++ b/arch/mips/nxp/pnx8550/common/pci.c
|
||||
@@ -44,6 +44,7 @@ extern struct pci_ops pnx8550_pci_ops;
|
||||
|
||||
static struct pci_controller pnx8550_controller = {
|
||||
.pci_ops = &pnx8550_pci_ops,
|
||||
+ .io_map_base = PNX8550_PORT_BASE,
|
||||
.io_resource = &pci_io_resource,
|
||||
.mem_resource = &pci_mem_resource,
|
||||
};
|
||||
diff --git a/arch/mips/nxp/pnx8550/common/setup.c b/arch/mips/nxp/pnx8550/common/setup.c
|
||||
index 2aed50f..64246c9 100644
|
||||
--- a/arch/mips/nxp/pnx8550/common/setup.c
|
||||
+++ b/arch/mips/nxp/pnx8550/common/setup.c
|
||||
@@ -113,7 +113,7 @@ void __init plat_mem_setup(void)
|
||||
PNX8550_GLB2_ENAB_INTA_O = 0;
|
||||
|
||||
/* IO/MEM resources. */
|
||||
- set_io_port_base(KSEG1);
|
||||
+ set_io_port_base(PNX8550_PORT_BASE);
|
||||
ioport_resource.start = 0;
|
||||
ioport_resource.end = ~0;
|
||||
iomem_resource.start = 0;
|
||||
diff --git a/arch/mips/pci/ops-pmcmsp.c b/arch/mips/pci/ops-pmcmsp.c
|
||||
index 04b3147..b7c03d8 100644
|
||||
--- a/arch/mips/pci/ops-pmcmsp.c
|
||||
+++ b/arch/mips/pci/ops-pmcmsp.c
|
||||
@@ -944,6 +944,7 @@ static struct pci_controller msp_pci_controller = {
|
||||
.pci_ops = &msp_pci_ops,
|
||||
.mem_resource = &pci_mem_resource,
|
||||
.mem_offset = 0,
|
||||
+ .io_map_base = MSP_PCI_IOSPACE_BASE,
|
||||
.io_resource = &pci_io_resource,
|
||||
.io_offset = 0
|
||||
};
|
||||
diff --git a/arch/mips/pci/pci-yosemite.c b/arch/mips/pci/pci-yosemite.c
|
||||
index 0357946..cf5e1a2 100644
|
||||
--- a/arch/mips/pci/pci-yosemite.c
|
||||
+++ b/arch/mips/pci/pci-yosemite.c
|
||||
@@ -54,6 +54,7 @@ static int __init pmc_yosemite_setup(void)
|
||||
panic(ioremap_failed);
|
||||
|
||||
set_io_port_base(io_v_base);
|
||||
+ py_controller.io_map_base = io_v_base;
|
||||
TITAN_WRITE(RM9000x2_OCD_LKM7, TITAN_READ(RM9000x2_OCD_LKM7) | 1);
|
||||
|
||||
ioport_resource.end = TITAN_IO_SIZE - 1;
|
||||
--
|
||||
1.7.1
|
||||
|
|
@ -1 +1,2 @@
|
|||
+ bugfix/all/ipr-add-writeq-definition-if-needed.patch
|
||||
+ bugfix/mips/mips-Set-io_map_base-for-several-PCI-bridges-lacking.patch
|
||||
|
|
Loading…
Reference in New Issue