📄 nano.html
字号:
linking and initialization against memory layout files called "...post..."rather than "...rom..." or "...ram..." in the <TTCLASS="FILENAME">include/pkgconf</TT> directory. Specifically:<PCLASS="LITERALLAYOUT"><TTCLASS="FILENAME">include/pkgconf/mlt_arm_sa11x0_nano_post.h</TT><br><TTCLASS="FILENAME">include/pkgconf/mlt_arm_sa11x0_nano_post.ldi</TT><br><TTCLASS="FILENAME">include/pkgconf/mlt_arm_sa11x0_nano_post.mlt</TT></P>It is these you should edit if you wish to move the execution addressfrom 0x50040000 in the POST configuration. Startup mode naturallyremains ROM in this configuration.</P><P>Because the nanoEngine contains immutable boot firmware at the startof flash, RedBoot for this target is configured to reserve that area in theFlash Image System, and to create by default an entry for the POSTmode RedBoot. <TABLEBORDER="5"BGCOLOR="#E0E0F0"WIDTH="70%"><TR><TD><PRECLASS="SCREEN">RedBoot> <TTCLASS="USERINPUT"><B>fis list</B></TT>Name FLASH addr Mem addr Length Entry point(reserved) 0x50000000 0x50000000 0x00040000 0x00000000RedBoot[post] 0x50040000 0x00100000 0x00020000 0x50040040RedBoot config 0x503E0000 0x503E0000 0x00010000 0x00000000FIS directory 0x503F0000 0x503F0000 0x00010000 0x00000000RedBoot></PRE></TD></TR></TABLE> The entry "(reserved)" ensures that the FIS cannot attemptto overwrite the BSE firmware, thus ensuring that the board remains bootableand recoverable even after installing a broken RedBoot image.</P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="AEN5877">Special RedBoot Commands</H2><P>The nanoEngine/commEngine has one or two Intel i82559 Ethernet controllersinstalled, but these have no associated serial EEPROM in which to record theirEthernet Station Address (ESA, or MAC address). The BSE firmware records anESA for the device it uses, but this information is not available to RedBoot;we cannot share it.</P><P>To keep the ESAs for the two ethernet interfaces, two new items of RedBootconfiguration data are introduced. You can list them with the RedBoot command <BCLASS="COMMAND">fconfig -l</B> thus: <TABLEBORDER="5"BGCOLOR="#E0E0F0"WIDTH="70%"><TR><TD><PRECLASS="SCREEN">RedBoot> <TTCLASS="USERINPUT"><B>fconfig -l</B></TT>Run script at boot: falseUse BOOTP for network configuration: falseLocal IP address: 10.16.19.91Default server IP address: 10.16.19.66Network hardware address [MAC] for eth0: 0x00:0xB5:0xE0:0xB5:0xE0:0x99Network hardware address [MAC] for eth1: 0x00:0xB5:0xE0:0xB5:0xE0:0x9AGDB connection port: 9000Network debug at boot time: falseRedBoot></PRE></TD></TR></TABLE>You should set them before running RedBoot or eCos applications withthe board connected to a network. The <BCLASS="COMMAND">fconfig </B>command can be used as for any configuration data item; the entire ESAis entered in one line.</P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="AEN5885">Memory Maps</H2><P>The first level page table is located at physical address 0xc0004000. No second level tables are used. <DIVCLASS="NOTE"><BLOCKQUOTECLASS="NOTE"><P><B>NOTE: </B>The virtual memory maps in this section use a C and B column to indicatewhether or not the region is cached (C) or buffered (B).</P></BLOCKQUOTE></DIV><TABLEBORDER="5"BGCOLOR="#E0E0F0"WIDTH="70%"><TR><TD><PRECLASS="PROGRAMLISTING">Physical Address Range Description----------------------- ----------------------------------0x00000000 - 0x003fffff 4Mb FLASH (nCS0)0x18000000 - 0x18ffffff Internal PCI bus - 2 x i82559 ethernet0x40000000 - 0x4fffffff External IO or PCI bus0x80000000 - 0xbfffffff SA-1110 Internal Registers0xc0000000 - 0xc7ffffff DRAM Bank 0 - 32Mb SDRAM0xc8000000 - 0xcfffffff DRAM Bank 1 - empty0xe0000000 - 0xe7ffffff Cache CleanVirtual Address Range C B Description----------------------- - - ----------------------------------0x00000000 - 0x001fffff Y Y DRAM - 8Mb to 32Mb0x18000000 - 0x180fffff N N Internal PCI bus - 2 x i82559 ethernet0x40000000 - 0x4fffffff N N External IO or PCI bus0x50000000 - 0x51ffffff Y Y Up to 32Mb FLASH (nCS0)0x80000000 - 0xbfffffff N N SA-1110 Internal Registers0xc0000000 - 0xc0ffffff N Y DRAM Bank 0: 8 or 16Mb0xc8000000 - 0xc8ffffff N Y DRAM Bank 1: 8 or 16Mb or absent0xe0000000 - 0xe7ffffff Y Y Cache Clean</PRE></TD></TR></TABLE></P><P>The ethernet devices use a "PCI window" to communicate with the CPU.This is 1Mb of SDRAM which is shared with the ethernet devices that are onthe PCI bus. It is neither cached nor buffered, to ensure that CPU and PCIaccesses see correct data in the correct order. By default it is configuredto be megabyte number 30, at addresses 0x01e00000-0x01efffff. This can bemodified, and indeed must be, if less than 32Mb of SDRAM is installed, viathe memory layout tool, or by moving the section <TTCLASS="COMPUTEROUTPUT">__pci_window</TT> referred to by symbols <TTCLASS="COMPUTEROUTPUT">CYGMEM_SECTION_pci_window*</TT> in the linker script. </P><P>Though the nanoEngine ships with 32Mb of SDRAM all attached to DRAMbank 0, the code can cope with any of these combinations also; "2 x " in thiscontext means one device in each DRAM Bank. <PCLASS="LITERALLAYOUT">1 x 8Mb = 8Mb 2 x 8Mb = 16Mb<br>1 x 16Mb = 16Mb 2 x 16Mb = 32Mb</P>All are programmed the samein the memory controller. </P><P>Startup code detects which is fitted and programs the memory map accordingly.If the device(s) is 8Mb, then there are gaps in the physical memory map, becausea high order address bit is not connected. The gaps are the higher 2Mb outof every 4Mb.</P><P> The SA11x0 OS timer is used as a polled timer to provide timeoutsupport within RedBoot.</P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="AEN5899">Nano Platform Port</H2><P>The nano is in the set of SA11X0-based platforms. It uses the arm architecturalHAL, the sa11x0 variant HAL, plus the nano platform hal. These are components <PCLASS="LITERALLAYOUT">CYGPKG_HAL_ARM hal/arm/arch/<br>CYGPKG_HAL_ARM_SA11X0 hal/arm/sa11x0/var<br>CYGPKG_HAL_ARM_SA11X0_NANO hal/arm/sa11x0/nano</P> respectively. </P><P>The target name is "nano" which includes all these, plus the ethernetdriver packages, flash driver, and so on.</P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="AEN5904">Ethernet Driver</H2><P>The ethernet driver is in two parts: </P><P>A generic ether driver for Intel i8255x series devices, specificallythe i82559, is <TTCLASS="COMPUTEROUTPUT">devs/eth/intel/i82559</TT>. Itspackage name is <TTCLASS="COMPUTEROUTPUT">CYGPKG_DEVS_ETH_INTEL_I82559</TT>. </P><P>The platform-specific ether driver is <TTCLASS="COMPUTEROUTPUT">devs/eth/arm/nano</TT>. Its package is <TTCLASS="COMPUTEROUTPUT">CYGPKG_DEVS_ETH_ARM_NANO</TT>. This tells the generic driver the address in IO memoryof the chip, for example, and other configuration details. This driver picksup the ESA from RedBoot's configuration data - unless configured to use astatic ESA in the usual manner. </P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="AEN5913">Rebuilding RedBoot</H2><P>These shell variables provide the platform-specific informationneeded for building RedBoot according to the procedure described in<AHREF="rebuilding-redboot.html">Chapter 3</A>:<TABLEBORDER="5"BGCOLOR="#E0E0F0"WIDTH="70%"><TR><TD><PRECLASS="PROGRAMLISTING">export TARGET=nanoexport ARCH_DIR=armexport PLATFORM_DIR=sa11x0/nano</PRE></TD></TR></TABLE></P><P>The names of configuration files are listed above with thedescription of the associated modes.</P></DIV></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="assabet.html"ACCESSKEY="P">Prev</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="ecos-ref.html"ACCESSKEY="H">Home</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="ipaq.html"ACCESSKEY="N">Next</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">ARM/StrongARM(SA1110) Intel SA1110 (Assabet)</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="installation-and-testing.html"ACCESSKEY="U">Up</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">ARM/StrongARM(SA11X0) Compaq iPAQ PocketPC</TD></TR></TABLE></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -