public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Scott Mann <sunix13@yahoo.com>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] Intel Flash CFI initialisation failure
Date: Fri, 7 Sep 2007 12:22:08 -0700 (PDT)	[thread overview]
Message-ID: <60816.41033.qm@web51701.mail.re2.yahoo.com> (raw)

I just ran into this problem also and posted to the list (but got no responses).

After a couple days of sorting through the cfi_flash.c, I noticed that the CFG_FLASH_BANKS_LIST seemed to be the pertinent #define. You need to set this to an address that is beyond the region of flash in which you have stored your u-boot and environment variables. Otherwise, the first thing that the CFI code does is erase it!

Take the following example:


#define CFG_FLASH_PROTECTION    1      /* Real (hardware) sectors protection */
#define CFG_FLASH_BASE          0xFE000000
#define CFG_FLASH_CFI
#define CFG_FLASH_CFI_DRIVER
#define CFG_MAX_FLASH_BANKS     1       /* max num of flash banks       */
#define CFG_MAX_FLASH_SECT      32      /* max num of sects on one chip */
#define CFG_MONITOR_LEN         (256 * 1024) /* Reserve 256 kB for Monitor */

#define CFG_ENV_IS_IN_FLASH

#ifdef CFG_ENV_IS_IN_FLASH
#define CFG_ENV_SECT_SIZE       (64 * 1024) /* Reserve 64 kB for env */
#define CFG_ENV_ADDR            (CFG_MONITOR_BASE + CFG_MONITOR_LEN)
#define CFG_PROTECTED_SIZE      (CFG_MONITOR_LEN + CFG_ENV_SECT_SIZE)
#define CFG_FLASH_BANKS_LIST    { (CFG_FLASH_BASE + CFG_PROTECTED_SIZE) }
#endif /* CFG_ENV_IS_IN_FLASH */

What I've done is added CFG_PROTECTED_SIZE as just an intermediate parameter (it will probably go away). It represents the space reserved for U-Boot (256K) + the space reserved for ENV (64K). Just use this as an offset to the CFG_FLASH_BASE and assign that to CFG_FLASH_BANKS_LIST (and it is only that element since you only have one flash bank).

I'm not sure whether you want CFG_FLASH_PROTECTION or not in your environment (I'm pretty sure it doesn't have an effect on the problem you've encountered).

Hope this helps. If anyone sees a flaw in this approach, please let me know!

Scott


----- Original Message ----
From: Miroslaw Dach <miroslaw.dach@psi.ch>
To: u-boot-users at lists.sourceforge.net
Sent: Friday, September 7, 2007 8:43:38 AM
Subject: [U-Boot-Users] Intel Flash CFI initialisation failure

Dear All,

            I am having the problem with Intel Flash TE28F640 J3C120 on my
avnet evaluation board (xilinx based with Virtex-4). I have compiled
successfully u-boot-1.2.0 and it run well without FLASH support.
Eventually I want to store u-boot in Flash but when I compile u-boot with
Flash support the u-boot fails during Flash initialization.

My Flash memory is:
type:    TE28F640 J3C120  (http://www.datasheets.org.uk/datasheet.php?article=3266188) 
vendor:  Intel
spec:    NOR FLASH 64 Blocks 64 Mbits x8/x16
 

To support Flash memory I have configured u-boot with the following settings:

#define CFG_FLASH_BASE                     0xFF800000              
#define CFG_MAX_FLASH_BANKS                1 
#define CFG_MAX_FLASH_SECT                 64
#define CFG_FLASH_CFI                      1 
#define CFG_FLASH_CFI_DRIVER               1 
 
The u-boot was compiled successfully but when I booted it I have got the 
error messages when it came to the Flash initialization:

U-Boot 1.2.0 (Sep  6 2007 - 17:56:34)

### No HW ID - assuming ML403
DRAM:  32 MB
Top of RAM usable for U-Boot at: 02000000
Reserving 138k for U-Boot at: 01fdd000
Reserving 129k for malloc() at: 01fbcc00
Reserving 120 Bytes for Board Info at: 01fbcb88
Reserving 48 Bytes for Global Data at: 01fbcb58
Stack Pointer at: 01fbcb38
New Stack Pointer is: 01fbcb38
Now running in RAM - U-Boot at: 01fdd000
FLASH: flash detect cfi
fwc addr ff800000 cmd 0 0 8bit x 8 bit
fwc addr ff800055 cmd 98 98 8bit x 8 bit
is= cmd 51(Q) addr ff800010 is= 0 51
fwc addr ff800555 cmd 98 98 8bit x 8 bit
is= cmd 51(Q) addr ff800010 is= 0 51
fwc addr ff800000 cmd 0 0000 16bit x 8 bit
fwc addr ff8000aa cmd 98 9898 16bit x 8 bit
is= cmd 51(Q) addr ff800020 is= 0051 5151
fwc addr ff800aaa cmd 98 9898 16bit x 8 bit
is= cmd 51(Q) addr ff800020 is= 0051 5151
fwc addr ff800000 cmd 0 0000 16bit x 16 bit
fwc addr ff8000aa cmd 98 0098 16bit x 16 bit
is= cmd 51(Q) addr ff800020 is= 0051 0051
is= cmd 52(R) addr ff800022 is= 0052 0052
is= cmd 59(Y) addr ff800024 is= 0059 0059
ushort addr is at ff800050 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 ff800026 info->portwidth = 2
addr[0] = 0x0
addr[1] = 0x1
addr[2] = 0x0
addr[3] = 0x0
retval = 0x1
fwc addr ff800000 cmd ff 00ff 16bit x 16 bit
fwc addr ff800000 cmd 90 0090 16bit x 16 bit
fwc addr ff800000 cmd ff 00ff 16bit x 16 bit
fwc addr ff8000aa cmd 98 0098 16bit x 16 bit
ushort addr is at ff80002a info->portwidth = 2
addr[0] = 0x0
addr[1] = 0x31
addr[2] = 0x0
addr[3] = 0x0
retval = 0x31
ff800020 : 00 51 00 52 00 59 00 01 00 00 00 31 00 00 00 00  .Q.R.Y.....1....
ff800030 : 00 00 00 00 00 00 00 27 00 36 00 00 00 00 00 08  .......'.6......
ff800040 : 00 08 00 0b 00 00 00 02 00 02 00 03 00 00 00 17  ................
ff800050 : 00 02 00 00 00 05 00 00 00 01 00 3f 00 00 00 00  ...........?....
ff800060 : 00 02 00 50 00 52 00 49 00 31 00 31 00 ce 00 00  ...P.R.I.1.1....
ff800070 : 00 00 00 00 00 01 00 01 00 00 00 33 00 00 00 01  ...........3....
ff800080 : 00 80 00 00 00 03 00 03 00 03 00 00 00 00 00 00  ................
ff800090 : ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ................
manufacturer is 1
manufacturer id is 0x89
device id is 0x17
device id2 is 0x0
cfi version is 0x3131
size_ratio 1 port 16 bits chip 16 bits
found 1 erase regions
long addr is at ff80005a info->portwidth = 2
addr[0] = 0x0
addr[1] = 0x3f
addr[2] = 0x0
addr[3] = 0x0
addr[4] = 0x0
addr[5] = 0x0
addr[6] = 0x0
addr[7] = 0x2
erase_region_count = 64 erase_region_size = 131072
Bus Fault @ 0x01fe4424, fixup 0x00000000
Machine check in kernel mode.
Caused by (from msr): regs 01fbc978 Data parity signal
NIP: 01FE4424 XER: 20000000 LR: 01FE43D8 REGS: 01fbc978 TRAP: 0200 DAR: 
00000000MSR: 00021000 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 00

GPR00: 00000000 01FBCA68 C01FC950 01FFF8D0 00000001 01FBCA70 00000001 00000006 
GPR08: 00000000 FFC00004 01FBCA73 00000003 01FBC860 30000000 02001600 00000000 
GPR16: 00020000 00000001 0000002D 00000000 00000020 00000040 0000002D FFC20000 
GPR24: 01FFF950 00000001 00000020 00000004 01FFF8D0 01FBCB58 02001A94 FFC00000 
Call backtrace: 
machine check
NIP: FFFFFFFC XER: 00000000 LR: 01FED864 REGS: 01fbc868 TRAP: 0700 DAR: 
00000001MSR: 00000000 EE: 0 PR: 0 FP: 0 ME: 0 IR/DR: 00


Does anybody have an idea what could be wrong?

Best Regards

Mirek

 
=============================================================================
          Miroslaw Dach (Miroslaw.Dach at psi.ch) - SLS/Controls Group 
                PSI - Paul Scherrer Institut CH-5232 Villigen
=============================================================================



-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users

             reply	other threads:[~2007-09-07 19:22 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-07 19:22 Scott Mann [this message]
2007-09-10 10:20 ` [U-Boot-Users] Intel Flash CFI initialisation failure Miroslaw Dach
  -- strict thread matches above, loose matches on Subject: below --
2007-09-07 14:43 Miroslaw Dach
2007-09-07 18:40 ` Wolfgang Denk
2007-09-10  9:59   ` Miroslaw Dach
2007-09-13  8:15 ` Miroslaw Dach
2007-09-13 12:56   ` Miroslaw Dach
2007-09-13 13:17     ` Jerry Van Baren
2007-09-13 13:45       ` Miroslaw Dach
2007-09-13 16:13     ` David Hawkins
2007-09-07 11:19 Mirek23

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=60816.41033.qm@web51701.mail.re2.yahoo.com \
    --to=sunix13@yahoo.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