From: Kristoffer E. <kri...@ho...> - 2007-03-13 20:47:57
|
Greetings, I've changed the code to use MMIO instead. .start 0xb5000000 + 0x1f0 .end 0xb5000000 + 0x1f7 and .start 0xb50001fe .end 0xb50001ff with MEM instead of IO. It now detects the ATA1 properly, but goes into an endles loop with : ata1: soft resetting port ata1.00 : configured for PIO <--- ??? ata1 : EH complete ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen ata1.00: cmd 20/00:08:00:00:00/00:00:00:00:00/e0 tag 0 cdb 0x0 data 4096 in res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout) ata1: soft resetting port Suggestions? Best wishes Kristoffer >From: Paul Mundt <le...@li...> >To: Kristoffer Ericson <kri...@ho...> >CC: lin...@li... >Subject: Re: HP6xx kernel panic at bootup >Date: Tue, 13 Mar 2007 08:37:07 +0900 > >On Mon, Mar 12, 2007 at 08:49:00PM +0000, Kristoffer Ericson wrote: > > The only part of the Kernel panic I can see is just the data dump, which > > doesnt help you much. (adresses running from 1c80: -> 1fe0). > > > > I believe its somehow related to the PATA driver, but hard to be sure. > > >Yes, you should be using the MMIO address, the problem is that you're >using the PIO address and it's completely unhandled by your I/O routines. > > > +static struct resource cf_ide_resources[] = { > > + [0] = { > > + .start = 0x1f0, > > + .end = 0x1f0 + 8, > > + .flags = IORESOURCE_IO, > > + }, > > + [1] = { > > + .start = 0x3f6, > > + .end = 0x3f7, > > + .flags = IORESOURCE_IO, > > + }, > >So change these to the MMIO address, and switch to IORESOURCE_MEM. > > > +static int __init hp6xx_devices_setup(void) > > +{ > > + return platform_add_devices(hp6xx_devices,ARRAY_SIZE(hp6xx_devices)); > > +} > > + > > static void __init hp6xx_setup(char **cmdline_p) > > { > > u8 v8; > > u16 v; > > > > + device_initcall(hp6xx_devices_setup); > > + > >Move this after hp6xx_devices_setup(). > > > diff --git a/include/asm-sh/irq.h b/include/asm-sh/irq.h > > index 29d4fb9..eaf77fe 100644 > > --- a/include/asm-sh/irq.h > > +++ b/include/asm-sh/irq.h > > @@ -190,7 +190,7 @@ static inline int generic_irq_demux(int > > > > #define irq_canonicalize(irq) (irq) > > #define irq_demux(irq) sh_mv.mv_irq_demux(irq) > > - > > +#define __irq_demux(irq) (irq) > > #ifdef CONFIG_4KSTACKS > > extern void irq_ctx_init(int cpu); > > extern void irq_ctx_exit(int cpu); > > >What is using this? _________________________________________________________________ Don't just search. Find. Check out the new MSN Search! http://search.msn.click-url.com/go/onm00200636ave/direct/01/ |