[U-Boot-Users] Linux Bring up problem
Vikrant_Basotra
Vikrant_Basotra at Satyam.com
Fri Apr 1 01:07:09 CEST 2005
Hi All,
I am trying to port the EP8248 Linux image (which works perfectly on the
EP8248 board) on
the VPN board (In house board) which is mpc8248 based board.
I do not have any problem with the functioning of U-Boot but Linux crashes
after printing "Uncompressing Kernel ... OK" and then it seems
that nothing is happening.
It would be great if u could help me resolve the issue. The following
is how I have configured my board:
1. The value of the IMMR in HCRW is configured to 0xF0000000 (which is same
as in the ep8248 image). The value of IMAP_ADDR in
linux/arch/ppc/platforms/ep8248.h and u-boot/include/configs/ep8248.h
is 0xF0000000
2. The memory map of EP8248 board (REFERENCE BOARD) is:
============================================================================
Memory Region Size Address Range
============================================================================
SDRAM 16MByte 0000_0000--07FF_FFFF
Flash 8MByte FF80_0000--FFFF_FFFF
3. The memory map of the VPN Board (MY BOARD) is as follows:
===========================================================================
Memory Region Size Address Range
========================================================================
SDRAM 32MByte 0000_0000 --
01FF_FFFF
Flash 32MByte FF00_0000 --
FFFF_FFFF
From the u-boot the parameters passed to the kernel (pointer to a function
which actually starts loading the kernel image) are :
(*kernel) (kbd, initrd_start, initrd_end, cmd_start, cmd_end);
kbd (ptr to board info strcture),
initrd_start (=0, as in our case we dont have any
ramdisk),
initrd_end (=0),
cmd_start (Start of command line string),
cmd_end (End of command line string)
4. Board Info Structure defined in u-boot (/include/asm-ppc/u-boot.h)and
Linux (include/asm-ppc/ep8248.h) are the same and is passed correctly from
u-boot to Linux.
By putting some Printk's I had cheacked that control is reaching to the
function mapin_ram(void) in file arch/ppc/mm/pgtable.c Here it is supposed
to map the 32 MB of virtual memory to the Physical memory.
The control does not leave the for loop in which the memory mapping takes
place.
This is what the console log buffer has shown:
=================================================================
md 0x00177e34
00177e34: 3c363e4d 656d6f72 79204241 54206d61 <6>Memory BAT ma
00177e44: 7070696e 673a2042 7070696e 673a2042 pping: Bpping: B
00177e54: 622c2042 4154333d 33324d62 2c207265 b, BAT3=32Mb, re
00177e64: 73696475 616c3a20 304d620a 3c343e4f sidual: 0Mb.<4>O
00177e74: 6f70733a 206b6572 6e656c20 61636365 ops: kernel acce
00177e84: 7373206f 66206261 64206172 65612c20 ss of bad area,
00177e94: 7369673a 2031310a 3c343e4e 49503a20 sig: 11.<4>NIP:
00177ea4: 30303030 30303030 20584552 3a203030 00000000 XER: 00
00177eb4: 30303030 3030204c 523a2030 30303030 000000 LR: 00000
00177ec4: 30303020 53503a20 30303030 30303030 000 SP: 00000000
00177ed4: 20524547 533a2063 30313530 30303020 REGS: c0150000
00177ee4: 54524150 3a203030 30302020 20204e6f TRAP: 0000 No
00177ef4: 74207461 696e7465 640a3c34 3e4d5352 t tainted.<4>MSR
00177f04: 3a203030 30303030 30302045 453a2030 : 00000000 EE: 0
00177f14: 2050523a 20302046 503a2030 204d453a PR: 0 FP: 0 ME:
00177f24: 20302049 522f4452 3a203030 0a3c343e 0 IR/DR: 00.<4>
00177f34: 5441534b 203d2063 30313466 3437305b TASK = c014f470[
00177f44: 305d2027 73776170 70657227 204c6173 0] 'swapper' Las
00177f54: 74207379 7363616c 6c3a2030 200a3c34 t syscall: 0 .<4
00177f64: 3e6c6173 74206d61 74682030 30303030 >last math 00000
00177f74: 30303020 6c617374 20616c74 69766563 000 last altivec
00177f84: 20303030 30303030 300a3c34 3e43616c 00000000.<4>Cal
00177f94: 6c206261 636b7472 6163653a 20303030 l backtrace: 000
00177fa4: 30303030 34200a3c 343e4f6f 70733a20 00004 .<4>Oops:
00177fb4: 6b65726e 656c2061 63636573 73206f66 kernel access of
00177fc4: 20626164 20617265 612c2073 69673a20 bad area, sig:
00177fd4: 31310a3c 343e4e49 503a2030 30303030 11.<4>NIP: 00000
00177fe4: 30303020 5845523a 20303030 30303030 000 XER: 0000000
00177ff4: 30204c52 3a203030 30303030 30302053 0 LR: 00000000 S
00178004: 503a2030 30303030 30303020 52454753 P: 00000000 REGS
00178014: 3a206330 31353030 30302054 5241503a : c0150000 TRAP:
00178024: 20303030 30202020 204e6f74 20746169 0000 Not tai
00178034: 6e746564 0a3c343e 4d53523a 20303030 nted.<4>MSR: 000
00178044: 30303030 30204545 3a203020 50523a20 00000 EE: 0 PR:
00178054: 30204650 3a203020 4d453a20 30204952 0 FP: 0 ME: 0 IR
00178064: 2f44523a 2030300a 3c343e54 41534b20 /DR: 00.<4>TASK
00178074: 3d206330 31346634 37305b30 5d202773 = c014f470[0] 's
00178084: 77617070 65722720 4c617374 20737973 wapper' Last sys
00178094: 63616c6c 3a203020 0a3c343e 6c617374 call: 0 .<4>last
001780a4: 206d6174 68203030 30303030 3030206c math 00000000 l
001780b4: 61737420 616c7469 76656320 30303030 ast altivec 0000
001780c4: 30303030 0a3c343e 43616c6c 20626163 0000.<4>Call bac
001780d4: 6b747261 63653a20 30303030 30303034 ktrace: 00000004
001780e4: 200a3c34 3e4f6f70 733a206b 65726e65 .<4>Oops: kerne
001780f4: 6c206163 63657373 206f6620 62616420 l access of bad
00178104: 61726561 2c207369 673a2031 310a3c34 area, sig: 11.<4
00178114: 3e4e4950 3a203030 30303030 30312058 >NIP: 00000001 X
00178124: 45523a20 30303030 30303030 204c523a ER: 00000000 LR:
00178134: 20433031 35303044 30205350 3a203030 C01500D0 SP: 00
00178144: 30303030 30302052 4547533a 20633031 000000 REGS: c01
00178154: 35303030 30205452 41503a20 31303332 50000 TRAP: 1032
00178164: 20202020 4e6f7420 7461696e 7465640a Not tainted.
00178174: 3c343e4d 53523a20 66666666 66666666 <4>MSR: ffffffff
00178184: 2045453a 20312050 523a2031 2046503a EE: 1 PR: 1 FP:
00178194: 2031204d 453a2031 2049522f 44523a20 1 ME: 1 IR/DR:
001781a4: 31310a3c 343e5441 534b203d 20633031 11.<4>TASK = c01
001781b4: 34663437 305b305d 20277377 61707065 4f470[0] 'swappe
001781c4: 7227204c 61737420 73797363 616c6c3a r' Last syscall:
001781d4: 2030200a 3c343e6c 61737420 6d617468 0 .<4>last math
001781e4: 20303030 30303030 30206c61 73742061 00000000 last a
001781f4: 6c746976 65632030 30303030 3030300a ltivec 00000000.
00178204: 3c343eff ffffffc0 1502c0c0 15024361 <4>...........Ca
00178214: 6c6c2062 61636b74 72616365 3a203030 ll backtrace: 00
00178224: 30303030 3034200a 3c343e4f 6f70733a 000004 .<4>Oops:
00178234: 206b6572 6e656c20 61636365 7373206f kernel access o
00178244: 66206261 64206172 65612c20 7369673a f bad area, sig:
00178254: 2031310a 3c343e4e 49503a20 30303030 11.<4>NIP: 0000
00178264: 30303031 20584552 3a203030 30303030 0001 XER: 000000
00178274: 3030204c 523a2043 30313530 30443020 00 LR: C01500D0
00178284: 53503a20 46464646 46434330 20524547 SP: FFFFFCC0 REG
00178294: 533a2063 30313530 30303020 54524150 S: c0150000 TRAP
001782a4: 3a203130 33322020 20204e6f 74207461 : 1032 Not ta
001782b4: 696e7465 640a3c34 3e4d5352 3a206666 inted.<4>MSR: ff
001782c4: 66666666 66662045 453a2031 2050523a ffffff EE: 1 PR:
001782d4: 20312046 503a2031 204d453a 20312049 1 FP: 1 ME: 1 I
001782e4: 522f4452 3a203131 0a3c343e 5441534b R/DR: 11.<4>TASK
001782f4: 203d2063 30313466 3437305b 305d2027 = c014f470[0] '
00178304: 73772720 4c617374 20737973 63616c6c sw' Last syscall
00178314: 3a202d31 30373337 31383034 30200a3c : -1073718040 .<
00178324: 343e6c61 7374206d 61746820 30303030 4>last math 0000
00178334: 30303030 206c6173 7420616c 74697665 0000 last altive
00178344: 63203030 30303030 30300a3c 343effff c 00000000.<4>..
00178354: ffffc015 02c0c015 02000000 00000000 ................
1.Is all this information sufficient to help you understand and pin
point our mistake, Is there any thing other than the parameters which
are passed to the kernel from the u-boot that I need to look into.
2. I have a query in the Linux source code. I would like to know why
the value of "ioremap_base = 0xfe000000UL;" in
linux/arch/ppc/mm/init.c line 356 has been hard coded and how was this
value determined? What is the impact of this value?
3. In Reference board (EP8248, RAM size is 16MB) the PAGESIZE is defined as
4K, where as in our Board RAM Size is 32 MB. By putting Printk statement in
the Pagefault function, I Came to know that the control is coming to this
function and hence pagefault is occurring.Do I need to change the PAGESIZE
to 8K
Any pointers, ideas, comments would be of great help. i would be more
than glad to provide you with any further information required to
debug the problem.
Best Regards ,
Vikrant
**************************************************************************
This email (including any attachments) is intended for the sole use of the
intended recipient/s and may contain material that is CONFIDENTIAL AND
PRIVATE COMPANY INFORMATION. Any review or reliance by others or copying or
distribution or forwarding of any or all of the contents in this message is
STRICTLY PROHIBITED. If you are not the intended recipient, please contact
the sender by email and delete all copies; your cooperation in this regard
is appreciated.
**************************************************************************
More information about the U-Boot
mailing list