I'm trying to interface a 1 Gbit NOR flash to a new custom board with STM32L552 as a target MCU. The flash is connected to the FMC using 16-bit data bus, 26 address lines, and the rest of control signals. Right now, I can confirm the interface works by reading the correct values for manufacturer code and device ID off the chip. However, reading from CFI register always returns 0. I have been trying for the past week but couldn't figure out what might be the reason that all registers within the CFI area return 0. As you might know, getting the correct values from the CFI register is crucial for initializing the driver with the correct values needed to proceed to Program/Read/Erase the flash. Info like the device geometry, programming algorithm, etc, all are within the CFI area. I don't know if at this point doing manual calculations for these could help solve the issue.
By the way, I'm using Micron's C driver/library for M29EW. It is very comprehensive and highly portable driver with only two hardware dependent functions to port to any target platform.
Any ideas would be highly appreciated!
Thanks
--- Updated ---
*** Update ***
I would like to add here that I can only read the first device ID. The chip has 3 different device IDs. Reading other IDs also returns zero. I believe this has to do with the issue with CFI area.