📄 iq80310.html
字号:
>diag</B>, is used toaccess a set of hardware diagnostics provided by the boardmanufacturer. To access the diagnostic menu, enter diag at the RedBoot prompt: <TABLEBORDER="5"BGCOLOR="#E0E0F0"WIDTH="70%"><TR><TD><PRECLASS="SCREEN">RedBoot> <TTCLASS="USERINPUT"><B>diag</B></TT>Entering Hardware Diagnostics - Disabling Data Cache!1 - Memory Tests2 - Repeating Memory Tests3 - 16C552 DUART Serial Port Tests4 - Rotary Switch S1 Test for positions 0-3 5 - seven Segment LED Tests6 - Backplane Detection Test7 - Battery Status Test8 - External Timer Test9 - i82559 Ethernet Configuration10 - i82559 Ethernet Test11 - Secondary PCI Bus Test12 - Primary PCI Bus Test13 - i960Rx/303 PCI Interrupt Test14 - Internal Timer Test15 - GPIO Test0 - quit Enter the menu item number (0 to quit):</PRE></TD></TR></TABLE>Tests for various hardware subsystems are provided, and sometests require special hardware in order to execute normally. The EthernetConfiguration item may be used to set the board ethernet address.</P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="AEN6237">IQ80310 Hardware Tests</H2><P><TABLEBORDER="5"BGCOLOR="#E0E0F0"WIDTH="70%"><TR><TD><PRECLASS="SCREEN">1 - Memory Tests2 - Repeating Memory Tests3 - 16C552 DUART Serial Port Tests4 - Rotary Switch S1 Test for positions 0-35 - 7 Segment LED Tests6 - Backplane Detection Test7 - Battery Status Test8 - External Timer Test9 - i82559 Ethernet Configuration10 - i82559 Ethernet Test11 - i960Rx/303 PCI Interrupt Test12 - Internal Timer Test13 - Secondary PCI Bus Test14 - Primary PCI Bus Test15 - Battery Backup SDRAM Memory Test16 - GPIO Test17 - Repeat-On-Fail Memory Test18 - Coyonosa Cache Loop (No return)19 - Show Software and Hardware Revision0 - quitEnter the menu item number (0 to quit): </PRE></TD></TR></TABLE></P><P>Tests for various hardware subsystems are provided, and some tests requirespecial hardware in order to execute normally. The Ethernet Configurationitem may be used to set the board ethernet address.</P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="AEN6242">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=iq80310export ARCH_DIR=armexport PLATFORM_DIR=iq80310</PRE></TD></TR></TABLE></P><P>The names of configuration files are listed above with thedescription of the associated modes.</P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="AEN6248">Interrupts</H2><P>RedBoot uses an interrupt vector table which is located at address 0xA000A004.Entries in this table are pointers to functions with this protoype:: <TABLEBORDER="5"BGCOLOR="#E0E0F0"WIDTH="70%"><TR><TD><PRECLASS="PROGRAMLISTING">int irq_handler( unsigned vector, unsigned data )</PRE></TD></TR></TABLE>On an IQ80310board, the vector argument is one of 49 interrupts defined in <TTCLASS="COMPUTEROUTPUT">hal/arm/iq80310/current/include/hal_platform_ints.h:</TT>: <TABLEBORDER="5"BGCOLOR="#E0E0F0"WIDTH="70%"><TR><TD><PRECLASS="PROGRAMLISTING">// *** 80200 CPU ***#define CYGNUM_HAL_INTERRUPT_reserved0 0#define CYGNUM_HAL_INTERRUPT_PMU_PMN0_OVFL 1 // See Ch.12 - Performance Mon.#define CYGNUM_HAL_INTERRUPT_PMU_PMN1_OVFL 2 // PMU counter 0/1 overflow#define CYGNUM_HAL_INTERRUPT_PMU_CCNT_OVFL 3 // PMU clock overflow#define CYGNUM_HAL_INTERRUPT_BCU_INTERRUPT 4 // See Ch.11 - Bus Control Unit#define CYGNUM_HAL_INTERRUPT_NIRQ 5 // external IRQ#define CYGNUM_HAL_INTERRUPT_NFIQ 6 // external FIQ// *** XINT6 interrupts ***#define CYGNUM_HAL_INTERRUPT_DMA_0 7#define CYGNUM_HAL_INTERRUPT_DMA_1 8#define CYGNUM_HAL_INTERRUPT_DMA_2 9#define CYGNUM_HAL_INTERRUPT_GTSC 10 // Global Time Stamp Counter#define CYGNUM_HAL_INTERRUPT_PEC 11 // Performance Event Counter#define CYGNUM_HAL_INTERRUPT_AAIP 12 // application accelerator unit// *** XINT7 interrupts ***// I2C interrupts#define CYGNUM_HAL_INTERRUPT_I2C_TX_EMPTY 13#define CYGNUM_HAL_INTERRUPT_I2C_RX_FULL 14#define CYGNUM_HAL_INTERRUPT_I2C_BUS_ERR 15#define CYGNUM_HAL_INTERRUPT_I2C_STOP 16#define CYGNUM_HAL_INTERRUPT_I2C_LOSS 17#define CYGNUM_HAL_INTERRUPT_I2C_ADDRESS 18// Messaging Unit interrupts#define CYGNUM_HAL_INTERRUPT_MESSAGE_0 19#define CYGNUM_HAL_INTERRUPT_MESSAGE_1 20#define CYGNUM_HAL_INTERRUPT_DOORBELL 21#define CYGNUM_HAL_INTERRUPT_NMI_DOORBELL 22#define CYGNUM_HAL_INTERRUPT_QUEUE_POST 23#define CYGNUM_HAL_INTERRUPT_OUTBOUND_QUEUE_FULL 24#define CYGNUM_HAL_INTERRUPT_INDEX_REGISTER 25// PCI Address Translation Unit#define CYGNUM_HAL_INTERRUPT_BIST 26// *** External board interrupts (XINT3) ***#define CYGNUM_HAL_INTERRUPT_TIMER 27 // external timer#define CYGNUM_HAL_INTERRUPT_ETHERNET 28 // onboard enet#define CYGNUM_HAL_INTERRUPT_SERIAL_A 29 // 16x50 uart A#define CYGNUM_HAL_INTERRUPT_SERIAL_B 30 // 16x50 uart B#define CYGNUM_HAL_INTERRUPT_PCI_S_INTD 31 // secondary PCI INTD// The hardware doesn't (yet?) provide masking or status for these// even though they can trigger cpu interrupts. ISRs will need to// poll the device to see if the device actually triggered the// interrupt.#define CYGNUM_HAL_INTERRUPT_PCI_S_INTC 32 // secondary PCI INTC#define CYGNUM_HAL_INTERRUPT_PCI_S_INTB 33 // secondary PCI INTB#define CYGNUM_HAL_INTERRUPT_PCI_S_INTA 34 // secondary PCI INTA// *** NMI Interrupts go to FIQ ***#define CYGNUM_HAL_INTERRUPT_MCU_ERR 35#define CYGNUM_HAL_INTERRUPT_PATU_ERR 36#define CYGNUM_HAL_INTERRUPT_SATU_ERR 37#define CYGNUM_HAL_INTERRUPT_PBDG_ERR 38#define CYGNUM_HAL_INTERRUPT_SBDG_ERR 39#define CYGNUM_HAL_INTERRUPT_DMA0_ERR 40#define CYGNUM_HAL_INTERRUPT_DMA1_ERR 41#define CYGNUM_HAL_INTERRUPT_DMA2_ERR 42#define CYGNUM_HAL_INTERRUPT_MU_ERR 43#define CYGNUM_HAL_INTERRUPT_reserved52 44#define CYGNUM_HAL_INTERRUPT_AAU_ERR 45#define CYGNUM_HAL_INTERRUPT_BIU_ERR 46// *** ATU FIQ sources ***#define CYGNUM_HAL_INTERRUPT_P_SERR 47#define CYGNUM_HAL_INTERRUPT_S_SERR 48</PRE></TD></TR></TABLE>The data passedto the ISR is pulled from a data table <TTCLASS="COMPUTEROUTPUT">(hal_interrupt_data)</TT> which immediately follows the interrupt vector table. With49 interrupts, the data table starts at address 0xA000A0C8. </P><P>An application may create a normal C function with the above prototypeto be an ISR. Just poke its address into the table at the correct index andenable the interrupt at its source. The return value of the ISR is ignoredby RedBoot.</P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="AEN6256">Memory Maps</H2><P>The first level page table is located at 0xa0004000. Two second leveltables are also used. One second level table is located at 0xa0008000 andmaps the first 1MB of flash. The other second level table is at 0xa0008400,and maps the first 1MB of SDRAM. <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></P><P><TABLEBORDER="5"BGCOLOR="#E0E0F0"WIDTH="70%"><TR><TD><PRECLASS="PROGRAMLISTING">Physical Address Range Description----------------------- ----------------------------------0x00000000 - 0x00000fff flash Memory0x00001000 - 0x00001fff 80312 Internal Registers0x00002000 - 0x007fffff flash Memory0x00800000 - 0x7fffffff PCI ATU Outbound Direct Window0x80000000 - 0x83ffffff Primary PCI 32-bit Memory0x84000000 - 0x87ffffff Primary PCI 64-bit Memory0x88000000 - 0x8bffffff Secondary PCI 32-bit Memory0x8c000000 - 0x8fffffff Secondary PCI 64-bit Memory0x90000000 - 0x9000ffff Primary PCI IO Space0x90010000 - 0x9001ffff Secondary PCI IO Space0x90020000 - 0x9fffffff Unused0xa0000000 - 0xbfffffff SDRAM0xc0000000 - 0xefffffff Unused0xf0000000 - 0xffffffff 80200 Internal RegistersVirtual Address Range C B Description----------------------- - - ----------------------------------0x00000000 - 0x00000fff Y Y SDRAM0x00001000 - 0x00001fff N N 80312 Internal Registers0x00002000 - 0x007fffff Y N flash Memory0x00800000 - 0x7fffffff N N PCI ATU Outbound Direct Window0x80000000 - 0x83ffffff N N Primary PCI 32-bit Memory0x84000000 - 0x87ffffff N N Primary PCI 64-bit Memory0x88000000 - 0x8bffffff N N Secondary PCI 32-bit Memory0x8c000000 - 0x8fffffff N N Secondary PCI 64-bit Memory0x90000000 - 0x9000ffff N N Primary PCI IO Space0x90010000 - 0x9001ffff N N Secondary PCI IO Space0xa0000000 - 0xbfffffff Y Y SDRAM0xc0000000 - 0xcfffffff Y Y Cache Flush Region0xd0000000 - 0xd0000fff Y N first 4k page of flash0xf0000000 - 0xffffffff N N 80200 Internal Registers </PRE></TD></TR></TABLE></P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="AEN6264">Platform Resource Usage</H2><P>The external timer is used as a polled timer to provide timeout supportfor networking and XModem file transfers.</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="cerfcube.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="iq80321.html"ACCESSKEY="N">Next</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">ARM/StrongARM(SA11X0) Intrinsyc CerfCube</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="installation-and-testing.html"ACCESSKEY="U">Up</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">ARM/Xscale Intel IQ80321</TD></TR></TABLE></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -