Subject: RE: Kernel oops, sig: 7 at last init / modules

From: "Etienne van der Linde" <[email-masked]>
Date: Thu, 11 Mar 2004 14:22:37 +0200

Hi Wolfgang

Thanks for the reply...

> Decode the backtrace (see
ftp://ftp.denx.de/pub/tools/backtrace)

Which I did - but what does it tell me...and why so many
unknown addresses?:

###################################################################################
###################################################################################
.....
.....
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 1024 bind 1024)
eth0: config: auto-negotiation on, 100FDX, 100HDX, 10FDX,
10HDX.
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
Looking up port of RPC 100003/2 on 172.17.5.125
Looking up port of RPC 100005/2 on 172.17.5.125
VFS: Mounted root (nfs filesystem).
Freeing unused kernel memory: 48k init
Machine check in kernel mode.
Caused by (from SRR1=49030): Transfer error ack signal
Oops: machine check, sig: 7
NIP: C000D594 XER: 20000000 LR: C0040238 SP: C0EE1DB0 REGS:
c0ee1d00 TRAP: 0200
MSR: 00049030 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
TASK = c0ee0000[8] 'modprobe' Last syscall: 5
last math c0ee0000 last altivec 00000000
GPR00: 00000040 C0EE1DB0 C0EE0000 C0EDE000 0FFE0C58
00001000 C0EDDFFF 0FFDF304
GPR08: C01F25C0 00000000 C0EDE000 00000001 24888088
1003A1A8 00FFB000 007FFF79
GPR16: C013B478 C013B578 C0EE1F08 84888024 00009032
00EE1DF0 00000000 C0003DE4
GPR24: C0003B20 0FFEAA94 0FFED6A0 100389E8 00000008
C0EDE000 00001000 0FFE0C58
Call backtrace:
C00401C8 C0033434 C0003B7C 00000000 0FF1A05C 0FF4FBF8
0FF4EA04
0FF4F858 0FF4C4C8 0FF85B60 0FF85998 10015108 0FEE67B8
0FECFF74
00000000

***********************************************************************************
The backtrace:
***********************************************************************************
0xc00401c8 -- 0xc00401a0 + 0x0028   Letext
0xc0033434 -- 0xc0033418 + 0x001c   sys_open
0xc0003b7c -- 0xc0003b7c + 0x0000   ret_from_syscall_1
0x00000000 -- unknown address
0x0ff1a05c -- unknown address
0x0ff4fbf8 -- unknown address
0x0ff4ea04 -- unknown address
0x0ff4f858 -- unknown address
0x0ff4c4c8 -- unknown address
0x0ff85b60 -- unknown address
0x0ff85998 -- unknown address
0x10015108 -- unknown address
0x0fee67b8 -- unknown address
0x0fecff74 -- unknown address
***********************************************************************************

INIT: version 2.78 booting
Machine check in kernel mode.
Caused by (from SRR1=49030): Transfer error ack signal
Oops: machine check, sig: 7
NIP: C000D594 XER: 20000000 LR: C0040238 SP: C01F1DF0 REGS:
c01f1d40 TRAP: 0200
MSR: 00049030 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
TASK = c01f0000[1] 'init' Last syscall: 33
last math 00000000 last altivec 00000000
GPR00: 00000040 C01F1DF0 C01F0000 C0E7E000 0FFE6DA8
00001000 C0E7DFFF FEFEFEFF
GPR08: C01F25E0 00000000 C0E7E000 00000001 4444408D
1001F5A8 00FFB000 007FFF79
GPR16: 00000001 00000000 007FFF00 10010000 00009032
001F1E70 00000000 C0003DE4
GPR24: C0003B20 10006BF0 7FFFFAD8 00000000 C01F1E38
C0E7E000 00001000 0FFE6DA8
Call backtrace:
C00401C8 C00417FC C0032784 C0003B7C 3000B178 0FFB5D08
0FFB5F6C
1000660C 10006690 10003384 10004328 10005C64 10006088
0FECFF70
00000000

***********************************************************************************
The backtrace:
***********************************************************************************
0xc00401c8 -- 0xc00401a0 + 0x0028   Letext
0xc00417fc -- 0xc00417e0 + 0x001c   __user_walk
0xc0032784 -- 0xc003271c + 0x0068   sys_access
0xc0003b7c -- 0xc0003b7c + 0x0000   ret_from_syscall_1
0x3000b178 -- unknown address
0x0ffb5d08 -- unknown address
0x0ffb5f6c -- unknown address
0x1000660c -- unknown address
0x10006690 -- unknown address
0x10003384 -- unknown address
0x10004328 -- unknown address
0x10005c64 -- unknown address
0x10006088 -- unknown address
0x0fecff70 -- unknown address
***********************************************************************************

Kernel panic: Attempted to kill init!
Rebooting in 1 seconds..

###################################################################################
###################################################################################

> To me it seems that you should check your memory  map.

Well I only map the internal dpram and the flash in init.c;

***********************************************************************************
	case _MACH_8260:
		setbat(0, IMAP_ADDR, IMAP_ADDR, 0x1000000, IO_PAGE);			/*
Internal regs */
		setbat(1, 0xf0000000, 0xf0000000, 0x10000000,
IO_PAGE);		/* FLASH */
		ioremap_base = IMAP_ADDR;
	break;
***********************************************************************************

> For  example, where  is  the  IMMR  mapped?

Here are excerpts from my BDI config file;
***********************************************************************************
WREG	MSR		0x00001002	; default MSR
WM32	0x000101A8	0x0F000000	; IMMR	== 0x0F000000, move
internal memspace to 0x0F000000
WM32	0x0F010004	0xFFFFFFC3	; SYPCR	== no watchdog
WM32	0x0F010C80	0x00000019	; SCCR	== normal operations
WM32	0x0F010024	0x100C0000	; BCR	== single mode

;	CHIP SELECT	BASE ADDRESS	SIZE	 BUS	PORT SIZE	COMMENTS
;	-----------	------------	----	-----	---------	--------
;	   #CS0		 0xFF000000	16MB	 60x	  64 bits	16MB FLASH
;	   #CS1		 0x00000000	16MB	 60x	  32bits	16MB SDRAM
;	   #CS2		 0xE2000000	16 B	Local	   8 bits	16 B RTC
;	   #CS3		 0xE3000000	 8 B	Local	  16 bits	 8 B USB
;	   #CS4		 0xE4000000	 1 B	Local	   8 bits	 1 B CAN
;	   #CS5		 0xE5000000	16 B	Local	   8 bits	16 B ARCNET
;	   #CS6		 0xE6000000	16MB	Local	  32 bits	16MB FPGA
;
WM32	0x0F010100	0xFF000001	; BR0 - FLASH
WM32	0x0F010104	0xFF001047	; OR0 - FLASH

WM16	0x0F010184	0x2000	; MPTPR: Divide bus clock by 32
WM8	0x0F01019C	0x20		; PSRT(Local bus SDRAM Refresh Timer):
Divide MPTPR output by 30

WM32	0x0F01010C	0xFF0030C0	; OR1 - SDRAM
WM32	0x0F010108	0x00001841	; BR1 - SDRAM 0x00001841

WM32	0x0F010190	0xAA66B552	; PSDMR: Precharge all banks E
WM32	0x00000000	0xFF		; Access SDRAM
WM32	0x0F010190	0x8A66B552	; PSDMR: CBR Refresh C
WM8	0x00000000	0xFF		; Access SDRAM
WM8	0x00000000	0xFF		; Access SDRAM
WM32	0x0F010190	0x9A66B552	; PSDMR: Mode Set D
WM8	0x00000000	0xFF		; Access SDRAM
WM32	0x0F010190	0xC266B552	; PSDMR: enable refresh, normal
C36AB552
WM8	0x00000000	0xFF		; Access SDRAM

WM32	0x0F010114	0xFF001CF6	; OR2 - RTC
WM32	0x0F010110	0xE2000821	; BR2 - RTC
WM32	0x0F01011C	0xFF001047	; OR3 - USB
WM32	0x0F010118	0xE3001021	; BR3 - USB
WM32	0x0F010124	0xFF001CF6	; OR4 - CAN
WM32	0x0F010120	0xE4000821	; BR4 - CAN
WM32	0x0F01012C	0xFF001047	; OR5 - ARCNET
WM32	0x0F010128	0xE5001021	; BR5 - ARCNET
***********************************************************************************

> Did you make sure to put it at a "high" address?

Is 0x0F000000 high enough? Do you have a better suggestion?

Furthermore, if I disable the 60x Busmonitor (i.e. write
0xFFFFFF34 to SYPCR at startup), I do not get the oops, but
the system only hangs after freeing init memory....does
this mean that the problem lies with my 60x bus
(SDRAM/FLASH)?

Thanks

Etienne

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/