Re: kernel 2.6.25 with ide driver cs5520 does not boot.

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

 



On Wednesday 14 May 2008, Bartlomiej Zolnierkiewicz wrote:
> On Friday 09 May 2008, TAKADA Yoshihito wrote:
> > Hi.
> > 
> > From: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx>
> > Subject: Re: kernel 2.6.25 with ide driver cs5520 does not boot.
> > Date: Fri, 9 May 2008 11:27:53 +0200
> > 
> > > On Friday 09 May 2008, TAKADA Yoshihito wrote:
> > > > Thanks for quick reply.
> > > > 
> > > > I tried 2.6.26rc1. It hangs same as 2.6.25.
> > > > kernel 2.6.26rc1 with cs5520 cannot boot. cs5520 scans ide0 and ide1.
> > > > It seems 2nd port DMA base issue was solved.
> > > 
> > > [...]
> > > 
> > > Thanks.
> > > 
> > > The following patch for 2.6.26-rc1 disables VDMA, please give it a try
> > > (I haven't time to fully audit VDMA support yet but lets see if it is
> > > the main source of the problems).
> > 
> > I applied the patch. But kernel was hung.
> > And I attempt to kill IDE_HFLAG_CS5520. It cannot boot, oo.
> > 
> >   kill IDE_HFLAG_VDMA  : hang  
> >   kill IDE_HFLAG_CS5520: hang
> >   kill both flags      : boot
> 
> Thanks for investigating this - I forgot that currently VDMA and CS5520
> host flags use the same bit (so it also needs to be fixed).
> 
> I'm going to send the following patch to Linus (please verify it):
> 
> From: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx>
> Subject: [PATCH] cs5520: disable VDMA

[...]

Please also try 2.6.26-rc2 without the above patch but with the following
patch applied instead - according to comments in OpenFirmware & pata_cs5520
code 0x60 register contains bus-master enable bit, it could be that it was
left disabled by BIOS and we need to explicitely enable it (if somebody has
CX5510 or CX5520 datasheet please verify this + send me a copy if possible).

---
 drivers/ide/pci/cs5520.c |    8 ++++++++
 1 file changed, 8 insertions(+)

Index: b/drivers/ide/pci/cs5520.c
===================================================================
--- a/drivers/ide/pci/cs5520.c
+++ b/drivers/ide/pci/cs5520.c
@@ -147,6 +147,7 @@ static int __devinit cs5520_init_one(str
 {
 	const struct ide_port_info *d = &cyrix_chipsets[id->driver_data];
 	u8 idx[4] = { 0xff, 0xff, 0xff, 0xff };
+	u8 pcicfg;
 
 	ide_setup_pci_noise(dev, d);
 
@@ -163,6 +164,13 @@ static int __devinit cs5520_init_one(str
 		return -ENODEV;
 	}
 
+	pci_read_config_byte(dev, 0x60, &pcicfg);
+
+	if ((pcicfg & 0x40) == 0) {
+		printk(KERN_WARNING "cs5520: DMA mode disabled. Enabling.\n");
+		pci_write_config_byte(dev, 0x60, pcicfg | 0x40);
+	}
+
 	/*
 	 *	Now the chipset is configured we can let the core
 	 *	do all the device setup for us

--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux