Re: kernel 2.6.25 with ide driver cs5520 does not boot.
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Date: 2008-06-11 20:29:29
Also in:
lkml
On Friday 30 May 2008, TAKADA Yoshihito wrote:
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Subject: Re: kernel 2.6.25 with ide driver cs5520 does not boot. Date: Thu, 15 May 2008 00:28:04 +0200 Hi. sorry, I'm too late. I tested the patch to re-enable DMA. But, this patch has no effect. It cannot boot. printk() message disappeared.
Now I'm late. ;-) Thanks for info, I'll later prepare patch removing IDE_HFLAG_VDMA & co.
quoted
On Wednesday 14 May 2008, Bartlomiej Zolnierkiewicz wrote:quoted
On Friday 09 May 2008, TAKADA Yoshihito wrote:quoted
Hi. From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Subject: Re: kernel 2.6.25 with ide driver cs5520 does not boot. Date: Fri, 9 May 2008 11:27:53 +0200quoted
On Friday 09 May 2008, TAKADA Yoshihito wrote:quoted
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 : bootThanks 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@gmail.com> 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