public inbox for u-boot@lists.denx.de
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox