From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Roese Date: Tue, 22 Mar 2016 07:40:44 +0100 Subject: [U-Boot] [PATCH 11/11] cfi_flash: return device into read array mode after reading status In-Reply-To: References: <1458524230-10827-1-git-send-email-anarsoul@gmail.com> <1458524230-10827-11-git-send-email-anarsoul@gmail.com> <56EF543D.8010407@denx.de> <56F01F17.7040909@denx.de> Message-ID: <56F0E8EC.8050405@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Vasily, On 21.03.2016 20:22, Vasily Khoruzhick wrote: > On Mon, Mar 21, 2016 at 9:19 AM, Stefan Roese wrote: >> Hi Vasily, > > Hi Stefan, > >> On 21.03.2016 02:54, Marek Vasut wrote: >>> On 03/21/2016 02:37 AM, Vasily Khoruzhick wrote: >>>> Otherwise flash remains in read status mode and it's not possible >>>> to access data on flash. >>>> >>>> Signed-off-by: Vasily Khoruzhick >>> >>> CCing Stefan and Scott on this one. >>> >>>> --- >>>> drivers/mtd/cfi_flash.c | 2 ++ >>>> 1 file changed, 2 insertions(+) >>>> >>>> diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c >>>> index 39932f4..18831c6 100644 >>>> --- a/drivers/mtd/cfi_flash.c >>>> +++ b/drivers/mtd/cfi_flash.c >>>> @@ -2203,6 +2203,8 @@ ulong flash_get_size (phys_addr_t base, int banknum) >>>> flash_isset (info, sect_cnt, >>>> FLASH_OFFSET_PROTECT, >>>> FLASH_STATUS_PROTECT); >>>> + flash_write_cmd(info, sect_cnt, 0, >>>> + FLASH_CMD_RESET); >>>> break; >>>> case CFI_CMDSET_AMD_EXTENDED: >>>> case CFI_CMDSET_AMD_STANDARD: >>>> >> >> I can't test this patch, since I don't have such a board here >> available right now any more. But I'm wondering if this is really >> necessary. The driver used to work just fine on Intel Strata >> flash chips without this patch. >> >> And looking at the code, a bit later (after the loop) the flash >> is actually reset: > > It sends status cmd for each erase block to check if it's protected or > not, and apparently this chip (Manufacturer ID 0x000089 Chip ID > 0x008865) wants reset for each erase block as well. > Otherwise it returns status data instead of actual data. Btw, that is > exactly what Linux driver does. I see. Okay, then: Acked-by: Stefan Roese Thanks, Stefan