154 lines
4.8 KiB
Plaintext
154 lines
4.8 KiB
Plaintext
|
|
||
|
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.
|