Skip to content

Running your application from DDR memory & BPI flash using SREC bootloader

Notifications You must be signed in to change notification settings

alexeykosinov/ML605-DDR-BPI-Flash-bootloader-guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

Enviroment

  • Windows 7
  • ISE Desgn Suite 14.7
  • ML605 Development board

Instruction

  1. Create EDK project using BSB. Select your stuff that must includes: UART, DDR, EMC controllers as well. All settings as you wish nothing special.
  2. Build project, export design, open Xilinx SDK
  3. Create two project:
    • Application (stored in DDR memory: generate linker script -> in Basic all in DDR)
    • Bootloader (stored in BRAM)
  4. Optionally you can reduce size of bootloader by choosing in C/C++ Build Settings -> Optimization -> Optimization Level : Optimize for size (-Os) and comment #define VERBOSE in bootloader.c
  5. In blconfig.h set FLASH_IMAGE_BASEADDR with address your EMC controller with offset:
#define FLASH_IMAGE_BASEADDR  (XPAR_LINEAR_FLASH_S_AXI_MEM0_BASEADDR + 0x01200000)
  1. Build all
  2. Now you have two .[elf] : for example app.elf and bootloader.elf
  3. Return to dir of your EDK project open bitgen.ut in etc folder and add at the bottom:
-g Compress
-bd ..\SDK\SDK_Export\bootloader\Debug\bootloader.elf

when:

  • 1st command reduces the size of generated bit file
  • 2nd command store bootloader in your bitsream
  1. Re-run Generated BitStream
  2. Finally you have .[bit] file with bootloader in it stored in implementation folder
  3. Convert this .[bit] file into .[mcs] using promgen for example:
promgen -w -p mcs -c FF -o system -s 131072 -u 00000000 system.bit -bpi_dc parallel -data_width 16
  1. In ML605:
  • Set switch S2[6:1] to 001010 (select's Numonyx JS28F256P30 BPI flash, 32MB)
  • Set switch S1[4:1] to 0XXX
  • Connect JTAG and USB cable to host
  1. Power on & using iMPACT or batch program flash with your .[mcs] file
  2. After succesfull programming open Xilinx SDK
  3. Selct Xilinx Tools -> Program Flash
  4. Image file: Debug/Release .[elf] file of your builded application
  5. Program at offset 0x01200000 (choosen in 4) and click Program
  6. Restart board and see result's in terminal

Releases

No releases published

Packages

No packages published