From mboxrd@z Thu Jan 1 00:00:00 1970 From: Timur Tabi Date: Mon, 06 Nov 2006 13:13:58 -0600 Subject: [U-Boot-Users] Where does U-Boot's CFI driver check for top/bottom boot? In-Reply-To: <454D7BF3.2000400@orkun.us> References: <454B6B23.1060702@freescale.com> <454D7BF3.2000400@orkun.us> Message-ID: <454F8976.6060609@freescale.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Tolunay Orkun wrote: > Can you do make clean and #define DEBUG and > rebuilt and reflash debug build of u-boot. This should enable those > debug output. Here's what I get: FLASH: flash detect cfi fwc addr fe000000 cmd 0 0 8bit x 8 bit fwc addr fe000055 cmd 98 98 8bit x 8 bit is= cmd 51(Q) addr fe000010 is= 0 51 fwc addr fe000000 cmd 0 0000 16bit x 8 bit fwc addr fe0000aa cmd 98 9898 16bit x 8 bit is= cmd 51(Q) addr fe000020 is= 0051 5151 fwc addr fe000000 cmd 0 0000 16bit x 16 bit fwc addr fe0000aa cmd 98 0098 16bit x 16 bit is= cmd 51(Q) addr fe000020 is= 0051 0051 is= cmd 52(R) addr fe000022 is= 0052 0052 is= cmd 59(Y) addr fe000024 is= 0059 0059 ushort addr is at fe000050 info->portwidth = 2 addr[0] = 0x0 addr[1] = 0x2 addr[2] = 0x0 addr[3] = 0x0 retval = 0x2 device interface is 2 found port 2 chip 2 port 16 bits chip 16 bits ushort addr is at fe000026 info->portwidth = 2 addr[0] = 0x0 addr[1] = 0x2 addr[2] = 0x0 addr[3] = 0x0 retval = 0x2 fe000020 : 00 51 00 52 00 59 00 02 00 00 00 40 00 00 00 00 .Q.R.Y..... at .... fe000030 : 00 00 00 00 00 00 00 27 00 36 00 00 00 00 00 04 .......'.6...... fe000040 : 00 00 00 0a 00 00 00 05 00 00 00 04 00 00 00 17 ................ fe000050 : 00 02 00 00 00 00 00 00 00 02 00 07 00 00 00 20 ............... fe000060 : 00 00 00 7e 00 00 00 00 00 01 00 00 00 00 00 00 ...~............ fe000070 : 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ................ fe000080 : 00 50 00 52 00 49 00 31 00 31 00 00 00 02 00 04 .P.R.I.1.1...... fe000090 : 00 01 00 04 00 00 00 00 00 00 00 b5 00 c5 00 03 ................ manufacturer is 2 size_ratio 1 port 16 bits chip 16 bits found 2 erase regions long addr is at fe00005a info->portwidth = 2 addr[0] = 0x0 addr[1] = 0x7 addr[2] = 0x0 addr[3] = 0x0 addr[4] = 0x0 addr[5] = 0x20 addr[6] = 0x0 addr[7] = 0x0 erase_region_count = 8 erase_region_size = 8192 long addr is at fe000062 info->portwidth = 2 addr[0] = 0x0 addr[1] = 0x7e addr[2] = 0x0 addr[3] = 0x0 addr[4] = 0x0 addr[5] = 0x0 addr[6] = 0x0 addr[7] = 0x1 erase_region_count = 127 erase_region_size = 65536 ushort addr is at fe000054 info->portwidth = 2 addr[0] = 0x0 addr[1] = 0x0 addr[2] = 0x0 addr[3] = 0x0 retval = 0x0 fwc addr fe000000 cmd f0 00f0 16bit x 16 bit flash detect cfi fwc addr fe800000 cmd 0 0 8bit x 8 bit fwc addr fe800055 cmd 98 98 8bit x 8 bit is= cmd 51(Q) addr fe800010 is= 0 51 fwc addr fe800000 cmd 0 0000 16bit x 8 bit fwc addr fe8000aa cmd 98 9898 16bit x 8 bit is= cmd 51(Q) addr fe800020 is= 0051 5151 fwc addr fe800000 cmd 0 0000 16bit x 16 bit fwc addr fe8000aa cmd 98 0098 16bit x 16 bit is= cmd 51(Q) addr fe800020 is= 0051 0051 is= cmd 52(R) addr fe800022 is= 0052 0052 is= cmd 59(Y) addr fe800024 is= 0059 0059 ushort addr is at fe800050 info->portwidth = 2 addr[0] = 0x0 addr[1] = 0x2 addr[2] = 0x0 addr[3] = 0x0 retval = 0x2 device interface is 2 found port 2 chip 2 port 16 bits chip 16 bits ushort addr is at fe800026 info->portwidth = 2 addr[0] = 0x0 addr[1] = 0x2 addr[2] = 0x0 addr[3] = 0x0 retval = 0x2 fe800020 : 00 51 00 52 00 59 00 02 00 00 00 40 00 00 00 00 .Q.R.Y..... at .... fe800030 : 00 00 00 00 00 00 00 27 00 36 00 00 00 00 00 04 .......'.6...... fe800040 : 00 00 00 0a 00 00 00 05 00 00 00 04 00 00 00 17 ................ fe800050 : 00 02 00 00 00 00 00 00 00 02 00 07 00 00 00 20 ............... fe800060 : 00 00 00 7e 00 00 00 00 00 01 00 00 00 00 00 00 ...~............ fe800070 : 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ................ fe800080 : 00 50 00 52 00 49 00 31 00 31 00 00 00 02 00 04 .P.R.I.1.1...... fe800090 : 00 01 00 04 00 00 00 00 00 00 00 b5 00 c5 00 03 ................ manufacturer is 2 size_ratio 1 port 16 bits chip 16 bits found 2 erase regions long addr is at fe80005a info->portwidth = 2 addr[0] = 0x0 addr[1] = 0x7 addr[2] = 0x0 addr[3] = 0x0 addr[4] = 0x0 addr[5] = 0x20 addr[6] = 0x0 addr[7] = 0x0 erase_region_count = 8 erase_region_size = 8192 long addr is at fe800062 info->portwidth = 2 addr[0] = 0x0 addr[1] = 0x7e addr[2] = 0x0 addr[3] = 0x0 addr[4] = 0x0 addr[5] = 0x0 addr[6] = 0x0 addr[7] = 0x1 erase_region_count = 127 erase_region_size = 65536 ushort addr is at fe800054 info->portwidth = 2 addr[0] = 0x0 addr[1] = 0x0 addr[2] = 0x0 addr[3] = 0x0 retval = 0x0 fwc addr fe800000 cmd f0 00f0 16bit x 16 bit 16 MB I'm currently studying what all this means, but I figured I email it now anyway. > I will look at some AMD part datasheets. If this is generally available > on all AMD and AMD like parts, we can add it as a patch for AMD only. > Otherwise, we will either add CONFIG_GEOMETRY_REVERSED definition or > restrict a patch to specific vendor ids (and possibly part ids) which is > then a pain to manage. I'd like to help with this endeavor, although I currently don't know a whole lot about flash programming. -- Timur Tabi Linux Kernel Developer @ Freescale