From: Heiko S. <hei...@in...> - 2007-10-30 07:45:31
|
Hello Paul, thanks for responding Paul Mundt wrote: > On Sat, Oct 27, 2007 at 08:19:54AM +0200, Heiko Schocher wrote: >> After this I get an Intevent 0x1e0, and then nothing more works ... >> >> 1) Has somebody here an idea, where this intevent come from? How I can >> prevent it? >> > It sounds like something is generating an interrupt that you aren't > acking, for some reason it isn't being caught as spurious and disabled, > and you are hanging as a result. If you want to hack around it, you can Here the text ends ... I want to hack around it, what can I do? >> BTW: >> 4) I think the generic_irq_demux funktion dont work nice, if I get such >> an eventvector, >> the resulting irq is 0x7ffffff, and irq is used as an index in >> generic_handle_irq() >> struct irq_desc *desc = irq_desc + irq; >> , and + 0x7ffffff is somewhere in the RAM, thats not good. >> > This is rather curious. EVT 0x1e0 implies IRQ -1, and you've simply > wrapped, that shouldn't happen. You shouldn't even be entering the > do_IRQ() path here, are you certain that this is an INTEVT value rather > than an EXPEVT one? Hm.. I get this value in the do_IRQ function, so I think it is an INTEVT value. Or is there a way do_IRQ () is called from an EXPEVT? > You may also want to register a dummy handler at that EVT slot using > set_exception_table_evt() (you probably also want to invalidate the > I-cache for sanity after doing so), and see what falls out. That's > certainly not a valid IRQ vector. I made: set_exception_table_evt(0x1e0, do_1e0_restore) in void __init trap_init(void) with do_1e0_restore () asmlinkage void do_1e0_restore(unsigned long r4, unsigned long r5, unsigned long r6, unsigned long r7, struct pt_regs __regs) { struct pt_regs *regs = RELOC_HIDE(&__regs, 0); long ex; lookup_exception_vector(ex); die_if_kernel("1e0 exception", regs, ex); } no change in the output ... Must I use another gcc? I am actually using: Linux version 2.6.24-rc1-g7d7b59ac-dirty (hs@Zeus) (gcc version 4.1.1 20061011 (Red Hat 4.1.1-30)) #19 Tue Oct 30 09:29:07 CET 2007 I think, there is something happening, when the user application is starting. Some problems with Processwitching, Stack, ... Hmm, I have only to set the following parameters, right? CONFIG_PAGE_OFFSET=0x80000000 CONFIG_MEMORY_START=0x08000000 CONFIG_MEMORY_SIZE=0x08000000 CONFIG_ZERO_PAGE_OFFSET=0x00001000 CONFIG_BOOT_LINK_OFFSET=0x00800000 Is there a board running with a SH7750R? Maybe there is some CPU specific stuff to set up ... thanks, heiko |