Running RAM RedBoot to Move Flash from Outbound Direct Addressing Window

Similar documents
Intel I/O Processor Chipset with Intel XScale Microarchitecture

Recommended JTAG Circuitry for Debug with Intel Xscale Microarchitecture

Using the Intel IQ80310 Ethernet Connection Under RedBoot

ECC Handling Issues on Intel XScale I/O Processors

Intel 810 Embedded Client Reference Design DC/DC ATX Power Supply

Intel IXP400 Software: Integrating STMicroelectronics* ADSL MTK20170* Chipset Firmware

Intel IXP42X Product Line of Network Processors and IXC1100 Control Plane Processor PCI 16-Bit Read Implementation

Intel IXP42X Product Line of Network Processors and IXC1100 Control Plane Processor: Boot-Up Options

Third Party Hardware TDM Bus Administration

Enabling DDR2 16-Bit Mode on Intel IXP43X Product Line of Network Processors

Intel PCI-X to Serial ATA Controller

Intel I/O Processor

Intel IXP42X Product Line of Network Processors and IXC1100 Control Plane Processor: Flash Programming

Intel I/O Processor Software Conversion to Intel I/O Processor

RAID on Motherboard (ROMB) Considerations Using Intel I/O Processor

Intel 6300ESB I/O Controller Hub (ICH)

Intel NetStructure IPT Series on Windows

Techniques for Lowering Power Consumption in Design Utilizing the Intel EP80579 Integrated Processor Product Line

Continuous Speech Processing API for Linux and Windows Operating Systems

Intel Dialogic Global Call Protocols Version 4.1 for Linux and Windows

Intel C++ Compiler Documentation

Getting Compiler Advice from the Optimization Reports

Intel Parallel Amplifier Sample Code Guide

Open FCoE for ESX*-based Intel Ethernet Server X520 Family Adapters

Continuous Speech Processing API for Host Media Processing

How to Configure Intel X520 Ethernet Server Adapter Based Virtual Functions on SuSE*Enterprise Linux Server* using Xen*

Intel IT Director 1.7 Release Notes

Intel MPI Library for Windows* OS

Intel(R) Threading Building Blocks

Intel NetStructure SS7 Boards

Introduction to Intel Fortran Compiler Documentation. Document Number: US

Intel(R) Threading Building Blocks

Native Configuration Manager API for Windows Operating Systems

Using the Intel VTune Amplifier 2013 on Embedded Platforms

Intel Platform Controller Hub EG20T

Intel Platform Controller Hub EG20T

Performance Profiling Techniques on Intel XScale Microarchitecture Processors

Product Change Notification

Product Change Notification

Product Change Notification

GUID Partition Table (GPT)

Product Change Notification

Product Change Notification

Product Change Notification

Migration Guide: Numonyx StrataFlash Embedded Memory (P30) to Numonyx StrataFlash Embedded Memory (P33)

GAP Guided Auto Parallelism A Tool Providing Vectorization Guidance

Using Intel Inspector XE 2011 with Fortran Applications

Product Change Notification

Intel Cache Acceleration Software for Windows* Workstation

Product Change Notification

Product Change Notification

Boot Agent Application Notes for BIOS Engineers

Product Change Notification

Product Change Notification

Intel EP80579 Software Drivers for Embedded Applications

Embedded Intel486 SX Processor

Product Change Notification

Global Call API for Host Media Processing on Linux

Intel Platform Controller Hub EG20T

Intel PXA27x Processor Family

Product Change Notification

Installation Guide and Release Notes

Continuous Speech Processing API for Linux and Windows Operating Systems

Product Change Notification

Intel IXP400 Software: VLAN and QoS Application Version 1.0

Gateworks_Avila/Cambria_Installation. Please note: The details in these instructions apply specifically to the GW board.

Intel Desktop Board DZ68DB

Parallel Programming Features in the Fortran Standard. Steve Lionel 12/4/2012

Intel Desktop Board DG31PR

Product Change Notification

Intel Desktop Board D945GCCR

Product Change Notification

Intel 945(GM/GME)/915(GM/GME)/ 855(GM/GME)/852(GM/GME) Chipsets VGA Port Always Enabled Hardware Workaround

Product Change Notification

Intel Desktop Board DG41CN

Intel 848P Chipset. Specification Update. Intel 82848P Memory Controller Hub (MCH) August 2003

Intel Desktop Board DH55TC

Intel Thread Checker 3.1 for Windows* Release Notes

IP Media Gateway (IPML)

How to Create a.cibd/.cce File from Mentor Xpedition for HLDRC

MayLoon User Manual. Copyright 2013 Intel Corporation. Document Number: xxxxxx-xxxus. World Wide Web:

Software Evaluation Guide for ImTOO* YouTube* to ipod* Converter Downloading YouTube videos to your ipod

Intel IXP42X Product Line and IXC1100 Control Plane Processor: Using the Intel LXT973 Ethernet Transceiver

Product Change Notification

Intel Desktop Board D945GCLF2

Upgrading Intel Server Board Set SE8500HW4 to Support Intel Xeon Processors 7000 Sequence

Intel Server Board S2600CW2S

Product Change Notification

Board Management API for Windows and Linux Operating Systems

This user manual describes the VHDL behavioral model for NANDxxxxxBxx flash memory devices. Organization of the VHDL model delivery package

Product Change Notification

LED Manager for Intel NUC

VTune(TM) Performance Analyzer for Linux

Intel Integrated Performance Primitives for Intel Architecture. Using Intel Integrated Performance Primitives in C++ Applications

Intel System Event Log (SEL) Viewer Utility. User Guide SELViewer Version 10.0 /11.0 February 2012 Document number: G

Intel Parallel Studio XE 2015 Composer Edition for Linux* Installation Guide and Release Notes

Global Call SS7. Technology Guide. November

Host Media Processing Conferencing

How to Create a.cibd File from Mentor Xpedition for HLDRC

Installation and Configuration Guide

Transcription:

Running RAM RedBoot to Move Flash from Outbound Direct Addressing Window Application Note January 2002 Document Number: 273660-001

Information in this document is provided in connection with Intel products. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted by this document. Except as provided in Intel's Terms and Conditions of Sale for such products, Intel assumes no liability whatsoever, and Intel disclaims any express or implied warranty, relating to sale and/or use of Intel products including liability or warranties relating to fitness for a particular purpose, merchantability, or infringement of any patent, copyright or other intellectual property right. Intel products are not intended for use in medical, life saving, or life sustaining applications. Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked reserved or undefined. Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order. Copies of documents which have an ordering number and are referenced in this document, or other Intel literature may be obtained by calling 1-800-548-4725 or by visiting Intel's website at http://www.intel.com. Copyright Intel Corporation, 2002 AlertVIEW, i960, AnyPoint, AppChoice, BoardWatch, BunnyPeople, CablePort, Celeron, Chips, Commerce Cart, CT Connect, CT Media, Dialogic, DM3, EtherExpress, ETOX, FlashFile, GatherRound, i386, i486, icat, icomp, Insight960, InstantIP, Intel, Intel logo, Intel386, Intel486, Intel740, IntelDX2, IntelDX4, IntelSX2, Intel ChatPad, Intel Create&Share, Intel Dot.Station, Intel GigaBlade, Intel InBusiness, Intel Inside, Intel Inside logo, Intel NetBurst, Intel NetStructure, Intel Play, Intel Play logo, Intel Pocket Concert, Intel SingleDriver, Intel SpeedStep, Intel StrataFlash, Intel TeamStation, Intel WebOutfitter, Intel Xeon, Intel XScale, Itanium, JobAnalyst, LANDesk, LanRover, MCS, MMX, MMX logo, NetPort, NetportExpress, Optimizer logo, OverDrive, Paragon, PC Dads, PC Parents, Pentium, Pentium II Xeon, Pentium III Xeon, Performance at Your Command, ProShare, RemoteExpress, Screamline, Shiva, SmartDie, Solutions960, Sound Mark, StorageExpress, The Computer Inside, The Journey Inside, This Way In, TokenExpress, Trillium, Vivonic, and VTune are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. *Other names and brands may be claimed as the property of others. 2 Application Note

Contents Contents 1.0 Introduction...5 1.1 Issue Statement...5 2.0 Solution...5 3.0...6 4.0 Conclusion...15 5.0 Related Documents...15 Figures 1 Sequential Changes to Address Space...6 Tables No Tables Used At This Time Application Note 3

Contents Revision History Date Revision Description January 2002 001 4 Application Note

Introduction 1.0 Introduction Intel Corporation has had several inquiries into how to move Flash Bank 1, so that the ATU Outbound Direct Addressing Window can be used on the Intel 80310 I/O Processor Chipset with Intel XScale microarchitecture 1 (80310). This application note offers a solution using the RedHat* RedBoot* monitor. The technique presented here can be generalized to resolve other configuration conflicts. Further information on RedBoot can be found at: http://www.redhat.com/software/tools/gnupro/intel_xscale.html and further Intel XScale IOP information can be found at: http://developer.intel.com/ 1.1 Issue Statement The Intel 80200 I/O Processor based on Intel XScale microarchitecture (80200) requires that the initialization code be located at address 0x0000 0000. This initialization code resides in Flash Bank 1 which is 8 MB and overlaps the ATU Outbound Direct Addressing Window. After reset, this window is disabled so that there is no address conflict. When the Flash Bank stays where it is in the address space, the window cannot be used. 2.0 Solution To use the ATU Outbound Direct Addressing Window, Flash Bank 1 must be moved. Since the initialization code is only required at power up and reset, the Flash Bank can be moved within the address space by changing the base address register. When the monitor, in this case RedBoot, is also resident to the Flash, then it must be considered before moving the Flash. There are two ways to accomplish this: One is to have the boot board support package (BSP) relocate the Flash Base Address. The other is to run a version of RedBoot that executes out of SDRAM. The first solution requires a modified version of RedBoot which is not currently available, but the second solution is available now. The RAM version of RedBoot depends on the boot portion of the ROM version BSP to initialize SDRAM. Once SDRAM is initialized, the RAM version of RedBoot can be loaded and started. Because this version of RedBoot does not depend on Flash, the Flash Base Address can be relocated by the application code. Furthermore, the RAM version of RedBoot can be loaded into Flash and automatically loaded into SDRAM by the ROM version, when the board is first booted. 1. ARM* architecture compliant. Application Note 5

3.0 The following steps are described in detail in chapter 4 and chapter 5 of the RedBoot User s Guide. 1. The ROM version of RedBoot must reside at address 0x0000 0000. When it is not loaded in the Flash, then the Flash Recovery Utility (FRU) must be used to initially write to the Flash. The FRU manual and software are located at http://developer.intel.com/design/iio/docs/ dvtl_iq80310.htm. Use the prebuilt file redboot.bin (the binary version is required by FRU) located at C:\redhat\redboot-xscale-010413\redboot-bin\cyclone-rom\install\bin (The path assumes a default installation of GNUPro.). Once the ROM version of RedBoot is in the Flash, reset the platform to launch RedBoot. Figure 1 illustrates the sequential changes to the address space. The base address of RAM RedBoot in the Flash can vary depending on locked address blocks. Figure 1. Sequential Changes to Address Space At Power Up RedBoot* in RAM RAM RedBoot Copied to Flash A006 0000H A002 0000H RAM RedBoot A006 0000H A002 0000H RAM RedBoot 0008 0000H RAM RedBoot 0004 0000H 0004 0000H 0004 0000H ROMRedBoot ROMRedBoot ROMRedBoot 0000 0000H 0000 0000H 0000 0000H 6 Application Note

2. Load a RAM version of RedBoot into SDRAM. Use the prebuilt file redboot.srec located at C:\redhat\redboot-xscale-010413\redboot-bin\cyclone-ram\install\bin. A reference for common RedBoot commands is located in the GNUPro Toolkit, Optimized for Intel XScale Microarchitecture, Getting Started Guide, starting on page 128, and example code for updating RedBoot is found in chapter 4 of the RedBoot User s Guide. The following example was copied from there. Start HyperTerminal with a serial connection to the evaluation board. Then, reset the evaluation board. HyperTerminal displays the following: Flash configuration checksum error or invalid key Can't get BOOTP info - network disabled! RedBoot(tm) bootstrap and debug environment, version R1.24 - built 16:53:49, Sep 13 2001 Platform: IQ80310 (XScale) Copyright (C) 2000, 2001, Red Hat, Inc. RAM: 0xa0000000-0xa2000000, 0xa001b0a8-0xa1fdf000 available Flash: 0x00000000-0x00800000, 64 blocks of 0x00020000 bytes each. RedBoot> If you get a check sum error, you need to use the fconfig command and change any value thus causing the check sum to be corrected. For example: RedBoot> fconfig Run script at boot: false Use BOOTP for network configuration: true false Local IP address: 0.0.0.0 10.2.52.254 Default server IP address: 0.0.0.0 GDB connection port: 9000 Network debug at boot time: false Update RedBoot non-volatile configuration - are you sure (y/n)? y Entering y saves the changes.... Unlock from 0x007c0000-0x007e0000:.... Erase from 0x007c0000-0x007e0000:.... Program from 0xa0015030-0xa0016030 at 0x007df000:.... Lock from 0x007c0000-0x007e0000:. RedBoot> fis init -f About to initialize [format] Flash image system - are you sure (y/n)? y *** Initialize Flash Image System... Erase from 0x00080000-0x007df000:......... Unlock from 0x007e0000-0x00800000:.... Erase from 0x007e0000-0x00800000:.... Program from 0xa1fdf000-0xa1fdf400 at 0x007e0000:.... Lock from 0x007e0000-0x00800000:. Application Note 7

Use the RedBoot fis list command to list the images that are presently in the Flash. The command displays the name, Flash address, memory address, length, and entry point. When the display looks like the following, then the fis init commandmustbeusedfirsttosetupthe Flash. RedBoot> fis list Name Flash addr Mem addr Length Entry point The following example shows what to expect: RedBoot> fis free 0x00040000.. 0x00800000 The fis init f command should only be used once after the initial Flash image is loaded into the Flash using FRU. RedBoot> fis list Name Flash addr Mem addr Length Entry point RedBoot 0x00000000 0x00000000 0x00040000 0x00000000 RedBoot[backup] 0x00040000 0x00040000 0x00040000 0x00000000 RedBoot config 0x007DF000 0x007DF000 0x00001000 0x00000000 FIS directory 0x007E0000 0x007E0000 0x00020000 0x00000000 RedBoot> fis free 0x00040000.. 0x007E0000 RedBoot> dump -b 0x0 0x00000000: 18F0 9FE5 18F0 9FE5 18F0 9FE5 18F0 9FE5... 0x00000010: 18F0 9FE5 0000 0000 18F0 9FE5 18F0 9FE5... RedBoot> dump -b 0x40000 0x00040000: FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF... 0x00040010: FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF... RedBoot> dump -b 0x60000 0x00060000: FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF... 0x00060010: FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF... RedBoot> dump -b 0xa0020000 0xA0020000: 0000 0000 0000 0000 0000 0000 0000 0000... 0xA0020010: 0000 0000 0000 0000 0000 0000 0000 0000... RedBoot> load -m ymodem 8 Application Note

After executing the RedBoot load command, on the HyperTerminal menu, select Transfer, Send File, Browse, and go find the file. Use the RAM version of RedBoot, redboot.srec, located at C:\redhat\redboot-xscale-010413\redboot-bin\cyclone-ram\install\bin. The.srec file is required since Ymodem is being used. For protocol, select Ymodem. The load command times out, so this step needs to be done quickly. The screen looks something like the following: RedBoot> load -m ymodem CCxyzModem - CRC mode, 2(SOH)/445(STX)/0(CAN) packets, 5 retries RedBoot> dump -b 0x40000 0x00040000: FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF... 0x00040010: FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF... RedBoot> dump -b 0x60000 0x00060000: FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF... 0x00060010: FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF... RedBoot> dump -b 0xa0020000 0xA0020000: 18F0 9FE5 18F0 9FE5 18F0 9FE5 18F0 9FE5... 0xA0020010: 18F0 9FE5 0000 0000 18F0 9FE5 18F0 9FE5... Note: The RedBoot dump command now shows that addresses 0x0000 0000 and 0xA002 0000 contain the same hexadecimal values. If RedBoot did not load into RAM, 0xA002 0000 is filled with zeros. RedBoot> fis free 0x00040000.. 0x007E0000 Address 0x00040000 is where RamRedBoot goes. Application Note 9

3. Copy the RAM version of RedBoot into Flash, be careful not to overwrite the ROM version. Example code for updating RedBoot is found in chapter 4 of the RedBoot User s Guide. The following example was copied from there. Chapter 5 explains the option flags f b r and l. RedBoot> fis create RamRedBoot -b 0xa0020000 -l 0x40000 -r 0xa0020000... Erase from 0x00040000-0x00080000:..... Program from 0xa0020000-0xa0060000 at 0x00040000:..... Unlock from 0x007e0000-0x00800000:.... Erase from 0x007e0000-0x00800000:.... Program from 0xa1fdf000-0xa1fff000 at 0x007e0000:.... Lock from 0x007e0000-0x00800000:. RedBoot> dump -b 0x40000 0x00040000: 18F0 9FE5 18F0 9FE5 18F0 9FE5 18F0 9FE5... 0x00040010: 18F0 9FE5 0000 0000 18F0 9FE5 18F0 9FE5... RedBoot> dump -b 0x60000 0x00060000: 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D ---------------- 0x00060010: 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D 2D2D ---------------- Note: Address 0x0004 0000 now has the same hexadecimal values as addresses 0x0000 0000 and 0xA002 0000. RedBoot> fis list Name Flash addr Mem addr Length Entry point RedBoot 0x00000000 0x00000000 0x00040000 0x00000000 RedBoot[backup] 0x00040000 0x00040000 0x00040000 0x00000000 RedBoot config 0x007DF000 0x007DF000 0x00001000 0x00000000 FIS directory 0x007E0000 0x007E0000 0x00020000 0x00000000 RamRedBoot 0x00040000 0xA0020000 0x00040000 0xA0020040 RedBoot> fis free 0x00080000.. 0x007E0000 RamRedBoot is now Flashed at address 0x00040000. 10 Application Note

4. Use an fconfig to program a script which automates loading and starting RAM RedBoot when the board is reset. The fconfig command is explained starting on page 133 in the GNUPro Toolkit, Optimized for Intel XScale Microarchitecture, Getting Started Guide. RedBoot> fconfig Run script at boot: false true Boot script: Enter script, terminate with empty line >> {ROM}fis load RamRedBoot >> {ROM}go >> {RAM}help >> version >> Boot script timeout (1000ms resolution): 0 10 Allow some time for boot script timeout. If there are problems with the script, this allows time to hit control-c to skip the script. Then enter into fconfig againandfixit. Use BOOTP for network configuration: false Local IP address: 10.2.52.254 Default server IP address: 0.0.0.0 GDB connection port: 9000 Network debug at boot time: false Update RedBoot non-volatile configuration - are you sure (y/n)? y Entering y saves the changes.... Unlock from 0x007c0000-0x007e0000:.... Erase from 0x007c0000-0x007e0000:.... Program from 0xa0015030-0xa0016030 at 0x007df000:.... Lock from 0x007c0000-0x007e0000:.... Unlock from 0x007c0000-0x007e0000:.... Erase from 0x007c0000-0x007e0000:.... Program from 0xa0015030-0xa0016030 at 0x007df000:.... Lock from 0x007c0000-0x007e0000:. RedBoot> reset... Resetting. Ethernet eth0: MAC address 00:80:4d:46:03:99 IP: 10.2.52.254, Default server: 0.0.0.0 RedBoot(tm) bootstrap and debug environment, version R1.24 - built 16:53:49, Sep 13 2001 Platform: IQ80310 (XScale) Copyright (C) 2000, 2001, Red Hat, Inc. RAM: 0xa0000000-0xa2000000, 0xa001b0a8-0xa1fdf000 available Flash: 0x00000000-0x00800000, 64 blocks of 0x00020000 bytes each. == Executing boot script in 10.000 seconds - enter ^C to abort RedBoot> fis load RamRedBoot RedBoot> go Application Note 11

Ethernet eth0: MAC address 00:80:4d:46:03:99 IP: 10.2.52.254, Default server: 0.0.0.0 RedBoot(tm) bootstrap and debug environment, version R1.24 - built 16:36:38, Sep 13 2001 Platform: IQ80310 (XScale) Copyright (C) 2000, 2001, Red Hat, Inc. RAM: 0xa0000000-0xa2000000, 0xa0059028-0xa1fdf000 available Flash: 0x00000000-0x00800000, 64 blocks of 0x00020000 bytes each. == Executing boot script in 10.000 seconds - enter ^C to abort RedBoot> help Manage aliases kept in Flash memory alias name [value] Manage machine caches cache [ON OFF] Display/switch console channel channel [-1 <channel number>] Compute a 32bit checksum [POSIX algorithm] for a range of memory cksum -b <location> -l <length> Display (hex dump) a range of memory dump -b <location> [-l <length>] Manage Flash images fis {cmds} Manage configuration kept in Flash memory fconfig [-i] [-l] [-n] [-f] nickname [value] Execute code at a location go [-w <timeout>] [entry] Run board diagnostics diag Help about help? help [<topic>] Load a file load [-r] [-v] [-h <host>] [-m {TFTP xyzmodem}] [-b <base_address>] <file_name> Network connectivity test ping [-v] [-n <count>] [-l <length>] [-t <timeout>] [-r <rate>] [-i <IP_addr>] -h <IP_addr> Reset the system reset Display RedBoot version information version RedBoot> version RedBoot(tm) bootstrap and debug environment, version R1.24 - built 16:36:38, Sep 13 2001 Platform: IQ80310 (XScale) Copyright (C) 2000, 2001, Red Hat, Inc. 12 Application Note

RAM: 0xa0000000-0xa2000000, 0xa0059028-0xa1fdf000 available Flash: 0x00000000-0x00800000, 64 blocks of 0x00020000 bytes each. RedBoot> The August 28, 2001 version or later of RedBoot recognizes the {RAM} and {ROM} modifiers. In older versions of RedBoot, the script goes into an infinite loop, because the RAM version of RedBoot also runs the script. The script is stored in the same Flash location for both the RAM and ROM versions of RedBoot. The modifiers are the only way that the ROM and RAM versions of RedBoot can determine which commands in the script should run. When the modifier does not precede a command, then both versions execute the command. The problem is that when the RAM version sees the load and go commands, then it continuously loads itself and goes. Check the built time stamp to see that it is different. A different time stamp indicates that the new build was successful and that RedBoot is running out of SDRAM. The RedBoot version command is used to display this information. In this example, the ROM RedBoot build time is 16:53:49, and the RAM RedBoot build time is 16:36:38. RedBoot(tm) bootstrap and debug environment, version R1.24 - built 16:53:49, Sep 13 2001 RedBoot(tm) bootstrap and debug environment, version R1.24 - built 16:36:38, Sep 13 2001 Also, the fconfig script can be changed to test for proper functionality. The above script copies RedBoot into SDRAM and launches it. Then the help and version commands run from there. When the script is changed to {ROM}help and {ROM}version, these commands would not run when the RAM version of RedBoot is running. RedBoot> fis list Name Flash addr Mem addr Length Entry point RedBoot 0x00000000 0x00000000 0x00040000 0x00000000 RedBoot[backup] 0x00040000 0x00040000 0x00040000 0x00000000 RedBoot config 0x007DF000 0x007DF000 0x00001000 0x00000000 FIS directory 0x007E0000 0x007E0000 0x00020000 0x00000000 RamRedBoot 0x00060000 0xA0020000 0x00040000 0xA0020040 RedBoot> dump -b 0xa0020000 0xA0020000: 18F0 9FE5 18F0 9FE5 18F0 9FE5 18F0 9FE5... 0xA0020010: 18F0 9FE5 0000 0000 18F0 9FE5 18F0 9FE5... RedBoot> dump -b 0x0 0x00000000: 18F0 9FE5 18F0 9FE5 18F0 9FE5 18F0 9FE5... 0x00000010: 18F0 9FE5 0000 0000 18F0 9FE5 18F0 9FE5... RedBoot> dump -b 0x40000 0x00060000: 18F0 9FE5 18F0 9FE5 18F0 9FE5 18F0 9FE5... 0x00060010: 18F0 9FE5 0000 0000 18F0 9FE5 18F0 9FE5... RedBoot> Application Note 13

5. The customer application code can now move the Flash Bank, by changing the address in the FEBR1 register and then enabling the ATU Outbound Direct Addressing Window, by changing bit 8 in the ATUCR register. Example code follows: In the appropriate header file: #define USER_FLASHBASE 0xD0000000 FEBR1_ADDR is defined in hal_iq80310.h as: #define FEBR1_ADDR 0x00001550 Insert in the users application code: *(volatile unsigned int *)FEBR1_ADDR = USER_FLASHBASE; address */ /* Move Flash Bank 1 base Note: There is no address conflict with the peripheral memory-mapped registers that are adjacent to the ATU Outbound Direct Addressing Window in the address space. The address overlap between the peripheral memory-mapped registers and Flash Bank 1 is resolved in the silicon by a prioritizing system described on page 3-33 in the Intel 80312 I/O Companion Chip Developer s Manual. At future resets, the Flash Bank 1 Base Address defaults to 0x0000 0000, so the ROM version of RedBoot runs, the fconfig script copies the RAM version of RedBoot into SDRAM from Flash and then runs it from there. The steps presented here are considered the quick fix to this problem. A better fix would be to modify the board support package and to build a version of RedBoot that accomplishes the same things in a more efficient manner. 14 Application Note

Conclusion 4.0 Conclusion The above steps have been tested with RedBoot, and the resulting HyperTerminal text has been included for explicit illustration of the techniques. These techniques have been applied to a specific issue and a particular software application, but the techniques demonstrated above can be used with other hardware and software applications and can be used to resolve a variety of address conflicts. 5.0 Related Documents GNUPro Toolkit, Optimized for Intel XScale Microarchitecture, Getting Started Guide.This manual comes in the Intel 80310 Evaluation Board Kit. RedBoot User s Guide: http://sources.redhat.com/ecos/docs-latest/redboot/redboot.html FRU manual and software: http://developer.intel.com/design/iio/docs/dvtl_iq80310.htm Application Note 15

Related Documents This page intentionally left blank. 16 Application Note