From mboxrd@z Thu Jan 1 00:00:00 1970 From: Robert Hodaszi Date: Fri, 13 Sep 2013 16:24:00 +0200 Subject: [U-Boot] [PATCH] net: fec: Avoid MX28 bus sync issue In-Reply-To: <201309131601.45211.marex@denx.de> References: <1373583784-7129-1-git-send-email-marex@denx.de> <5232F2E7.4050407@digi.com> <5232F362.60704@digi.com> <201309131601.45211.marex@denx.de> Message-ID: <52332000.2060701@digi.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.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 :// //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 // //4003ff8c: ebfffd9e bl 4003f60c // //4003ff90: e5941018 ldr r1, [r4, #24]// //4003ff94: e1a00007 mov r0, r7// //4003ff98: ebfffef1 bl 4003fb64 // //4003ff9c: e1a01005 mov r1, r5// //4003ffa0: e59f01a4 ldr r0, [pc, #420] ; 4004014c // //4003ffa4: ebff76b7 bl 4001da88 // //4003ffa8: ea00001d b 40040024 // //4003ffac: e3550000 cmp r5, #0// //4003ffb0: aa000003 bge 4003ffc4 // //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 // //4003ffcc: e5943000 ldr r3, [r4]// //4003ffd0: e59330c4 ldr r3, [r3, #196] ; 0xc4// //4003ffd4: e3130001 tst r3, #1// //4003ffd8: 0a000009 beq 40040004 // //4003ffdc: e1a00007 mov r0, r7// //4003ffe0: ebfffd89 bl 4003f60c // //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 // //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 // //40040018: e1d620b2 ldrh r2, [r6, #2]// //4004001c: e3120902 tst r2, #32768 ; 0x8000// //40040020: 0a000001 beq 4004002c // //40040024: e3a05000 mov r5, #0// //40040028: ea000044 b 40040140 // //4004002c: e59f311c ldr r3, [pc, #284] ; 40040150 // //40040030: e0023003 and r3, r2, r3// //40040034: e3530b02 cmp r3, #2048 ; 0x800// //40040038: 1a000016 bne 40040098 // //4004003c: e19a30b5 ldrh r3, [sl, r5]// //40040040: e3530012 cmp r3, #18// //40040044: da000013 ble 40040098 // //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 // //40040068: e1a00007 mov r0, r7// //4004006c: e1a01005 mov r1, r5// //40040070: ebfffe57 bl 4003f9d4 // //40040074: e1a01007 mov r1, r7// //40040078: e1a02005 mov r2, r5// //4004007c: e1a0000d mov r0, sp// //40040080: eb0030c5 bl 4004c39c // //40040084: e1a0000d mov r0, sp// //40040088: e1a01005 mov r1, r5// //4004008c: e1a0600d mov r6, sp// //40040090: eb00465e bl 40051a10 // //40040094: ea000005 b 400400b0 // //40040098: e2125037 ands r5, r2, #55 ; 0x37// //4004009c: 0a000003 beq 400400b0 // //400400a0: e5961004 ldr r1, [r6, #4]// //400400a4: e59f00a8 ldr r0, [pc, #168] ; 40040154 // //400400a8: ebff7676 bl 4001da88 // //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 // //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 // //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 // //4004010c: e2801040 add r1, r0, #64 ; 0x40// //40040110: ebff011d bl 4000058c // //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 :// //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 // //4003ff88: ebfffd9f bl 4003f60c // //4003ff8c: e5941018 ldr r1, [r4, #24]// //4003ff90: e1a0000a mov r0, sl// //4003ff94: ebfffef2 bl 4003fb64 // //4003ff98: e1a01005 mov r1, r5// //4003ff9c: e59f019c ldr r0, [pc, #412] ; 40040140 // //4003ffa0: ebff76b8 bl 4001da88 // //4003ffa4: ea00001d b 40040020 // //4003ffa8: e3550000 cmp r5, #0// //4003ffac: aa000003 bge 4003ffc0 // //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 // //4003ffc8: e5943000 ldr r3, [r4]// //4003ffcc: e59330c4 ldr r3, [r3, #196] ; 0xc4// //4003ffd0: e3130001 tst r3, #1// //4003ffd4: 0a000009 beq 40040000 // //4003ffd8: e1a0000a mov r0, sl// //4003ffdc: ebfffd8a bl 4003f60c // //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 // //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 // //40040014: e1d620b2 ldrh r2, [r6, #2]// //40040018: e3120902 tst r2, #32768 ; 0x8000// //4004001c: 0a000001 beq 40040028 // //40040020: e3a05000 mov r5, #0// //40040024: ea000043 b 40040138 // //40040028: e59f3114 ldr r3, [pc, #276] ; 40040144 // //4004002c: e0023003 and r3, r2, r3// //40040030: e3530b02 cmp r3, #2048 ; 0x800// //40040034: 1a000015 bne 40040090 // //40040038: e19730b5 ldrh r3, [r7, r5]// //4004003c: e3530012 cmp r3, #18// //40040040: da000012 ble 40040090 // //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 // //40040064: e1a00006 mov r0, r6// //40040068: e1a01005 mov r1, r5// //4004006c: ebfffe58 bl 4003f9d4 // //40040070: e1a01006 mov r1, r6// //40040074: e1a02005 mov r2, r5// //40040078: e59f00c8 ldr r0, [pc, #200] ; 40040148 // //4004007c: eb0030c4 bl 4004c394 // //40040080: e59f00c0 ldr r0, [pc, #192] ; 40040148 // //40040084: e1a01005 mov r1, r5// //40040088: eb00465e bl 40051a08 // //4004008c: ea000005 b 400400a8 // //40040090: e2125037 ands r5, r2, #55 ; 0x37// //40040094: 0a000003 beq 400400a8 // //40040098: e5961004 ldr r1, [r6, #4]// //4004009c: e59f00a8 ldr r0, [pc, #168] ; 4004014c // //400400a0: ebff7678 bl 4001da88 // //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 // //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 // //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 // //40040104: e2801040 add r1, r0, #64 ; 0x40// //40040108: ebff011f bl 4000058c // //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