| |
| Nios Development Kit |
| Cyclone Editions |
| |
| Last Update: January 2, 2004 |
| ==================================================================== |
| |
| This file contains information regarding U-Boot and the Altera |
| Nios Development Kit, Cyclone Edition (DK-1C20). For general Nios |
| information see doc/README.nios. |
| |
| For those interested in contributing ... see HELP WANTED section |
| in doc/README.nios. |
| |
| Contents: |
| |
| 1. Files |
| 2. Memory Organization |
| 3. Examples |
| 4. Programming U-Boot into FLASH with GERMS |
| 5. Active Serial Memory Interface (ASMI) Support |
| |
| ==================================================================== |
| |
| 1. Files |
| ========= |
| board/altera/dk1c20/* |
| include/configs/DK1C20.h |
| |
| 2. Memory Organization |
| ======================= |
| |
| -The heap is placed below the monitor (U-Boot code). |
| -Global data is placed below the heap. |
| -The stack is placed below global data (&grows down). |
| |
| 3. Examples |
| ============ |
| |
| The hello_world example works fine. The default load address |
| is 0x0100_0000 (the start of SDRAM). |
| |
| |
| 4. Programming U-Boot into FLASH with GERMS |
| ============================================ |
| The current version of the DK-1C20 port with the default |
| configuration settings occupies about 81 KBytes of flash. |
| A minimal configuration occupies less than 60 KByte (asmi |
| and network support disabled). |
| |
| To program U-Boot into the DK-1C20 flash using GERMS do the |
| following: |
| |
| 1. From the command line, download U-Boot using the nios-run: |
| |
| $ nios-run -r u-boot.srec |
| |
| This takes about 45 seconds (GERMS is not very speedy here). |
| After u-boot is downloaded it will be executed. You should |
| see the following: |
| |
| U-Boot 1.0.0-pre (Oct 4 2003 - 07:39:24) |
| |
| CPU: Nios-32 Rev. 3.3 (0x3038) |
| Reg file size: 256 LO_LIMIT/HI_LIMIT: 2/14 |
| Board: Altera Nios 1C20 Development Kit |
| In: serial |
| Out: serial |
| Err: serial |
| ==> |
| |
| |
| 2. Quit nios-run and start your terminal application (e.g. start |
| Hyperterminal or minicom). |
| |
| 3. Download the u-boot code to RAM. When using Hyperterminal, do the |
| following: |
| |
| a. From the u-boot command prompt start a binary download to SRAM: |
| |
| ==> loadb 800000 |
| |
| b. Download u-boot.bin using kermit. |
| |
| 4. From the U-Boot command prompt, erase flash 0x40000 to 0x5ffff: |
| |
| ==> erase 1:4-5 |
| |
| 5. Copy the binary image from SRAM to flash: |
| |
| ==> cp.b 800000 40000 10000 |
| |
| U-Boot will now automatically start when the board is powered on or |
| reset using the Standard-32 configuration. To start U-Boot with the |
| Safe-32 configuration, enter the following GERMS command: |
| |
| + g 40000 |
| |
| 5. Active Serial Memory Interface (ASMI) Support |
| ================================================ |
| ASMI is fully supported in U-Boot. Please note that ASMI is supported |
| only on Cyclone devices. Do not expect ASMI to work with Stratix or |
| APEX devices. |
| |
| ************* IMPORTANT ************* |
| =================================================== |
| IN ORDER FOR THE NIOS ASMI TO OPERATE PROPERLY, THE |
| CYCLONE DEVICE MUST BE CONFIGURED USING JTAG OR ASMI. |
| |
| There are two techniques you can use to bootstrap the ASMI. The |
| first is to use the program_epcs utility that is part of Altera's SDK. |
| But I've found program_epcs to be slow and cumbersome at best. |
| |
| An undocumented alternative is to use the Quartus device programing |
| interface: |
| |
| 1. Select "Active Serial" mode. |
| |
| 2. Choose the xxx.pof file. For example, for the standard_32 |
| configuration use the "standard_32.pof" file. |
| |
| 3. Attach your ByteBlaster to J28. Make sure you have the |
| cable attached properly -- the orientation of J28 is |
| different than J24 (the JTAG header). On J28, pin 1 is on |
| the bottom row, left-most pin. |
| |
| 4. Press and hold the "Power-On Reset" switch (SW10). You will |
| see the green "Loading" and red "Error" LEDs (LED3 and LED4) |
| in the on state. |
| |
| 5. While holding down the "Power-On Reset" switch, start the |
| programming sequence. This only takes about 10 seconds. |
| |
| 6. After programming is complete, release the "Power-On Reset" |
| switch. The Cyclone device should now load its configuration |
| from the EPCS4 (U59). The green "User" LED (LED 1) should be |
| blinking if the device was successfully loaded via ASMI. |
| |
| 7. Remove the ByteBlaster cable. The cable must be removed to |
| allow the Nios ASMI access to the EPCS4 device. |
| |
| After you have successfully programmed a configuration into the |
| EPCS4, the ASMI will be used to load the Cyclone configuration |
| unless the "Force Safe" switch (SW9) is pressed. |
| |
| NOTE: To maximize the amount of space available for program use, |
| you can enable configuration compression in Quartus. With compression |
| enabled, the size of the standard_32 configuration data is |
| approximately 192 KBytes. |
| |
| To use the U-Boot ASMI commands, try typing "help asmi" at the |
| command prompt. The command "asmi info" will show the current |
| status of the ASMI. |