All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lorenz Kolb <lorenz.kolb@uni-ulm.de>
To: Fahd Abidi <fabidi@ultsol.com>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: Problem with memcpy on ppc8536
Date: Fri, 19 Jun 2009 19:04:03 +0200	[thread overview]
Message-ID: <4A3BC503.80400@uni-ulm.de> (raw)
In-Reply-To: <71DEA556544D7A4F9C6848402D8184340C4A13__24467.8549039692$1245370891$gmane$org@usi01.ultsol.local>

Could you please try the following patch, I am quite sure that checking 
for > 4 was accidentially done within io.c instead of >= 4 as if it's 4 
we still can copy a 32-bit word. Some hardware might not be happy about 
8-bit accesses...

Index: 2.6.30-source/arch/powerpc/kernel/io.c
===================================================================
--- a/2.6.30-source/arch/powerpc/kernel/io.c
+++ b/2.6.30-source/arch/powerpc/kernel/io.c

@@ -162,5 +162,5 @@
                  n--;
          }
-        while(n > 4) {
+        while(n >= 4) {
                  *((u32 *)dest) = *((volatile u32 *)vsrc);
                  eieio();
@@ -191,5 +191,5 @@
                  n--;
          }
-        while(n > 4) {
+        while(n >= 4) {
                  *((volatile u32 *)vdest) = *((volatile u32 *)src);
                  src += 4;

Fahd Abidi wrote:
> Hello, 
> 
> I am trying to debug a crash during memcpy while copying data from the
> FCM buffer of an mpc8536 to the ddr ram. I debugged memcpy enough
> through my BDI3000 to see that the entire contents of the fcm buffer I
> want moved are actually moved off to memory location I specify. The
> crash comes after it memcpy finishes copying and performs the
> instruction "2: cmplwi 0,r5,4": 
> 
> memcpy: 
> rlwinm. r7,r5,32-3,3,31 /* r0 = r5 >> 3 */ 
> addi r6,r3,-4 
> addi r4,r4,-4 
> beq 2f /* if less than 8 bytes to do */ 
> andi. r0,r6,3 /* get dest word aligned */ 
> mtctr r7 
> bne 5f 
> 1: lwz r7,4(r4) 
> lwzu r8,8(r4) 
> stw r7,4(r6) 
> stwu r8,8(r6) 
> bdnz 1b 
> andi. r5,r5,7 
> 2: cmplwi 0,r5,4 
> 
> contents of r5 are 0x0 showing that the entire 0x1000 size transfer I
> specified correctly finished. At this point I can check the memory
> contents through my BDI and verify all the data is in the ddr as I
> expect. Now the strange thing happens, if I execute the "cmplwi 0,r5,4"
> the program takes an exception and eventually gets struck at exception
> vector 0x700 which I saw from start.S is an "Alignment" exception. I am
> not sure what this exception means, can someone help me understand what
> is happening? 
> 
> Does this exception somehow mean that memcpy did not move all the data?
> Does memcpy expect contents of r5 to be 4 and not 0 when it hits the
> cmplwi instruction? 
> 
> 
> Fahd Abidi
> Product Manager - Technical Tools and Development
> Ultimate Solutions, Inc.
> ================================================================
> Your Single Source for Professional Development Tools and Embedded
> Solutions
> Ph: 978-455-3383 x255
> Fx: 978-926-3091
> Email: fabidi@ultsol.com
> Visit: http://www.ultsol.com <http://www.ultsol.com/>  
>  
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev

       reply	other threads:[~2009-06-19 17:31 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <71DEA556544D7A4F9C6848402D8184340C4A13__24467.8549039692$1245370891$gmane$org@usi01.ultsol.local>
2009-06-19 17:04 ` Lorenz Kolb [this message]
2009-06-19 17:06 ` Problem with memcpy on ppc8536 Lorenz Kolb
2009-06-19 17:28   ` Albrecht Dreß
2009-06-19 17:51   ` Wolfram Sang
2009-06-18 20:33 Fahd Abidi
2009-06-19  4:42 ` Liu Dave-R63238

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A3BC503.80400@uni-ulm.de \
    --to=lorenz.kolb@uni-ulm.de \
    --cc=fabidi@ultsol.com \
    --cc=linuxppc-dev@ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.