lkml.org 
[lkml]   [1998]   [Sep]   [18]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
DateFri, 18 Sep 1998 00:05:04 -0500 (CDT)
From"Andre M. Hedrick" <>
SubjectRe: 2.1.122 is confused with two ide controllers (follow-up)
Don,

Try this patch against a pristine version of 2.1.122.

Boot off-board chipsets first support
CONFIG_BLK_DEV_OFFBOARD
  Normally, IDE controllers built into the motherboard (on-board
  controllers) are assigned to ide0 and ide1 while those on add-in
  PCI cards (off-board controllers) are relegated to ide2 and ide3.
  Saying Y to here will reverse the situation, with off-board
  controllers on ide0/1 and on-board controllers on ide2/3. This
  can improve the usability of some boot managers such as LILO
  when booting from a drive on an off-board controller.
  Note that this will rearrange the order of the hd* devices and
  may require modification of fstab and other files.

  If in doubt, say N.

Say NO and it should behave like 2.1.121.

I use the offboard controllers.
The test was to set this to "NO" and watch it get confused.
Next, I set it to "YES" and it booted with an offboard controller.

Cheers,
Andre Hedrick
Dyer Observatory
Vanderbilt University

Please let me know if there is a different problem that this does not fix.
If it solves your case, I will send it to Linus in the morning.

On Thu, 17 Sep 1998, Don Fisher wrote:

> I have a ASUS P55T2P4D main board with two ide disks and a cdrom using the
> onboard ide controller.  I also have a Promise ULTRA33 UDMA ide controller in
> one of my pci slots supporting other disks etc.  
> 
> Under 2.1.121 the hda1 disk is found correctly.  Under 2.1.122 the disks on the
> onboard controller are missed.  The root disk is hda1.  On boot I get the
> following message from 2.1.121
> 
> Partition check:
>   hda: hda1,hda2
>   hdb: hdb1,hdb2  
> 
> with everythng happy, while under 2.1.122 I get
> 
> Partition check:
>   hde: hde1,hde2
>   hdf: hdf1,hdf2
> 
> and a message that it can't find the root partition.  Any help would be
> appreciated.
> 
> don 
> -- 
> -------------------------------------------------------------------
> |    Don Fisher				  dfisher@as.arizona.edu  |
> |    MMT Observatory			  VOICE: (520)621-7647	  |
> |    University of Arizona    		  FAX:   (520)670-5740	  |           
> |    Tucson, AZ  85721                				  |             
> -------------------------------------------------------------------
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.rutgers.edu
> Please read the FAQ at http://www.tux.org/lkml/
> 


diff -ur linux-2.1.122-pristine/Documentation/Configure.help linux/Documentation/Configure.help
--- linux-2.1.122-pristine/Documentation/Configure.help	Wed Sep 16 15:25:56 1998
+++ linux/Documentation/Configure.help	Thu Sep 17 21:01:44 1998
@@ -431,6 +431,20 @@
 
   It is safe to say Y to this question.
 
+Boot off-board chipsets first support
+CONFIG_BLK_DEV_OFFBOARD
+  Normally, IDE controllers built into the motherboard (on-board
+  controllers) are assigned to ide0 and ide1 while those on add-in
+  PCI cards (off-board controllers) are relegated to ide2 and ide3.
+  Saying Y to here will reverse the situation, with off-board
+  controllers on ide0/1 and on-board controllers on ide2/3. This
+  can improve the usability of some boot managers such as LILO
+  when booting from a drive on an off-board controller.
+  Note that this will rearrange the order of the hd* devices and
+  may require modification of fstab and other files.
+
+  If in doubt, say N.
+
 Use DMA by default when available
 CONFIG_IDEDMA_AUTO
   Prior to kernel version 2.1.112, Linux used to automatically use
diff -ur linux-2.1.122-pristine/drivers/block/Config.in linux/drivers/block/Config.in
--- linux-2.1.122-pristine/drivers/block/Config.in	Wed Sep 16 15:25:56 1998
+++ linux/drivers/block/Config.in	Thu Sep 17 20:53:21 1998
@@ -33,6 +33,7 @@
       bool '   Generic PCI IDE chipset support' CONFIG_BLK_DEV_IDEPCI
       if [ "$CONFIG_BLK_DEV_IDEPCI" = "y" ]; then
         bool '     Generic PCI bus-master DMA support' CONFIG_BLK_DEV_IDEDMA
+        bool '     Boot off-board chipsets first support' CONFIG_BLK_DEV_OFFBOARD
         if [ "$CONFIG_BLK_DEV_IDEDMA" = "y" ]; then
           bool '     Use DMA by default when available' CONFIG_IDEDMA_AUTO
         fi
diff -ur linux-2.1.122-pristine/drivers/block/ide-pci.c linux/drivers/block/ide-pci.c
--- linux-2.1.122-pristine/drivers/block/ide-pci.c	Wed Sep 16 16:06:56 1998
+++ linux/drivers/block/ide-pci.c	Thu Sep 17 21:07:44 1998
@@ -117,29 +117,39 @@
 	unsigned int		extra;
 } ide_pci_device_t;
 
+#ifdef CONFIG_BLK_DEV_OFFBOARD
+#  define ON_BOARD		0
+#  define OFF_BOARD		1
+#  define NEVER_BOARD		0
+#else /* CONFIG_BLK_DEV_OFFBOARD */
+#  define ON_BOARD		1
+#  define OFF_BOARD		0
+#  define NEVER_BOARD		0
+#endif /* CONFIG_BLK_DEV_OFFBOARD */
+
 static ide_pci_device_t ide_pci_chipsets[] __initdata = {
-	{DEVID_PIIXa,	"PIIX",		NULL,		{{0x41,0x80,0x80}, {0x43,0x80,0x80}}, 	0x01,	0 },
-	{DEVID_PIIXb,	"PIIX",		NULL,		{{0x41,0x80,0x80}, {0x43,0x80,0x80}}, 	0x01,	0 },
-	{DEVID_PIIX3,	"PIIX3",	NULL,		{{0x41,0x80,0x80}, {0x43,0x80,0x80}}, 	0x01,	0 },
-	{DEVID_PIIX4,	"PIIX4",	NULL,		{{0x41,0x80,0x80}, {0x43,0x80,0x80}}, 	0x01,	0 },
-	{DEVID_VP_IDE,	"VP_IDE",	INIT_VIA82C586,	{{0x40,0x02,0x02}, {0x40,0x01,0x01}}, 	0x01,	0 },
-	{DEVID_PDC20246,"PDC20246",	NULL,		{{0x50,0x02,0x02}, {0x50,0x04,0x04}}, 	0x01,	16 },
-	{DEVID_RZ1000,	"RZ1000",	INIT_RZ1000,	{{0x00,0x00,0x00}, {0x00,0x00,0x00}}, 	0x01,	0 },
-	{DEVID_RZ1001,	"RZ1001",	INIT_RZ1000,	{{0x00,0x00,0x00}, {0x00,0x00,0x00}}, 	0x01,	0 },
-	{DEVID_CMD640,	"CMD640",	IDE_IGNORE,	{{0x00,0x00,0x00}, {0x00,0x00,0x00}}, 	0x01,	0 },
-	{DEVID_NS87410,	"NS87410",	NULL,		{{0x43,0x08,0x08}, {0x47,0x08,0x08}}, 	0x01,	0 },
-	{DEVID_SIS5513,	"SIS5513",	NULL,		{{0x4a,0x02,0x02}, {0x4a,0x04,0x04}}, 	0x01,	0 },
-	{DEVID_CMD646,	"CMD646",	INIT_CMD646,	{{0x00,0x00,0x00}, {0x51,0x80,0x80}}, 	0x01,	0 },
-	{DEVID_HT6565,	"HT6565",	NULL,		{{0x00,0x00,0x00}, {0x00,0x00,0x00}}, 	0x01,	0 },
-	{DEVID_OPTI621,	"OPTI621",	INIT_OPTI621,	{{0x45,0x80,0x00}, {0x40,0x08,0x00}}, 	0x01,	0 },
-	{DEVID_OPTI621X,"OPTI621X",	INIT_OPTI621,	{{0x45,0x80,0x00}, {0x40,0x08,0x00}}, 	0x01,	0 },
-	{DEVID_TRM290,	"TRM290",	INIT_TRM290,	{{0x00,0x00,0x00}, {0x00,0x00,0x00}}, 	0x01,	0 },
-	{DEVID_NS87415,	"NS87415",	INIT_NS87415,	{{0x00,0x00,0x00}, {0x00,0x00,0x00}}, 	0x01,	0 },
-	{DEVID_AEC6210,	"AEC6210",	NULL,		{{0x00,0x00,0x00}, {0x00,0x00,0x00}}, 	0x01,	0 },
-	{DEVID_W82C105,	"W82C105",	INIT_W82C105,	{{0x40,0x01,0x01}, {0x40,0x10,0x10}}, 	0x01,	0 },
-	{DEVID_UM8886BF,"UM8886BF",	NULL,		{{0x00,0x00,0x00}, {0x00,0x00,0x00}}, 	0x01,	0 },
-	{DEVID_HPT343,	"HPT343",	NULL,		{{0x00,0x00,0x00}, {0x00,0x00,0x00}},	0x00,	16 },
-	{IDE_PCI_DEVID_NULL, "PCI_IDE",	NULL,		{{0x00,0x00,0x00}, {0x00,0x00,0x00}}, 	0x01,	0 }};
+	{DEVID_PIIXa,	"PIIX",		NULL,		{{0x41,0x80,0x80}, {0x43,0x80,0x80}}, 	ON_BOARD,	0 },
+	{DEVID_PIIXb,	"PIIX",		NULL,		{{0x41,0x80,0x80}, {0x43,0x80,0x80}}, 	ON_BOARD,	0 },
+	{DEVID_PIIX3,	"PIIX3",	NULL,		{{0x41,0x80,0x80}, {0x43,0x80,0x80}}, 	ON_BOARD,	0 },
+	{DEVID_PIIX4,	"PIIX4",	NULL,		{{0x41,0x80,0x80}, {0x43,0x80,0x80}}, 	ON_BOARD,	0 },
+	{DEVID_VP_IDE,	"VP_IDE",	INIT_VIA82C586,	{{0x40,0x02,0x02}, {0x40,0x01,0x01}}, 	ON_BOARD,	0 },
+	{DEVID_PDC20246,"PDC20246",	NULL,		{{0x50,0x02,0x02}, {0x50,0x04,0x04}}, 	OFF_BOARD,	16 },
+	{DEVID_RZ1000,	"RZ1000",	INIT_RZ1000,	{{0x00,0x00,0x00}, {0x00,0x00,0x00}}, 	ON_BOARD,	0 },
+	{DEVID_RZ1001,	"RZ1001",	INIT_RZ1000,	{{0x00,0x00,0x00}, {0x00,0x00,0x00}}, 	ON_BOARD,	0 },
+	{DEVID_CMD640,	"CMD640",	IDE_IGNORE,	{{0x00,0x00,0x00}, {0x00,0x00,0x00}}, 	ON_BOARD,	0 },
+	{DEVID_NS87410,	"NS87410",	NULL,		{{0x43,0x08,0x08}, {0x47,0x08,0x08}}, 	ON_BOARD,	0 },
+	{DEVID_SIS5513,	"SIS5513",	NULL,		{{0x4a,0x02,0x02}, {0x4a,0x04,0x04}}, 	ON_BOARD,	0 },
+	{DEVID_CMD646,	"CMD646",	INIT_CMD646,	{{0x00,0x00,0x00}, {0x51,0x80,0x80}}, 	ON_BOARD,	0 },
+	{DEVID_HT6565,	"HT6565",	NULL,		{{0x00,0x00,0x00}, {0x00,0x00,0x00}}, 	ON_BOARD,	0 },
+	{DEVID_OPTI621,	"OPTI621",	INIT_OPTI621,	{{0x45,0x80,0x00}, {0x40,0x08,0x00}}, 	ON_BOARD,	0 },
+	{DEVID_OPTI621X,"OPTI621X",	INIT_OPTI621,	{{0x45,0x80,0x00}, {0x40,0x08,0x00}}, 	ON_BOARD,	0 },
+	{DEVID_TRM290,	"TRM290",	INIT_TRM290,	{{0x00,0x00,0x00}, {0x00,0x00,0x00}}, 	ON_BOARD,	0 },
+	{DEVID_NS87415,	"NS87415",	INIT_NS87415,	{{0x00,0x00,0x00}, {0x00,0x00,0x00}}, 	ON_BOARD,	0 },
+	{DEVID_AEC6210,	"AEC6210",	NULL,		{{0x00,0x00,0x00}, {0x00,0x00,0x00}}, 	OFF_BOARD,	0 },
+	{DEVID_W82C105,	"W82C105",	INIT_W82C105,	{{0x40,0x01,0x01}, {0x40,0x10,0x10}}, 	ON_BOARD,	0 },
+	{DEVID_UM8886BF,"UM8886BF",	NULL,		{{0x00,0x00,0x00}, {0x00,0x00,0x00}}, 	ON_BOARD,	0 },
+	{DEVID_HPT343,	"HPT343",	NULL,		{{0x00,0x00,0x00}, {0x00,0x00,0x00}},	NEVER_BOARD,	16 },
+	{IDE_PCI_DEVID_NULL, "PCI_IDE",	NULL,		{{0x00,0x00,0x00}, {0x00,0x00,0x00}}, 	ON_BOARD,	0 }};
 
 /*
  * This allows offboard ide-pci cards the enable a BIOS, verify interrupt
@@ -175,6 +185,8 @@
 					pci_write_config_byte(dev, (PCI_INTERRUPT_LINE)|0x80, irq1);	/* 0xbc */
 				}
 			}
+			return dev->irq;
+		case PCI_DEVICE_ID_TTI_HPT343:
 			return dev->irq;
 		default:
 			break;
\
 
 \ /
  Last update: 2005-03-22 13:44    [from the cache]
©2003-2008