G.,
Regarding the address bus width, it is correct. You should be connecting 22..1 to your 16-bit CFI flash memory. The reason for this is that the CFI flash component connects via a tri-state bridge and the tri-state bridge has to reserve the lsb for 8-bit wide devices.
A CFI Table is something that exists on every CFI compliant memory, even on those flashes that are only partially CFI compliant (SST, PMC). SW (in this case the flash programmer) reads this table to determine how the device should be accessed, how large , sector size, etc.
I'd advise you to the following things, in order:
1. Get the HAL-based flash routines working first.
- The Memory Test software example has enough to get you going.
- Have your datasheet handy to make sure that your device is being accessed properly.
2. Ensure that your flash doesn't require any "overrides". If it does, follow the instructions in the Flash Programmer Guide.
Good luck!
- slacker