Linux MIPS Architecture development
 help / color / mirror / Atom feed
* Réf. : Compiling a 2.6 kernel for Mips
@ 2005-09-28 13:01 Florian DELIZY
  2005-09-28 13:38 ` Yoann Allain
  0 siblings, 1 reply; 4+ messages in thread
From: Florian DELIZY @ 2005-09-28 13:01 UTC (permalink / raw)
  To: Yoann Allain; +Cc: linux-mips

[-- Attachment #1: Type: text/plain, Size: 2171 bytes --]

> Hi,

> I am no more a newbie but I still need some help to build kernels :
> I am working on the Wintegra Evaluation Board (WEB777) and I used the 
> 2.4 kernel Wintegra gave me with the patch for that board.
> I tried to adapt the patch for the 2.6 kernel but it doesn't work. I 
> traced the kernel to find it crashed very early before displaying 
anything.
> In fact the host processor makes an address and tries to read it but 
> this makes an exception :

> * Exception 0x02 (user) : TLB (load or instruction fetch) *
> * in address: 80101ea8
> ClockDiv2+0xe38:
> [80101ea8] 8c820000 lw          r2,0x0000(r4)


> r0(zero): 00000000 r1(AT)  : 1000fc00 r2(v0)  : 0000001c r3(v1)  : 
80360000
> r4(a0)  : 0000001c r5(a1)  : 803919f0 r6(a2)  : 0000000d r7(a3)  : 
8038df8c

That would help a lot if you could objdump your kernel and give us 10 
instructions before (at least) 
and 10 instructions after it, you could try an :

mips-linux-objdump -DSz vmlinux | grep -U 20 '^\[80101ea8\]'

and send the output (that should ouput around 20 lines (which will 
hopefully contain some C code also,
assuùing that you compiled the code with debug informations. Moreover you 
can also tell us in which 
symbol (function) is located the address 0x80101ea8.


> I think this is a problem of host processor misconfiguration, but don't 
> find out exactly what it is... To make the address in R4, the processor 
> reads some zeroes where in 2.4 kernel, it doesn't and the address read 
> in 2.4 is something like 0xbf010f1c.
> I don't know if this can help but here are the few functions before 
crash:

> kernel_entry
>    J start_kernel
>             cpu_probe() (WEB777 patch)
>             prom_init() (WEB777 patch)
>                   setup_prom_printf() (WEB777 patch)
>                   wds_prom_printf() (WEB777 patch)
>                            putPromChar() (WEB777 patch)
>                            --> CRASH

You should also start to figure out which variable/pointer anything is 
consulted to get this adress (0x0000001c) 
which might then help to understand you're problem.

Regards

Florian Delizy


[-- Attachment #2: Type: text/html, Size: 3256 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Réf. : Compiling a 2.6 kernel for Mips
  2005-09-28 13:01 Réf. : Compiling a 2.6 kernel for Mips Florian DELIZY
@ 2005-09-28 13:38 ` Yoann Allain
  2005-09-29  6:21   ` Brett Foster
  0 siblings, 1 reply; 4+ messages in thread
From: Yoann Allain @ 2005-09-28 13:38 UTC (permalink / raw)
  To: Florian DELIZY; +Cc: linux-mips

Here is the function putPromChar in which I have the problem:

80101e70 <putPromChar>:
80101e70:       3c028039        lui     $v0,0x8039
80101e74:       244519f0        addiu   $a1,$v0,6640
80101e78:       8ca30014        lw      $v1,20($a1)
80101e7c:       00042600        sll     $a0,$a0,24
80101e80:       27bdfff0        addiu   $sp,$sp,-16
80101e84:       00043603        sra     $a2,$a0,24
80101e88:       10600012        beqz    $v1,80101ed4 <putPromChar+0x64>
80101e8c:       00001025        move    $v0,$zero
80101e90:       8ca20004        lw      $v0,4($a1)
80101e94:       3c038036        lui     $v1,0x8036
80101e98:       8c64c9a0        lw      $a0,-13920($v1)
80101e9c:       2442001c        addiu   $v0,$v0,28
80101ea0:       00822021        addu    $a0,$a0,$v0
80101ea4:       00000000        nop
80101ea8:       8c820000        lw      $v0,0($a0)
80101eac:       30420020        andi    $v0,$v0,0x20
80101eb0:       1040fffd        beqz    $v0,80101ea8 <putPromChar+0x38>
80101eb4:       3c028039        lui     $v0,0x8039
80101eb8:       8c4319f4        lw      $v1,6644($v0)
80101ebc:       3c048036        lui     $a0,0x8036
80101ec0:       8c82c9a0        lw      $v0,-13920($a0)
80101ec4:       24630004        addiu   $v1,$v1,4
80101ec8:       00431021        addu    $v0,$v0,$v1
80101ecc:       ac460000        sw      $a2,0($v0)
80101ed0:       24020001        li      $v0,1
80101ed4:       03e00008        jr      $ra
80101ed8:       27bd0010        addiu   $sp,$sp,16
80101edc:       00000000        nop

with WinMon (bootloader) I get this (this is perhaps more readable...):

[80101e70] 3c028039 lui         r2,0x8039		putPromChar
[80101e74] 244519f0 addiu       r5,r2,0x19f0
[80101e78] 8ca30014 lw          r3,0x0014(r5)
[80101e7c] 00042600 sll         r4,r4,24
[80101e80] 27bdfff0 addiu       r29,r29,0xfff0
[80101e84] 00043603 sra         r6,r4,24
[80101e88] 10600012 beq         r3,r0,0x0012
[80101e90] 8ca20004 lw          r2,0x0004(r5)           --> in 2.6 it reads 0 at address r5 + 0x4  
[80101e94] 3c038036 lui         r3,0x8036
[80101e98] 8c64c9a0 lw          r4,0xc9a0(r3)		--> in 2.6 it reads 0 at adress r3 + 0xc9a0
[80101e9c] 2442001c addiu       r2,r2,0x001c
[80101ea0] 00822021 addu        r4,r4,r2		==> in 2.4 it returns bf010f1c in r4
[80101ea8] 8c820000 lw          r2,0x0000(r4)

* Exception 0x02 (user) : TLB (load or instruction fetch) *
* in address: 80101ea8
ClockDiv2+0xe38:
[80101ea8] 8c820000 lw          r2,0x0000(r4)


r0(zero): 00000000 r1(AT)  : 1000fc00 r2(v0)  : 0000001c r3(v1)  : 80360000
r4(a0)  : 0000001c r5(a1)  : 803919f0 r6(a2)  : 0000000d r7(a3)  : 8038df8c

I hope this will help and many thanks for your help!

Yoann



Florian DELIZY wrote:

>
>
>
>
> > Hi,
>
> > I am no more a newbie but I still need some help to build kernels :
> > I am working on the Wintegra Evaluation Board (WEB777) and I used the
> > 2.4 kernel Wintegra gave me with the patch for that board.
> > I tried to adapt the patch for the 2.6 kernel but it doesn't work. I
> > traced the kernel to find it crashed very early before displaying 
> anything.
> > In fact the host processor makes an address and tries to read it but
> > this makes an exception :
>
> > * Exception 0x02 (user) : TLB (load or instruction fetch) *
> > * in address: 80101ea8
> > ClockDiv2+0xe38:
> > [80101ea8] 8c820000 lw          r2,0x0000(r4)
>
>
> > r0(zero): 00000000 r1(AT)  : 1000fc00 r2(v0)  : 0000001c r3(v1)  : 
> 80360000
> > r4(a0)  : 0000001c r5(a1)  : 803919f0 r6(a2)  : 0000000d r7(a3)  : 
> 8038df8c
>
> That would help a lot if you could objdump your kernel and give us 10 
> instructions before (at least)
> and 10 instructions after it, you could try an :
>
> mips-linux-objdump -DSz vmlinux | grep -U 20 '^\[80101ea8\]'
>
> and send the output (that should ouput around 20 lines (which will 
> hopefully contain some C code also,
> assuùing that you compiled the code with debug informations. Moreover 
> you can also tell us in which
> symbol (function) is located the address 0x80101ea8.
>
>
> > I think this is a problem of host processor misconfiguration, but don't
> > find out exactly what it is... To make the address in R4, the processor
> > reads some zeroes where in 2.4 kernel, it doesn't and the address read
> > in 2.4 is something like 0xbf010f1c.
> > I don't know if this can help but here are the few functions before 
> crash:
>
> > kernel_entry
> >    J start_kernel
> >             cpu_probe() (WEB777 patch)
> >             prom_init() (WEB777 patch)
> >                   setup_prom_printf() (WEB777 patch)
> >                   wds_prom_printf() (WEB777 patch)
> >                            putPromChar() (WEB777 patch)
> >                            --> CRASH
>
> You should also start to figure out which variable/pointer anything is 
> consulted to get this adress (0x0000001c)
> which might then help to understand you're problem.
>
> Regards
>
> Florian Delizy
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Réf. : Compiling a 2.6 kernel for Mips
  2005-09-28 13:38 ` Yoann Allain
@ 2005-09-29  6:21   ` Brett Foster
  2005-09-29 12:08     ` Yoann Allain
  0 siblings, 1 reply; 4+ messages in thread
From: Brett Foster @ 2005-09-29  6:21 UTC (permalink / raw)
  To: Yoann Allain; +Cc: linux-mips

Yoann Allain wrote:

> Here is the function putPromChar in which I have the problem:
>
> 80101e70 <putPromChar>:
> 80101e70:       3c028039        lui     $v0,0x8039
> 80101e74:       244519f0        addiu   $a1,$v0,6640
> 80101e78:       8ca30014        lw      $v1,20($a1)
> 80101e7c:       00042600        sll     $a0,$a0,24
> 80101e80:       27bdfff0        addiu   $sp,$sp,-16
> 80101e84:       00043603        sra     $a2,$a0,24
> 80101e88:       10600012        beqz    $v1,80101ed4 <putPromChar+0x64>
> 80101e8c:       00001025        move    $v0,$zero
> 80101e90:       8ca20004        lw      $v0,4($a1)
> 80101e94:       3c038036        lui     $v1,0x8036
> 80101e98:       8c64c9a0        lw      $a0,-13920($v1)
> 80101e9c:       2442001c        addiu   $v0,$v0,28
> 80101ea0:       00822021        addu    $a0,$a0,$v0
> 80101ea4:       00000000        nop
> 80101ea8:       8c820000        lw      $v0,0($a0)
> 80101eac:       30420020        andi    $v0,$v0,0x20
> 80101eb0:       1040fffd        beqz    $v0,80101ea8 <putPromChar+0x38>
> 80101eb4:       3c028039        lui     $v0,0x8039
> 80101eb8:       8c4319f4        lw      $v1,6644($v0)
> 80101ebc:       3c048036        lui     $a0,0x8036
> 80101ec0:       8c82c9a0        lw      $v0,-13920($a0)
> 80101ec4:       24630004        addiu   $v1,$v1,4
> 80101ec8:       00431021        addu    $v0,$v0,$v1
> 80101ecc:       ac460000        sw      $a2,0($v0)
> 80101ed0:       24020001        li      $v0,1
> 80101ed4:       03e00008        jr      $ra
> 80101ed8:       27bd0010        addiu   $sp,$sp,16
> 80101edc:       00000000        nop
>
> with WinMon (bootloader) I get this (this is perhaps more readable...):
>
> [80101e70] 3c028039 lui         r2,0x8039        putPromChar
> [80101e74] 244519f0 addiu       r5,r2,0x19f0
> [80101e78] 8ca30014 lw          r3,0x0014(r5)
> [80101e7c] 00042600 sll         r4,r4,24
> [80101e80] 27bdfff0 addiu       r29,r29,0xfff0
> [80101e84] 00043603 sra         r6,r4,24
> [80101e88] 10600012 beq         r3,r0,0x0012
> [80101e90] 8ca20004 lw          r2,0x0004(r5)           --> in 2.6 it 
> reads 0 at address r5 + 0x4  [80101e94] 3c038036 lui         r3,0x8036
> [80101e98] 8c64c9a0 lw          r4,0xc9a0(r3)        --> in 2.6 it 
> reads 0 at adress r3 + 0xc9a0
> [80101e9c] 2442001c addiu       r2,r2,0x001c
> [80101ea0] 00822021 addu        r4,r4,r2        ==> in 2.4 it returns 
> bf010f1c in r4
> [80101ea8] 8c820000 lw          r2,0x0000(r4)
>
> * Exception 0x02 (user) : TLB (load or instruction fetch) *
> * in address: 80101ea8
> ClockDiv2+0xe38:
> [80101ea8] 8c820000 lw          r2,0x0000(r4)
>
>
> r0(zero): 00000000 r1(AT)  : 1000fc00 r2(v0)  : 0000001c r3(v1)  : 
> 80360000
> r4(a0)  : 0000001c r5(a1)  : 803919f0 r6(a2)  : 0000000d r7(a3)  : 
> 8038df8c
>
> I hope this will help and many thanks for your help!
>
> Yoann

I traced through some of put character function this morning... I didn't 
finish, but I thought it looked like some data structure wasn't 
initialized. Perhaps you can figure out exactly what line the bad load 
belongs to in the C source, and see what structure that is. -- If there 
is a data structure -- I could just be crazy. ;)

Brett

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Réf. : Compiling a 2.6 kernel for Mips
  2005-09-29  6:21   ` Brett Foster
@ 2005-09-29 12:08     ` Yoann Allain
  0 siblings, 0 replies; 4+ messages in thread
From: Yoann Allain @ 2005-09-29 12:08 UTC (permalink / raw)
  To: Brett Foster; +Cc: linux-mips

Thank you for your advices! I found the solution: A serial port data 
structure for my card was defined BUT not used in 
include/asm-mips/serial.h to define SERIAL_PORT_DFNS so that the 
structure was emtpy. Now my kernel prints output and goes a little 
further. It doesn't fully work but for first I'll try to fix it on my own...

Thank you all again for your advices...

@+ Yoann

Brett Foster a écrit :

> Yoann Allain wrote:
>
>> Here is the function putPromChar in which I have the problem:
>>
>> 80101e70 <putPromChar>:
>> 80101e70:       3c028039        lui     $v0,0x8039
>> 80101e74:       244519f0        addiu   $a1,$v0,6640
>> 80101e78:       8ca30014        lw      $v1,20($a1)
>> 80101e7c:       00042600        sll     $a0,$a0,24
>> 80101e80:       27bdfff0        addiu   $sp,$sp,-16
>> 80101e84:       00043603        sra     $a2,$a0,24
>> 80101e88:       10600012        beqz    $v1,80101ed4 <putPromChar+0x64>
>> 80101e8c:       00001025        move    $v0,$zero
>> 80101e90:       8ca20004        lw      $v0,4($a1)
>> 80101e94:       3c038036        lui     $v1,0x8036
>> 80101e98:       8c64c9a0        lw      $a0,-13920($v1)
>> 80101e9c:       2442001c        addiu   $v0,$v0,28
>> 80101ea0:       00822021        addu    $a0,$a0,$v0
>> 80101ea4:       00000000        nop
>> 80101ea8:       8c820000        lw      $v0,0($a0)
>> 80101eac:       30420020        andi    $v0,$v0,0x20
>> 80101eb0:       1040fffd        beqz    $v0,80101ea8 <putPromChar+0x38>
>> 80101eb4:       3c028039        lui     $v0,0x8039
>> 80101eb8:       8c4319f4        lw      $v1,6644($v0)
>> 80101ebc:       3c048036        lui     $a0,0x8036
>> 80101ec0:       8c82c9a0        lw      $v0,-13920($a0)
>> 80101ec4:       24630004        addiu   $v1,$v1,4
>> 80101ec8:       00431021        addu    $v0,$v0,$v1
>> 80101ecc:       ac460000        sw      $a2,0($v0)
>> 80101ed0:       24020001        li      $v0,1
>> 80101ed4:       03e00008        jr      $ra
>> 80101ed8:       27bd0010        addiu   $sp,$sp,16
>> 80101edc:       00000000        nop
>>
>> with WinMon (bootloader) I get this (this is perhaps more readable...):
>>
>> [80101e70] 3c028039 lui         r2,0x8039        putPromChar
>> [80101e74] 244519f0 addiu       r5,r2,0x19f0
>> [80101e78] 8ca30014 lw          r3,0x0014(r5)
>> [80101e7c] 00042600 sll         r4,r4,24
>> [80101e80] 27bdfff0 addiu       r29,r29,0xfff0
>> [80101e84] 00043603 sra         r6,r4,24
>> [80101e88] 10600012 beq         r3,r0,0x0012
>> [80101e90] 8ca20004 lw          r2,0x0004(r5)           --> in 2.6 it 
>> reads 0 at address r5 + 0x4  [80101e94] 3c038036 lui         r3,0x8036
>> [80101e98] 8c64c9a0 lw          r4,0xc9a0(r3)        --> in 2.6 it 
>> reads 0 at adress r3 + 0xc9a0
>> [80101e9c] 2442001c addiu       r2,r2,0x001c
>> [80101ea0] 00822021 addu        r4,r4,r2        ==> in 2.4 it returns 
>> bf010f1c in r4
>> [80101ea8] 8c820000 lw          r2,0x0000(r4)
>>
>> * Exception 0x02 (user) : TLB (load or instruction fetch) *
>> * in address: 80101ea8
>> ClockDiv2+0xe38:
>> [80101ea8] 8c820000 lw          r2,0x0000(r4)
>>
>>
>> r0(zero): 00000000 r1(AT)  : 1000fc00 r2(v0)  : 0000001c r3(v1)  : 
>> 80360000
>> r4(a0)  : 0000001c r5(a1)  : 803919f0 r6(a2)  : 0000000d r7(a3)  : 
>> 8038df8c
>>
>> I hope this will help and many thanks for your help!
>>
>> Yoann
>
>
> I traced through some of put character function this morning... I 
> didn't finish, but I thought it looked like some data structure wasn't 
> initialized. Perhaps you can figure out exactly what line the bad load 
> belongs to in the C source, and see what structure that is. -- If 
> there is a data structure -- I could just be crazy. ;)
>
> Brett
>
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2005-09-29 12:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-09-28 13:01 Réf. : Compiling a 2.6 kernel for Mips Florian DELIZY
2005-09-28 13:38 ` Yoann Allain
2005-09-29  6:21   ` Brett Foster
2005-09-29 12:08     ` Yoann Allain

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox