Hi Toan.
On BeeProg you can select the offset inside the flash where your image should be loaded to. Just have a look at the lower section in your "load file" dialog box. There is an entry called "Buffer offset for loading". Select positive offset for binary formats and set to 8 MB. That will load your 8 MB image into the upper portion of the buffer and hence your image will be flashed to the upper flash address range.
In regard to the Winbond flash we had issues that has shown the same behavior like your case. The root cause in our case was the "security register" called region in the flash which resides above the 16 MB address range and has a size of 0x300 bytes (on W25Q128FV for example). The original flash contents on the CRB contains some data in that region and we were only able to boot the CRB after re-flashing if this region was transferred to the new flash completely. To do so, you must tweak BeeProg a bit, there are special options to erase and program this security registers.
If you use a different flash type like N25Q128Ax1E, this issue is not visible because this flash type does not have the security registers the Winbond one has. It seems like CSE checks the used flash type and uses different boot paths inside.
I hope that helps. Werner
Dear Goetz,
Thanks for your reply. I'm trying to rebuild the image. Another question here: I had an 8 MB Intel-provided image. I'm using BeeProg2C flashing device (with PG4UW software). Is there any "trick" forcing the flashing device to flash 8 MB image into 16 MB SPI chip? Something likes flash to the low-8MB of chip instead of high-8MB?