Thanks for pointing this out.
Confirmed with our product team, this is the part of datasheet discrepancy. Since FS512S only has 256KB sector size option, CR3NV is don't care in FS512S and default value is set as 0 in factory.
Column 3 (CR3NV) of table 70 in datasheet will be removed.
For software implementation, if identified the device is FS512S, then checking the combination of CR3NV & CR1NV is sufficient to decide if the device has top/bottom 4KB sectors, or uniform 256KB sectors.
From: Boris Brezillon <***@bootlin.com>
Sent: Tuesday, December 4, 2018 4:04 AM
To: Yong Qin <***@cypress.com>
Cc: Yogesh Narayan Gaur <***@nxp.com>; Tudor Ambarus <***@microchip.com>; ***@wedev4u.fr; James Tomasetta <***@cypress.com>; Jimmy Zhao <***@nxp.com>; email@example.com
Subject: Re: SPI-NOR FS512S incorrect CR3NV value
On Tue, 4 Dec 2018 01:37:14 +0000
Post by Yong Qin
Do you mean the SFDP table?
Sorry, I meant the SMPT (Sector Map Parameter Table) section of the SFDP table. See page 130 of this datasheet .
Post by Yong Qin
Can you please share me more detail of what is wrong, i.e., which
parameter, what is expect value and what you get?
See "Table 70. Sector Map Parameter", CR3NV is always set to one, and when we retrieve this value at runtime we get a 0. Which means we won't find a matching mapid when iterating over the map table, hence the bug reported by Yogesh.
If CR3NV is always 0, then the SMPT should be fixed accordingly:
CR3NV CR1NV CR3NV Index Value Description
0 0 0 00h 4 kB sectors at bottom with remainder 256 kB sectors
0 1 0 02h 4 kB sectors at top with remainder 256 kB sectors
1 0 0 04h Uniform 256 kB sectors
This message and any attachments may contain confidential information from Cypress or its subsidiaries. If it has been received in error, please advise the sender and immediately delete this message.