element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Members
    Members
    • Achievement Levels
    • Benefits of Membership
    • Feedback and Support
    • Members Area
    • Personal Blogs
    • What's New on element14
  • Learn
    Learn
    • eBooks
    • Learning Center
    • Learning Groups
    • STEM Academy
    • Webinars, Training and Events
  • Technologies
    Technologies
    • 3D Printing
    • Experts & Guidance
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Arduino Projects
    • Design Challenges
    • element14 presents
    • Project14
    • Project Groups
    • Raspberry Pi Projects
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • 'Choose another store...'
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
PicoZed SDR Software-Defined Radio Creating boot image Quad SPI flash memory
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Avnet Boards Forums requires membership for participation - click to join
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 14 replies
  • Subscribers 175 subscribers
  • Views 446 views
  • Users 0 members are here
Related

Creating boot image Quad SPI flash memory

yahniukov
yahniukov over 6 years ago

I already created the topic (http://zedboard.org/content/creating-boot-image-sd-card) when I tried to create boot image for SD card.

 

I do the same actions but for create .msc for Quad SPI flash memory but it doesn't work.

 

There are any difference from booting from SD?

  • Sign in to reply
  • Cancel
  • jafoste4
    0 jafoste4 over 6 years ago

    Hello Yahniukov,

    The same procedure that was used to create your .bin SD card image is the same to create the .mcs QSPI boot image. All you have to change is for it to be the .mcs file format. Are you saying that it never generated the file or that after you programmed it to flash it never booted from QSPI?

    --Josh

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • yahniukov
    0 yahniukov over 6 years ago in reply to jafoste4

    I mean it never booted from QSPI after programmed it to flash.

    I saw this during booting from SD: /sites/default/files/u132941/qspi_boot_picozed_screen.PNG

    That's screen from Create Boot Image: /sites/default/files/u132941/qspi_create_boot_image_partitions_screen.PNG

    That's screen from Program flash: /sites/default/files/u132941/qspi_program_mcs.PNG

    I set the files in Create Boot Image in the not correct order?
    Or I set wrong files?
    Do I should indicate the address QSPI in window Create Boot Image as on the first picture?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • yahniukov
    0 yahniukov over 6 years ago in reply to jafoste4

    Then I tried this structure of .bif file (SD structure like):

    the_ROM_image:
    {
        [bootloader]D:\yahniukov\files\documents\task_9_FPGA_Implemetation_from_Simulink\boot_files\zynq_fsbl_0.elf
        D:\yahniukov\files\documents\task_9_FPGA_Implemetation_from_Simulink\boot_files\system.bit
        D:\yahniukov\files\documents\task_9_FPGA_Implemetation_from_Simulink\boot_files\u-boot-picozed.elf
        D:\yahniukov\files\documents\task_9_FPGA_Implemetation_from_Simulink\boot_files\uEnv.txt
        D:\yahniukov\files\documents\task_9_FPGA_Implemetation_from_Simulink\boot_files\uImage
        D:\yahniukov\files\documents\task_9_FPGA_Implemetation_from_Simulink\boot_files\devicetree.dtb
        D:\yahniukov\files\documents\task_9_FPGA_Implemetation_from_Simulink\boot_files\Card-Filesystem-Repair\uramdisk.image.gz
    }

     

    It doesn't help me too. Linux is not booting and FPGA is not programmed

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • jafoste4
    0 jafoste4 over 6 years ago

    Hello Yahniukov,

    Take a look at this Video https://www.xilinx.com/video/soc/create-zynq-boot-image-using-xilinx-sdk.html

    In particular take a look aroung minute 5:43, it shows how the .mcs file is setupt in the SDK Create Zynq Boot Image.

    --Josh

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • yahniukov
    0 yahniukov over 6 years ago

    Up

    The problem doesn't gone

    I dont know how to boot Picozed (Linux and PL) from QSPI

    Anybody tried to do that?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • yahniukov
    0 yahniukov over 6 years ago in reply to jafoste4

    Sorry I didn't see your message and wrote the previous post. Thank you! Later I will tell about result.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • yahniukov
    0 yahniukov over 6 years ago in reply to jafoste4

    So, there's result:

    1) I done everything what I saw in the video

    2) There is my .bif file:

    the_ROM_image:
    {
        [bootloader]D:\yahniukov\files\documents\task_9_FPGA_Implemetation_from_Simulink\boot_files\zynq_fsbl_0.elf
        D:\yahniukov\files\documents\task_10\hdl_master\projects\pzsdr\ccfmc\ccfmc_pzsdr.runs\impl_1\system_top.bit
        D:\yahniukov\files\documents\task_9_FPGA_Implemetation_from_Simulink\boot_files\u-boot-picozed.elf
        [offset = 0x600000]D:\yahniukov\files\documents\task_9_FPGA_Implemetation_from_Simulink\boot_files\uImage
        [offset = 0x970000]D:\yahniukov\files\documents\task_9_FPGA_Implemetation_from_Simulink\boot_files\devicetree.dtb
        [offset = 0x990000]D:\yahniukov\files\documents\task_9_FPGA_Implemetation_from_Simulink\boot_files\Card-Filesystem-Repair\uramdisk.image.gz
    }

    3) It doesn't work. PL is configured but Linux is not booting. (/sites/default/files/u132941/boot_linux_failed.PNG)

    4) Am I doing right that I use default Picozed's fsbl or I should change it if I changed .bit file?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • zedhed
    0 zedhed over 6 years ago in reply to yahniukov

    Hi Yahniukov,

    I don't see what the offset is within your BIF for the PL Bitstream file, system_top.bit, where is that file located in memory within the Flash?  According to your screenshot, it looks like you are trying to load the Bistream from U-Boot from Flash offset 0x1300000, but I think that it would already be loaded by the FSBL so that step should not be necessary, correct?

    Can you please post what your U-Boot environment variables look like?

    Regards,

    -Kevin

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • yahniukov
    0 yahniukov over 6 years ago in reply to zedhed

    Yes, after switching on power on the board PL is configured by system_top.bit and I don't know why u-boot try to see another .bit
    I tried to set .bit offset in .bif file equals 0x1300000 (see content of .bif file below) but during boot the same situation.
    the_ROM_image:
    {
        [bootloader]zynq_fsbl_0.elf
        u-boot-picozed.elf
        [offset = 0x100000]uImage
        [offset = 0x600000]devicetree.dtb
        [offset = 0x620000]uramdisk.image.gz
        [offset = 0x1300000]system_top.bit
    }
    It's not me created u-boot.elf. I found it on SD card with Picozed SDR SOM 2x2. And I don't know how I can see u-boot environment variables. Can you tell me please?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • yahniukov
    0 yahniukov over 6 years ago in reply to zedhed

    adi_loadvals=if test -n ${ad9361_ext_refclk}; then fdt addr ${devicetree_load_address} && fdt set /clocks/clock@0 clock-frequency ${ad9361_ext_refclk}; fi; if test -n ${model}; then fdt addr ${devicetree_load_address} && fdt set / model ${model}; fi
    baudrate=115200
    bitstream_image=system.bit.bin
    bitstream_size=0xD00000
    boot_image=BOOT.bin
    boot_size=0xF00000
    bootcmd=run $modeboot
    bootdelay=3
    bootenv=uEnv.txt
    devicetree_image=devicetree.dtb
    devicetree_load_address=0x2000000
    devicetree_size=0x20000
    dfu_mmc=run dfu_mmc_info && dfu 0 mmc 0
    dfu_mmc_info=set dfu_alt_info ${kernel_image} fat 0 1\\;${devicetree_image} fat 0 1\\;${ramdisk_image} fat 0 1
    dfu_ram=run dfu_ram_info && dfu 0 ram 0
    dfu_ram_info=set dfu_alt_info ${kernel_image} ram 0x3000000 0x500000\\;${devicetree_image} ram 0x2A00000 0x20000\\;${ramdisk_image} ram 0x2000000 0x600000
    ethact=Gem.e000b000
    ethaddr=00:0a:35:00:01:22
    fdt_high=0x20000000
    importbootenv=echo Importing environment from SD ...; env import -t ${loadbootenv_addr} $filesize
    initrd_high=0x20000000
    ipaddr=10.10.70.102
    jtagboot=echo TFTPing Linux to RAM... && tftpboot ${kernel_load_address} ${kernel_image} && tftpboot ${devicetree_load_address} ${devicetree_image} && tftpboot ${ramdisk_load_address} ${ramdisk_image} && bootm ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}
    kernel_image=uImage
    kernel_load_address=0x2080000
    kernel_size=0x500000
    loadbit_addr=0x100000
    loadbootenv=load mmc 0 ${loadbootenv_addr} ${bootenv}
    loadbootenv_addr=0x2000000
    mmc_loadbit=echo Loading bitstream from SD/MMC/eMMC to RAM.. && mmcinfo && load mmc 0 ${loadbit_addr} ${bitstream_image} && fpga load 0 ${loadbit_addr} ${filesize}
    modeboot=qspiboot
    nandboot=echo Copying Linux from NAND flash to RAM... && nand read ${kernel_load_address} 0x100000 ${kernel_size} && nand read ${devicetree_load_address} 0x600000 ${devicetree_size} && echo Copying ramdisk... && nand read ${ramdisk_load_address} 0x620000 ${ramdisk_size} && bootm ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}
    norboot=echo Copying Linux from NOR flash to RAM... && cp.b 0xE2100000 ${kernel_load_address} ${kernel_size} && cp.b 0xE2600000 ${devicetree_load_address} ${devicetree_size} && echo Copying ramdisk... && cp.b 0xE2620000 ${ramdisk_load_address} ${ramdisk_size} && bootm ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}
    preboot=if test $modeboot = sdboot && env run sd_uEnvtxt_existence_test; then if env run loadbootenv; then env run importbootenv; fi; fi;
    qspiboot=echo Copying Linux from QSPI flash to RAM... && sf probe 0 && sf read ${kernel_load_address} 0x100000 ${kernel_size} && sf read ${devicetree_load_address} 0x600000 ${devicetree_size} && if run adi_loadvals; then echo Loaded AD9361 refclk frequency and model into devicetree; fi; echo Copying bitstream... && sf read ${loadbit_addr} 0x1300000 ${bitstream_size} && fpga loadb 0 ${loadbit_addr} ${bitstream_size} && echo Copying ramdisk... && sf read ${ramdisk_load_address} 0x620000 ${ramdisk_size} && setenv bootargs console=ttyPS0,115200 root=/dev/mtd4 rw earlyprintk && bootm ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}
    ramdisk_image=uramdisk.image.gz
    ramdisk_load_address=0x4000000
    ramdisk_size=0x5E0000
    rsa_jtagboot=echo TFTPing Image to RAM... && tftpboot 0x100000 ${boot_image} && zynqrsa 0x100000 && bootm ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}
    rsa_nandboot=echo Copying Image from NAND flash to RAM... && nand read 0x100000 0x0 ${boot_size} && zynqrsa 0x100000 && bootm ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}
    rsa_norboot=echo Copying Image from NOR flash to RAM... && cp.b 0xE2100000 0x100000 ${boot_size} && zynqrsa 0x100000 && bootm ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}
    rsa_qspiboot=echo Copying Image from QSPI flash to RAM... && sf probe 0 0 0 && sf read 0x100000 0x0 ${boot_size} && zynqrsa 0x100000 && bootm ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}
    rsa_sdboot=echo Copying Image from SD to RAM... && load mmc 0 0x100000 ${boot_image} && zynqrsa 0x100000 && bootm ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}
    sd_uEnvtxt_existence_test=test -e mmc 0 /uEnv.txt
    sdboot=if mmcinfo; then run uenvboot; echo Copying Linux from SD to RAM... && fatload mmc 0 ${kernel_load_address} ${kernel_image} && fatload mmc 0 ${devicetree_load_address} ${devicetree_image} && if run adi_loadvals; then echo Loaded AD9361 refclk frequency and model into devicetree; fi; if fatload mmc 0 ${ramdisk_load_address} ${ramdisk_image}; then bootm ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}; else setenv bootargs console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait && bootm ${kernel_load_address} - ${devicetree_load_address}; fi; fi
    serverip=10.10.70.101
    stderr=serial
    stdin=serial
    stdout=serial
    thor_mmc=run dfu_mmc_info && thordown 0 mmc 0
    thor_ram=run dfu_ram_info && thordown 0 ram 0
    uenvboot=if run loadbootenv; then echo Loaded environment from ${bootenv}; run importbootenv; fi; if test -n $uenvcmd; then echo Running uenvcmd ...; run uenvcmd; fi
    usbboot=if usb start; then run uenvboot; echo Copying Linux from USB to RAM... && load usb 0 ${kernel_load_address} ${kernel_image} && load usb 0 ${devicetree_load_address} ${devicetree_image} && load usb 0 ${ramdisk_load_address} ${ramdisk_image} && bootm ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}; fi

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2023 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube