Using Embedded Linux with Nios II Processor

Using Embedded Linux with
Nios II Processor
User Guide
System Level Solutions, Inc. (USA)
14100 Murphy Avenue
San Martin, CA 95046
(408) 852 - 0067
http://www.slscorp.com
BSP Version:
Document Version:
Document Date:
0.1.0.0
1.1
03 January 2011
Copyright©2010, System Level Solutions.All rights reserved. SLS, An Embedded systems company, the stylized SLS logo,
specific device designations, and all other words and logos that are identified as trademarks and/or service marks are,
unless noted otherwise, the trademarks and service marks of SLS in India and other countries. All other products or service
names are the property of their respective holders. SLS products are protected under numerous U.S. and foreign patents
and pending applications, mask working rights, and copyrights. SLS warrants performance of its semiconductor products to
current specifications in accordance with SLS is standard warranty, but reserves the right to make changes to any products
and services at any time without notice. SLS assumes no responsibility or liability arising out of the application or use of any
information, products, or service described herein except as expressly agreed to in writing by SLS. SLS customers are
advised to obtain the latest version of specifications before relying on any published information and before orders for products or services.
ug_bsplnx-s4gxdk_v1.1
ii
Using Embedded Linux with Nios II Processor User Guide
System Level Solutions
January 2011
About this Guide
Introduction
This document explains how to create your own Nios II processor system for
Linux and run a free, open source Linux distribution on a pre-built system.
Table below shows the revision history of the user guide.
Version
How to Contact
SLS
Date
Description
1.1
03 January 2011
Second Release.
1.0
September 2010
First Release.
For the most up-to-date information about SLS products, go to the SLS
worldwide website at http://www.slscorp.com. For additional information
about SLS products, consult the source shown below.
Information Type
E-mail
Product literature services, SLS liter- support@slscorp.com
ature services, Non-technical customer services, Technical support.
System Level Solutions
January 2011
iii
Using Embedded Linux with Nios II Processor User Guide
Typographic Conventions
Typographic
Conventions
The document uses typographic conventions shown as below.
Visual Cue
Meaning
Bold Type with Initial Capital Letters
All Headings and Sub Headings Titles in a document are displayed in bold type with initial capital letters; Example:
Overview, Development Environment
Bold Type with Italic Letters
All Definitions, Figure and Table Headings are displayed in Italics.
Examples: Figure 1-1. Development Environment
1. 2.
Numbered steps are used in a list of items, when the sequence of
items is important such as steps listed in the procedure.
•
Bullets are used in a list of items when the sequence of items is
not important.
„
The hand points to information that requires special attention.
The caution indicates required information that needs special consideration and understanding and should be read prior to starting
or continuing with the procedure or process.
The warning indicates information that should be read prior to
starting or continuing the procedure or processes.
The feet direct you to more information on a particular topic.
iv
Using Embedded Linux with Nios II Processor User Guide
System Level Solutions
January 2011
Contents
About this Guide............................................................................................................................. iii
Introduction ..............................................................................................................................................iii
How to Contact SLS ................................................................................................................................iii
Typographic Conventions ........................................................................................................................ iv
1. Getting Started............................................................................................................................. 1
Overview ................................................................................................................................................... 1
Development Environment ....................................................................................................................... 1
Development Host..................................................................................................................................... 2
Development Target .................................................................................................................................. 3
Configuring the Development Board................................................................................................. 3
System Setup............................................................................................................................................. 4
Downloading the BSP Package................................................................................................................. 4
2. Designing a Nios II Hardware Reference Design...................................................................... 6
Introduction ............................................................................................................................................... 6
Creating Hardware Design........................................................................................................................ 7
Memory Map and Linker Regions ............................................................................................................ 8
Compile the Hardware Design ................................................................................................................ 11
3. Compiling and Running Linux with BSP ................................................................................ 12
Introduction ............................................................................................................................................. 12
BSP.......................................................................................................................................................... 12
Configuring the BSP ............................................................................................................................... 12
Compiling the BSP.................................................................................................................................. 16
Running the BSP ..................................................................................................................................... 16
4. Creating User Application......................................................................................................... 20
5. Customizing the Kernel............................................................................................................. 26
Generate a System Header File ............................................................................................................... 26
System Level Solutions
1
Configuring the Kernel ........................................................................................................................... 26
Linux Distribution Configuration .................................................................................................... 26
Linux Kernel Configuration............................................................................................................. 29
Device Drivers Configuration.......................................................................................................... 42
Memory Technology Device (MTD) support.................................................................................. 43
SCSI Device Support ....................................................................................................................... 44
Network Device Support ................................................................................................................. 46
I2C Support...................................................................................................................................... 49
SPI Support ...................................................................................................................................... 52
Input Device Support ....................................................................................................................... 54
PS2 Keyboard Support..................................................................................................................... 56
Altera Touchscreen Support ............................................................................................................ 58
Character Devices ............................................................................................................................ 60
Configuring JTAG UART ............................................................................................................... 60
Configuring PIO buttons.................................................................................................................. 64
Graphics Support ............................................................................................................................. 65
USB Host Support ........................................................................................................................... 68
SD Card Support ............................................................................................................................. 72
File System.............................................................................................................................................. 75
VFAT File System Support & JFFS2 File System Support ........................................................... 75
Configuring JFFS2 File System....................................................................................................... 78
Network File System Support.......................................................................................................... 80
Compiling the kernel............................................................................................................................... 95
Running the BSP ..................................................................................................................................... 96
Applications On Running BSP ............................................................................................................... 98
Mounting VFAT on SD-Card .................................................................................................................. 99
Mounting a JFFS2 File System...................................................................................................... 101
Input Devices Applications............................................................................................................ 102
Touch Panel........................................................................................................................................... 103
PS2 Keyboard ....................................................................................................................................... 106
Button PIO ............................................................................................................................................ 108
I2C Applications ............................................................................................................................ 110
I2C Detect ...................................................................................................................................... 110
I2C EEPROM Read and Write ...................................................................................................... 111
I2C Audio Controller ..................................................................................................................... 112
TFTP Applications ................................................................................................................................ 113
TFTP Client ................................................................................................................................... 113
2
Using Embedded Linux with Nios II Processor User Guide
System Level Solutions
January 2011
TFTP Server................................................................................................................................... 114
TELNET Application............................................................................................................................ 115
BOA Application ................................................................................................................................. 115
FTP Application ................................................................................................................................... 115
Dropbear Application............................................................................................................................ 115
LCD Application................................................................................................................................... 116
System Level Solutions
January 2011
3
Using Embedded Linux with Nios II Processor User Guide
1. Getting Started
Overview
This tutorial is designed to make you aware of the usage of Linux in
Embedded Systems and its advantages.
FPGAs are highly flexible development platforms for custom embedded
systems. Using Altera tools, any combination of hardware designs that
includes the Nios II processor and a set of standard as well as custom
peripherals can be created. Running Linux on such a customized environment
is beneficial but can be a bit challenging if not given a proper start. It is
therefore recommended that embedded developers always start with a
standard hardware reference platform.
For BSP developers supporting custom hardware designs, the best place to
start is the sample BSP provided in the training. As incremental changes are
made to the hardware system, you can modify the factory BSP in lock-step,
and upgrade your Linux kernel accordingly. It is recommended that all BSP
development and enhancements begin with the factory BSP and built upon
incrementally.
We assume that you are familiar with the Nios II, Linux and StratixIV
Development Board.
You will learn here the following:
Development
Environment
1
January 2011
1.
Development Environment Setup
2.
Designing a Nios II Hardware Reference Design
3.
Compiling and Running Linux with BSP
4.
Creating User Application
5.
Configuring Linux Kernel
Nios II embedded development environment consists of two systems are:
1.
Host system: Host system is used for compiling, linking, remote
debugging and associated development activities.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Development Host
2.
Target system: Target system is used for such as the Stratix IV GX
FPGA Development Kit, application development and testing
(Figure 1-1. ). Board acts as a target for application development.
User must have NEEK board and Terasic THDB-SUM board for
testing different IPs connected using HSMC PORTA and PORTB
respectively to target board.
Figure 1-1. Development Environment
Development
Host
A PC with Linux OS acts as a development host. It must have the following
software installed:
„
Linux for Nios II processor development software
The Linux tool chain for the Nios II processors were tested against
Fedora core10 and CentOS 5.3 software. We recommend that you start
with these desktop software versions. Alternatively you can try another
Linux versions.
http://www.centos.org/docs/5/
http://docs.fedoraproject.org/installation-quick-start-guide/
Following development packages must needed on your Development
Host, git-all, git-gui, tcsh, make, gcc, ncurses-devel,bison, libglade2devel, byacc, flex, gawk, get-text, ccache, zlib-devel, gtk2-devel, lzodevel, pax-utils
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
2
January 2011
Getting Started
„
Altera Quartus II software 9.1 SP2 or 10.0 SP1 and the corresponding
Nios II EDS software
It can be download from the Altera Download Centre at location:
http://www.altera.com/support/software/licensing/sof-qts-installation.html
Make sure to check the Nios Community Wiki Web site for additional useful
information on how to run Quartus on a Linux PC. The Nios Community
Wiki Web site is located at:
http://www.nioswiki.com/OperatingSystems/UClinux/QuartusforLinux
For FPGA configuration flash programming and host-target communication
using the Altera USB Blaster, you need to install the driver for the Altera USB
Blaster. To install the USB-Blaster driver on Linux, follow the steps from
below link.
www.altera.com/literature/ug/ug_usb_blstr.pdf
Plug one end of a USB cable to the USB port on the
Altera Stratix IV GX FPGA Development Kit and other
end to a USB port on the Linux host to access onboard USB-Blaster. Type the following command to verify that the USB-Blaster is working properly.Wiki Web
site is located at:
http://www.nioswiki.com/OperatingSystems/UClinux/
QuartusforLinux
#jtagconfig
1.
The console displays the devices connected to the USB port as shown
below:
1) USB-Blaster [USB 4-1.1]
024090DD
EP4SGX230/ES
020A40DD
EPM2210
The syntax may vary for different Linux distributions.
Development
Target
The Stratix IV GX FPGA Development Kit is used as a Development Target.
Configuring the Development Board
To configure the development board, check all the switches are in default
position. If not, then follow the steps below:
3
January 2011
1.
Set Rotary Switch SW2 at ‘0’ position.
2.
Set all switches of user DIP switch bank SW3 in (OFF) ‘1’ position.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
System Setup
System Setup
3.
Set switches 1, 2, 4 in (OFF) '1' position and remaining switches in
(ON) '0' position of board setting switch SW4.
4.
Set switch 4 in (OFF) ‘1’ position and remaining in (ON) ‘0’ position
of PCIe switch SW5.
5.
Set switch 1 in (OFF) ‘1’ position and remaining in (ON) ‘0’ position of
JTAG switch SW6.
This section explains hardware and software required and the system setup to
run Linux on the Nios II processor. See Figure 1-1.
Follow the steps below to make the system setup:
1.
Connect Stratix IV GX FPGA Development Kit to a 100/1000 Mbps
Ethernet switch.
The host PC should be connected to the aforementioned Nios II target
through the Ethernet switch.
2.
Downloading the
BSP Package
Connect one end of the standard USB Cable to the host Linux PC and
the other end to the Stratix IV GX FPGA Development Kit.
Download the bsp-lnx-s4gxdk-110103-0.1.0.0.tar.bz2 from
http://www.slscorp.com/pages/bsplnxs4gxdk.php
Table 1-1. BSP Contents
Name
Description
Kernel
v2.6.34
GCC
v4.1.2
Ethernet Driver
Included
JTAG Driver
Included
Serial port Driver
Included
LED Driver
Included
Push Button Driver
Included
PS2 Keyboard Driver
Included
LCD Driver
Included
Touch Panel Driver
Included
USB Host 2.0 Driver
Included
I2C Driver
Included
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
4
January 2011
Getting Started
Table 1-1. BSP Contents
Name
5
January 2011
Description
JFFS2 and VFAT Driver
Included
SD Card Driver
Included
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
2. Designing a Nios II Hardware
Reference Design
Introduction
This section describes how to create a Nios II hardware reference design on
Altera Stratix IV GX FPGA Development Kit. The board, when configured
as a Nios II target, will boot and run Linux and allow host-target
communication and Flash programming over USB cable. The Linux Host
should have Nios II processor development package installed.
Figure 2-1. below shows the setup.
Figure 2-1. Hardware Setup
The Nios II Target, the Altera Stratix IV GX FPGA Development Kit has the
following key components:
•
Flash Memory
Once the on-board Flash memory is programmed with the FPGA
configuration image for the Nios II hardware reference design, Stratix IV
Edition, the option bits for the MAX II configuration controller and a
prebuild kernel image with initramfs; the development board on power
up will boot up as a Nios II target running Linux.
•
USB Interface
For host-target communication and high-speed Flash programming.
For more information on the Altera Stratix IV GX FPGA Development Kit
refer to the documentation at:
http://www.altera.com/products/devkits/altera/kit-siv-gx.html
System Level Solution
January 2011
6
Using Embedded Linux with Nios II Processor User Guide
Designing a Nios II Hardware Reference Design
Creating
Hardware Design
Here, we have provided the sample System for Stratix IV GX FPGA
Development Kit.
Using the SOPC Builder tool, create a minimum processor system design that
includes the following features.
Please consult on-line documentation from www.altera.com on how to use
the SOPC Builder tool.
Our example system includes the following features:
•
Nios II/f core
•
Hardware multiplier
•
MMU, use the default MMU settings
•
1K dual-port tightly coupled memory, connect one port to the
tightly_coupled_instruction_master of Nios II and the other port to the
tightly_coupled_data_master
•
Assign "Fast TLB Miss Exception Vector" to the aforementioned tightly
coupled memory
•
Add DDR3 or SDRAM to the system, you need a minimum of 8MB and
a maximum of 128MB
•
One full-featured timer, not a hi-res timer
•
A JTAG/serial UART
•
External Flash
•
Ethernet controller
•
LED and Button PIO
•
LCD controller
•
SLS SD Host controller
•
Touch Panel controller
•
SLS PS2 Keyboard controller
•
SLS I2C master for EEPROM, Audio and TV
•
SLS I2S controller
•
USB Host controller(USB20HC)
The block diagram given below will make the design clearer. See Figure 2-2.
7
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Memory Map and Linker Regions
Figure 2-2. Reference Design Block Diagram
Embedded System Development Kit , Stratix IV Edition
FLASH
64 MB
LCD
UART
Touch Panel
NIOSII /F
PROECSSOR
PS2
TSE MAC
SD Host
Controller
JTAG
PIO
I2S
Controller
I2C Master
USB Host
Important things to note while you’re creating the hardware design are:
•
Note in Linux, irq 0 means auto-detected, so you must not use irq 0 for
ANY devices, except for the timer.
•
Component naming is critical. They must match with the macro defined
in your kernel. Please check the kernel source files below to make sure:
/home/sls/Nios2-linux/Linux_source/linux-2.6/arch/nios2/boards/
4s230/config.c
/home/sls/Nios2-linux/Linux_source/linux-2.6/arch/nios2/boards/
4s230/ include/asm/nios.h
Memory Map and
Linker Regions
The memory map of the Nios II processor system and the Linker sections are
shown in Table 2-1 and Table 2-2 respectively.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
8
January 2011
Designing a Nios II Hardware Reference Design
All address that fall in the range 0x00000000 to 0x1FFFFFFF are direct
mapped while addresses from 0x2000000 and above are managed by the
Memory Management Unit (MMU). In order to optimize for fast system
performance, the base addresses of all peripherals are mapped outside of the
area managed by the MMU.
It is recommended that you allocate your user peripherals in the direct
mapped memory range (0x00000000 to 0x1FFFFFFF). It is also recommended that you retain the memory allocations for the peripherals provided to
you as part of the Nios II Hardware Reference Design for Linux, Stratix IV
Edition.
Table 2-1. Memory Section Map
SR. No.
Device Name
Device Name in the
Design
Address Range
Size
(bytes)
1
External Flash Memory
ext_flash
0x00000000x3FFFFFF
67108864
2
Descriptor Memory
descriptor_memory
0x40000000x4001FFF8192
8192
3
Triple Speed Ethernet
MACtse_mac
0x40020000x40023FF
1024
4
Receive Scatter Gather DMA
sgdma_rx
0x40024000x400243F
64
5
Transmitter Scatter Gather DMA sgdma_tx
40024400x400247F
64
6
TimerLCD lcd_sgdma
timer_1ms
0x40024800x40024BF64
64
7
LCD
lcd_sgdma
0x40024C00x40024FF
64
8
SLS USB 2.0 Host (USB20HC)
sls_usb20hc
0x4C000000x4C03FFF
16384
9
SLS USB20HC PHY RESET
usb20hc_phy_reset
0x4C040000x4C0401F
32
10
LED PIO
led_pio
0x4E000000x4E0001F
32
11
Button PIO
button_pio
0x4E000200x4E0003F
32
9
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Memory Map and Linker Regions
Table 2-1. Memory Section Map
SR. No.
Device Name
Device Name in the
Design
Address Range
Size
(bytes)
12
SLS I2C Master EEPROM
sls_i2c_m_id_eeprom
0x4E000800x4E000FF
128
13
SLS SD Host controller
sls_sdhc
0x4E001000x4E001FF
256
14
SLS PS2 controller
sls_ps2
0x4E002000x4E0023F
64
15
Touch Panel SPI
touch_panel_spi
0x4E002400x4E0027F
64
16
Touch Panel PEN
touch_panel_pen_irq_n 0x4E002800x4E0029F
32
17
SLS I2C Master Audio & TV
sls_i2c_m_aud_tv
0x4E003000x4E0037F
128
18
SLS I2S controller
sls_i2s
0x4E003800x4E003BF
64
19
JTAG
jtag_uart
0x4EFFFB00x4EFFFBF
16
20
UART
uart
0x4EFFFC00x4EFFFFF
64
21
TLB_MISS_RAM 1K Memory
tlb_miss_ram_1k
0x7FFF4000x7FFF7FF
1024
22
DDR3 SDRAM controller
ddr3_top
0x80000000xFFFFFFF
134217728
Table 2-2. Linker Section Map
Sr. No.
Linker Section
Name
Linker Region Name
Memory Device
Memory Device Name
1
.bss
ddr2_lo_latency_128m
DDR2 SDRAM
ddr2_lo_latency_128m
2
.exceptions
ddr2_lo_latency_128m
DDR2 SDRAM
ddr2_lo_latency_128m
3
.heap
ddr2_lo_latency_128m
DDR2 SDRAM
ddr2_lo_latency_128m
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
10
January 2011
Designing a Nios II Hardware Reference Design
Table 2-2. Linker Section Map
Sr. No.
Linker Section
Name
Linker Region Name
Memory Device
Memory Device Name
4
.rodata
ddr2_lo_latency_128m
DDR2 SDRAM
ddr2_lo_latency_128m
5
.rwdata
ddr2_lo_latency_128m
DDR2 SDRAM
ddr2_lo_latency_128m
6
.stack
ddr2_lo_latency_128m
DDR2 SDRAM
ddr2_lo_latency_128m
7
.text
ddr2_lo_latency_128m
DDR2 SDRAM
ddr2_lo_latency_128m
Compile the
Hardware Design
11
January 2011
Please consult the Altera user documentation for Quartus II software and the
SOPC Builder tool for information on how to create and compile a new
hardware design.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
3. Compiling and Running
Linux with BSP
Introduction
Nios II Hardware Reference Design by SLS for Stratix IV GX FPGA
Development Kit and the matching BSP provide a solid starting point for BSP
Development. It is recommended that you always start with the sample BSP,
when you create new device drivers or make iterative changes to the provided
device drivers as hardware changes are made in the system.
BSP
The BSP (Board Support Package) contains the following:
Quick reference with ready to go pre-built Linux images and SOF
1.
Linux Image(with initramfs) without USB2.0 Host controller IP
2.
Linux Image(with initramfs) with USB2.0 Host controller
To use Linux Image with USB2.0 Host controller this image Terasic
THDB-SUM board HSMC must be connected to Stratix IV board's HSMC
PORT B.
„
Configuring the
BSP
System Level Solution
January 2011
Supported and tested Devices/Peripheral Drivers
•
Ethernet: Altera TSE driver (SLS)
•
Flash: Intel CFI Parallel Flash
•
Serial: Altera JTAG UART, Altera Serial UART
•
PIO: LEDs and Push Button Switches
•
SD Card : SD Host controller driver (SLS)
•
LCD: Altera LCD driver
•
Touch Panel: Altera Touch Panel driver (SPI based)
•
PS2 Keyboard:PS2 Keyboard driver (SLS)
•
I2C Master : I2C Master driver for EEPROM and Audio & TV
(SLS)
•
USB 2.0 Host: USB20HC controller driver (SLS)
•
I2S Audio controller (SLS) driver (not added)
The package downloaded earlier from www.slscorp.com is to be used here.
Please follow the steps mentioned below:
1.
Copy the BSP source bsp-lnx-s4gxdk-110103-0.1.0.0.tar.bz2
at the development folder on your linux PC and extract it.
12
Using Embedded Linux with Nios II Processor User Guide
Compiling and Running Linux with BSP
#cd /home/sls/
#tar -xjf bsp-lnx-s4gxdk-110103-0.1.0.0.tar.bz2
The Nios2-Linux folder will be created. It contains following three folders.
Table 3-1. BSP Installed Directory Structure
Directory Name
Description
BuildTools
Contains pre-built bin tools gcc 4.1.2 for nios2-linux
Linux_source
Contains kernel and application
System-Board
Contains system file for specific board. It contains
only for 4SGX230 board files
2.
Set the Bintools path on your terminal.
#PATH=$PATH:/home/sls/Nios2-Linux/BuildTools/toolchain-mmu/x86-linux2/bin
3.
Build the Linux image.
#cd/home/sls/Nios2-Linux/Linux_source/uClinux-dist/
#make menuconfig
The menuconfig screen displays as shown in Figure 3-1.
Figure 3-1. Menu Configuration Screen
4.
13
January 2011
Select Vendor/Product Selection. See Figure 3-2.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the BSP
Figure 3-2. Vendor/Product Selection
5.
Select Vendor (vendor_name) and make sure that Altera is selected as
shown in Figure 3-3. To select/de-select the vendor, highlight the vendor
name (using arrow keys) and press space- bar or Enter to select or
de-select.
Figure 3-3. Vendor selection
6.
Select Altera Products (product_name) to select the product.
See Figure 3-4.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
14
January 2011
Compiling and Running Linux with BSP
Figure 3-4. Vendor/Product Selection
7.
Select nios2. See Figure 3-5.
Figure 3-5. Altera Product Selection
8.
Press E to exit the Vendor/Product Selection section.
9.
Press E again to exit the kernel configuration. You will be asked
whether to save the configuration or not. See Figure 9
10. Press E again to exit the kernel configuration.
15
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Compiling the BSP
Compiling the
BSP
To compile the BSP, follow the steps below:
1.
Type the following command to compile the BSP:
#make
After compilation, you will get different images in the image folder
located at:
/home/sls/Nios2-linux/Linux_source/uClinux-dist/images/
The linux.initramfs.gz file is an elf image with initramfs.
Running the BSP
To run the BSP on Nios II reference design, follow the steps below:
1.
Download the sof file sys_qii100sp1_linux_bsp_s4gxdb.sof located at
/home/sls/Nios2-linux/System-Board/4s230_default.
2.
Download elf file linux.initramfs.gz located at
/home/sls/Nios2-linux/Linux_source/uClinux-dist/images/
3.
Download the ELF image using the following command:
#nios2-download -g linux.initramfs.gz
4.
After successful downloading of SOF and ELF, Linux terminal displays
the results as shown in Figure 3-6.
Figure 3-6. Downloading ELF Image
5.
Type the following command to open the Nios II terminal.
#nios2-terminal
Now, this is the embedded Linux running on the 4SGX230 FPGA. We
have downloaded the hardware design with the Nios II processor first
and then downloaded the image with the kernel and drivers. See
Figure 3-7.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
16
January 2011
Compiling and Running Linux with BSP
Current Kernel configuration does not include support for USB20 Host
Controller. Stratix IV HSMC PORT A should be connected with NEEK
board.
Figure 3-7. Running Linux On the Board
6.
Type ls to see the directory contents. Similarly we can use the
commands like cd, password and other in the same way as we use in
Linux. See Figure 3-8.
Login:
Username : root
Password : nios2linux
Figure 3-8. Running ls Command
17
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Running the BSP
If the ethernet cable is connected to a network, we can also view the
status, assign IP Address to the board and access other machines in the
network as mentioned in the following steps. See Figure 3-9.
7.
Type the following command to view the status.
ifconfig eth0
Figure 3-9. Eternet Configuration Status
8.
Type the following command to assign IP address to the 4SGX230
board.
ifconfig eth0 192.168.0.181
Figure 3-10.Assigning IP Address
The IP address assigned above is only for example. Please ask your
instructor to get the IP address to be assigned to 4SGX230 board.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
18
January 2011
Compiling and Running Linux with BSP
9.
Type the following command to access other machine in the network.
ping 192.168.0.41 -c 5
Figure 3-11.Accessing Other Machine in the Network
10. Please consult your instructor to get the IP address of other machine in
the network.
We have learned how to run the given BSP on the board. The next chapters
will explain how to create your own application and modify kernel settings.
19
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
4. Creating User Application
This section explains you about adding a user application named hello in the
BSP. This application prints hello world on the Nios II terminal. Follow the
steps below to add a new user application.
1.
Open Linux terminal.
2.
Locate the directory sls_test_app from /home/sls/Nios2-Linux/
Linux_source/uClinux-dist/user/sls_test_app directory.
3.
Type following to create hello.c file.
vi hello.c
4.
Type the following code in the file.
#include <stdio.h>
int main()
{
printf (“\n\nHello World! \n\n”);
return 0;
}
System Level Solution
January 2011
20
Using Embedded Linux with Nios II Processor User Guide
Creating User Application
Figure 4-1. Creating hello.c file
5.
Modify the Makefile as mentioned below to compile the hello
application.
Type the following command to open the Makefile.
vi Makefile
The user application and the object file are defined by the macros
EXEC_USER and EXEC_OBJS respectively. See Figure 4-2.
21
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Figure 4-2. Modifying Makefile
6.
Locate the folder uClinux-dist from /home/sls/Nios2-Linux/
Linux_source.
7.
Type the following command to compile the BSP:
#make
After compilation, you will get different images in the image folder
located at:
/home/sls/Nios2-linux/Linux_source/uClinux-dist/images/
The linux.initramfs.gz file is an elf image with initramfs.
8.
Make sure that the SOF file is downloaded.
9.
Download the ELF image using the following command:
#nios2-download -g linux.initramfs.gz
10. After successful downloading of SOF and ELF, Linux terminal displays
the results as shown in Figure 4-3.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
22
January 2011
Creating User Application
Figure 4-3. Downloading ELF image
11. Type the following command to open the Nios II terminal.
#nios2-terminal
Now, this is the embedded Linux running on the 4SGX230 FPGA.We
have downloaded the hardware design with the Nios II processor first
and then downloaded the image with the kernel and drivers.
Figure 4-4. Running Linux on the Board
12. Type ls to see the directory contents. Similarly we can use the
commands like cd, password and other in the same way as we use in
Linux. See Figure 4-5.
23
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Login:
Username: root
Password: nios2linux
Figure 4-5. Running ls Command
13. Type the following command to locate the hello application in the bin
folder.
cd bin
14. Type the following to run the application.
hello
15. The message “Hello World!” will be displayed on the terminal.
See Figure 4-6.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
24
January 2011
Creating User Application
Figure 4-6. Running User Application
Now you have learned how to create your own custom application.You can
go back and modify your application, compile the kernel again and download
the modified image again to run your custom application. The next chapter
will explain you about modifying the kernel settings.
25
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
5. Customizing the Kernel
Generate a
System Header
File
Your hardware design has fixed peripheral component base addresses, which
the Linux device drivers access through a static header file called
custom_fpga.h. This file must be regenerated manually, each time the system
memory map changes.
When you make any changes to the hardware design using the SOPC Builder
tool, it automatically generates a .sopcinfo file after you recompile the
hardware design. The .sopcinfo file contains information on the hardware
design, including the system memory map. You must manually run the sopccreate-header-files command on the .sopcinfo file in order to generate the
custom_fpga.h.
You can learn more about the sopc-create-header-files with the --help option
from the Nios II Command Shell as shown below:
Follow the steps below to generate a System Header file:
1.
Locate the .sopcinfo file from
2.
Type the following command to create custom_fpga.h file.
sopc-create-header-files --single custom_fpga.h
3.
Type following command to copy the custom_fpga.h file to asm folder.
cp custom_fpga.h /home/sls/Nios2-linux/Linux_source/
linux-2.6/arch/nios2/boards/4s230/include/asm
Configuring the
Kernel
To configure the kernel, follow the steps mentioned below.
Linux Distribution Configuration
1.
Set the Bintools path on your terminal.
#PATH=$PATH:/home/sls/Nios2-Linux/BuildTools/
toolchain-mmu/x86-linux2/bin
2.
Build the Linux image.
#cd /home/sls/Nois2-linux/Linux_source/uClinux-dist/
System Level Solution
January 2011
26
Using Embedded Linux with Nios II Processor User Guide
Customizing the Kernel
3.
Type the following command to modify kernel settings.
#make menuconfig
The uClinux Distribution Configuration dialog box opens. See
Figure 5-1.
Figure 5-1. uClinux Distribution Configuration Dialog Box
27
January 2011
4.
Press L and select Kernel/Library/Defaults Selection.
5.
Press Enter.
6.
Kernel/Library/Defaults Selection dialog box appears. See Figure 5-2.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-2. Kernel/Library/Defaults Selection
7.
Select the following options: See Figure 5-3.
•
Customize Kernel Settings
•
Customize Application/Library Settings
Figure 5-3. Kernel/Library/Defaults Selection Configuration
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
28
January 2011
Customizing the Kernel
8.
Press E to exit.
9.
You will return to the uClinux Distribution Configuration dialog box.
10. Press E to exit.
11. The Save dialog box opens.
12. Press Y to save the to the configuration. See Figure 5-4.
Figure 5-4. Saving Linux Distribution Configuration
13. The Linux Kernel Configuration window opens. See Figure 5-5.
Linux Kernel Configuration
14. Select the following options:
29
January 2011
•
Enable loadable module support
•
Enable the block layer
•
Networking support
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-5. Linux Kernel Configuration Window
15. Select NiosII Configuration.
16. Select Nios II board configuration. See Figure 5-6.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
30
January 2011
Customizing the Kernel
Figure 5-6. NiosII Configuration Window
17. Select board configuration (4S230 dev board). See Figure 5-7.
31
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-7. Nios II Board Configuration Window
18. Select 4S230 dev board. See Figure 5-8.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
32
January 2011
Customizing the Kernel
Figure 5-8. Board Configuration Window
19. Press Enter. You will return to Nios II board configuration dialog
box.
20. Select FPGA configuration (CUSTOM_FPGA).
See Figure 5-9.
33
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-9. FPGA Configuration (CUSTOM_FPGA) Selection
21. Select CUSTOM_FPGA. See Figure 5-10.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
34
January 2011
Customizing the Kernel
Figure 5-10. FPGA Configuration Settings
22. Press Enter. You will return to Nios II board configuration dialog
box.
23. Press <Esc> <Esc>, you will return to NiosII configuration page.
24. Select Additional NiosII Device Drivers. See Figure 5-11.
35
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-11. Additional NiosII Device Drivers Selection
25. Select following options: See Figure 5-12.
•
Enable NiosII PIO driver
•
Enable NiosII PIO LED driver
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
36
January 2011
Customizing the Kernel
Figure 5-12. Enable NiosII PIO Driver Selection
26. Press Enter.
27. Press <Esc> <Esc>, you will return to NiosII configuration page.
See Figure 5-6.
28. Select NiosII specific compiler options. See Figure 5-13.
37
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-13. NiosII Specific Compiler Options Selection
29. Select Enable MUL instruction. See Figure 5-14.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
38
January 2011
Customizing the Kernel
Figure 5-14. Enable MUL Instruction Selection
30. Press <Esc> <Esc>, you will return to NiosII configuration page.
See Figure 5-6.
31. Press <Esc> <Esc>, you will return to Linux Kernel configuration
page. See Figure 5-5.
32. See Figure 5-15. Select Networking Support.
39
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-15. Networking Support
33. The Networking support dialog box opens. See Figure 5-16.
34. Select Networking Options
Figure 5-16. Networkin Options
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
40
January 2011
Customizing the Kernel
35. Press Enter.
36. The Networking Options dialog box opens. See Figure 5-17.
37. Select the following options:
•
Packet socket
•
Packet socket: mmapped IO
•
Unix domain sockets
•
TCP/IP networking
•
IP: kernel level autoconfiguration
•
IP: DHCP support
•
BOOTP support
•
INET: socket monitoring interface
Figure 5-17. Networking Options (2)
41
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
38. Press <Esc> <Esc>.
39. Press <Esc> <Esc>.
40. You will return to Linux Kernel configuration page dialog box.
Device Drivers Configuration
See Figure 5-18.
Figure 5-18. Device Drivers
41. Select the following options. See Figure 5-19.
•
Memory Technology Device (MTD) support
•
Block devices
•
Network device support
•
I2C Support
•
SPI Support
•
USB Support
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
42
January 2011
Customizing the Kernel
•
MMC/SD/SDIO card Support
Figure 5-19. Memory Technology Device (MTD) Support (1)
Memory Technology Device (MTD) support
42. Select Memory Technology Device (MTD) support.
43. MTD support is used for JFFS2 File system to create Flash partitions.
See Figure 5-20.
43
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-20. Memory Technology Device (MTD) Support (2)
SCSI Device Support
44. Needs for USB Storage device support. See Figure 5-21.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
44
January 2011
Customizing the Kernel
Figure 5-21. SCSI Device Support (1)
45. Select following options:
45
January 2011
•
SCSI device support
•
SCSI disk support
•
SCSI generic support See Figure 5-22.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-22. SCSI Device Support (2)
Network Device Support
46. The Device Drivers dialog box opens. See Figure 5-23.
47. Select Network device support.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
46
January 2011
Customizing the Kernel
Figure 5-23. Device Drivers Configuration
48. Press Enter.
49. The Network Device Support dialog box opens. See Figure 5-24.
50. Select Ethernet (10 or 100Mbit).
47
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-24. Network Device Support Configuration
51. Press Enter.
52. The Ethernet (10 or 100Mbit) dialog box opens. See Figure 5-25.
53. Select Altera Triple Speed Ethernet MAC support (SLS).
54. Press <Esc> <Esc>.
Press <Esc> <Esc>.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
48
January 2011
Customizing the Kernel
Figure 5-25. Ethernet (10 or 100Mbit) Dialog Box
I2C Support
55. I2C support is used for I2C based EEPROM device and Audio and TV
based on SLS I2C IP. See Figure 5-26.
56. Select I2C Support
49
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-26. I2C Device Support
57. Select I2C Hardware Bus Support. See Figure 5-27.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
50
January 2011
Customizing the Kernel
Figure 5-27. I2C Hardware Bus Support.
58. I2C Hardware Bus Support. Select SLS I2C Master Controller. See
Figure 5-28.
59. Press <Esc> <Esc>.
60. Press <Esc> <Esc> to go Device Driver selection menu.
51
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-28. SLS I2C Master Controller
SPI Support
61. SPI support is used SPI based Touch Panel and Flash.
62. Select SPI Support. See Figure 5-29.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
52
January 2011
Customizing the Kernel
Figure 5-29. SPI Support
63. Select Altera SPI Controller. See Figure 5-30.
64. Press <Esc> <Esc> to go Device Driver selection menu.
53
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-30. Altera SPI Controller
Input Device Support
65. Support for input devices like PS2 keyboard and Touch Panel
controller. See Figure 5-31.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
54
January 2011
Customizing the Kernel
Figure 5-31. Input Device Support
66. Select following options: See Figure 5-32.
55
January 2011
•
Generic input layer (needed for keyboard,mouse ...)
•
Event interface
•
Event debugging
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-32. Input Device Support (1)
PS2 Keyboard Support
67. Select Keyboards. See Figure 5-33.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
56
January 2011
Customizing the Kernel
Figure 5-33. Keyboards
68. Select SLS PS2 Keypad driver. See Figure 5-34.
69. Press <Esc> <Esc>.
57
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-34. SLS PS2 Keypad Driver
Altera Touchscreen Support
70. Select Touchscreens. See Figure 5-35.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
58
January 2011
Customizing the Kernel
Figure 5-35. Touchscreens
71. Select ADS7846/TSC2046/AD7873 and AD(S)7843 based
touchscreens. See Figure 5-36.
72. Press <Esc> <Esc>.
73. Press <Esc> <Esc> to go Device Driver selection menu.
59
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-36. Based Touchscreens
Character Devices
•
JTAG UART Support
•
Serial UART support
•
Button PIO support
Configuring JTAG UART
74. The Device Drivers dialog box opens. Select Character devices. See
Figure 5-37.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
60
January 2011
Customizing the Kernel
Figure 5-37. Device Drivers Dialog Box
75. The Character Devices dialog box opens. See Figure 5-38.
•
61
January 2011
Select Serial drivers.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-38. Character Devices Configuration
76. For JTAG UART, select the following options: See Figure 5-39.
•
Altera JTAG UART support
•
Altera JTAG UART console support
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
62
January 2011
Customizing the Kernel
Figure 5-39. Serial Drivers Configuration
If you want to use UART instead of JTAG UART then select the following
options: See Figure 5-40.
63
January 2011
•
Altera UART Support
•
(4) Maximum number of Altera UART ports
•
(115200) Default baudrate for Altera UART port
•
Altera UART console support
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-40. Altera UART support
77. Press <Esc> <Esc>. You will return to Character devices
dialog box.
Configuring PIO buttons
78. Select Nios PIO button support. See Figure 5-41.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
64
January 2011
Customizing the Kernel
Figure 5-41. Configuring PIO
79. Press <Esc> <Esc>.
80. Press <Esc> <Esc>.
81. Press <Esc> <Esc>.
82. Press Y to save the configuration settings.
83. You will return to Linux terminal.
Graphics Support
•
LCD Support
84. Select Graphics Support. See Figure 5-42.
65
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-42. Graphics Support
85. Select Support for frame buffer devices. See Figure 5-43.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
66
January 2011
Customizing the Kernel
Figure 5-43. Graphics Support (1)
86. Select Altera LCD IP Support. See Figure 5-44.
67
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-44. Altera LCD IP Support
87. Press <Esc> <Esc> to go Device Driver selection menu.
USB Host Support
88. USB Host drivers are supported by SLS USB 2.0 Host controller IP.
89. Select USB Support. See Figure 5-45.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
68
January 2011
Customizing the Kernel
Figure 5-45. USB Support (1)
90. Select Support for the Host-side USB. See Figure 5-46.
69
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-46. Host-side USB
91. Select SLS Embedded USB20HCv1.5 support. See Figure 5-47.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
70
January 2011
Customizing the Kernel
Figure 5-47. USB Support (2)
92. Select USB Mass Storage support. See Figure 5-48.
93. Press <Esc> <Esc> to go Device Driver selection menu.
71
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-48. USB Mass Storage Support
SD Card Support
94. Depends on VFAT filesystem support.
95. Select MMC/SD/SDIO card Support. See Figure 5-49.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
72
January 2011
Customizing the Kernel
Figure 5-49. SD Card Support
96. Select MMC block device driver. See Figure 5-50.
73
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Configuring the Kernel
Figure 5-50. Device Driver
97. Select SD Host Controller (SLS). See Figure 5-51.
98. Press <Esc> <Esc> to go Device Driver selection menu.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
74
January 2011
Customizing the Kernel
Figure 5-51. SD Host Controller (SLS)
File System
VFAT File System Support & JFFS2 File System Support
Virtual File Allocation Table (VFAT) is a part of the Windows 95 and later
operating system that handles long file names, which otherwise could not be
handled by the original file allocation table (FAT) programming. VFAT file
system is used with SD Card Follow the steps below to configure the VFAT
File system.
99. Press <Esc> <Esc>.
100.You will return to the Linux Kernel Configuration dialog box.
See Figure 5-5.
•
75
January 2011
Select File systems. See Figure 5-52.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
File System
Figure 5-52. File System Selection
101.Press Enter.
102.The File Systems dialog box opens. See Figure 5-52.
103.Select the following options:
•
Enable POSIX file locking API
•
Dnotify support
•
Inotify file change notification support
•
Inotify support for userspace
•
Miscellaneous filesystems
•
Network File Systems
104.Press L and select DOS/FAT/NT File systems. See Figure 5-53.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
76
January 2011
Customizing the Kernel
Figure 5-53. File Systems Configuration
105.Press Enter.
106.The Dos/FAT/NT Filesystems dialog box opens. See
Figure 5-54. Select the following options:
77
January 2011
•
MSDOS fs support
•
VFAT (windows-95) fs support
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
File System
Figure 5-54. DOT/FAT/NT File Systems Settings
107.Press <Esc> <Esc>.
108.You will return to File systems dialog box.
Configuring JFFS2 File System
109.Select Miscellaneous filesystems. See Figure 5-55.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
78
January 2011
Customizing the Kernel
Figure 5-55. File System Dialog Box
110. Select following option: See Figure 5-56.
79
January 2011
•
Journalling Flash File System v2 (JFFS2) support
•
JFFS2 write-buffering support
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
File System
Figure 5-56. Miscellaneous FileSystem Dialog Box
Network File System Support
NFS is a network file system protocol originally developed by Sun
Microsystems in 1984, allowing a user on a client computer to access files
over a network as easily as if the network devices were attached to its local
disks. If you want to use NFS file system on Ethernet then you have to
configure the Ethernet IP driver and NFS file system. Ethernet IP driver is
already configured. Follow the steps below to configure the NFS File system.
111. Press <Esc> <Esc>.
•
Select Networking Support. See Figure 5-57.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
80
January 2011
Customizing the Kernel
Figure 5-57. File System Configuration
112. The Network File Systems dialog box opens. See Figure 5-58.
113. Select the following options:
81
January 2011
•
NFS client support
•
NFS client support for NFS version 3
•
NFS client support for NFSv3 ACL protocol extension
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
File System
Figure 5-58. Network File System Configuration
114. Press <Esc> <Esc>.
115. Press <Esc> <Esc>.
116. Now you will enter in Customize Application/ Library Settings. See
Figure 5-59.
117. Select Core Applications. See Figure 5-60.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
82
January 2011
Customizing the Kernel
Figure 5-59. Library Configuration
83
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
File System
Figure 5-60. Core Applications
•
Select init
•
Select enable console shell
•
Press <Esc> <Esc>
118. Select Network Applications. See Figure 5-61.
•
Select boa
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
84
January 2011
Customizing the Kernel
Figure 5-61. Network Applications
•
85
January 2011
Select Dropbear , Ethtool, FTPD, inetd See Figure 5-62.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
File System
Figure 5-62. Network Applications (Dropbear , Ethtool, FTPD, inetd)
•
Select telnet and telnetd See Figure 5-63.
•
Press <Esc> <Esc>
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
86
January 2011
Customizing the Kernel
Figure 5-63. Network Applications (telnet and telnetd)
119. Select Miscellaneous Applications See Figure 5-64.
•
87
January 2011
Select Test Applications (SLS)
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
File System
Figure 5-64. Miscellaneous Applications
•
Select i2c-tools See Figure 5-65.
•
Press <Esc> <Esc>
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
88
January 2011
Customizing the Kernel
Figure 5-65. Miscellaneous Applications (i2c-tools)
•
89
January 2011
Select BusyBox See Figure 5-66.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
File System
Figure 5-66. BusyBox
•
Select Networking Utilities See Figure 5-67.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
90
January 2011
Customizing the Kernel
Figure 5-67. Networking Utilities BusyBox
91
January 2011
•
Select Hostname
•
Select ifconfig, Enable status reporting output and Enable
option “hw” See Figure 5-68.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
File System
Figure 5-68. Enable T6v6 Support
•
Select ping , netstat , tftp, tftpd, udhcp client, uspsvd See
Figure 5-69.
•
Press <Esc> <Esc>
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
92
January 2011
Customizing the Kernel
Figure 5-69. Networking Utilities (udhcpc)
120.Select Miscellaneous Configuration See Figure 5-70.
93
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
File System
Figure 5-70. Miscellaneous Configuration
•
Select Generic CGI See Figure 5-71.
•
Press <Esc> <Esc>
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
94
January 2011
Customizing the Kernel
Figure 5-71. Miscellaneous Configuration Generic CGI
121.Press <Esc> <Esc>.
122. Press Y to save the configuration settings.
123. You will return to Linux terminal.
Compiling the
kernel
To compile the kernel, follow the steps below:
1.
Type the following command to compile the kernel:
#make
Figure 5-72. show the system compilation.
95
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Running the BSP
Figure 5-72. Compilation in Linux
After compilation, you will get different images in the image folder
located at:
/home/sls/Nios2-Linux/Linux_source/uClinux-dist/images/
The linux.initramfs.gz file is an elf image with initramfs.
Running the BSP
To run BSP on Nios II reference design, follow the steps below:
1.
Download the sys_qii100sp1_linux_bsp_s4gxdb.sof file generated in
the previous chapter or from the reference design located at See Figure 573.
/home/sls/Nios2-linux/System-Board/4s230_default.
2.
Download the elf file linux.initramfs.gz located at
/home/sls/Nios2-linux/Linux_source/uClinux-dist/images/
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
96
January 2011
Customizing the Kernel
Figure 5-73. Downloading ELF Image
3.
You will get Linux booting messages on the nios2-terminal window. See
Figure 5-74.
#nios2-download -g linux.initramfs.gz
#nios2-terminal
Figure 5-74. Running Linux On the Board
97
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Applications On Running BSP
Login:
Username : root
Password : nios2linux
To mount the JFFS2 file system on memory, follow the steps below:
4.
Type following command to unlock the memory block for erase.
#flash_unlock /dev/mtd7
5.
Type following command to erase the memory block.
#flash_eraseall -j /dev/mtd7
6.
Type followin command to mount JFFS2 file system on /mnt directory.
#mount –t jffs2 /dev/mtdblock7 /mnt
7.
Type following command to go to “mnt” directory.
#cd /mnt
8.
Type the command to check mounted file system.
#df
This message displays mounted file system on memory block 7. See
Figure 5-75.
Figure 5-75. Mounting JFFS2 File System
Applications On
Running BSP
For these applications except USB Host, Altera NEEK board's HSMC port
should be connected on Stratix IV board's HSMC Port A. For USB/Host
application, Altera terasic THDB-SUM board's HSMC port should be
connected on Stratix IV board's HSMC Port B.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
98
January 2011
Customizing the Kernel
Mounting VFAT
on SD-Card
1.
Before Power-On board insert SD-card in NEEK board's SD-Card
slot. See Figure 5-76.
Figure 5-76. Mounting VFAT on SD-Card
2.
99
January 2011
SD-card is detected as mmcblk0 as shown in boot message. See
Figure 5-77.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Mounting VFAT on SD-Card
Figure 5-77. Mounting VFAT on SD-Card (1)
3.
Mount SD-Card . See Figure 5-78. on /mnt/sdcard directory.
# mount -t vfat /dev/mmcblk0 /mnt/sdcard
4.
Check mounted file system using “df” or “mount” command.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
100
January 2011
Customizing the Kernel
Figure 5-78. Mounting JFFS1 File System
Mounting a JFFS2 File System
1.
For JFFS2 file system, Kernel must configured for MTD and JFFS2 file
system.
2.
To check MTD partitions, use
# cat /proc/mtd
3.
To mount /dev/mtd1 partition as JFFS2 file system on /mnt/jffs folder,
#flash_unlock /dev/mtd1
#flash_eraseall -j /dev/mtd1
#flash_unlock /dev/mtd1
#mount -t jffs2 /dev/mtdblock1 /mnt/jffs
101
January 2011
4.
Check mounted file system using “df” or “mount” command.
5.
Create any file or directory on mounted file system. See Figure 5-78.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Mounting VFAT on SD-Card
Figure 5-79. Mounting JFFS2 File System
Input Devices Applications
1.
Check the boot message which displays configured input devices. See
Figure 5-79.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
102
January 2011
Customizing the Kernel
Figure 5-80. Input Devices Applications
Touch Panel
1.
Touch panel is configured as input1 and event1. See Figure 5-81.
2.
Run the input_driver_test application as shown,
#input_driver_test
103
January 2011
/dev/input/event1
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Touch Panel
Figure 5-81. Touch Panel
3.
On success, touch the NEEK boards touchscreen , it will display
co-ordinates values. See Figure 5-82.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
104
January 2011
Customizing the Kernel
Figure 5-82. Touch Panel (1)
4.
105
January 2011
Even the resulting messages can also be viewed using “gmesg”
command. See Figure 5-83.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
PS2 Keyboard
Figure 5-83. Touch Panel (2)
PS2 Keyboard
1.
Connect PS2 Keyboard on PS2 port of NEEK board.
2.
PS2 Keyboard is configured as input0 and event0.
3.
Run the input_driver_test application as shown,
#input_driver_test
4.
/dev/input/event0
On success, press any key of keyboard , it will display code values. See
Figure 5-84.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
106
January 2011
Customizing the Kernel
Figure 5-84. PS2 Keyboard
5.
107
January 2011
Even the resulting messages can also be viewed using “gmesg”
command. See Figure 5-85.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Button PIO
Figure 5-85. PS2 Keyboard (2)
Button PIO
1.
Open /dev/btn as background,
#cat /dev/btn &
2.
Pressing of any push button 1 ,2 or 3 will display button number. See
Figure 5-86.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
108
January 2011
Customizing the Kernel
Figure 5-86. Button Pio (1)
3.
To Kill these process, give kill command with pid of /dev/btn and press
any push. See Figure 5-87.
Figure 5-87. Button Pio (2)
109
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Button PIO
I2C Applications
1.
Check the boot message which displays configured i2c devices. See
Figure 5-88.
i2c-0 for eeprom and i2c-1 for audio-codec
Figure 5-88. I2C Applications
I2C Detect
1.
i2c detect will display the address where i2c devices are connected. See
Figure 5-89.
#i2cdetect 0 or #i2cdetect 1
2.
I2C EEPROM on NEEK board has address range between 0x50 to
0x57
3.
Device address for I2C interface for audio codec is 0x1A.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
110
January 2011
Customizing the Kernel
Figure 5-89. I2C Detect
I2C EEPROM Read and Write
1.
To read eeprom's byte value from address 0x01 with eeprom address
value 0x51. See Figure 5-90.
#i2cget 0 0x51 0x01 b
2.
Address 0x01 has value 0x23
3.
To write eeprom 1 byte 0x45 value at address 0x01
#i2cset 0 0x51 0x01 0x45 b
4.
111
January 2011
Verify the value at address 0x01 using i2cget.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
Button PIO
Figure 5-90. I2Cread_write
I2C Audio Controller
1.
To check i2c audio codec, run application i2c_audio_bypass. See
Figure 5-91.
2.
Connect LINE-IN of NEEK board with Host system's LINE-OUT
using aux cable.
3.
Connect LINE-OUT of NEEK board with Speaker.
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
112
January 2011
Customizing the Kernel
Figure 5-91. I2C_audio
4.
Run audio on player of your Host system with application
#i2c_audio_bypass
TFTP
Applications
TFTP Client
1.
Trivial File transfer protocol(tftp) is used for file transfer from Host PC
to Stratix IV GX Development kit. See Figure 5-92.
2.
To get the remote file from tftp server running on Windows or Linux
Host.
tftp -g -r [File] [HOST]
#tftp -g -r Sunset.jpg 192.168.0.26
113
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
TFTP Applications
Figure 5-92. Trivial File transfer protocol(tftp - 1)
TFTP Server
1.
To make Stratix IV GX Development Kit as TFTP Server. See
Figure 5-93.
2.
After Ethernet configuration, run this command ,
#udpsvd -vE 0.0.0.0 69 tftpd /home/tftpboot
3.
Access files from Host system from Stratix IV GX Development Kit's
tftpboot folder .
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
114
January 2011
Customizing the Kernel
Figure 5-93. Trivial File transfer protocol(tftp - 2)
TELNET
Application
1.
It is simple utility to access Target board via Ethernet.
2.
To access target board via telnet , give telnet command from Windows
or Linux Host
# telnet 192.168.0.181
BOA Application
1.
Open any Internet browser on Host and type http://192.168.0.181.
# boa -c /etc &
http://192.168.0.181
FTP Application
2.
Connect target board using FTP application On Host system, run this
command.
ftp 192.168.0.181
Dropbear
Application
3.
Connect the target board using SSH , On host system, run this
command
ssh root@192.168.0.181
115
January 2011
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
LCD Application
LCD Application
4.
This application will work if you have selected Test Applications (SLS)
while configuring applications.
5.
Run this command on terminal, you can see output on LCD
# jpegview
System Level Solution
Using Embedded Linux with Nios II Processor User Guide
116
January 2011