We are trying to integrate a single N25Q00AA ( 128 MByte ) QSPI Flash with the RZ/A1L on a custom board. Previously we had been successfully developing with the RZ/A1H RSK Dev Kit, which has the Spansion S25FL512S. We were using the RSK in single QSPI mode. The N25Q00AA should be a compatible drop in for the Spansion part based on our research. I have linked both datasheets to this post:
- http://www.mouser.com/search/Refine.aspx?Keyword=109797993&FS=True&Ntk=P_MarCom&Tb=datasheets
- http://pdf1.alldatasheet.com/datasheet-pdf/view/585916/MICRON/N25Q00AA.html
The JTAG programming works fine for both parts, the flash is programmed and a subsequent program of the same u-boot image exits early because the compare succeeds. We flashed the RZ/A1L with the same command the RZ/A1H except for the device flag:
- JLinkExe -speed 30000 -if JTAG -device R7S721001 -CommanderScript load_spi_uboot.txt
- JLinkExe -speed 30000 -if JTAG -device R7S721021 -CommanderScript load_spi_uboot.txt
The problem is that we are never getting into U-boot. We have code in u-boot that toggles a GPIO immediately in "int board_early_init_f(void)". The pin toggling code works fine on the RZ/A1H on the RSK. We also never see any U-boot console output on UART 0 for the RZ/A1L.
Pin toggling code in u-boot:
pfc_set_gpio(1,5, GPIO_OUT); /* P1_5 = GPIO_OUT */
gpio_set(1,5,1);
gpio_set(1,5,0);
gpio_set(1,5,1);
gpio_set(1,5,0);
Pin muxing for Serial Console on UART 0 in u-boot:
/* Serial Console */
pfc_set_pin_function(6, 15, ALT5, 0, 0); /* P6_15 = TxD0 */
pfc_set_pin_function(6, 14, ALT5, 0, 0); /* P6_14 = RxD0 */
We made sure that the boot mode on our board is Boot Mode 1 - serial flash booting as shown in the hardware manual:
We are seeing on a scope that the ROM bootloader in the RZ/A1L attempts to communicate with the N25Q00AA. It clocks the part, correctly Slave Selects it, and sends and receives data. However, after 1.6 milliseconds, the Clocking stops and there is no more activity between the RZ/A1L and the Flash. We also see not pin toggling from U-boot and no console prompt for U-boot in tera term.
We'd really appreciate any tips or input on the following questions and what we might be able to do to get U-boot to load:
- Why does the ROM code seemingly 'timeout' after 1.6 ms?
- Is the ROM code the same between the RZ/A1H and RZ/A1L?
- What could be happening that would cause U-boot not to load?
- Are there any special considerations when trying to boot from serial flash on the RZ/A1L versus the RZ/A1H?
Thanks alot -