From: Stuart M. <stu...@st...> - 2002-04-03 18:18:41
|
Fabio If you look at the bit of code in assembler, it reads the value from the INTEVT register, shifts right by 5 and subtracts 16. So an interrupt code of 0xd corrisponds to INTEVT code of 0x3a0. Have a look at the interrupt code table in the appropriate manual, and you'll see which interrupt this corrisponds to. I don't have a 7709 manual to hand, but IIRC this is an external interrupt on all SuperH parts. So something on your board is raising an interrupt, and this error message is saying that there is no interrupt handler installed to handle it. This could just be a mis-configuration issue. The interrupt controllers on some of the SH3's have quite a few modes and config registers. When your board was designed, they probably intended the interrupt controller to be set up in a particular way, make sure you're doing this. Alternativly something on your board really is raising an interrupt. Hopefully your board has some external logic to control enabling and disabling of interrupts from peripherials, so maybe this needs to be set up before you enable interrupts at the CPU level. Or maybe the device which is raising the interrupt at boot time needs to be initialised first. Either would be pretty grotty, most devices power up with interrupts disabled and/or inactive until you do something to provoke them, but it wouldn't be the first time somebody had designed hardware that didn't work that way. If all else fails, you could look at using the irq_imask routines to disable the interrupt using the IMASK in the status register, but that should be a last resort, as it results in all interrupts of lower priority being disabled, so could disbale something you need. Hope this helps Stuart On Wed, 3 Apr 2002 16:12:28 +0200 fg...@ti... wrote: > Sorry, > but I don't understand what means: > "unexpected IRQ trap at vector 0d" > > I suppose it is an interrupt always entering but I don't understand what is > its source. > > Thanks. > > Fabio > > On Tuesday 02 April 2002 14:27, Stuart Menefy wrote: > > Hi Fabio > > > > You might like to have a look at the 'board porting guide' a colleague > > here wrote. Have a look at: > > http://www.linuxsh.st.com/getting_started/board_porting.php3 > > > > As far as I know, you'll be the first person to try it in anger, so any > > comments welcome! > > > > You're right, it sounds like you have a pending interrupt. So the first > > thing I'd do is stick a printk at the start of do_IRQ(), and print the irq > > number (just after the little bit of asm code which retreives it). > > > > Stuart > > > > > > On Fri, 29 Mar 2002 10:55:32 +0100 > > > > fg...@ti... wrote: > > > Hi, Stuart, > > > I' porting linux SH on my sh3 7709a based board. > > > I'm able to compile and run for my board sh-boot got from CVS repository, > > > I'm able to compile the kernel 2.4.18 and I can boot it using gdb. > > > > > > Making a debug using printk("...."); while(1); to understant I see that > > > kernel stops execution at init/main.c -> start_kernel -> sti(); > > > > > > I compiled my kernel as my board were a SolutionEngine, but my board > > > isn't a SolutionEngine. > > > > > > Having read the Documentation/sh/ document from the CVS kernel and > > > seeing you are the father of sh_mv model, I write to you for asking: > > > 1) Is it possible when I enable the interrupt mask with sti() an > > > interrupt pending occurs which I have no handler for? > > > > > > 2) There is an optiminezed way to trace this kind of troubles? > > > > > > > > > Thanks a lot. > > > > > > Fabio -- Stuart Menefy stu...@st... STMicroelectronics Ltd ST Intranet: mo.bri.st.com Bristol, UK Rest of the World: www.linuxsh.st.com |