Enabling DEBUG in head.S file makes the kernel work

Virupax.SS at Lntemsys.com Virupax.SS at Lntemsys.com
Thu Dec 10 06:42:56 EST 2009


Hi

I am using Linux 2.6.27 kernel on  at91sam9g20 Controller. The kernel 
boots fine on all the boards i have here , but on one board kernel does 
not boot and gives 

## Booting kernel from Legacy Image at 20400000 ...
   Image Name:   Linux-2.6.27
   Created:      2009-12-10   6:28:11 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1690656 Bytes =  1.6 MB
   Load Address: 20008000
   Entry Point:  20008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK
RFS-NAND

Starting kernel ...

Uncompressing 
Linux.............................................................
................................................

crc error

 -- System halted


Error message.

If i add 
#define DEBUG on top of the "arch/arm/boot/compressed/head.S" file, the 
kernel boots up upto the login prompt , but still the login will not be 
possible.
RFS shall not be mounted correctly in this case.


## Booting kernel from Legacy Image at 20400000 ...
   Image Name:   Linux-2.6.27
   Created:      2009-12-10   6:29:18 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1690624 Bytes =  1.6 MB
   Load Address: 20008000
   Entry Point:  20008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK
RFS-NAND

Starting kernel ...

Uncompressing 
Linux.............................................................
................................................ done, booting the kernel.

41069265:00000658:00055078
201BE040-20509540>20008000
20509540
20008000: E321F0D3 EE109F10 EB000055 E1B0A005  0A000051 EB00006A E1B08005 
0A0000
4E
20008020: EB000079 EB000013 E59FD0BC E28FE000  E28AF010 E3800002 E3A0501F 
EE035F
10
20008040: EE024F10 EA000005 E1A00000 E1A00000  E1A00000 E1A00000 E1A00000 
E1A000
00
20008060: E1A00000 EE010F10 EE103F10 E1A03003  E1A03003 E1A0F00D E59F4064 
E1A000
04
20008080: E3A03000 E2806901 E4803004 E4803004  E4803004 E4803004 E1300006 
1AFFFF
F9
200080A0: E59A7008 E1A06A2F E1873A06 E7843106  E2840A03 E5A03000 E59F6028 
E28000
04
200080C0: E0846926 E1500006 E2833601 94803004  9AFFFFFB E2840A03 E3876202 
E58060
00
200080E0: E1A0F00E 20004000 C0372AA7 C0008114  C0334000 C0334000 C0353500 
C0372A
A8
Linux version 2.6.27 (root at developer-desktop) (gcc version 4.3.2 
(crosstool-NG-1
.3.1) ) #4 Tue Dec 8 12:37:45 IST 2009
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
Machine: Atmel AT91SAM9G20-EK
Memory policy: ECC disabled, Data cache writeback
Clocks: CPU 396 MHz, master 132 MHz, main 18.432 MHz
CPU0: D VIVT write-back cache
CPU0: I cache: 32768 bytes, associativity 4, 32 byte lines, 256 sets
CPU0: D cache: 32768 bytes, associativity 4, 32 byte lines, 256 set
..
..
..
...
...
.
(none) login: root
/bin/bash: symbol lookup error: /usr/lib/libncurses.so.5: undefined 
symbol: _nc_`isable_period

(none) login



The below part of the code in the head.S is making the difference between 
the working and non working of the kernel ( w.r.t DEBUG)

#ifndef DEBUG
                orr     r0, r0, #0x000d         @ Write buffer, mmu
#endif
                mov     r1, #-1
                mcr     p15, 0, r3, c2, c0, 0   @ load page table pointer
                mcr     p15, 0, r1, c3, c0, 0   @ load domain access 
control
                b       1f
                .align  5                       @ cache line aligned
1:              mcr     p15, 0, r0, c1, c0, 0   @ load control register
                mrc     p15, 0, r0, c1, c0, 0   @ and read it back to
                sub     pc, lr, r0, lsr #32     @ properly flush pipeline


It will be helpful if some one can point to why the error is there , is it 
because of the faulty board(controller).



Thanks and regards

Virupax




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20091210/b616b2d2/attachment-0001.htm>


More information about the linux-arm-kernel mailing list