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

Reply via email to