Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
10 years ago

boot from S25FL512S

Hi all,

I try to boot from QSPI Flash (S25FL512S) but I am having some difficulties.

I have the same DDR3 as altera cyclone v soc board + two QSPI S25FL512S connected to the hps side. Input clock for FPGA and HPS = 25MHz.

First, I followed the tutorial on rocketboard:

http://rocketboards.org/foswiki/view/documentation/gsrd131qspiboot

but the flash was not detected, then, I added these lines in u-boot spl file spansion.c


   {
        .idcode1 = 0x0220,
        .idcode2 = 0x4d00,
        .pages_per_sector = 256,
        .nr_sectors = 1024,
        .name = "S25FL512S",
    },

but i still have a problem, the board reboot non stop with this log rather than going to u-boot


U-Boot SPL 2013.01.01 (Jun 29 2015 - 17:26:52)
BOARD : Altera SOCFPGA Cyclone V Board
CLOCK: EOSC1 clock 25000 KHz
CLOCK: EOSC2 clock 25000 KHz
CLOCK: F2S_SDR_REF clock 0 KHz
CLOCK: F2S_PER_REF clock 0 KHz
CLOCK: MPU clock 400 MHz
CLOCK: DDR clock 400 MHz
CLOCK: UART clock 100000 KHz
CLOCK: MMC clock 488 KHz
CLOCK: QSPI clock 200000 KHz
RESET: WARM
INFO : Watchdog enabled
SDRAM: Initializing MMR registers
SDRAM: Calibrating PHY
SEQ.C: Preparing to start memory calibration
SEQ.C: CALIBRATION PASSED
SDRAM: 512 MiB
SF: Read data capture delay calibrated to 1 (0 - 2)
SF: Detected S25FL512S 

I have no idea, I have tried many things. I can boot with the arrow sockit but the flash is different.

there is something missing :/

I attached my quartus design.

thank you for your help

11 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hi,

    I am working on cyclone V SOC custom board and i want to boot bare metal application from qspi flash(S25FL512S). I dumped the quad custom preloader image(preloader-mkpimage.bin) into the flash using the command "quartus_hps -c 1 -o PV -a 0 preloader-mkpimage.bin". I built the helloworld example bare metal application from GHRD and created the the bootable image using the commands,

    objcopy -I elf32-little -O binary hello.axf hello.bin

    mkimage -A arm -O u-boot -T standalone -C none -a 0x01000040 -e 0 -n "baremetal image" -d hello.bin hello.img

    I dumped the bootable image on qspi using

    quartus_hps -c 1 -o PV -a 0x60000 hello.bin

    After resetting the board(cold and warm reset) preloader prints are printed on console but hello world is not printed. Same problem with the hwlib example bare metal application.

    When i tried to boot uboot from qspi it is booting properly. I used following commands for that,

    mkimage -A arm -O u-boot -T standalone -C none -a 0x01000040 -e 0 -n "U-Boot image" -d u-boot.bin u-boot.img

    quartus_hps -c 1 -o PV -a 0x60000 u-boot.img

    I am wondering why i am not able to see any bare metal application prints on console. Any help would be greatly appreciated.