All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wang Haiying-r54964 <Haiying.Wang@freescale.com>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] [PATCH] Fixed cfi flash read uchar bug.
Date: Mon, 29 Jan 2007 20:36:30 -0700	[thread overview]
Message-ID: <DDEDA444F5BF0E41AC8649FB40392C2901D85316@az33exm23.fsl.freescale.net> (raw)
In-Reply-To: <45BDDA91.3070303@orkun.us>

 
>The current code works because most CPU Bus Interface Unit 
>will execute 
>buswide cycles and discard the unused byte(s).
>
>I understand that you would like to convert this code to use memcpy() 
>and pick various bytes from local ram instead of directly from flash. 
>Right? What exactly you are experiencing when you use current code. 
>Could you refresh my memory?

The problem we experienced here is that the flash(am29lv641d) could not
get the correct size during boot up(the error message like "FLASH:
....255 erase regions found, only 4 used...0kB" is printed out), could
not be read correctly by flinfo, could not erased or written etc.
It is because the num_erase_regions got a wrong value by
flash_read_uchar(info, FLASH_OFFSET_NUM_ERASE_REGIONS)in line 1204.
It happened only after the latest update of cfi_flash driver after
u-boot 1.1.6 released. This update added a flash_read_jedec_ids before
reading num_erase_resions. We suspect that reset command in
flash_read_jedec_ids()may cause the problem. After the last reset in
this function, a flash_write_cmd() follows it, then the flash_read_uchar
is executed directly after. This flash_read_uchar returns a wrong
number(124, 255 for num_erase_regions etc.). If this flash_read_uchar
here reads some other flash info other than
FLASH_OFFSET_NUM_ERASE_REGIONS by uchar, it also returns wrong value. 

>I do not like memcpy() as it is a black box. It could be 
>implemented at 
>low level using string instructions, it could do various things for 
>different cpu architectures and various sizes so it could lead to very 
>hard to find issues.
I agree.

>My proposal for you to try: Do not depend on bus interface unit doing 
>buswide reads, explicitly read buswide chunks after doing the bus-wide 
>read into a temporary variable, pick the usable bytes from that 
>temporary variable. This should eliminate the bus interface unit 
>dependency of the CPU and possible board designer interfacing gimmicks.
Thanks a lot. :)

>Let us know how it goes (can you post your patch too so I can 
>verify it).
Zhang Wei is on vacation this week, he had generated a new patch to
implement it with the similar idea last week. He will post his new patch
after he is back.

Thanks.

Haiying

  reply	other threads:[~2007-01-30  3:36 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-22  7:27 [U-Boot-Users] [PATCH] Fixed cfi flash read uchar bug wei.zhang at freescale.com
2006-12-22 10:00 ` Wolfgang Denk
2006-12-22 11:02   ` Zhang Wei
2006-12-22 14:11     ` Wolfgang Denk
2006-12-22 16:34       ` [U-Boot-Users] 答复: " Zhang Wei-r63237
2006-12-22 17:17         ` Wolfgang Denk
2006-12-25  7:03           ` Zhang Wei
2006-12-25 23:24             ` Wolfgang Denk
2006-12-26  6:04               ` Zhang Wei
2007-01-04  2:07                 ` Zhang Wei-r63237
2007-01-04  8:17                   ` Wolfgang Denk
2007-01-04  8:36               ` Zhang Wei-r63237
2007-01-04  9:23                 ` Wolfgang Denk
2007-01-04 11:19                   ` Stefan Roese
2007-01-05 13:27                   ` Stefan Roese
2007-01-07 10:12                     ` Tolunay Orkun
2007-01-07 10:40                       ` Wolfgang Denk
2007-01-13  7:11                         ` Tolunay Orkun
2007-01-13 17:53                           ` Håvard Skinnemoen
2007-01-16  6:52                             ` Stefan Roese
2007-01-25  4:38                           ` Zhang Wei-r63237
2007-01-25 16:10                             ` Timur Tabi
2007-01-25 20:33                               ` Wolfgang Denk
2007-01-26  2:13                                 ` Zhang Wei-r63237
2007-01-29 11:29                                   ` Tolunay Orkun
2007-01-30  3:36                                     ` Wang Haiying-r54964 [this message]
2007-01-31  9:01                                       ` Tolunay Orkun
2007-01-31 19:25                                         ` Haiying Wang
2007-02-01  5:26                                           ` Tolunay Orkun
2007-02-01 22:06                                             ` Haiying Wang
2007-02-01 22:52                                               ` Chris Fester
2007-02-09 17:47                                             ` [U-Boot-Users] [PATCH0/2] Re-do the patch for adding DO_SYNC in flash_write_cmd Haiying Wang
2007-02-09 19:42                                               ` Wolfgang Denk
2007-02-09 19:48                                                 ` Haiying Wang
2007-02-10  1:04                                                   ` Wolfgang Denk
2007-02-10  7:23                                                     ` Tolunay Orkun
2007-02-10  7:40                                                       ` Stefan Roese
2007-02-10  7:57                                                         ` Tolunay Orkun
2007-02-10  8:07                                                           ` Stefan Roese
2007-02-10 21:55                                                             ` Wolfgang Denk
2007-02-10 21:54                                                         ` Wolfgang Denk
2007-02-11  2:34                                                         ` Timur Tabi
2007-02-11 10:23                                                           ` Wolfgang Denk
2007-02-09 19:59                                                 ` Haavard Skinnemoen
2007-02-10  1:02                                                   ` Wolfgang Denk
2007-02-09 17:47                                             ` [U-Boot-Users] [PATCH 1/2] Add DO_SYNC at the end of flash_write_cmd Haiying Wang
2007-02-09 19:45                                               ` Wolfgang Denk
2007-02-09 17:47                                             ` [U-Boot-Users] [PATCH 2/2] Define DO_SYNC in each CPU's header file Haiying Wang
2007-02-09 19:46                                               ` Wolfgang Denk
2007-02-10  7:17                                                 ` Tolunay Orkun
2007-01-08  2:41                     ` [U-Boot-Users] [PATCH] Fixed cfi flash read uchar bug Zhang Wei-r63237
2006-12-22 17:07       ` Chris Fester
2006-12-22 17:24         ` Wolfgang Denk
2006-12-22 17:42           ` Chris Fester
2006-12-22 21:33             ` Wolfgang Denk

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=DDEDA444F5BF0E41AC8649FB40392C2901D85316@az33exm23.fsl.freescale.net \
    --to=haiying.wang@freescale.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.