Hi Dave,
Dave Meador wrote:
>/ Greg Ungerer wrote:
/>>/ Dave Meador wrote:
/>>>/ I am stuck on a bug at bootup in kmem_cache_init(). Trying to tweak
/>>>/ the uClinux-20080808 w/ 20090312 patch to boot on a 547x coldfire
/>>>/ board. Upon attempt to "Init caches for array cache kmem_list3" the
/>>>/ kernel panics upon running check_slabp() with the following error:
/>>>/ slab: Internal list corruption detected in cache 'kmem_cache'(27),
/>>>/ slabp 01c00000(0). Hexdump:...
/>>>/
/>>>/ I ran into a similar bug when using slub allocator, so I switched to
/>>>/ slab and still get a crash in kmem_cache_init. Any help to resolve
/>>>/ this would be greatly appreciated. Does anyone have any ideas on why
/>>>/ I would be running into Internal list corruption?
/>>>/
/>>>/ Thanks,
/>>>/ -Dave
/>>>/
/>>>/ uClinux boot output:
/>>>/
---------------------snip---------------------snip---------------------snip---------------------snip---------------------
/>>>/
/>>>/ Linux version 2.6.26-uc0-svn29-dirty17 (xxx at yyy
<http://mailman.uclinux.org/mailman/listinfo/uclinux-dev>) (gcc version 4.3.2
/>>>/ (Sourcery G++ Lite 4.3-45) ) #60 Thu Apr 16 15:09:49 PDT
/>>>/ 2009
/>>>/ uClinux/COLDFIRE(m547x)
/ ^^^^^
I am a little confused by this. There is no native 547x support in
the linux-2.6.x kernels in uClinux-dist-20080808 and later. They
won't report an m527x CPU type here...
Have you made changes to the code here?
(Note that the linux-2.4.x kernels in those source packages did
have native 547x support).
>>>/ COLDFIRE port done by Greg Ungerer,gerg at snapgear.com
<http://mailman.uclinux.org/mailman/listinfo/uclinux-dev>
/>>>/ Flat model support (C) 1998,1999 Kenneth Albanowski, D. Jeff Dionne
/>>>/ KERNEL -> TEXT=0x002000-0x135bac DATA=0x135bac-0x143000
/>>/ ^^^^^^^^
/>>/ That seems like an unusually low address to start at on a
/>>/ ColdFire dev board. Are you sure that is right?
/>>/
/>>/ (Most of the Freescale dev board start at offset 0x20000 into
/>>/ RAM, some older ones at 0x10000 offset).
/>>/
/>>/ Maybe I need to take a step back :-)
/>>/ Is this a Freescale dev board, or something else?
/>/ Yes, it is a Freescale dev board... I did change the address in the
/>/ vmlinux.ld from 0x20000 to 0x2000. My loader is placed near the end of
/>/ ram and then jumps to the kernel start address. Correct me if I am
/>/ wrong, but I think that once the jump to kernel start occurs, the memory
/>/ that the loader occupies can be reused.
/
Yep, that is right. It is safe to use that memory after starting the
kernel proper.
>/ I was trying to conserve ram.
/>/ But that is the least of my worries at the moment. Sorry for the
/>/ unaligned log listing... something went wrong with my cut-n-paste.
/
:/-)
/
The biggest problem I see in the linux-2.6.x code is that it doesn't
have the native 547x code that the linux-2.4.x code had...
Anyway, for this type of memory setup/init problems the most usual
cause I have seen is bad processor cache setup. Do you have the
processor cache enabled?
Regards
Greg
Hi Greg,
I am still fighting this problem. To answer your question, I do have processor
cache enabled.
Do you see anything wrong with the cache setup I am using?
I am reserving the 1st 2mb (of 32mb) as cache inhibited so as to allow the DMA
to work properly.
.macro CACHE_ENABLE
movel #0x01040100,%d0
movec %d0,%CACR
nop
movel #0x0001c440,%d0
movec %d0, %ACR0
movel #0x000fc000,%d0
movec %d0, %ACR1
movel #0x000fc000,%d0
movec %d0, %ACR2
movel #0x00000000,%d0
movec %d0, %ACR3
movel #0xa6088400,%d0
movec %d0,%CACR
nop
.endm
Regards,
Dave
_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev