* Re: Changes for IDE on PREP Hardware
[not found] <38710186.B7930E52@talknet.de>
@ 2000-01-05 5:24 ` Cort Dougan
2000-01-05 21:13 ` Alois Fertl
2000-01-05 23:41 ` Matt Porter
0 siblings, 2 replies; 9+ messages in thread
From: Cort Dougan @ 2000-01-05 5:24 UTC (permalink / raw)
To: Alois Fertl; +Cc: LinuxppcDev
} Attached is a patch which allows to work Motorola PREP hardware (like
} Blackhawk) to use IDE devices (disk and cdrom). The patch tries to
} selectively introduce the changes for the Motorola hardware only.
} IBM's can stay with their irq 13 for IDE and with their preferred
} method of non swapped data stream. I have no chance to test on IBM.
How would this work if both irqs arrive at the same time?
Johnnie, Matt - can you test this out on your systems?
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Changes for IDE on PREP Hardware
2000-01-05 5:24 ` Changes for IDE on PREP Hardware Cort Dougan
@ 2000-01-05 21:13 ` Alois Fertl
2000-01-05 23:41 ` Matt Porter
1 sibling, 0 replies; 9+ messages in thread
From: Alois Fertl @ 2000-01-05 21:13 UTC (permalink / raw)
To: Cort Dougan; +Cc: LinuxppcDev
Cort Dougan wrote:
>
> } Attached is a patch which allows to work Motorola PREP hardware (like
> } Blackhawk) to use IDE devices (disk and cdrom). The patch tries to
> } selectively introduce the changes for the Motorola hardware only.
> } IBM's can stay with their irq 13 for IDE and with their preferred
> } method of non swapped data stream. I have no chance to test on IBM.
>
> How would this work if both irqs arrive at the same time?
>
> Johnnie, Matt - can you test this out on your systems?
Which two irqs do you mean?
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Changes for IDE on PREP Hardware
2000-01-05 5:24 ` Changes for IDE on PREP Hardware Cort Dougan
2000-01-05 21:13 ` Alois Fertl
@ 2000-01-05 23:41 ` Matt Porter
2000-01-06 12:15 ` Eric Valette
2000-01-12 21:27 ` Alois Fertl
1 sibling, 2 replies; 9+ messages in thread
From: Matt Porter @ 2000-01-05 23:41 UTC (permalink / raw)
To: Cort Dougan; +Cc: Alois Fertl, LinuxppcDev
[-- Attachment #1: Type: text/plain, Size: 1379 bytes --]
On Tue, Jan 04, 2000 at 10:24:21PM -0700, Cort Dougan wrote:
>
> } Attached is a patch which allows to work Motorola PREP hardware (like
> } Blackhawk) to use IDE devices (disk and cdrom). The patch tries to
> } selectively introduce the changes for the Motorola hardware only.
> } IBM's can stay with their irq 13 for IDE and with their preferred
> } method of non swapped data stream. I have no chance to test on IBM.
>
> How would this work if both irqs arrive at the same time?
>
> Johnnie, Matt - can you test this out on your systems?
Alois' IDE patch is a subset of the functionality that has made it into
2.2.14 from our IDE patch. This patch doesn't account for the secondary
IDE controller on irq 15 among other things. I'm attaching our full
patch as submitted versus 2.2.14pre4 so everybody can see the code I'm
talking about. Note that changes to ide-pci.c, ide-probe.c, and sl82c105.c
in the patch got dropped and Alan said "maybe for 2.2.15". The full patch
was tested on every board MCG has made with IDE.
As for the 8259 patch, I think it may help the problem but will
probably cause some bad situations disabling interrupts like that. I
will test it out and see if it can be used or made better so we can
get these PReP 8259 problems behind us.
--
Matt Porter
mmporter@home.com
This is Linux Country. On a quiet night, you can hear Windows reboot.
[-- Attachment #2: prepide-2.2.14pre4.patch --]
[-- Type: text/plain, Size: 11891 bytes --]
Index: linux/arch/ppc/kernel/prep_pci.c
diff -u linux/arch/ppc/kernel/prep_pci.c:1.1.1.1.2.3 linux/arch/ppc/kernel/prep_pci.c:1.1.1.1.2.3.2.3
--- linux/arch/ppc/kernel/prep_pci.c:1.1.1.1.2.3 Wed Sep 1 09:44:56 1999
+++ linux/arch/ppc/kernel/prep_pci.c Wed Nov 3 15:03:27 1999
@@ -170,7 +170,7 @@
0, /* Slot 8 - unused */
0, /* Slot 9 - unused */
0, /* Slot 10 - unxued */
- 0, /* Slot 11 - unused */
+ 0x1e, /* Slot 11 - PCI-ISA/IDE/USB */
0, /* Slot 12 - unused */
0, /* Slot 13 - unused */
2, /* Slot 14 - Ethernet */
@@ -198,7 +198,7 @@
0, /* Slot 8 - unused */
0, /* Slot 9 - unused */
0, /* Slot 10 - unxued */
- 0, /* Slot 11 - unused */
+ 0x1e, /* Slot 11 - PCI-ISA/IDE/USB */
0, /* Slot 12 - unused */
0, /* Slot 13 - unused */
2, /* Slot 14 - Ethernet */
@@ -224,7 +224,7 @@
0, /* Slot 8 - unused */
0, /* Slot 9 - unused */
0, /* Slot 10 - unused */
- 0, /* Slot 11 - unused */
+ 0x1e, /* Slot 11 - PCI-ISA/IDE/USB */
3, /* Slot 12 - SCSI */
0, /* Slot 13 - unused */
2, /* Slot 14 - Ethernet */
@@ -253,7 +253,7 @@
0, /* Slot 8 - unused */
0, /* Slot 9 - unused */
0, /* Slot 10 - unused */
- 0, /* Slot 11 - unused */
+ 0x1e, /* Slot 11 - PCI-ISA/IDE/USB */
3, /* Slot 12 - SCSI */
0, /* Slot 13 - unused */
2, /* Slot 14 - Ethernet 1 */
@@ -1076,40 +1076,91 @@
return;
}
+int motopenpic_to_irq(int n)
+{
+ if (n & 0xF0) {
+ return (n & 0x0F);
+ } else {
+ return(openpic_to_irq(n));
+ }
+}
+
+void prep_pib_init(void)
+{
+unsigned char reg;
+unsigned short short_reg;
+
+struct pci_dev *dev = NULL;
+
+ if (( _prep_type == _PREP_Motorola) && (OpenPIC)) {
+ /*
+ * Perform specific configuration for the Via Tech or
+ * or Winbond PCI-ISA-Bridge part.
+ */
+ if ((dev = pci_find_device(PCI_VENDOR_ID_VIA,
+ PCI_DEVICE_ID_VIA_82C586_1, dev))) {
+ /*
+ * PPCBUG does not set the enable bits
+ * for the IDE device. Force them on here.
+ */
+ pcibios_read_config_byte(dev->bus->number,
+ dev->devfn, 0x40, ®);
+
+ reg |= 0x03; /* IDE: Chip Enable Bits */
+ pcibios_write_config_byte(dev->bus->number,
+ dev->devfn, 0x40, reg);
+
+ } else if ((dev = pci_find_device(PCI_VENDOR_ID_WINBOND,
+ PCI_DEVICE_ID_WINBOND_83C553, dev))) {
+ /*
+ * Clear the PCI Interrupt Routing Control Register.
+ */
+ short_reg = 0x0000;
+ pcibios_write_config_word(dev->bus->number,
+ dev->devfn, 0x44, short_reg);
+ }
+ }
+}
__initfunc(
void
prep_pcibios_fixup(void))
{
- struct pci_dev *dev;
- extern unsigned char *Motherboard_map;
- extern unsigned char *Motherboard_routes;
- unsigned char i;
-
- if ( _prep_type == _PREP_Radstone )
- {
- printk("Radstone boards require no PCI fixups\n");
+extern unsigned char *Motherboard_map;
+extern unsigned char *Motherboard_routes;
+unsigned char i;
+struct pci_dev *dev;
+
+ if (_prep_type == _PREP_Radstone) {
+ printk("Radstone boards require no PCI fixups\n");
return;
- }
+ }
prep_route_pci_interrupts();
+ prep_pib_init();
+
printk("Setting PCI interrupts for a \"%s\"\n", Motherboard_map_name);
+
if (OpenPIC) {
- /* PCI interrupts are controlled by the OpenPIC */
- for(dev=pci_devices; dev; dev=dev->next) {
- if (dev->bus->number == 0) {
- dev->irq = openpic_to_irq(Motherboard_map[PCI_SLOT(dev->devfn)]);
- pcibios_write_config_byte(dev->bus->number, dev->devfn, PCI_INTERRUPT_PIN, dev->irq);
- } else {
- if (Motherboard_non0 != NULL)
- Motherboard_non0(dev);
- }
+
+ /* PCI interrupts are controlled by the OpenPIC */
+ for(dev=pci_devices; dev; dev=dev->next) {
+ if (dev->bus->number == 0) {
+ dev->irq =
+ motopenpic_to_irq(Motherboard_map[PCI_SLOT(dev->devfn)]);
+
+ pcibios_write_config_byte(dev->bus->number, dev->devfn,
+ PCI_INTERRUPT_PIN, dev->irq);
+ } else {
+ if (Motherboard_non0 != NULL)
+ Motherboard_non0(dev);
}
- return;
+
+ }
+ return;
}
- for(dev=pci_devices; dev; dev=dev->next)
- {
+ for(dev=pci_devices; dev; dev=dev->next) {
/*
* Use our old hard-coded kludge to figure out what
* irq this device uses. This is necessary on things
@@ -1118,29 +1169,26 @@
unsigned char d = PCI_SLOT(dev->devfn);
dev->irq = Motherboard_routes[Motherboard_map[d]];
- for ( i = 0 ; i <= 5 ; i++ )
- {
- if ( dev->base_address[i] > 0x10000000 )
- {
- printk("Relocating PCI address %lx -> %lx\n",
- dev->base_address[i],
- (dev->base_address[i] & 0x00FFFFFF)
- | 0x01000000);
- dev->base_address[i] =
- (dev->base_address[i] & 0x00FFFFFF) | 0x01000000;
- pci_write_config_dword(dev,
- PCI_BASE_ADDRESS_0+(i*0x4),
- dev->base_address[i] );
- }
+ for ( i = 0 ; i <= 5 ; i++ ) {
+ if ( dev->base_address[i] > 0x10000000 ) {
+ printk("Relocating PCI address %lx -> %lx\n",
+ dev->base_address[i],
+ (dev->base_address[i] & 0x00FFFFFF)|0x01000000);
+
+ dev->base_address[i] = (dev->base_address[i] &
+ 0x00FFFFFF)|0x01000000;
+ pci_write_config_dword(dev,
+ PCI_BASE_ADDRESS_0+(i*0x4),
+ dev->base_address[i] );
+ }
}
#if 0
- /*
- * If we have residual data and if it knows about this
- * device ask it what the irq is.
- * -- Cort
- */
- ppcd = residual_find_device_id( ~0L, dev->device,
- -1,-1,-1, 0);
+ /*
+ * If we have residual data and if it knows about this
+ * device ask it what the irq is.
+ * -- Cort
+ */
+ ppcd = residual_find_device_id( ~0L, dev->device, -1,-1,-1, 0);
#endif
}
}
Index: linux/arch/ppc/kernel/prep_setup.c
diff -u linux/arch/ppc/kernel/prep_setup.c:1.1.1.1.2.3 linux/arch/ppc/kernel/prep_setup.c:1.1.1.1.2.3.2.2
--- linux/arch/ppc/kernel/prep_setup.c:1.1.1.1.2.3 Wed Sep 1 09:44:56 1999
+++ linux/arch/ppc/kernel/prep_setup.c Thu Oct 21 15:53:24 1999
@@ -628,25 +628,36 @@
void
prep_ide_insw(ide_ioreg_t port, void *buf, int ns)
{
- _insw((unsigned short *)((port)+_IO_BASE), buf, ns);
+ ide_insw(((port)+(_IO_BASE)), buf, ns);
}
void
prep_ide_outsw(ide_ioreg_t port, void *buf, int ns)
{
- _outsw((unsigned short *)((port)+_IO_BASE), buf, ns);
+ ide_outsw(((port)+_IO_BASE), buf, ns);
}
int
prep_ide_default_irq(ide_ioreg_t base)
{
- switch (base) {
- case 0x1f0: return 13;
- case 0x170: return 13;
- case 0x1e8: return 11;
- case 0x168: return 10;
- default:
- return 0;
+ if ( _prep_type == _PREP_IBM ) {
+ switch (base) {
+ case 0x1f0: return 13;
+ case 0x170: return 13;
+ case 0x1e8: return 11;
+ case 0x168: return 10;
+ default:
+ return 0;
+ }
+ } else {
+ switch (base) {
+ case 0x1f0: return 14;
+ case 0x170: return 14;
+ case 0x1e8: return 15;
+ case 0x168: return 15;
+ default:
+ return 0;
+ }
}
}
@@ -687,6 +698,7 @@
void
prep_ide_fix_driveid(struct hd_driveid *id)
{
+ ppc_generic_ide_fix_driveid(id);
}
__initfunc(void
Index: linux/drivers/block/ide-pci.c
diff -u linux/drivers/block/ide-pci.c:1.1.1.1 linux/drivers/block/ide-pci.c:1.1.1.1.6.1
--- linux/drivers/block/ide-pci.c:1.1.1.1 Wed Jul 14 10:06:39 1999
+++ linux/drivers/block/ide-pci.c Wed Oct 13 09:54:39 1999
@@ -322,6 +322,7 @@
/*
* Can we trust the reported IRQ?
*/
+
pciirq = dev->irq;
if ((dev->class & ~(0xfa)) != ((PCI_CLASS_STORAGE_IDE << 8) | 5)) {
printk("%s: not 100%% native mode: will probe irqs later\n", d->name);
@@ -381,8 +382,10 @@
mate->serialized = 1;
}
}
- if (IDE_PCI_DEVID_EQ(d->devid, DEVID_UM8886A) ||
- IDE_PCI_DEVID_EQ(d->devid, DEVID_UM8886BF))
+ if ( (IDE_PCI_DEVID_EQ(d->devid, DEVID_UM8886A)) ||
+ (IDE_PCI_DEVID_EQ(d->devid, DEVID_UM8886BF)) ||
+ (IDE_PCI_DEVID_EQ(d->devid, DEVID_W82C105)) ||
+ (IDE_PCI_DEVID_EQ(d->devid, DEVID_VP_IDE)) )
hwif->irq = hwif->channel ? 15 : 14;
#ifdef CONFIG_BLK_DEV_IDEDMA
Index: linux/drivers/block/ide-probe.c
diff -u linux/drivers/block/ide-probe.c:1.1.1.1 linux/drivers/block/ide-probe.c:1.1.1.1.6.1
--- linux/drivers/block/ide-probe.c:1.1.1.1 Wed Jul 14 10:06:38 1999
+++ linux/drivers/block/ide-probe.c Wed Oct 13 09:54:39 1999
@@ -133,15 +133,7 @@
*/
if (id->config & (1<<7))
drive->removable = 1;
- /*
- * Prevent long system lockup probing later for non-existant
- * slave drive if the hwif is actually a flash memory card of some variety:
- */
- if (drive_is_flashcard(drive)) {
- ide_drive_t *mate = &HWIF(drive)->drives[1^drive->select.b.unit];
- mate->present = 0;
- mate->noprobe = 1;
- }
+
drive->media = ide_disk;
printk("ATA DISK drive\n");
return;
Index: linux/drivers/block/sl82c105.c
diff -u linux/drivers/block/sl82c105.c:1.1.1.1 linux/drivers/block/sl82c105.c:1.1.1.1.6.1
--- linux/drivers/block/sl82c105.c:1.1.1.1 Wed Jul 14 10:06:40 1999
+++ linux/drivers/block/sl82c105.c Wed Oct 13 09:54:39 1999
@@ -17,20 +17,73 @@
void ide_init_sl82c105(ide_hwif_t *hwif)
{
+ static char done_once = 0;
struct pci_dev *dev = hwif->pci_dev;
unsigned short t16;
unsigned int t32;
- pci_read_config_word(dev, PCI_COMMAND, &t16);
- printk("SL82C105 command word: %x\n",t16);
- t16 |= PCI_COMMAND_IO;
- pci_write_config_word(dev, PCI_COMMAND, t16);
- /* IDE timing */
- pci_read_config_dword(dev, 0x44, &t32);
- printk("IDE timing: %08x, resetting to PIO0 timing\n",t32);
- pci_write_config_dword(dev, 0x44, 0x03e4);
-#ifndef CONFIG_MBX
- pci_read_config_dword(dev, 0x40, &t32);
- printk("IDE control/status register: %08x\n",t32);
- pci_write_config_dword(dev, 0x40, 0x10ff08a1);
-#endif /* CONFIG_MBX */
+ /*
+ * Consult the WinBond Manual and your drive specification
+ * before making changes to the drive mode operation.
+ * Not all drives support the different modes.
+ * 0x05ed PIO0
+ * 0x04e7 PIO1
+ * 0x03e4 PIO2
+ * 0x02e2 PIO3
+ * 0x02e0 PIO4
+ * 0x01e0 PIO5
+ */
+ unsigned int timing_mode = 0x03e4; /* PIO2: Default setting */
+
+ if (!done_once) {
+ pci_read_config_word(dev, PCI_COMMAND, &t16);
+ printk("SL82C105 command word: %x\n",t16);
+ t16 |= PCI_COMMAND_IO;
+ pci_write_config_word(dev, PCI_COMMAND, t16);
+
+ /* Initialize the IDE Control/Status Register */
+ pci_read_config_dword(dev, 0x40, &t32);
+ printk("IDE control/status register: %08x\n",t32);
+ pci_write_config_dword(dev, 0x40, 0x10ff0033);
+
+ done_once = 1;
+ }
+
+ /*
+ * Initialize the Port x Drive x Control Registers.
+ */
+ switch (hwif->major) {
+ case IDE0_MAJOR:
+ /* IDE timing */
+
+ /* Port 0 Drive 0 */
+ pci_read_config_dword(dev, 0x44, &t32);
+ printk("Setting %s from 0x%x to PIO2 timing, 0x%x\n",
+ hwif->drives[0].name, t32, timing_mode);
+ pci_write_config_dword(dev, 0x44, timing_mode);
+
+ /* Port 0 Drive 1 */
+ pci_read_config_dword(dev, 0x48, &t32);
+ printk("Setting %s from 0x%x to PIO2 timing, 0x%x\n",
+ hwif->drives[1].name, t32, timing_mode);
+ pci_write_config_dword(dev, 0x48, timing_mode);
+ break;
+ case IDE1_MAJOR:
+ /* IDE timing */
+
+ /* Port 1 Drive 0 */
+ pci_read_config_dword(dev, 0x4c, &t32);
+ printk("Setting %s from 0x%x to PIO2 timing, 0x%x\n",
+ hwif->drives[0].name, t32, timing_mode);
+ pci_write_config_dword(dev, 0x4c, timing_mode);
+
+ /* Port 1 Drive 1 */
+ pci_read_config_dword(dev, 0x50, &t32);
+ printk("Setting %s from 0x%x to PIO2 timing, 0x%x\n",
+ hwif->drives[1].name, t32, timing_mode);
+ pci_write_config_dword(dev, 0x50, timing_mode);
+ break;
+
+ default:
+ printk("%s: Unable to set IDE Timing\n", hwif->name);
+ }
}
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Changes for IDE on PREP Hardware
2000-01-05 23:41 ` Matt Porter
@ 2000-01-06 12:15 ` Eric Valette
2000-01-06 17:10 ` Matt Porter
2000-01-12 11:02 ` Matt Porter
2000-01-12 21:27 ` Alois Fertl
1 sibling, 2 replies; 9+ messages in thread
From: Eric Valette @ 2000-01-06 12:15 UTC (permalink / raw)
To: Matt Porter; +Cc: Cort Dougan, Alois Fertl, LinuxppcDev
>>>>> "Matt" == Matt Porter <mmporter@home.com> writes:
Matt> On Tue, Jan 04, 2000 at 10:24:21PM -0700, Cort Dougan wrote:
>>
>> } Attached is a patch which allows to work Motorola PREP hardware (like
>> } Blackhawk) to use IDE devices (disk and cdrom). The patch tries to
>> } selectively introduce the changes for the Motorola hardware only.
>> } IBM's can stay with their irq 13 for IDE and with their preferred
>> } method of non swapped data stream. I have no chance to test on IBM.
>>
>> How would this work if both irqs arrive at the same time?
>>
>> Johnnie, Matt - can you test this out on your systems?
Matt> Alois' IDE patch is a subset of the functionality that has made it into
Matt> 2.2.14 from our IDE patch. This patch doesn't account for the secondary
Matt> IDE controller on irq 15 among other things. I'm attaching our full
Matt> patch as submitted versus 2.2.14pre4 so everybody can see the code I'm
Matt> talking about. Note that changes to ide-pci.c, ide-probe.c, and sl82c105.c
Matt> in the patch got dropped and Alan said "maybe for 2.2.15". The full patch
Matt> was tested on every board MCG has made with IDE.
Matt> As for the 8259 patch, I think it may help the problem but will
Matt> probably cause some bad situations disabling interrupts like that. I
Matt> will test it out and see if it can be used or made better so we can
Matt> get these PReP 8259 problems behind us.
Just to tell you that :
1) I applied the 2.2.14pre4 prepide-patch on a clean
linux 2.2.14 tree. Effectively the ppc part is in and
not the ide-pci.c, ide-probe.c, and sl82c105.c
2) BUT : after applying the missing part of the patches
the behavior is absolutely identical!!!
hdc : lost interrupt...
any other hints?
--
__
/ ` Eric Valette
/-- __ o _. Canon CRF - Communication Dept
(___, / (_(_(__ Rue de la touche lambert
35517 Cesson-Sevigne Cedex
FRANCE
Tel: +33 (0)2 99 87 68 91 Fax: +33 (0)2 99 84 11 30
E-mail: valette@crf.canon.fr http://www.crf.canon.fr
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Changes for IDE on PREP Hardware
2000-01-06 12:15 ` Eric Valette
@ 2000-01-06 17:10 ` Matt Porter
2000-01-06 17:17 ` Eric Valette
2000-01-12 11:02 ` Matt Porter
1 sibling, 1 reply; 9+ messages in thread
From: Matt Porter @ 2000-01-06 17:10 UTC (permalink / raw)
To: Eric Valette; +Cc: Matt Porter, Cort Dougan, Alois Fertl, LinuxppcDev
On Thu, Jan 06, 2000 at 01:15:48PM +0100, Eric Valette wrote:
>
> >>>>> "Matt" == Matt Porter <mmporter@home.com> writes:
>
> Matt> On Tue, Jan 04, 2000 at 10:24:21PM -0700, Cort Dougan wrote:
> >>
> >> } Attached is a patch which allows to work Motorola PREP hardware (like
> >> } Blackhawk) to use IDE devices (disk and cdrom). The patch tries to
> >> } selectively introduce the changes for the Motorola hardware only.
> >> } IBM's can stay with their irq 13 for IDE and with their preferred
> >> } method of non swapped data stream. I have no chance to test on IBM.
> >>
> >> How would this work if both irqs arrive at the same time?
> >>
> >> Johnnie, Matt - can you test this out on your systems?
>
> Matt> Alois' IDE patch is a subset of the functionality that has made it into
> Matt> 2.2.14 from our IDE patch. This patch doesn't account for the secondary
> Matt> IDE controller on irq 15 among other things. I'm attaching our full
> Matt> patch as submitted versus 2.2.14pre4 so everybody can see the code I'm
> Matt> talking about. Note that changes to ide-pci.c, ide-probe.c, and sl82c105.c
> Matt> in the patch got dropped and Alan said "maybe for 2.2.15". The full patch
> Matt> was tested on every board MCG has made with IDE.
>
> Matt> As for the 8259 patch, I think it may help the problem but will
> Matt> probably cause some bad situations disabling interrupts like that. I
> Matt> will test it out and see if it can be used or made better so we can
> Matt> get these PReP 8259 problems behind us.
>
> Just to tell you that :
>
> 1) I applied the 2.2.14pre4 prepide-patch on a clean
> linux 2.2.14 tree. Effectively the ppc part is in and
> not the ide-pci.c, ide-probe.c, and sl82c105.c
> 2) BUT : after applying the missing part of the patches
> the behavior is absolutely identical!!!
>
> hdc : lost interrupt...
>
> any other hints?
Since you have the old defective MCP750, you can either return it or apply
the 99% workaround of reprogramming the level/edge triggering on the VIA as
you've done before. The patch does work on all MCG IDE capable hardware
except the revs of the MCP750 that should no longer be used by customers.
I'll reiterate that since the policy is to replace these old boards which
have the interrupt triggering set incorrectly, a workaround that doesn't
work 100% of the time shouldn't go in the kernel.
Now, actually getting the board replaced when going through a distributor
is another problem that we can continue further offline.
--
Matt Porter
mmporter@home.com
This is Linux Country. On a quiet night, you can hear Windows reboot.
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Changes for IDE on PREP Hardware
2000-01-06 17:10 ` Matt Porter
@ 2000-01-06 17:17 ` Eric Valette
2000-01-06 17:50 ` Matt Porter
0 siblings, 1 reply; 9+ messages in thread
From: Eric Valette @ 2000-01-06 17:17 UTC (permalink / raw)
To: Matt Porter; +Cc: Cort Dougan, Alois Fertl, LinuxppcDev
Matt Porter wrote:
> > Just to tell you that :
> >
> > 1) I applied the 2.2.14pre4 prepide-patch on a clean
> > linux 2.2.14 tree. Effectively the ppc part is in and
> > not the ide-pci.c, ide-probe.c, and sl82c105.c
> > 2) BUT : after applying the missing part of the patches
> > the behavior is absolutely identical!!!
> >
> > hdc : lost interrupt...
> >
> > any other hints?
>
> Since you have the old defective MCP750, you can either return it or apply
> the 99% workaround of reprogramming the level/edge triggering on the VIA as
> you've done before. The patch does work on all MCG IDE capable hardware
> except the revs of the MCP750 that should no longer be used by customers.
No. That is not so simple : I have also a REV D board that behaves
exactly
the same way. If you want I can send you my .config file and the binary.
Also remember that I managed to have the same linux 2.2.10 image
to run on both platforms...
--
__
/ ` Eric Valette
/-- __ o _. Canon CRF - Communication Dept
(___, / (_(_(__ Rue de la touche lambert
35517 Cesson-Sevigne Cedex
FRANCE
Tel: +33 (0)2 99 87 68 91 Fax: +33 (0)2 99 84 11 30
E-mail: valette@crf.canon.fr http://www.crf.canon.fr
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Changes for IDE on PREP Hardware
2000-01-06 17:17 ` Eric Valette
@ 2000-01-06 17:50 ` Matt Porter
0 siblings, 0 replies; 9+ messages in thread
From: Matt Porter @ 2000-01-06 17:50 UTC (permalink / raw)
To: Eric Valette; +Cc: mporter, Cort Dougan, Alois Fertl, LinuxppcDev
On Thu, Jan 06, 2000 at 06:17:29PM +0100, Eric Valette wrote:
>
> Matt Porter wrote:
>
> > > Just to tell you that :
> > >
> > > 1) I applied the 2.2.14pre4 prepide-patch on a clean
> > > linux 2.2.14 tree. Effectively the ppc part is in and
> > > not the ide-pci.c, ide-probe.c, and sl82c105.c
> > > 2) BUT : after applying the missing part of the patches
> > > the behavior is absolutely identical!!!
> > >
> > > hdc : lost interrupt...
> > >
> > > any other hints?
> >
> > Since you have the old defective MCP750, you can either return it or apply
> > the 99% workaround of reprogramming the level/edge triggering on the VIA as
> > you've done before. The patch does work on all MCG IDE capable hardware
> > except the revs of the MCP750 that should no longer be used by customers.
>
> No. That is not so simple : I have also a REV D board that behaves
> exactly
> the same way. If you want I can send you my .config file and the binary.
> Also remember that I managed to have the same linux 2.2.10 image
> to run on both platforms...
Please send both and cc: mporter@mcg.mot.com
The test platform was a Rev. D MCP750 with multiple IDE drives on hdc/hdd
and a SanDisk in the onboard CF socket (hda).
I'll set this up again on a Rev. D to see if I can recreate it here. I can
only suspect a .config file at this point. Especially since this patch
is already in the Debian/PPC disty and I've installed whole systems to
IDE drives with no problems. :-/
--
Matt Porter
mmporter@home.com
This is Linux Country. On a quiet night, you can hear Windows reboot.
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Changes for IDE on PREP Hardware
2000-01-06 12:15 ` Eric Valette
2000-01-06 17:10 ` Matt Porter
@ 2000-01-12 11:02 ` Matt Porter
1 sibling, 0 replies; 9+ messages in thread
From: Matt Porter @ 2000-01-12 11:02 UTC (permalink / raw)
To: Eric Valette; +Cc: Matt Porter, Cort Dougan, Alois Fertl, LinuxppcDev
On Thu, Jan 06, 2000 at 01:15:48PM +0100, Eric Valette wrote:
> Matt> On Tue, Jan 04, 2000 at 10:24:21PM -0700, Cort Dougan wrote:
> Matt> Alois' IDE patch is a subset of the functionality that has made it into
> Matt> 2.2.14 from our IDE patch. This patch doesn't account for the secondary
> Matt> IDE controller on irq 15 among other things. I'm attaching our full
> Matt> patch as submitted versus 2.2.14pre4 so everybody can see the code I'm
> Matt> talking about. Note that changes to ide-pci.c, ide-probe.c, and sl82c105.c
> Matt> in the patch got dropped and Alan said "maybe for 2.2.15". The full patch
> Matt> was tested on every board MCG has made with IDE.
>
> Matt> As for the 8259 patch, I think it may help the problem but will
> Matt> probably cause some bad situations disabling interrupts like that. I
> Matt> will test it out and see if it can be used or made better so we can
> Matt> get these PReP 8259 problems behind us.
>
> Just to tell you that :
>
> 1) I applied the 2.2.14pre4 prepide-patch on a clean
> linux 2.2.14 tree. Effectively the ppc part is in and
> not the ide-pci.c, ide-probe.c, and sl82c105.c
> 2) BUT : after applying the missing part of the patches
> the behavior is absolutely identical!!!
>
> hdc : lost interrupt...
kernel 2.2.14 breaks all Motorola PowerPlus systems. That is, all systems
which have an OpenPIC. The patch was against 2.2.14pre4 which was before
all the changes. Unfortunately, I didn't have time to test every prepatch
with PowerPC merges to check for breakage. I see this problem on all
interrupts since everything (inluding the 8259 irqs) is routed through the
OpenPIC.
The OpenPIC is completely rewritten which is more than likely the cause.
I thought there was going to be just some minor changes that affected
SMP boxes (fixed IPI support) but a lot appears to be touched.
PowerPlus IDE and PCI interrupt routing fixes will have to be backburnered
until I can repair OpenPIC handling.
FWIW, 2.2.12 is the last stock stable release that is know to be good with
Moto. PowerPlus systems (and was the basis of the IDE support). There
was a patch posted here for testing a long while back versus 2.2.12.
Oh, and I noticed in released 2.2.14 that the gemini support just inserts
itself into a PReP image build with no conditionals. New architectures
shouldn't be bloating existing ones this way, especially when there is a
CONFIG_GEMINI. One other thing is that the SYSRQ support is broken as
the machdep sysrq_xlate function somehow got "ppc_" prepended to it's name
in a couple places and the SYSRQ defines never get defined anywhere.
--
Matt Porter
mmporter@home.com
This is Linux Country. On a quiet night, you can hear Windows reboot.
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Changes for IDE on PREP Hardware
2000-01-05 23:41 ` Matt Porter
2000-01-06 12:15 ` Eric Valette
@ 2000-01-12 21:27 ` Alois Fertl
1 sibling, 0 replies; 9+ messages in thread
From: Alois Fertl @ 2000-01-12 21:27 UTC (permalink / raw)
To: Matt Porter; +Cc: Cort Dougan, LinuxppcDev
Looking over the patch I'd like to make a few remarks.
prep_setup.c:
The irq stuff is only for the ISA IDE interface of the Intel 82378
on Blackhawk systems. There is only one channel using irq 14.
The split between swapping and non-swapping is because I assumed that the
given code works as is on IBM hardware.
ide-pci.c:
I did not expect the Winbond chip (PCI) requiring a hardcoded irq assignment.
On the PowerStackII this chip works well with the PCI setting connecting
both channels to one PCI INT. I hope there isn't any reason to use the device
in legacy mode.
sl82c105.c:
The proposed patch breaks the IDE CD-Rom which is on my system connected to
the second Winbond IDE channel. I think it is the setting of bit 5 which
configures to use the preset speed settings for port.
Matt Porter wrote:
>
> On Tue, Jan 04, 2000 at 10:24:21PM -0700, Cort Dougan wrote:
> >
> > } Attached is a patch which allows to work Motorola PREP hardware (like
> > } Blackhawk) to use IDE devices (disk and cdrom). The patch tries to
> > } selectively introduce the changes for the Motorola hardware only.
> > } IBM's can stay with their irq 13 for IDE and with their preferred
> > } method of non swapped data stream. I have no chance to test on IBM.
> >
> > How would this work if both irqs arrive at the same time?
> >
> > Johnnie, Matt - can you test this out on your systems?
>
> Alois' IDE patch is a subset of the functionality that has made it into
> 2.2.14 from our IDE patch. This patch doesn't account for the secondary
> IDE controller on irq 15 among other things. I'm attaching our full
> patch as submitted versus 2.2.14pre4 so everybody can see the code I'm
> talking about. Note that changes to ide-pci.c, ide-probe.c, and sl82c105.c
> in the patch got dropped and Alan said "maybe for 2.2.15". The full patch
> was tested on every board MCG has made with IDE.
>
> As for the 8259 patch, I think it may help the problem but will
> probably cause some bad situations disabling interrupts like that. I
> will test it out and see if it can be used or made better so we can
> get these PReP 8259 problems behind us.
>
> --
> Matt Porter
> mmporter@home.com
> This is Linux Country. On a quiet night, you can hear Windows reboot.
>
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2000-01-12 21:27 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <38710186.B7930E52@talknet.de>
2000-01-05 5:24 ` Changes for IDE on PREP Hardware Cort Dougan
2000-01-05 21:13 ` Alois Fertl
2000-01-05 23:41 ` Matt Porter
2000-01-06 12:15 ` Eric Valette
2000-01-06 17:10 ` Matt Porter
2000-01-06 17:17 ` Eric Valette
2000-01-06 17:50 ` Matt Porter
2000-01-12 11:02 ` Matt Porter
2000-01-12 21:27 ` Alois Fertl
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).