• 沒有找到結果。

Booting DaVinci EVM from NAND Flash

N/A
N/A
Protected

Academic year: 2022

Share "Booting DaVinci EVM from NAND Flash"

Copied!
14
0
0

加載中.... (立即查看全文)

全文

(1)

Trademarks

SPRAAA0 – August 2006

Booting DaVinci EVM from NAND Flash

Juan Gonzales / Neal Frager

...

Digital Customer Application Team

ABSTRACT

Currently, the DaVinci™ EVM (DVEVM) supports three boot modes; the DVEVM can boot from NOR (default), NAND, or UART. NOR flash offers the advantages of one-byte random access and execute-in-place technology. NAND flash is not as easy to work with since it requires Flash Translation Layer software to make it accessible;

however, due to its lower price, speed, and longer life span, many costumers will want to design with NAND flash instead or NOR flash. This application note will describe the process to follow for booting the DaVinci DVEVM from NAND flash.

Contents

Trademarks

...

1

1 Pre-requisites

...

2

2 Instructions

...

2

List of Figures 1 TMDXEVM6446, DVEVM

...

3

2 Loading flashwritter_nand.out

...

4

3 Standard Input Dialog Box

...

4

4 Successful ubl_nand.bin Flashing Screen

...

5

5 Successful u-boot-567-nand.bin Flashing Screen

...

6

6 Serial Terminal Application Showing Successful u-boot is Flashed

...

7

7 Disabling ATA Driver Support

...

8

8 Selecting NAND Flash Device Drivers

...

9

9 Enabling NAND Support

...

10

10 Booting Linux Kernel via TFTP and Root Mounting File System from NFS

...

11

11 Writing Linux Kernel to NAND Flash

...

12

12 Reconfiguring u-boot to load Linux Kernel from NAND Flash

...

13

DaVinci, Code Composer Studio are trademarks of Texas Instruments.

MSWindows is a trademark of other.

(2)

1 Pre-requisites

2 Instructions Software Required:

• ubl_nand.bin (14 KB first stage boot-loader)

• u-boot-567-nand.bin (second stage boot loader)

• flashwriter_nand.out CCS program

• Code Composer Studio™ (CCS) version 3.2 or higher

• DaVinci EVM compatible emulator driver for CCS

• Serial terminal application such as HyperTerminal, TeraTerm for MSWindows™ and Minicom or C-Kermit for Linux.

Hardware Setup Required:

• Linux host workstation for building Linux kernel

• PC workstation for running CCS

• JTAG Emulator connected to DaVinci EVM

• Connect included RS232 serial cable from “UART0” port of the EVM to either PC workstation or Linux host workstation

Additional Requirements

• CCS 3.2 has been configured and tested with JTAG emulator that works with the DaVinci EVM.

• User is familiar with the Getting Started Guide (GSG), in particular with chapter 4.

These instructions are broken down into four main sections which build on each other. Some may chose to follow onlySection 1andSection 2, at which point they are booting out of NAND and can configure the NAND boot loader to load desired kernel via TFTP from host and NFS mount file system from host; this may provide adequate environment for development. Others may choose to complete all four sections and have not only their boot loader in NAND flash, but also their desired Linux kernel and file system; thereby having an environment which closely resembles their final product (no host system).

(3)

2.1 Configure DVEM Hardware for NAND Boot Mode

2.2 Use CCS to Load First and Second Stage NAND Boot Loaders

Instructions

Figure 1. TMDXEVM6446, DVEVM

1. Set J4 jumper (circled in yellow inFigure 1) to NAND

2. Set S3 red switch (circled in green inFigure 1) to 0000111110, where 1=on and 0 =off.

This section requires completion ofSection 2.1.

1. Open the ARM-side CCS debugger. From the menu, click on File->Load Program and open the flashwriter_nand.out image as inFigure 2:

(4)

Figure 2. Loading flashwritter_nand.out

2. Run flashwriter_nand.out by either clicking Debug->Run or hit the F5 key. A dialog box will show as in Figure 3. Enter the local Windows path to the first stage boot loader file, such as

“c:\temp\ubl_nand.bin”. It will now ask user for a second parameter, the offset; enter “1” and press return. It will now ask user for a third parameter, global erase; enter “y” and press return.

Figure 3. Standard Input Dialog Box

The process may take a few seconds; to verify,Figure 4shows a screen capture of what a successful screen log would look like:

(5)

Instructions

Figure 4. Successful ubl_nand.bin Flashing Screen

3. Load flashwriter_nand.out program again by selecting File->Reload Program from CCS menu and run it by either clicking Debug->Run or hit the F5 key. Again a dialog box will show as inFigure 3. Enter the local Windows path to the second stage boot loader file, such as “c:\temp\u-boot-567-nand.bin”. It will now ask user for a second parameter, the offset; enter “6” and press return. It will now ask user for a third parameter, global erase; enter “n” and press return. It will now ask user for a fourth parameter, application entry point; enter “0x81080000” and press return. It will now ask user for a fifth parameter, application load address; enter “0x81080000” and press return This process may take several minutes;

to verify,Figure 5shows a screen capture of what a successful log should look like:

(6)

Figure 5. Successful u-boot-567-nand.bin Flashing Screen

4. Verify that NAND u-boot is working properly: Power down DVEVM, disconnect JTAG emulator and make sure DVEVM is configured as inSection 2.1. Also, make sure terminal application settings are 115200 baud rate, 8-bit data, one stop bit, no parity and no flow control. Turn on DVEVM and user should be greeted with a u-boot prompt on serial terminal as inFigure 6.

(7)

Instructions

Figure 6. Serial Terminal Application Showing Successful u-boot is Flashed

At this point, user can configure u-boot parameters to boot a desired Linux kernel stored in host

workstation via TFTP and NFS mount file system on host work station. This configuration provides a good development environment as it allows one to quickly make and test changes to applications (working tree could be NFS mounted) and Linux kernel (can try different Linux kernel builds by simply copying desired one to TFTP directory on host). For information on how to configure u-boot parameters, see Booting Linux Kernel and Mounting a File System on DaVinci EVM document from DaVinci™ Ease of Use Series.

(8)

2.3 Build Linux Kernel with NAND Support

This section is independent ofSection 2.1andSection 2.2. However, this section assumes reader has gone through the Getting Started Guide (GSG) included in DaVinci EVM kit, in particular with chapter 4

“DVEVM Software Setup”; in this chapter, reader learned the process of building a Linux kernel. This section follows from that and assumes same directory structure defined in GSG.

1. On the host Linux workstation, go to the directory where the Linux support package (LSP) is found:

host $ cd /home/user/working/lps/ti-davinci 2. Launch the Linux kernel configuration utility

host $ make ARCH=arm CROSS_COMPILE=arm_v5t_le- xconfig

3. Under "Device Drivers", go to "ATA/ATAPI/MFM/RLL Support" and uncheck the main box. This will disable the ATA drivers for the HDD, so that NAND file system will be included instead. Refer to Figure 7.

Figure 7. Disabling ATA Driver Support

4. Under Memory Technology Devices (MTD), go to the NAND Flash Device Drivers option. See Figure 8.

(9)

Instructions

Figure 8. Selecting NAND Flash Device Drivers

5. Make sure that the NAND Flash Device on DaVinci SoC option has a check and not a dot, and check the Bootloader upgrade on NAND Device as well. SeeFigure 9.

(10)

2.4 Use the Linux Kernel with NAND Support to Write the Desired Linux Kernel to NAND Figure 9. Enabling NAND Support

6. If not already logged in as “user”, log in as “user” prior to building Linux Kernel in next step (similar to steps in GSG).

host $ su user

7. Build the Linux kernel with this command:

host $ make ARCH=arm CROSS_COMPILE=arm_v5t_le- uImage

At this point, user has a Linux kernel that has NAND flash driver support instead of ATA HDD support. In theSection 2.4, the reader will see how to use this Linux Kernel to write any desired Linux Kernel image to NAND flash.

Flash

This section requires completion ofSection 2.1,Section 2.2, andSection 2.3. Keep in mind that these sections will refer to two Linux kernels, the one with NAND flash support produced inSection 2.3and a second one that the user will burn into NAND flash. These two Linux kernels could be the same, but they could also be different (e.g. say user wants HDD support on DVEVM but want to store kernel on NAND flash instead of default NOR flash, perhaps because they envision their end product not having any NOR flash). To this end, this section will use the Linux kernel produced inSection 2.3and the original kernel shipped with DVEVM which has HDD support. Since user will be copying over these Linux Kernels, it is suggested that a copy of each be stored in a safe place.

1. Logged in as user on host machine, place the Linux kernel to be burned to NAND flash under file system that will be NFS mounted to target DVEVM.

host $ cp /tftpboot/uImage ~/workdir/filesys/opt

2. Logged in as “user” on host machine, copy Linux kernel image with NAND support to TFTP directory and change permissions to image file.

host $ cp ~/workdir/lsp/ti_davinci/arch/arm/boot/uImage /tftpboot host $ chmod a+r /tftpboot/uImage

3. In this step, the user will configure u-boot parameters such that DVEVM uses TFTP to load Linux

(11)

Instructions Booting Linux Kernel and Mounting a File System on DaVinci EVM document from DaVinci™

Ease of Use Series but the short version will be provided here. Note that all the remaining steps in this section will take place on the terminal applications window as opposed to the host workstation. With terminal application running, power on DVEVM and press any key on your terminal window to stop u-boot’s autoboot sequence. At the u-boot prompt, type the following commands. SeeFigure 10.

Note: Replace00:0E:99:02:51:F4with MAC address found on your DVEVM board and all instances of192.168.1.103with the IP address on your host workstation

EVM # setenv ethaddr 00:0E:99:02:51:F4 EVM # setenv serverip 192.168.1.103 EVM # setenv ipaddr dhcp

EVM # setenv bootfile uImage EVM # setenv bootcmd ‘dhcp;bootm’

EVM # setenv bootargs ‘console=ttyS0,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=192.168.1.103:/home/user/workdir/filesys,nolock mem=120M’

EVM # saveenv

(12)

4. Cycle power on DVEVM, and log in as root on your terminal window. At this point, DVEVM should be running the Linux Kernel with NAND support from the host workstation’s /tftpboot directory. User can verify this by invoking the following command on the terminal application window and making sure this device is found. SeeFigure 11.

$ ls /dev/mtd0

5. Format NAND flash device. SeeFigure 11.

$ ftl_format /dev/mtd0

6. Go to directory where Linux kernel to be burned to NAND flash is stored using terminal application window. SeeFigure 11.

$ cd /opt

7. Write Linux Kernel image to NAND flash. SeeFigure 11.

$ nandwrite -p -s 16384 /dev/mtd0 uImage

Note: Offset 0x4000 (16384) is block 2 of your NAND flash /dev/mtd0 memory.

Figure 11. Writing Linux Kernel to NAND Flash

8. Cycle power to your DVEVM and press any key to stop u-boot’s auto-boot sequence. In this step, we will set u-boot environment variables such that u-boot knows where to find Linux Kernel image in NAND flash as well as configure DVEVM to load this Linux kernel (as opposed to the one via TFTP) and use file system in DVEVM HDD (as opposed to NFS mounting the file system from a host workstation). This configuration is what will most likely be encountered in final product. At the u-boot prompt, type the following commands. SeeFigure 12.

EVM # setenv bootcmd 'nboot 0x80200000 0 104000'

EVM # setenv bootargs console=ttyS0,115200n8 noinitrd ip=dhcp root=/dev/hda1 mem=120M EVM # setenv autostart yes

EVM # saveenv

(13)

Instructions

Figure 12. Reconfiguring u-boot to load Linux Kernel from NAND Flash

9. Cycle power to your DVEVM and user should now have a boot loader (u-boot) and Linux kernel stored in NAND flash.

(14)

enhancements, improvements, and other changes to its products and services at any time and to discontinue any product or service without notice. Customers should obtain the latest relevant information before placing orders and should verify that such information is current and complete. All products are sold subject to TI’s terms and conditions of sale supplied at the time of order acknowledgment.

TI warrants performance of its hardware products to the specifications applicable at the time of sale in accordance with TI’s standard warranty. Testing and other quality control techniques are used to the extent TI deems necessary to support this warranty. Except where mandated by government requirements, testing of all parameters of each product is not necessarily performed.

TI assumes no liability for applications assistance or customer product design. Customers are responsible for their products and applications using TI components. To minimize the risks associated with customer products and applications, customers should provide adequate design and operating safeguards.

TI does not warrant or represent that any license, either express or implied, is granted under any TI patent right, copyright, mask work right, or other TI intellectual property right relating to any combination, machine, or process in which TI products or services are used. Information published by TI regarding third-party products or services does not constitute a license from TI to use such products or services or a warranty or endorsement thereof.

Use of such information may require a license from a third party under the patents or other intellectual property of the third party, or a license from TI under the patents or other intellectual property of TI.

Reproduction of information in TI data books or data sheets is permissible only if reproduction is without alteration and is accompanied by all associated warranties, conditions, limitations, and notices. Reproduction of this information with alteration is an unfair and deceptive business practice. TI is not responsible or liable for such altered documentation.

Resale of TI products or services with statements different from or beyond the parameters stated by TI for that product or service voids all express and any implied warranties for the associated TI product or service and is an unfair and deceptive business practice. TI is not responsible or liable for any such statements.

Following are URLs where you can obtain information on other Texas Instruments products and application solutions:

Products Applications

Amplifiers amplifier.ti.com Audio www.ti.com/audio

Data Converters dataconverter.ti.com Automotive www.ti.com/automotive

DSP dsp.ti.com Broadband www.ti.com/broadband

Interface interface.ti.com Digital Control www.ti.com/digitalcontrol

Logic logic.ti.com Military www.ti.com/military

Power Mgmt power.ti.com Optical Networking www.ti.com/opticalnetwork Microcontrollers microcontroller.ti.com Security www.ti.com/security Low Power Wireless www.ti.com/lpw Telephony www.ti.com/telephony

Video & Imaging www.ti.com/video

Wireless www.ti.com/wireless

Mailing Address: Texas Instruments

Post Office Box 655303 Dallas, Texas 75265

Copyright 2006, Texas Instruments Incorporated

參考文獻

相關文件

(Lecture 203) In this problem, we are going to apply the kernel trick to the perceptron learning algorithm introduced in Machine Learning Foundations. We can then maintain the

as long as every kernel value is composed of two data vectors and stored in a kernel matrix, our proposed method can reverse those kernel values back to the original data.. In

In this paper, we have proposed: (1) defining the FOOM schema for modeling the FOOM requirements specifica- tions in XML format, as well as incorporating the notion of stereotypes

For comparison purposes we depicted in Figure 1 and Figure 2 a kernel smoothing of the data after kink detection and estimation (plain curve) as well as a kernel smoothing of the

From Remark 3.4, there exists a minimum kernel scale σ min , such that the correspondence produced by the HD model with the kernel scale σ ≥ σ min is the same as the correspondence

To this end, we introduce a new discrepancy measure for assessing the dimensionality assumptions applicable to multidimensional (as well as unidimensional) models in the context of

To achieve inequalities for the aforementioned SOC weighted means, we need the following technical lemma [10, Lemma 4], which is indeed a symmetric cone version of

從上述看來 Register-based 的 code size 會大於 Stack-based,因此需要花 費較多時間從 memory fetch instruction。[1]的結果顯示,同一段 source code 分別轉換為 stack-based instruction