1. 28 Apr, 2021 1 commit
    • Marek Vasut's avatar
      mtd: cfi: Fix PPB lock status readout · 94657482
      Marek Vasut authored
      According to S26KL512S datasheet [1] and S29GL01GS datasheet [2],
      the procedure to read out PPB lock bits is to send the PPB Entry,
      PPB Read, Reset/ASO Exit. Currently, the code does send incorrect
      PPB Entry, PPB Read and Reset/ASO Exit is completely missing.
      The PPB Entry sent is implemented by sending flash_unlock_seq()
      and flash_write_cmd(..., FLASH_CMD_READ_ID). This translates to
      sequence 0x555:0xaa, 0x2aa:0x55, 0x555:0x90=FLASH_CMD_READ_ID.
      However, both [1] and [2] specify the last byte of PPB Entry as
      0xc0=AMD_CMD_SET_PPB_ENTRY instead of 0x90=FLASH_CMD_READ_ID,
      that is  0x555:0xaa, 0x2aa:0x55, 0x555:0xc0=AMD_CMD_SET_PPB_ENTRY.
      Since this does make sense, this patch fixes it and thus also
      aligns the code in flash_get_size() with flash_real_protect().
      The PPB Read returns 00h in case of Protected state and 01h in case
      of Unprotected state, according to [1] Note 83 and [2] Note 17, so
      invert the result. Moreover, align the arguments with similar code
      in flash_real_protect().
      Finally, Reset/ASO Exit command should be executed to exit the PPB
      mode, so add the missing reset.
      [1] https://www.cypress.com/file/213346/download
          Document Number: 001-99198 Rev. *M
          Table 40. Command Definitions, Nonvolatile Sector Protection
          Command Set Definitions
      [2] https://www.cypress.com/file/177976/download
          Document Number: 001-98285 Rev. *R
          Table 7.1 Command Definitions, Nonvolatile Sector Protection
          Command Set Definitions
      Fixes: 03deff43 ("cfi_flash: Read PPB sector protection from device for AMD/Spansion chips")
      Signed-off-by: default avatarMarek Vasut <marek.vasut+renesas@gmail.com>
      Cc: Stefan Roese <sr@denx.de>
      Reviewed-by: Stefan Roese's avatarStefan Roese <sr@denx.de>
  2. 27 Apr, 2021 17 commits
  3. 26 Apr, 2021 5 commits
  4. 25 Apr, 2021 4 commits
  5. 24 Apr, 2021 13 commits