You are invited to Log in or Register a free Frihost Account!

The Bootloader about execute program in SRAM

This document is very useful to learn the storage system about MicroBlaze Soft Core Processer.

A production embedded system does not have the luxury of having a programming cable attached to it. For production, the system must be able to stand on its own, to pull itself up by its own ¡°bootstraps.¡± This experiment will show how to create a bootloading, production system by doing the following:
• Using XPS Flash Programmer to store an SREC copy of a software application targeted to run from SRAM and also to create an SREC bootloader which runs from BRAM.
• Creating and programming an MCS PROM file with the MicroBlaze hardware and bootloader image.
• Disconnect the programming cable. Allow the FPGA to self-configure from PROMs, which will run a bootloader to copy the SREC application from Flash to SRAM, and then jump to SRAM to execute the application from SRAM ¨C no programming cable attached!

Program the Flash
1. XPS has a built-in flash programmer which uses an EMC peripheral to access flash. The flash programmer works for all CFI-compliant flash devices, of which the Atmel flash device is one. To launch the flash programmer, select Device Configuration 􀃆 Program Flash Memory. (Note that the hardware platform must have previously been downloaded. If you are not following this reference design in sequence, select Device Configuration 􀃆 Download Bistream first to program the 3SLC with the MicroBlaze hardware platform.)

2. Set the parameters as follows:
• File to Program: Browse, change File Type to *.elf, and open Run_From_SRAM_Link/executable.elf
• Select the check box to Auto-convert the file to SREC
• Flash Memory Instance Name: SRAM_256Kx32_FLASH_2MX32_MEM1 (the 2nd instance in the drop-down box). The Flash Memory Base Address should be 0x20800000.
• Scratch Pad Memory properties: SRAM_256Kx32_FLASH_2MX32_MEM0 (the middle instance in the drop-down box). The Scratch Pad Base Address should be 0x20c00000.
• Select the check box to Create the Flash Bootloader

3. Once the parameters are set, click Program Flash. First, XPS creates the SREC bootloader application. Click OK to close this window.

4. Next, the programmer will stop whatever is currently executing on the processor and use XMD to run the flash programmer.

Create the PROM Files
Next, an MCS PROM image containing a bootloader is programmed to the 3SMB board.
5. In XPS, mark software application Project: Bootloader for BRAM initialization. Unmark any other programs.
6. Select Device Configuration 􀃆 Update Bitstream. This will create implementation/download.bit which will then be converted to the MCS format.
7. Launch iMPACT from the Start Menu by selecting Start 􀃆 All Programs 􀃆 Xilinx ISE 8.1i 􀃆 Accessories 􀃆 iMPACT
8. In the wizard, select create a new project file, then browse to the project directory and select a name for the iMPACT session. Click OK.
9. Select Prepare a PROM File, then Next.

10. Change the PROM File Name to ¡®bootload¡¯ and also browse to the project location. Click Next >.

11. Select the xcf family and the xcf02s PROM; click Add; Click Next.

12. At the summary page, click Next.

13. iMPACT prompts you to Start adding device file to Data Stream: 0 . Click OK.

14. Browse and select implementation/download.bit and select Open. A warning will be displayed that iMPACT is changing the Startup Clock to CCLK. This is expected since a PROM configures an FPGA using CCLK rather than the JTAG clock. Click OK. Click No when asked if any more design files are to be added.

15. Click OK.
16. In iMPACT, select Operations 􀃆 Generate file¡­ . If successful. The .mcs file now exists in the project directory.

Burning the PROM
To burn the .mcs PROM image into the PROM, do the following:
17. In iMPACT, double-click on Boundary Scan under the iMPACT Modes tab..
18. Right-click in the open space and select Initialize Chain. iMPACT will show a view of the JTAG chain for the board and launch into a file selection wizard.
19. For the XCF02S PROM, browse to and select the newly generated bootload.mcs PROM file. Click Open. Cancel the file selection for the FPGA.

20. Right-click on the xcf02s icon and select Program.
21. Check the options Erase Before Programming and Verify. Click OK.

22. After a slight delay while the PROM is erased, iMPACT programs and verifies the PROM.

23. Close iMPACT.
24. Turn off the board by moving SW1 to OFF. Place three jumpers on MODE pins M0, M1, and M2. The JTAG cable can be disconnected. Turn on power. The PROM automatically configures the FPGA on power-up. The bootloader application copies the flash contents to SRAM then jumps to SRAM. The results are similar to what was seen previously in experiment Running from SRAM using a Linker Script .

uh, ok. So what is this all about? The subject, "The Bootloader about execute program in SRAM", does not make any sense. Also, your intro line, "This document is very useful to learn the storage system about MicroBlaze Soft Core Processer.", does not exhibit any obvious connection with everything you wrote. In short, what is this really all about?
Maybe,you are a Linuxer,but This topic is not about ARM.It`s about FPGA.

I`m studying this ,if something wrong,please tell me,so that I can get a higher level.
Hey firmnesszhao
I can do your tutorial with the tools 14.4 of Xilinx. WHat versions do you use in order to do this tuorial ?
Best Regards.
I don't understant why you choose The Flash Memory Base Address should be 0x20800000 and The Scratch Pad Base Address should be 0x20c00000. I want programe a spartan 6 I have the files .bit and .elf I want programme the flash. The system must be standalone when the supply cut the system must reboot after the start.
Best regards.
OP hasn't posted on this forum since 2007; your questions will not be answered.

Related topics
FTP program
Your favourite program?
cron jobs
Winxp SP2 tcpip.sys Patcher Version 2.12 released!
CHMOD Tutorial
mIRC for begginers.
Which ad program is better?
My program
Creating a new Operating System
Creating an RPG bot in IRC (yes I wrote this)
So, you are lazy to download a FTP program eh?
Python automation [SOLVED]
NTFS Permission Part 1
Arduino Mega: Programming
This topic is locked: you cannot edit posts or make replies.    Frihost Forum Index -> Computers -> Hardware and Electronics

© 2005-2011 Frihost, forums powered by phpBB.