Port-i386 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Attaching piixide device before pdcsata device



        Hello.  The problem with what you want to do is that the OS can't tell
if a device is on the motherboard  or not.  Worse, right now, there is no
way to force the order in which things are probed.
        One way to work around this problem is to make all drives part of a
raidframe set.  I'm not sure what kind of appliance yo're building, but if
you tend to have even numbers of drives, then you can configure each of the
to be part of a raid1 raid set.  This way, your kernels and your fstab
files can be standard.  The only changing variable will be which drives are
part of which raid sets. And, you could script this as part of the install
by asking the installer to answer the question about which drives should be
on the root raid set and which would be on the secondary raid sets.  Once
answered, the system could then go ahead, installing standard kernels and
configuration files, which would work across all your configuration
variables.
-Brian

On Mar 28,  9:08am, Selvan wrote:
} Subject: Re: Attaching piixide device before pdcsata device
} Hi Brian,
} 
} I have tried hard-wiring the kernel just as you've described.
} The problem with this is, we use various types of motherboards and on 
} some of these motherboards, the primary drive is detected as wd1 if the 
} kernel is hard-wired.
} Because of the variations in unit setup, the ideal solution for us is 
} not to change the fstab file or the kernel configuration file but rather 
} to have the on-board drives detected and mapped first before the drives 
} on the Promise card.
} 
} Regards,
} 
} Selvan
} 
} 
} 
} 
} 
} 
} Brian Buhrow wrote:
} >     Hello.  The most reliable way to do this is to build a custom kernel
} > with lines that look like:
} >
} > [ ... ]
} > # 0x0000 means "use whatever the drive claims to support".
} > wd0 at atabus8 drive 0 flags 0x0000
} > wd* at atabus? drive ? flags 0x0000
} >
} >     We use this trick on a box with almost precisely the same setup as
} > yours, except that we only have one drive on the piix controller.  
} > In your original dmesg, note the atabus numbers to which the piixide drives
} > are attached, and then add the appropriate number of lines to your kernel
} > config, as shown above, changing the bus numbers as appropriate.  Then,
} > when you boot, you'll see the wd numbers get ordered in the way you want.
} >     Another way to skin this cat is to set the root drives up as a raidframe
} > device, with auto-configure turned on.  Then, no matter how the drives
} > attach, the appropriate root device will be mounted.  This is what we do in
} > situations where we have mirrored root drives or raid 5 sets.
} >
} >
} >     Hope that helps.
} > -Brian
} >
} >
} >     Here is the relevant portion of dmesg output for the machine using the
} > kernel config snippet referenced above.
} >
} > pdcsata0 port 0: device present, speed: 3.0Gb/s
} > pdcsata0 port 1: device present, speed: 3.0Gb/s
} > pdcsata0 port 2: device present, speed: 3.0Gb/s
} > pdcsata0 port 3: device present, speed: 1.5Gb/s
} > pdcsata1 port 0: device present, speed: 3.0Gb/s
} > pdcsata1 port 1: device present, speed: 3.0Gb/s
} > pdcsata1 port 2: device present, speed: 3.0Gb/s
} > pdcsata1 port 3: device present, speed: 1.5Gb/s
} > wd1 at atabus0 drive 0pdcsata0:0:0: lost interrupt
} >     type: ata tc_bcount: 512 tc_skip: 0
} > : <WDC WD5000KS-00MNB0>
} > wd1: drive supports 16-sector PIO transfers, LBA48 addressing
} > wd1: 465 GB, 969021 cyl, 16 head, 63 sec, 512 bytes/sect x 976773168 sectors
} > wd1: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
} > wd1(pdcsata0:0:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using 
DMA)
} > wd2 at atabus1 drive 0pdcsata0:1:0: lost interrupt
} >     type: ata tc_bcount: 512 tc_skip: 0
} > : <WDC WD5000KS-00MNB0>
} > wd2: drive supports 16-sector PIO transfers, LBA48 addressing
} > wd2: 465 GB, 969021 cyl, 16 head, 63 sec, 512 bytes/sect x 976773168 sectors
} > wd2: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
} > wd2(pdcsata0:1:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using 
DMA)
} > wd3 at atabus2 drive 0pdcsata0:2:0: lost interrupt
} >     type: ata tc_bcount: 512 tc_skip: 0
} > : <WDC WD5000KS-00MNB0>
} > wd3: drive supports 16-sector PIO transfers, LBA48 addressing
} > wd3: 465 GB, 969021 cyl, 16 head, 63 sec, 512 bytes/sect x 976773168 sectors
} > wd3: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
} > wd3(pdcsata0:2:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using 
DMA)
} > wd4 at atabus3 drive 0pdcsata0:3:0: lost interrupt
} >     type: ata tc_bcount: 512 tc_skip: 0
} > : <MAXTOR STM3500630AS>
} > wd4: drive supports 16-sector PIO transfers, LBA48 addressing
} > wd4: 465 GB, 969021 cyl, 16 head, 63 sec, 512 bytes/sect x 976773168 sectors
} > wd4: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
} > wd4(pdcsata0:3:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using 
DMA)
} > wd5 at atabus4 drive 0pdcsata1:0:0: lost interrupt
} >     type: ata tc_bcount: 512 tc_skip: 0
} > : <WDC WD5000KS-00MNB0>
} > wd5: drive supports 16-sector PIO transfers, LBA48 addressing
} > wd5: 465 GB, 969021 cyl, 16 head, 63 sec, 512 bytes/sect x 976773168 sectors
} > wd5: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
} > wd5(pdcsata1:0:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using 
DMA)
} > wd6 at atabus5 drive 0pdcsata1:1:0: lost interrupt
} >     type: ata tc_bcount: 512 tc_skip: 0
} > : <WDC WD5000KS-00MNB0>
} > wd6: drive supports 16-sector PIO transfers, LBA48 addressing
} > wd6: 465 GB, 969021 cyl, 16 head, 63 sec, 512 bytes/sect x 976773168 sectors
} > wd6: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
} > wd6(pdcsata1:1:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using 
DMA)
} > wd7 at atabus6 drive 0pdcsata1:2:0: lost interrupt
} >     type: ata tc_bcount: 512 tc_skip: 0
} > : <WDC WD5000KS-00MNB0>
} > wd7: drive supports 16-sector PIO transfers, LBA48 addressing
} > wd7: 465 GB, 969021 cyl, 16 head, 63 sec, 512 bytes/sect x 976773168 sectors
} > wd7: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
} > wd7(pdcsata1:2:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using 
DMA)
} > wd8 at atabus7 drive 0pdcsata1:3:0: lost interrupt
} >     type: ata tc_bcount: 512 tc_skip: 0
} > : <MAXTOR STM3500630AS>
} > wd8: drive supports 16-sector PIO transfers, LBA48 addressing
} > wd8: 465 GB, 969021 cyl, 16 head, 63 sec, 512 bytes/sect x 976773168 sectors
} > wd8: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 6 (Ultra/133)
} > wd8(pdcsata1:3:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using 
DMA)
} > wd0 at atabus8 drive 0: <Maxtor 5T060H6>
} > wd0: drive supports 16-sector PIO transfers, LBA addressing
} > wd0: 58644 MB, 119150 cyl, 16 head, 63 sec, 512 bytes/sect x 120103200 
sectors
} > wd0: 32-bit data port
} > wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
} > wd0(piixide0:0:0): using PIO mode 4, Ultra-DMA mode 5 (Ultra/100) (using 
DMA)
} > On Mar 27,  8:49am, Selvan wrote:
} > } Subject: Attaching piixide device before pdcsata device
} > } Hi all,
} > } 
} > } I'm faced with a problem that's proving quite difficult to solve. My 
} > } system is populated with 8 internal SATA drives. 4 drives connected to 
} > } the on-board SATA connectors. 4 drives connected to a Promise TX4 300. 
} > } The issue here is, at startup, the Promise card is detected first and 
} > } hence the drives on this card are mapped as wd0, wd1, wd2 and wd3 onto 
} > } the pdcsata device. Thereafter, the on-board drives are detected and 
} > } mapped as wd4, wd5, wd6 and wd7 onto the piixide devices. Is it possible 
} > } to have the order re-arranged such that the on-board drives are detected 
} > } and mapped first as wd0, wd1, wd2 and wd3?
} > } 
} > } The relevant portions of the dmesg file are listed below:
} > } 
} > } ppb0 at pci0 dev 30 function 0: Intel 82801BA Hub-PCI Bridge (rev. 0xe1)
} > } pci1 at ppb0 bus 1
} > } pci1: i/o space, memory space enabled
} > } pdcsata0 at pci1 dev 0 function 0
} > } pdcsata0: Promise PDC40718 SATA300 controller (rev. 0x02)
} > } pdcsata0: interrupting at ioapic0 pin 20 (irq 10)
} > } pdcsata0: bus-master DMA support present
} > } atabus0 at pdcsata0 channel 0
} > } atabus1 at pdcsata0 channel 1
} > } atabus2 at pdcsata0 channel 2
} > } atabus3 at pdcsata0 channel 3
} > } 
} > } piixide0 at pci0 dev 31 function 2
} > } piixide0: Intel 82801GB/GR Serial ATA/Raid Controller (ICH7) (rev. 0x01)
} > } piixide0: bus-master DMA support present
} > } piixide0: primary channel configured to native-PCI mode
} > } piixide0: using ioapic0 pin 19 (irq 11) for native-PCI interrupt
} > } atabus4 at piixide0 channel 0
} > } piixide0: secondary channel configured to native-PCI mode
} > } atabus5 at piixide0 channel 1
} > } 
} > } wd0 at atabus0 drive 0umass0 at uhub4 port 5 configuration 1 interface 0
} > } wd1 at atabus1 drive 0pdcsata0:1:0: lost interrupt
} > } wd2 at atabus2 drive 0pdcsata0:2:0: lost interrupt
} > } wd3 at atabus3 drive 0pdcsata0:3:0: lost interrupt
} > } wd4 at atabus4 drive 0: <WDC WD1000FYPS-01ZKB0>
} > } wd5 at atabus4 drive 1: <WDC WD1000FYPS-01ZKB0>
} > } wd6 at atabus5 drive 0: <WDC WD1000FYPS-01ZKB0>
} > } wd7 at atabus5 drive 1: <WDC WD1000FYPS-01ZKB0>
} > } 
} > } Any assistance with this would be greatly appreciated.
} > } 
} > } Regards,
} > } 
} > } Selvan Naidoo
} >   
} >> -- End of excerpt from Selvan
} >>     
} >
} >
} >
} >
} >
} >   
} 
>-- End of excerpt from Selvan




Home | Main Index | Thread Index | Old Index