|
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
|