All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robert Hodaszi <robert.hodaszi@digi.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] net: fec: Avoid MX28 bus sync issue
Date: Fri, 13 Sep 2013 16:24:00 +0200	[thread overview]
Message-ID: <52332000.2060701@digi.com> (raw)
In-Reply-To: <201309131601.45211.marex@denx.de>

> OK, but as Wolfgang already pointed out, can you tell use what compiler exposes
> this behavior and show us the details WD requested please ?
>
> Best regards,
> Marek Vasut

You can find the informations below.

Please, use my patch or don't use it, or feel free to modify it as you 
wish, but sorry, I really don't have more time to work on this problem.

/ $ arm-linux-gcc --version//
//arm-linux-gcc (crosstool-NG 1.12.1) 4.4.6//
//Copyright (C) 2010 Free Software Foundation, Inc.//
//This is free software; see the source for copying conditions.  There 
is NO//
//warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 
PURPOSE.//
//
// $ arm-linux-ld --version//
//GNU ld (crosstool-NG 1.12.1) 2.20.1.20100303//
//Copyright 2009 Free Software Foundation, Inc.//
//This program is free software; you may redistribute it under the terms 
of//
//the GNU General Public License version 3 or (at your option) a later 
version.//
//This program has absolutely no warranty./




*Before**:

*/4003ff5c <fec_recv>://
//4003ff5c:       e92d44f0        push    {r4, r5, r6, r7, sl, lr}//
//4003ff60:       e590403c        ldr     r4, [r0, #60]   ; 0x3c//
//4003ff64:       e24ddc06        sub     sp, sp, #1536   ; 0x600//
//4003ff68:       e5943000        ldr     r3, [r4]//
//4003ff6c:       e594600c        ldr     r6, [r4, #12]//
//4003ff70:       e5935004        ldr     r5, [r3, #4]//
//4003ff74:       e594a008        ldr     sl, [r4, #8]//
//4003ff78:       e1a07000        mov     r7, r0//
//4003ff7c:       e5943000        ldr     r3, [r4]//
//4003ff80:       e3150101        tst     r5, #1073741824 ; 0x40000000//
//4003ff84:       e5835004        str     r5, [r3, #4]//
//4003ff88:       0a000007        beq     4003ffac <fec_recv+0x50>//
//4003ff8c:       ebfffd9e        bl      4003f60c <fec_halt>//
//4003ff90:       e5941018        ldr     r1, [r4, #24]//
//4003ff94:       e1a00007        mov     r0, r7//
//4003ff98:       ebfffef1        bl      4003fb64 <fec_init>//
//4003ff9c:       e1a01005        mov     r1, r5//
//4003ffa0:       e59f01a4        ldr     r0, [pc, #420]  ; 4004014c 
<fec_recv+0x1f0>//
//4003ffa4:       ebff76b7        bl      4001da88 <printf>//
//4003ffa8:       ea00001d        b       40040024 <fec_recv+0xc8>//
//4003ffac:       e3550000        cmp     r5, #0//
//4003ffb0:       aa000003        bge     4003ffc4 <fec_recv+0x68>//
//4003ffb4:       e59320c4        ldr     r2, [r3, #196]  ; 0xc4//
//4003ffb8:       e3822001        orr     r2, r2, #1//
//4003ffbc:       e5943000        ldr     r3, [r4]//
//4003ffc0:       e58320c4        str     r2, [r3, #196]  ; 0xc4//
//4003ffc4:       e3150201        tst     r5, #268435456  ; 0x10000000//
//4003ffc8:       0a00000d        beq     40040004 <fec_recv+0xa8>//
//4003ffcc:       e5943000        ldr     r3, [r4]//
//4003ffd0:       e59330c4        ldr     r3, [r3, #196]  ; 0xc4//
//4003ffd4:       e3130001        tst     r3, #1//
//4003ffd8:       0a000009        beq     40040004 <fec_recv+0xa8>//
//4003ffdc:       e1a00007        mov     r0, r7//
//4003ffe0:       ebfffd89        bl      4003f60c <fec_halt>//
//4003ffe4:       e5943000        ldr     r3, [r4]//
//4003ffe8:       e59320c4        ldr     r2, [r3, #196]  ; 0xc4//
//4003ffec:       e3c22001        bic     r2, r2, #1//
//4003fff0:       e5943000        ldr     r3, [r4]//
//4003fff4:       e1a00007        mov     r0, r7//
//4003fff8:       e58320c4        str     r2, [r3, #196]  ; 0xc4//
//4003fffc:       e5941018        ldr     r1, [r4, #24]//
//40040000:       ebfffed7        bl      4003fb64 <fec_init>//
//40040004:       e1a05186        lsl     r5, r6, #3//
//40040008:       e08a6005        add     r6, sl, r5//
//4004000c:       e3c6003f        bic     r0, r6, #63     ; 0x3f//
//40040010:       e2801040        add     r1, r0, #64     ; 0x40//
//40040014:       ebff0152        bl      40000564 
<invalidate_dcache_range>//
//40040018:       e1d620b2        ldrh    r2, [r6, #2]//
//4004001c:       e3120902        tst     r2, #32768      ; 0x8000//
//40040020:       0a000001        beq     4004002c <fec_recv+0xd0>//
//40040024:       e3a05000        mov     r5, #0//
//40040028:       ea000044        b       40040140 <fec_recv+0x1e4>//
//4004002c:       e59f311c        ldr     r3, [pc, #284]  ; 40040150 
<fec_recv+0x1f4>//
//40040030:       e0023003        and     r3, r2, r3//
//40040034:       e3530b02        cmp     r3, #2048       ; 0x800//
//40040038:       1a000016        bne     40040098 <fec_recv+0x13c>//
//4004003c:       e19a30b5        ldrh    r3, [sl, r5]//
//40040040:       e3530012        cmp     r3, #18//
//40040044:       da000013        ble     40040098 <fec_recv+0x13c>//
//40040048:       e5967004        ldr     r7, [r6, #4]//
//4004004c:       e19a50b5        ldrh    r5, [sl, r5]//
//40040050:       e2455004        sub     r5, r5, #4//
//40040054:       e287103f        add     r1, r7, #63     ; 0x3f//
//40040058:       e0811005        add     r1, r1, r5//
//4004005c:       e3c7003f        bic     r0, r7, #63     ; 0x3f//
//40040060:       e3c1103f        bic     r1, r1, #63     ; 0x3f//
//40040064:       ebff013e        bl      40000564 
<invalidate_dcache_range>//
//40040068:       e1a00007        mov     r0, r7//
//4004006c:       e1a01005        mov     r1, r5//
//40040070:       ebfffe57        bl      4003f9d4 <swap_packet>//
//40040074:       e1a01007        mov     r1, r7//
//40040078:       e1a02005        mov     r2, r5//
//4004007c:       e1a0000d        mov     r0, sp//
//40040080:       eb0030c5        bl      4004c39c <memcpy>//
//40040084:       e1a0000d        mov     r0, sp//
//40040088:       e1a01005        mov     r1, r5//
//4004008c:       e1a0600d        mov     r6, sp//
//40040090:       eb00465e        bl      40051a10 <NetReceive>//
//40040094:       ea000005        b       400400b0 <fec_recv+0x154>//
//40040098:       e2125037        ands    r5, r2, #55     ; 0x37//
//4004009c:       0a000003        beq     400400b0 <fec_recv+0x154>//
//400400a0:       e5961004        ldr     r1, [r6, #4]//
//400400a4:       e59f00a8        ldr     r0, [pc, #168]  ; 40040154 
<fec_recv+0x1f8>//
//400400a8:       ebff7676        bl      4001da88 <printf>//
//400400ac:       e3a05000        mov     r5, #0//
//400400b0:       e594300c        ldr     r3, [r4, #12]//
//400400b4:       e2032007        and     r2, r3, #7//
//400400b8:       e3520007        cmp     r2, #7//
//400400bc:       1a000014        bne     40040114 <fec_recv+0x1b8>//
//400400c0:       e5940008        ldr     r0, [r4, #8]//
//400400c4:       e243227e        sub     r2, r3, #-536870905     ; 
0xe0000007//
//400400c8:       e2433007        sub     r3, r3, #7//
//400400cc:       e0800183        add     r0, r0, r3, lsl #3//
//400400d0:       e1a02182        lsl     r2, r2, #3//
//400400d4:       ea000009        b       40040100 <fec_recv+0x1a4>//
//400400d8:       e5941008        ldr     r1, [r4, #8]//
//400400dc:       e353003f        cmp     r3, #63 ; 0x3f//
//400400e0:       13a0e902        movne   lr, #32768      ; 0x8000//
//400400e4:       03a0ea0a        moveq   lr, #40960      ; 0xa000//
//400400e8:       e081c002        add     ip, r1, r2//
//400400ec:       e1cce0b2        strh    lr, [ip, #2]//
//400400f0:       e3a0c000        mov     ip, #0//
//400400f4:       e181c0b2        strh    ip, [r1, r2]//
//400400f8:       e2833001        add     r3, r3, #1//
//400400fc:       e2822008        add     r2, r2, #8//
//40040100:       e594100c        ldr     r1, [r4, #12]//
//40040104:       e1530001        cmp     r3, r1//
//40040108:       dafffff2        ble     400400d8 <fec_recv+0x17c>//
//4004010c:       e2801040        add     r1, r0, #64     ; 0x40//
//40040110:       ebff011d        bl      4000058c <flush_dcache_range>//
//40040114:       e5943000        ldr     r3, [r4]//
//40040118:       e3a02401        mov     r2, #16777216   ; 0x1000000//
//4004011c:       e5832010        str     r2, [r3, #16]//
//40040120:       e594300c        ldr     r3, [r4, #12]//
//40040124:       e2833001        add     r3, r3, #1//
//40040128:       e21331fe        ands    r3, r3, #-2147483585    ; 
0x8000003f//
//4004012c:       42433001        submi   r3, r3, #1//
//40040130:       41e03d03        mvnmi   r3, r3, lsl #26//
//40040134:       41e03d23        mvnmi   r3, r3, lsr #26//
//40040138:       42833001        addmi   r3, r3, #1//
//4004013c:       e584300c        str     r3, [r4, #12]//
//40040140:       e1a00005        mov     r0, r5//
//40040144:       e28ddc06        add     sp, sp, #1536   ; 0x600//
//40040148:       e8bd84f0        pop     {r4, r5, r6, r7, sl, pc}//
//4004014c:       40068c43        .word   0x40068c43//
//40040150:       00000837        .word   0x00000837//
//40040154:       40068c58        .word   0x40068c58/




*After:

*/4003ff5c <fec_recv>://
//4003ff5c:       e92d44f0        push    {r4, r5, r6, r7, sl, lr}//
//4003ff60:       e590403c        ldr     r4, [r0, #60]   ; 0x3c//
//4003ff64:       e1a0a000        mov     sl, r0//
//4003ff68:       e5943000        ldr     r3, [r4]//
//4003ff6c:       e594600c        ldr     r6, [r4, #12]//
//4003ff70:       e5935004        ldr     r5, [r3, #4]//
//4003ff74:       e5947008        ldr     r7, [r4, #8]//
//4003ff78:       e5943000        ldr     r3, [r4]//
//4003ff7c:       e3150101        tst     r5, #1073741824 ; 0x40000000//
//4003ff80:       e5835004        str     r5, [r3, #4]//
//4003ff84:       0a000007        beq     4003ffa8 <fec_recv+0x4c>//
//4003ff88:       ebfffd9f        bl      4003f60c <fec_halt>//
//4003ff8c:       e5941018        ldr     r1, [r4, #24]//
//4003ff90:       e1a0000a        mov     r0, sl//
//4003ff94:       ebfffef2        bl      4003fb64 <fec_init>//
//4003ff98:       e1a01005        mov     r1, r5//
//4003ff9c:       e59f019c        ldr     r0, [pc, #412]  ; 40040140 
<fec_recv+0x1e4>//
//4003ffa0:       ebff76b8        bl      4001da88 <printf>//
//4003ffa4:       ea00001d        b       40040020 <fec_recv+0xc4>//
//4003ffa8:       e3550000        cmp     r5, #0//
//4003ffac:       aa000003        bge     4003ffc0 <fec_recv+0x64>//
//4003ffb0:       e59320c4        ldr     r2, [r3, #196]  ; 0xc4//
//4003ffb4:       e3822001        orr     r2, r2, #1//
//4003ffb8:       e5943000        ldr     r3, [r4]//
//4003ffbc:       e58320c4        str     r2, [r3, #196]  ; 0xc4//
//4003ffc0:       e3150201        tst     r5, #268435456  ; 0x10000000//
//4003ffc4:       0a00000d        beq     40040000 <fec_recv+0xa4>//
//4003ffc8:       e5943000        ldr     r3, [r4]//
//4003ffcc:       e59330c4        ldr     r3, [r3, #196]  ; 0xc4//
//4003ffd0:       e3130001        tst     r3, #1//
//4003ffd4:       0a000009        beq     40040000 <fec_recv+0xa4>//
//4003ffd8:       e1a0000a        mov     r0, sl//
//4003ffdc:       ebfffd8a        bl      4003f60c <fec_halt>//
//4003ffe0:       e5943000        ldr     r3, [r4]//
//4003ffe4:       e59320c4        ldr     r2, [r3, #196]  ; 0xc4//
//4003ffe8:       e3c22001        bic     r2, r2, #1//
//4003ffec:       e5943000        ldr     r3, [r4]//
//4003fff0:       e1a0000a        mov     r0, sl//
//4003fff4:       e58320c4        str     r2, [r3, #196]  ; 0xc4//
//4003fff8:       e5941018        ldr     r1, [r4, #24]//
//4003fffc:       ebfffed8        bl      4003fb64 <fec_init>//
//40040000:       e1a05186        lsl     r5, r6, #3//
//40040004:       e0876005        add     r6, r7, r5//
//40040008:       e3c6003f        bic     r0, r6, #63     ; 0x3f//
//4004000c:       e2801040        add     r1, r0, #64     ; 0x40//
//40040010:       ebff0153        bl      40000564 
<invalidate_dcache_range>//
//40040014:       e1d620b2        ldrh    r2, [r6, #2]//
//40040018:       e3120902        tst     r2, #32768      ; 0x8000//
//4004001c:       0a000001        beq     40040028 <fec_recv+0xcc>//
//40040020:       e3a05000        mov     r5, #0//
//40040024:       ea000043        b       40040138 <fec_recv+0x1dc>//
//40040028:       e59f3114        ldr     r3, [pc, #276]  ; 40040144 
<fec_recv+0x1e8>//
//4004002c:       e0023003        and     r3, r2, r3//
//40040030:       e3530b02        cmp     r3, #2048       ; 0x800//
//40040034:       1a000015        bne     40040090 <fec_recv+0x134>//
//40040038:       e19730b5        ldrh    r3, [r7, r5]//
//4004003c:       e3530012        cmp     r3, #18//
//40040040:       da000012        ble     40040090 <fec_recv+0x134>//
//40040044:       e5966004        ldr     r6, [r6, #4]//
//40040048:       e19750b5        ldrh    r5, [r7, r5]//
//4004004c:       e2455004        sub     r5, r5, #4//
//40040050:       e286103f        add     r1, r6, #63     ; 0x3f//
//40040054:       e0811005        add     r1, r1, r5//
//40040058:       e3c6003f        bic     r0, r6, #63     ; 0x3f//
//4004005c:       e3c1103f        bic     r1, r1, #63     ; 0x3f//
//40040060:       ebff013f        bl      40000564 
<invalidate_dcache_range>//
//40040064:       e1a00006        mov     r0, r6//
//40040068:       e1a01005        mov     r1, r5//
//4004006c:       ebfffe58        bl      4003f9d4 <swap_packet>//
//40040070:       e1a01006        mov     r1, r6//
//40040074:       e1a02005        mov     r2, r5//
//40040078:       e59f00c8        ldr     r0, [pc, #200]  ; 40040148 
<fec_recv+0x1ec>//
//4004007c:       eb0030c4        bl      4004c394 <memcpy>//
//40040080:       e59f00c0        ldr     r0, [pc, #192]  ; 40040148 
<fec_recv+0x1ec>//
//40040084:       e1a01005        mov     r1, r5//
//40040088:       eb00465e        bl      40051a08 <NetReceive>//
//4004008c:       ea000005        b       400400a8 <fec_recv+0x14c>//
//40040090:       e2125037        ands    r5, r2, #55     ; 0x37//
//40040094:       0a000003        beq     400400a8 <fec_recv+0x14c>//
//40040098:       e5961004        ldr     r1, [r6, #4]//
//4004009c:       e59f00a8        ldr     r0, [pc, #168]  ; 4004014c 
<fec_recv+0x1f0>//
//400400a0:       ebff7678        bl      4001da88 <printf>//
//400400a4:       e3a05000        mov     r5, #0//
//400400a8:       e594300c        ldr     r3, [r4, #12]//
//400400ac:       e2032007        and     r2, r3, #7//
//400400b0:       e3520007        cmp     r2, #7//
//400400b4:       1a000014        bne     4004010c <fec_recv+0x1b0>//
//400400b8:       e5940008        ldr     r0, [r4, #8]//
//400400bc:       e243227e        sub     r2, r3, #-536870905     ; 
0xe0000007//
//400400c0:       e2433007        sub     r3, r3, #7//
//400400c4:       e0800183        add     r0, r0, r3, lsl #3//
//400400c8:       e1a02182        lsl     r2, r2, #3//
//400400cc:       ea000009        b       400400f8 <fec_recv+0x19c>//
//400400d0:       e5941008        ldr     r1, [r4, #8]//
//400400d4:       e353003f        cmp     r3, #63 ; 0x3f//
//400400d8:       13a0e902        movne   lr, #32768      ; 0x8000//
//400400dc:       03a0ea0a        moveq   lr, #40960      ; 0xa000//
//400400e0:       e081c002        add     ip, r1, r2//
//400400e4:       e1cce0b2        strh    lr, [ip, #2]//
//400400e8:       e3a0c000        mov     ip, #0//
//400400ec:       e181c0b2        strh    ip, [r1, r2]//
//400400f0:       e2833001        add     r3, r3, #1//
//400400f4:       e2822008        add     r2, r2, #8//
//400400f8:       e594100c        ldr     r1, [r4, #12]//
//400400fc:       e1530001        cmp     r3, r1//
//40040100:       dafffff2        ble     400400d0 <fec_recv+0x174>//
//40040104:       e2801040        add     r1, r0, #64     ; 0x40//
//40040108:       ebff011f        bl      4000058c <flush_dcache_range>//
//4004010c:       e5943000        ldr     r3, [r4]//
//40040110:       e3a02401        mov     r2, #16777216   ; 0x1000000//
//40040114:       e5832010        str     r2, [r3, #16]//
//40040118:       e594300c        ldr     r3, [r4, #12]//
//4004011c:       e2833001        add     r3, r3, #1//
//40040120:       e21331fe        ands    r3, r3, #-2147483585    ; 
0x8000003f//
//40040124:       42433001        submi   r3, r3, #1//
//40040128:       41e03d03        mvnmi   r3, r3, lsl #26//
//4004012c:       41e03d23        mvnmi   r3, r3, lsr #26//
//40040130:       42833001        addmi   r3, r3, #1//
//40040134:       e584300c        str     r3, [r4, #12]//
//40040138:       e1a00005        mov     r0, r5//
//4004013c:       e8bd84f0        pop     {r4, r5, r6, r7, sl, pc}//
//40040140:       40068c3b        .word   0x40068c3b//
//40040144:       00000837        .word   0x00000837//
//40040148:       4008a880        .word   0x4008a880//
//4004014c:       40068c50        .word   0x40068c50//
/


Robert Hodaszi

  reply	other threads:[~2013-09-13 14:24 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-11 23:03 [U-Boot] [PATCH] net: fec: Avoid MX28 bus sync issue Marek Vasut
2013-07-11 23:18 ` Fabio Estevam
2013-07-12  3:41   ` Alexandre Pereira da Silva
2013-07-12  3:51     ` Marek Vasut
2013-07-12 11:37       ` Hector Palacios
2013-07-12 11:39         ` Fabio Estevam
2013-07-12 12:01         ` Marek Vasut
2013-07-12 15:08           ` Hector Palacios
2013-07-12 15:50             ` Albert ARIBAUD
2013-07-12 16:48             ` Marek Vasut
2013-07-15  8:58               ` Hector Palacios
2013-07-15 12:30                 ` Marek Vasut
2013-07-15 15:09                   ` Hector Palacios
2013-07-15 15:12                     ` Marek Vasut
2013-07-15 15:24                       ` Hector Palacios
2013-07-16  3:51                     ` Fabio Estevam
2013-07-16  4:18                       ` Fabio Estevam
2013-07-16  4:44                         ` Marek Vasut
2013-07-17 15:55                           ` Hector Palacios
2013-07-18  4:12                             ` Marek Vasut
2013-09-12 10:22                             ` Hector Palacios
2013-09-12 10:50                               ` Marek Vasut
     [not found]                                 ` <52319DE8.5080607@digi.com>
2013-09-12 11:00                                   ` Marek Vasut
2013-09-12 11:02                                 ` Robert Hodaszi
2013-09-12 14:05                                   ` Marek Vasut
2013-09-12 14:15                                     ` Robert Hodaszi
2013-09-12 14:31                                       ` Marek Vasut
2013-09-12 14:32                                         ` Robert Hodaszi
2013-09-12 15:06                                           ` Marek Vasut
2013-09-12 18:17                                     ` Wolfgang Denk
2013-09-12 18:39                                       ` Fabio Estevam
2013-09-12 18:53                                         ` Wolfgang Denk
2013-09-12 19:37                                           ` Fabio Estevam
2013-09-13 11:11                                             ` Robert Hodaszi
2013-09-13 11:13                                               ` Robert Hodaszi
2013-09-13 14:01                                                 ` Marek Vasut
2013-09-13 14:24                                                   ` Robert Hodaszi [this message]
2013-09-13 16:06                                               ` Wolfgang Denk
2013-09-13 16:24                                                 ` Marek Vasut
2013-09-13 17:46                                                   ` Wolfgang Denk
2013-09-14 22:05                                                     ` Fabio Estevam
2013-09-12 11:08                                 ` Robert Hodaszi
2013-09-12 18:12                                   ` Wolfgang Denk
2013-09-12 17:50                               ` Wolfgang Denk
2013-07-13  2:43   ` Troy Kisky
2013-07-15 13:41     ` Albert ARIBAUD
2013-07-15 17:39       ` Troy Kisky
2013-07-15 19:59         ` Troy Kisky
2013-07-15 20:20           ` Albert ARIBAUD
2013-07-15 20:20         ` Albert ARIBAUD
2013-07-15 21:18           ` Troy Kisky
2013-07-12  5:57 ` Albert ARIBAUD
2013-07-12  6:39   ` Albert ARIBAUD
2013-07-12 11:51     ` Marek Vasut
2013-07-12  6:56   ` Stefano Babic
2013-07-12  7:30 ` Stefano Babic
  -- strict thread matches above, loose matches on Subject: below --
2013-09-15 18:12 Oliver Metz
2013-09-15 18:16 ` Fabio Estevam

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=52332000.2060701@digi.com \
    --to=robert.hodaszi@digi.com \
    --cc=u-boot@lists.denx.de \
    /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.