From: Stefan Roese <sr@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] [PATCH] Add support for 16bit legacy AMD flash
Date: Fri, 28 Mar 2008 10:47:29 +0100 [thread overview]
Message-ID: <200803281047.29458.sr@denx.de> (raw)
In-Reply-To: <1206690341-6364-1-git-send-email-tor@excito.com>
On Friday 28 March 2008, Tor Krill wrote:
> Add entry for 512Kx16 AMD flash to jedec_table.
> Read out 16bit device id if chipwidth is 16bit
>
> Signed-off-by: Tor Krill <tor@excito.com>
Looks good. Just some nitpicking comments below.
> ---
> drivers/mtd/cfi_flash.c | 44
> +++++++++++++++++++++++++++++++++++--------- drivers/mtd/jedec_flash.c |
> 19 +++++++++++++++++++
> 2 files changed, 54 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c
> index f04c72d..fab26b8 100644
> --- a/drivers/mtd/cfi_flash.c
> +++ b/drivers/mtd/cfi_flash.c
> @@ -365,6 +365,20 @@ static inline uchar flash_read_uchar (flash_info_t *
> info, uint offset) }
>
> /*-----------------------------------------------------------------------
> + * read a word at a port width address, assume 16bit bus
> + */
> +static inline ushort flash_read_word (flash_info_t * info, uint offset)
> +{
> + ushort *addr, retval;
> +
> + addr = flash_map (info, 0, offset);
> + retval = flash_read16(addr);
No space before '(' here...
> + flash_unmap (info, 0, offset, addr);
... and space before '(' here. Please stick to one coding style in one file.
Since this file uses the space before the '(' you should use it on all calls.
> + return retval;
> +}
> +
> +
> +/*-----------------------------------------------------------------------
> * read a long word by picking the least significant byte of each maximum
> * port size word. Swap for ppc format.
> */
> @@ -1449,17 +1463,29 @@ static void cmdset_amd_read_jedec_ids(flash_info_t
> *info) flash_unlock_seq(info, 0);
> flash_write_cmd(info, 0, info->addr_unlock1, FLASH_CMD_READ_ID);
> udelay(1000); /* some flash are slow to respond */
> +
> info->manufacturer_id = flash_read_uchar (info,
> FLASH_OFFSET_MANUFACTURER_ID);
> - info->device_id = flash_read_uchar (info,
> - FLASH_OFFSET_DEVICE_ID);
> - if (info->device_id == 0x7E) {
> - /* AMD 3-byte (expanded) device ids */
> - info->device_id2 = flash_read_uchar (info,
> - FLASH_OFFSET_DEVICE_ID2);
> - info->device_id2 <<= 8;
> - info->device_id2 |= flash_read_uchar (info,
> - FLASH_OFFSET_DEVICE_ID3);
> +
> + switch(info->chipwidth){
switch (info->chipwidth) {
> + case FLASH_CFI_8BIT:
> + info->device_id = flash_read_uchar (info,
> + FLASH_OFFSET_DEVICE_ID);
> + if (info->device_id == 0x7E) {
> + /* AMD 3-byte (expanded) device ids */
> + info->device_id2 = flash_read_uchar (info,
> + FLASH_OFFSET_DEVICE_ID2);
> + info->device_id2 <<= 8;
> + info->device_id2 |= flash_read_uchar (info,
> + FLASH_OFFSET_DEVICE_ID3);
> + }
> + break;
> + case FLASH_CFI_16BIT:
> + info->device_id = flash_read_word (info,
> + FLASH_OFFSET_DEVICE_ID);
> + break;
> + default:
> + break;
> }
> flash_write_cmd(info, 0, 0, AMD_CMD_RESET);
> }
> diff --git a/drivers/mtd/jedec_flash.c b/drivers/mtd/jedec_flash.c
> index 41aad3b..b958d17 100644
> --- a/drivers/mtd/jedec_flash.c
> +++ b/drivers/mtd/jedec_flash.c
> @@ -216,6 +216,25 @@ static const struct amd_flash_info jedec_table[] = {
> }
> },
> #endif
> +#ifdef CFG_FLASH_LEGACY_512Kx16
> + {
> + .mfr_id = MANUFACTURER_AMD,
> + .dev_id = AM29LV400BB,
> + .name = "AMD AM29LV400BB",
> + .uaddr = {
> + [1] = MTD_UADDR_0x0555_0x02AA /* x16 */
> + },
> + .DevSize = SIZE_512KiB,
> + .CmdSet = CFI_CMDSET_AMD_LEGACY,
> + .NumEraseRegions= 4,
> + .regions = {
> + ERASEINFO(0x04000,1),
> + ERASEINFO(0x02000,2),
> + ERASEINFO(0x08000,1),
> + ERASEINFO(0x10000,7),
> + }
> + },
> +#endif
> };
>
> static inline void fill_info(flash_info_t *info, const struct
> amd_flash_info *jedec_entry, ulong base)
Please fix and resubmit. Thanks.
Best regards,
Stefan
=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
=====================================================================
next prev parent reply other threads:[~2008-03-28 9:47 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-28 7:45 [U-Boot-Users] [PATCH] Add support for 16bit legacy AMD flash Tor Krill
2008-03-28 9:47 ` Stefan Roese [this message]
2008-03-28 10:29 ` [U-Boot-Users] [PATCH] Add support for 16bit legacy AMD flash, V2 Tor Krill
2008-03-29 6:08 ` Stefan Roese
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=200803281047.29458.sr@denx.de \
--to=sr@denx.de \
--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.