[Top] [All Lists]

Re: Réf. : Compiling a 2.6 kernel for Mips

To: Brett Foster <>
Subject: Re: Réf. : Compiling a 2.6 kernel for Mips
From: Yoann Allain <>
Date: Thu, 29 Sep 2005 14:08:37 +0200
In-reply-to: <>
Organization: Avilinks
Original-recipient: rfc822;
References: <> <> <>
User-agent: Mozilla Thunderbird 1.0 (X11/20041206)
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
[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!


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. ;)


<Prev in Thread] Current Thread [Next in Thread>