3U OpenVPX Dual Ethernet SBC
Edit this on GitLab
INTRODUCTION
North Atlantic Industries (NAI) is a leading independent supplier of rugged COTS embedded computing products for industrial, commercial aerospace, and defense markets. Aligned with MOSA, SOSA and FACE standards, NAI’s Configurable Open System Architecture™ (COSA®) accelerates a customer’s time-to-mission by providing the most modular, agile, and rugged COTS portfolio of embedded smart modules, I/O boards, Single Board Computers (SBCs), Power Supplies and Ruggedized Systems of its kind. COSA products are pre-engineered to work together, enabling easy changes, reuses, or repurposing down the road. By utilizing FPGAs and SoCs, NAI has created smart modules that enable the rapid creation of configurable mission systems while reducing or eliminating SBC overhead.
NAI’s 68PPC2 3U OpenVPX Single Board Computer supports a variety of input and output capabilities, including analog and digital I/O, signal generation and acquisition, and communication interfaces. Powered by a NXP® PowerPC™ QorIQ® T2080 quad-core e6500 @ 1.8 GHz processor, the 68PPC2 provides a feature-rch, low power/low cost SBC solution for rugged military-aero, SWaP-constrained embedded applications.
SOFTWARE SUPPORT
Edit this on GitLab
The ENAIBL Software Support Kit (SSK) is supplied with all system platform based board level products. This platform’s SSK contents include html format help documentation which defines board specific library functions and their respective parameter requirements. A board specific library and its source code is provided (module level ‘C’ and header files) to facilitate function implementation independent of user operating system (O/S). Portability files are provided to identify Board Support Package (BSP) dependent functions and help port code to other common system BSPs. With the use of the provided help documentation, these libraries are easily ported to any 32-bit O/S such as RTOS or Linux.
The latest version of a board specific SSK can be downloaded from our website www.naii.com in the software downloads section. A Quick-Start Software Manual is also available for download where the SSK contents are detailed, Quick-Start Instructions provided and GUI applications are described therein. For other operating system support, contact factory.
SPECIFICATIONS
General for the Motherboard
Signal Logic Level: |
Automatically supports +3.3V-AUX OpenVPX bus |
Power (Motherboard): |
+VS3 (all) @ +5 VDC @ 4 A (typical), (5 A peak) ±12V-AUX @ ±12 V @ 0 mA (not required) +3.3V_AUX @ <100 mA (typical) RTC_STDBY must be +1.5 V – +5 V (3 V @ 5 uA typ.) (optional RTC standby) Then add power for each individual module |
Temperature, Operating: |
"C" =0° C to +70° C, "H" =-40° C to +85° C (see part number) |
Storage Temperature: |
-55° C to +105° C |
Temperature Cycling: |
Each board is cycled from -40° C to +85° C for option “H” |
General size |
|
Height: |
3.94" / 100 mm (3U) |
Width: |
0.74" meets at 0.8” pitch / 20.3 mm (4HP) |
Depth: |
6.3“ / 160 mm deep, with connectors 6.717” / 170.6 mm |
Weight: |
11.6 oz. (329 g) unpopulated add weight for each module (typically 1.5 oz. (42 g) each) add 2 oz. (57 g) for wedgelocks (conduction cooled) |
Specifications are subject to change without notice.
Environmental
Unless otherwise specified, the following table outlines the general Environmental Specifications design guidelines for board level products of North Atlantic Industries. All our cPCI, VME and OpenVPX boards are designed for either air or conduction cooling. All boards also incorporate appropriate stiffening to ensure performance during shock and vibration but also to assure reliable operation (lower fatigue stresses) over the service life of the product.
Parameters |
Level |
||
1 / Commercial-AC (Air Cooled) |
2 / Rugged-AC (Air Cooled) |
3 / Rugged-CC (Conduction Cooled) |
|
Temperature - Operating |
0° C to 70° C, AmbientH |
-40° C to 85° C, AmbientI |
-40° C to 85° C, at wedge lock thermal interface |
Temperature - Storage |
-40° C to 85° C |
-55° C to 105° C |
-55° C to 105° C |
Humidity - Operating |
0 to 95%, non-condensing |
0 to 95%, non-condensing |
0 to 95%, non-condensing |
Humidity - Storage |
0 to 95%, non-condensing |
0 to 95%, non-condensing |
0 to 95%, non-condensing |
Vibration - SineA |
2 g peak, 15 Hz - 2 kHzB |
6 g peak, 15 Hz - 2 kHzB |
10 g peak, 15 Hz - 2 kHzC |
Vibration - RandomD |
.002 g2 /Hz, 15 Hz - 2 kHz |
0.04 g2 /Hz, 15 Hz - 2 kHz |
0.1 g2 /Hz, 15 Hz - 2 kHzE |
ShockF |
20 g peak, half-sine, 11 ms |
30 g peak, half-sine 11 ms |
40 g peak, half-sine, 11 ms |
Low PressureG |
Up to 15,000 ft. |
Up to 50,000 ft. |
Up to 50,000 ft. |
Notes:
-
Based on sweep duration of ten minutes per axis on each of the three mutually perpendicular axes.
-
Displacement limited to 0.10 D.A. from 15 to 44 Hz.
-
Displacement limited to 0.436 D.A. from 15 to 21 Hz.
-
60 minutes per axis on each of the three mutually perpendicular axes.
-
Per MIL-STD-810G, Method 5.14.6 Procedure I, Fig.514.6C-6 Category 7 tailored (11.65 Grms): 15 Hz - 2 kHz; ASD (PSD) at 0.04 g2/Hz between 15 Hz - 150 Hz, increasing @ 4 dB/octave from 0.04 g2/Hz to 0.1 g /Hz between 150 Hz - 300 Hz, 0.1 g2/Hz between 300 Hz - 1000 Hz, decreasing @ 6 dB/octave from 0.1 g2/Hz to 0.025 g2/Hz between 1000 Hz - 2000 Hz. Three hits per direction per axis (total of 18 hits).
-
Three hits per direction per axis (total of 18 hits).
-
For altitudes higher than 50,000 ft., contact NAI.
-
High temperature operation requires 350 lfm minimum air flow across cover/heatsink (module dependent).
-
High temperature operation requires 600 lfm minimum air flow across cover/heatsink (module dependent).
Specifications subject to change without notice
68PPC2 OVERVIEW
The 68PPC2 is a 3U OpenVPX, low-power and high performance Single Board Computer (SBC). The 68PPC2 offers on-board I/O expansion through two (2) Generation-5 (GEN5) NAI smart I/O function modules. Powered by the NXP T2080 @ 1.5 GHz Power Architecture® processor, the 68PPC2 provides a balanced performance vs. power dissipation SBC solution, for today’s demanding, space constrained and resource limited embedded systems.
The 68PPC2 SBC, supplemented with a full complement of software I/O libraries and drivers, is ideally suited for integration within a multitude of commercial and rugged, military embedded processing and I/O systems. The 68PPC2 SBC provides a PCIe bus root-complex and/or Gigabit Ethernet (GbE) capability and may be utilized with other NAI high-density multifunction I/O boards to provide a complete, expandable, low power, high performance and programmable solution for sensor and communication data acquisition, management, processing and distribution. All I/O sensor data is available on the PCIe bus or GbE.
The 68PPC2 card provides high‐density front or rear I/O for systems requiring closed chassis operation (i.e. embedded, conduction cooled applications) and simple card replacement. Using rear I/O minimizes the effort required to remove cards from a chassis improving maintainability and reliability.
The 68PPC2 card uses OpenVPX P0, P1, and P2 rear connectors. Rear I/O connectivity, via the P2 and P1 connectors, includes Ethernet, asynchronous serial, I2C, programmable TTL, USB and access to the on‐board add-on Module I/O. Front I/O is limited to Expansion Module I/O.NXP QorIQ® T2080 Quad Core e6500 Processor.
The 68PPC2 utilizes the T2080 Quad Core e6500 processor with the following capabilities (Note: all processor capabilities may not be user accessible features at the end item level).
-
Four e6500 cores sharing a 2MB L2 cache
-
8GB of DDR3L SDRAM (plus ECC)
-
2 Ethernet interfaces, supporting combinations of:
-
Up to two 1 Gbps KX Ethernet MACs
-
Up to two 1 Gbps TX Ethernet MACs
-
-
Four PCIe interfaces
-
1x4 and 4x1 PCIe ports for VPX communication
-
1x1 PCIe to Module interface 1
-
1x1 PCIe to the Zynq to R/W to module registers
-
-
Two SATA 2.0 controllers
-
32GB onboard ROM
-
SATA switch for external storage or storage through Module Slot-2 (factory configured).
-
-
Two high-speed USB 3.0 ports (Contact Factory)
-
I2C port to the VPX backplane
-
RS232 Serial debug port
-
On-board TTL Digital I/O
-
256 MB NOR Flash
-
64 Kb FRAM
I/O Modules
Two I/O module slots enable integrators to mix-n-match a variety I/O and communication functions. The 68PPC2 uses a GEN5 high-speed SerDes Modbus. Some of the new modules are currently under development. Please consult the factory for updates on the availability of certain functions. Module I/O signals are available as both front and rear I/O.
Software
Built-In Test
The 68PPC2 supports options for Power-On-Self-Test (POST) testing (memory, peripherals, etc.). The 68PPC2 also supports function modules with NAI’s flexible, leading-edge, fully programmable and continuous background built-in-test (BIT) enabled function. BIT tests both 68PPC2 on board functions and functions contained on expansion modules, making it a useful field service tool.
U-Boot Firmware (Boot Utility / Linux®)
The U-boot firmware provides a foundation layer to interface between the raw board hardware. U-boot has programmable device set-up, setup flexibility, and supports booting supported Operating Systems with a straight-forward user interface. U-boot also allows booting from a number of different devices (check part numbering options).
Mechanicals
Heat Sink
CAUTION: The 68PPC2 contains an integrated heat sink and cover. Do not remove the heat sink. There are no user serviceable components, switches or programming jumpers under the heat sink. In the unlikely event the 68PPC2 becomes is inoperable, please return the unit to the factory for service.
68PPC2 Connector Interfaces
The 68PPC2 Conduction cooled version has four I/O connectors P0, P1, P2 and J5. Connectors P1, and P2 at the rear of the module, are used for the OpenVPX interface and for user I/O. Connector J5 is utilized for GbE Ethernet interface option & RS-232 Serial debug/console access. J5 uses a Mini-HDMI connector for USB port1, asynchronous serial (debug port) and optionally Ethernet port 1. A J5 connector adapter cable/breakout board P/N 75SBC4-BB optional accessory kit is available for quick connect (contact factory).
Figure 1. 68PPC2 Connectors
The 68PPC2 may also be provided in an air-cooled version with front panel I/O accessibility. Please refer to part numbering options and contact factory for available mechanical options.
68PPC2 ENVIRONMENTAL/POWER SPECIFICATIONS
Conduction-cooled / Rugged
Operating temperature |
-40 to 85° C (measured at card edge/rail) |
Storage temperature |
-55 to 105° C |
Relative humidity |
5 to 95% non-condensing |
MTBF |
TBD |
(see NAI card-level Environmental Specifications for other ruggedization & application environment levels)
Power Requirements
Power |
Tolerance |
Current requirement |
5 V |
±10% |
4 A typical |
+12 V-AUX |
±10% |
* |
-12 V-AUX |
±10% |
* |
3.3 V-AUX |
±10% |
100 mA typical |
RTC_STDBY |
1.5 V to 5 V ±10% |
5 µA @ 3 V Typical |
*The 68PPC2 without modules does not derive any power from the +12V and -12V backplane rail supplies. When calculating total power supply consumption, remember to add the +12, -12, and 5V power consumption for two optional modules.
68PPC2 OUTLINE DIMENSIONS
The 68PPC2 is compatible with the OpenVPX ANSI Vita 46 Specification. Conduction cooled 68PPC2 cards comply with ANSI/VITA 30.1-2002. The following diagram is for reference only. All dimensions are in inches.
68PPC2 ON BOARD RESOURCES
Memory
DDR3L SDRAM
The 68PPC2 provides a total of 8 GB of ECC DDR3L memory. This memory is organized as 8 1Gb x 8 MT41K1G8 devices (parts may vary), with a ninth device providing storage for ECC data. The T2080 has an on chip 64-bit DDR3 memory controller. The controller has full ECC error-correction support, with the ability to detect multi-bit errors and correct single-bit errors within a nibble. Please consult the Micron data sheet for DDR3 device specific details.
NOR Flash
Connected through the local bus, the 68PPC2 supports 256 Mbytes of flash. The Flash consists of a single soldered in Micron® Flash device MT28FW02GBBA1HPC device. Flash is configured as a 16-bit wide device, using the 16-bit asynchronous data access interface. The 256 MB flash is divided into two logical banks, one standard bank and one for recovery. The FPGA Local Bus controls which bank is accessible by setting the top bits of the address seen by the flash. The NOR Flash has an erase capacity of 100,000 cycles per sector and typical data retention of 20 years.
Banks
-
The first bank (bank 0) is reserved for a recovery boot-loader. If the second bank is not accessible the first bank stores a full image for recovery of the system.
-
The second bank (bank 1) is reserved for the boot-loader. In the default configuration, the SBC will boot from this area. The customer can modify the boot-loader if they want to and flash it in this area.
FRAM
The FM25CL64B is a 64-kilobit nonvolatile memory employing an advanced ferroelectric process. The ferroelectric random-access memory or FRAM is nonvolatile and performs reads and writes like a RAM. It provides reliable data retention for 38 years. The 68PPC2 FRAM 64K bits are organized as 8,192 x 8 bits random access memory, connected to the T2080 CPU through the SPI controller, SPI_CS [0].
SATA
The T2080 CPU has two available on-chip SATA 2 type controllers. SATA port 1 is supported with SerDes12, and SATA port 2 is supported with SerDes13. The 68PPC2 SATA port 2 is connected to an on board SATA 2 Solid
State Drive. SATA2 is connected to Module Slot 2 (supports direct SATA 2 solid-state FLASH module, if fitted) or to an external storage device via a programmable switch.
SATA Port 1
The SATA port 1 controller interface on the T2080 CPU is directly connected to an on-board, solid-state drive. The SSD contains a single level cell NAND Flash together with a controller in a single multi-chip package. This multi-chip packaged device is soldered directly to the printed circuit board, for reliable electrical and mechanical connection.
The SSD has an external write protect signal HDW_WP. This signal is pinned out as rear I/O on connector P2. The HDW_WP signal must be switched to ground to enable any write to the SSD. The HDW_WP signal is pulled up on card by a 4.7 KΩ resistor to the internal 3.3 V supply.
The onboard SATA drive conforms to the follow specifications:
-
Complies with Serial ATA 2.5 Specification
-
Supports speeds: 1.5 Gbps (first-generation SATA), 3 Gbps (second-generation SATA and eSATA)
-
Supports advanced technology attachment packet interface (ATAPI) devices
-
Contains high-speed descriptor-based DMA controller
-
Supports native command queuing (NCQ) commands
The standard ordering code for the 68PPC2 includes a 32GB SSD drive. Larger devices are available; please consult the factory for availability.
SATA Port 2
The SATA port 2 interface on the T2080 CPU is connected directly to a high-speed connector for Module Slot 2 or to an external storage device via a programmable switch. An optional SATA Flash drive is available for the 68PPC2; please consult the Factory for availability.
Peripheral I/O
Ethernet
The T2080 supports two 10/100/1000Base-TX or two 1000Base-KX Ethernet ports. The 68PPC2 Ethernet ports support:
-
Detection and correction of pair swaps (MDI crossover), and pair polarity
-
MAC-side and line-side loopback
-
Auto-negotiation
Ethernet port 1 can be routed as 10/100/1000Base-TX to the front, 10/100/1000Base-TX to the rear, or KX-Ethernet to the rear as build options.
Ethernet Port 2 can be routed as 10/100/1000Base-Tx to the rear or KX-Ethernet to the rear as build options.
I/O pin outs can be found in the Pinout Details section of this document.
USB
The 68PPC2 supports two USB 3.0 ports. Contact factory for availability.
USB port 0 is available at the front of 68PPC2, on connector J5. The USB port can operate as a standalone host.
-
Compatible with USB specification, Rev. 2.0
-
Supports high-speed (480 Mbps), full-speed (12 Mbps), and low-speed (1.5 Mbps) operations
-
Supports operation as a standalone USB host controller
-
Supports USB root hub with one downstream-facing port
-
Enhanced host controller interface (EHCI)-compatible
-
One controller supports operation as a standalone USB device
-
Supports one upstream-facing port
-
Supports six programmable USB endpoints
I2C
I2C is a two-wire, bidirectional single ended serial bus that provides efficient method of exchanging data between a master and slave device. The T2080 CPU contains three identical I2C controllers. The 68PPC2, I2C port 1 of the T2080 is connected to the die temperature monitor. I2C port 2 is connected to the real-time clock, and I2C port 3 is connected to the OpenVPX connector P2, and is available as rear I/O
T2080 CPU I2C port |
Assignment |
I2C addresses |
Device |
Port 1 |
Onboard Devices |
0x08 & 0x70 |
Power Supply |
0x4C |
Temperature |
||
0x50 & 0x51 |
EEPROM |
||
0x57 & 6F |
RTC |
||
0x68 |
PCIe Switch |
||
Port 2 |
Rear I/O |
User Configurable |
Port 3 |
Real-Time Clock
Real-Time Clock/Calendar (RTCC) is used to provide a system time and date function or can be used as an event timer. In addition, the MCP79410 includes:
-
64 Bytes SRAM, Battery Backed
-
1 Kbits EEPROM (128x8)
-
Power-Fail Time-Stamp for Battery Switchover
To maintain the RTCC and SRAM functions when the 5 V power is off, the RTC_STDBY pin must be connected to an external battery or power supply. The RTC_STDBY supply voltage should be between 1.4 V to 5.0 V. A typical RTC_STDBY supply requirement is 3.0 V @ 5 µA.
CAUTION: 5.5 V is the maximum allowable RTC_STDBY input voltage. Any voltage larger than 5.5 V on the RTC_STDBY pin will damage the RTCC.
Temperature Sensor
The T2080 processor has two pins that are connected to a thermal body diode on the processors die. This diode allows for direct die temperature measurements. The ADT7461 I2C device is used to measure the change in forward bias voltage (VBE) of the body diode. The ADT7461and thermal body diode together allow for direct reading of the die temperature, to an accuracy of ±1°C.
Device: |
On Semi, ADT7461ARMZ |
I2C address: |
0x4C |
SPI
Serial Peripheral Interface Bus or SPI is a synchronous serial data link standard. SPI operates in full duplex mode. SPI devices communicate in master/slave mode where the master device starts a frame and sources the clock. The T2080 CPU has one SPI controller with four device select pins (SPI_CS [3:0]). SPI_CS [0] is attached to an FRAM. SPI_C [1,2,3] are unconnected.
Linux device drivers are available to access FRAM features.
T2080 CPU SPI CS |
Assignment |
Device |
SPI_CS0 |
FRAM |
FM25CL64 |
SPI_CS1 |
Not used |
|
SPI_CS2 |
Not used |
|
SPI_CS3 |
Not used |
Serial Ports
The 68PPC2 has one serial port to the front and to the rear of the card. Do not plug into the serial port from both the front and rear of the card at the same time. This will cause errors when communicating to the card through the serial port.
For U-boot, the console port is selected at compile time. The 68PPC2 is configured to use the first serial port (SER1), which is routed to the OpenVPX P0 connector at rear of the card.
For Linux, the console port is passed as a kernel parameter by U-boot when it loads Linux and so can be selected at run-time.
Onboard TTL
Onboard TTL I/O is available as a configuration option (see pin-outs/P/N configuration).
TTL I/O Specifications
Note
|
The TTL I/O signals are non-isolated. All grounds are common and are connected to a single Digital Ground and power return. |
REGISTER DESCRIPTIONS
The register descriptions provide the Register Name, Function Address Offset, Type, Data Range, Read or Write information, Initialized Value, a description of the function and, in most cases, a data table. Refer also to the FPGA Local Bus Register Map.
FPGA Local Bus Register Map
Base address of FPGA Local Bus = 0xFFDF 0000 Register address = Base 0xFFDF 0000 + Register Offset
Register Offset |
Name |
R/W |
Default |
0x00 |
SPARE |
N/A |
0x12 |
SPARE |
N/A |
0x02 |
SATA_MUX_SEL |
R/W |
1 |
0x04 |
BANK_SEL |
R/W |
0 |
0x06 |
FW_REV |
R |
REVISION |
0x08 |
TTL_DIR |
R/W |
0x"00" |
0x0A |
TTL_LPBK |
R |
0x"00" |
0x0C |
TTL_DATA |
R |
0x"XX" |
0x0C |
TTL_DATA |
R/W |
0x"00" |
0x0E |
EN_PROC_RST |
W |
0 |
0x14 |
TTL_INT_EN |
W |
0x"00" |
0x16 |
TTL_INT_DIR |
W |
0x"00" |
0x18 |
TTL_INT_STAT |
R/W |
0x"00" |
0x1A |
TEMP_ALARM_OVD |
W |
0 |
0x1C |
PWR_DWN_CMD |
W |
0x"0000" |
0x1E |
TEMP_INT_STAT |
R/W |
0 |
0x20 |
TEMP_INT_EN |
W |
0 |
0x20 |
TEMP_INT_EN |
W |
0 |
0x22 |
WDT_ENABLE_STATUS |
R/W |
0 |
0x24 |
WDT_TIME_1_SET |
R/W |
0 |
0x26 |
WDT_RESET |
W |
0 |
0x28 |
WDT_TIME_2_SET |
R/W |
0 |
0x2A |
WDT_OUTPUT_BEHAVIOR |
68PPC2 VxWorks Address Map
OFFSET (Byte) |
Name |
Size |
Function/Notes |
0x0000 0000 |
DDR3 |
2 GB |
DDR3 SDRAM |
0x7F40 0000 |
Reserved |
8 MB |
8 MB reserved memory for QMAN hardware |
0x7FC0 0000 |
Reserved |
4 MB |
4 MB reserved memory for BMAN hardware |
0x8000 0000 |
PCIe 1 prefetchable memory |
64 MB |
PCIe 1 prefetchable memory |
*0x8400 0000 |
PCIe non-prefetchable memory |
64 MB |
PCIe non-prefetchable memory |
0x8800 0000 |
PCIe 1 IO |
64 MB |
PCIe 1 I/O |
0x8C00 0000 |
PCIe 1 IO 32 |
64 MB |
PCIe 1 I/O 32 |
*0x9000 0000 |
PCIe 2 non-prefetchable memory |
512 MB |
PCIe 2 non-prefetchable memory |
0xB000 0000 |
PCIe 3 prefetchable memory |
64 MB |
PCIe 3 prefetchable memory |
*0xB400 0000 |
PCIe 3 non-prefetchable memory |
128 MB |
PCIe 3 non-prefetchable memory |
0xBC00 0000 |
PCIe 3 I/O |
32 MB |
PCIe 3 I/O |
*0xBE00 0000 |
PCIe 3 I/O 32 |
32 MB |
PCIe 3 I/O 32 |
0xC000 0000 |
PCIe 4 prefetchable memory |
64 MB |
PCIe 4 prefetchable memory |
*0xC400 0000 |
PCIe non-prefetchable memory |
64 MB |
PCIe non-prefetchable memory |
0xC800 0000 |
PCIe 4 I/O |
64 MB |
PCIe 4 I/O |
0xCC00 0000 |
PCIe 4 I/O 32 |
64 MB |
PCIe 4 I/O 32 |
0xE000 0000 |
BMAN |
32 MB |
0xE200 0000 |
QMAN |
32 MB |
0xE400 0000 |
DCSR |
4 MB |
0xEA00 0000 |
FPGA Registers |
4 KB |
0xEE00 0000 |
CCSBAR |
16 MB |
0xF800 0000 |
Note
|
*Unassigned n/u |
68PPC2 U-boot/Physical Address Map
OFFSET (Byte) |
Name |
Size |
Function/Notes |
0x0000'0000 |
DDR3 |
2GB |
Main T2080 CPU Memory |
0xE800 0000 |
NOR FLASH |
128 MB |
128 MB of NOR FLASH per bank |
0xFFDF 0000 |
FPGA Registers |
4 KB |
FPGA Registers |
0x8000 0000 |
PCIE 1 Mem |
512 MB |
|
*0xF800 0000 |
PCIe 1 I/O |
64 KB |
|
0xA000 0000 |
PCIe 2 Mem |
256 MB |
|
0xF801 0000 |
PCIe 2 I/O |
64 KB |
|
*0xB000 0000 |
PCIe 3 Mem |
256 MB |
|
0xF802 0000 |
PCIe 3 I/O |
64 KB |
|
*0xC000 0000 |
PCIe 4 Mem |
256 MB |
|
0xF803 0000 |
PCIe 4 I/O |
64 KB |
|
*0xF400 0000 |
BMAN |
32 MB |
|
0xF600 0000 |
QMAN |
32 MB |
|
*0xF000 0000 |
DCSR |
4 MB |
|
0xFE00 0000 |
CCSRBAR |
16 MB |
Note
|
*Unassigned n/u |
Hardware Interrupts
The 68PPC2 uses eight external hardware interrupts. IRQ06, IRQ07, IRQ08, and IRQ09 are not available (n/a), these pins are used to support the USB ports. The T2080 hardware interrupts are assigned as indicated below.
T2080 CPU Hardware Interrupt |
Assignment |
Source |
IRQ00 |
unused |
Zynq |
IRQ01 |
unused |
Zynq |
IRQ02 |
WDT |
Zynq |
IRQ03/GPIO1_23 |
Temperature warning |
ADT7461 (Alert#) |
IRQ04/GPIO1_24 |
RTC (real time clock) |
MCP79410 (MFP) |
IRQ05/GPIO1_25 |
Over Temp & TTL I/O |
CLPD (temp-alarm) & TTL I/O |
IRQ06/GPIO1_26 |
Ethernet PHY 1 |
88E1512 |
IRQ07/GPIO1_27 |
n/a |
|
IRQ08/GPIO1_28 |
Ethernet PHY 2 |
88E1512 |
IRQ09/GPIO1_29 |
n/a |
|
IRQ10/GPIO1_30 |
n/a |
|
IRQ11/GPIO1_31 |
TMP |
SLB9670XQ2 |
TTL Registers
Attached to the T2080 CPU via local bus is a portion of the FPGA. This logic provides miscellaneous “glue” functions and 4 programmable TTL I/O channels (TTL_CH [4:1]). (These TTL channels may be programmed as inputs or outputs as needed. Channels that are programmed as inputs may generate interrupts. Interrupts on input pins can be programmed to occur on (high to low) or (low to high) input pin transitions. TTL interrupts occur on the IRQ10 input of the T2080 CPU.
The 68PPC2 utilizes level shifting single ended bus transceivers, allowing the I/O pins to be 5 V tolerant. Each I/O pin is individually pulled up on card by a 4.7 KΩ resistor to the internal 3.3 V supply rail. External pull ups are not required for open collector operation. The TTL_CH [4:1] signals are pinned out as rear I/O on connector P2. As a factory option, the four TTL_CH pins may be disconnected and their associated P2 pins used to support additional module I/O signals.
TTL Direction
Function: TTL direction. Sets channels as inputs or outputs. Bitmapped per TTL channel.
Function Address Offset(s): 0x08
Type: binary word (16-bit)
Read/Write: R/W
Initialized Value: 0x02
Operational Settings: Write 0 for input; 1 for output: Default is configured for Input. Data bits [4:0] correspond to one of 4 channels TTL_CH [4:1] respectively
D15-D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
FUNCTION |
X |
X |
X |
X |
X |
Ch.4 |
Ch.3 |
Ch.2 |
Ch.1 |
Channel |
0 |
0 |
0 |
0 |
0 |
D |
D |
D |
D |
D=DATA BIT |
TTL Data
Function: Reads the TTL output of a specific channel’s I/O pin. Write to this register to set the channel to drive high or low. Bitmapped per TTL channel.
Function Address Offset(s): 0x0C
Type: binary word (16-bit)
Read/Write: R/W
Initialized Value: 0x00
Operational Settings: TTL_DIR register must be set for output (1). Write 0 for Low output; write 1 for High output: Data bits [3:0] correspond to one of 4 channels TTL_CH [4:1] respectively.
When TTL_DIR register has channel configured as an output (1): Write 0 for Low output; write 1 for High output.
When TTL_DIR register has channel configured as an input (0): Read corresponding bit for the state of the TTL input.
Note
|
Reading this register returns the output to the I/O pin of a specific channel and does not return the value set to the register. Because of this, if there is impedance to the pin it may not return the proper setting. For example, if the channel is set to drive high and some impedance causes it to drive low, then this register will read low (0). To guarantee the correct setting is read, please refer to the TTL Loop Back register. |
D15-D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
FUNCTION |
X |
X |
X |
X |
X |
Ch.4 |
Ch.3 |
Ch.2 |
Ch.1 |
Channel |
0 |
0 |
0 |
0 |
0 |
D |
D |
D |
D |
D=DATA BIT |
TTL Loop Back
Function: Reads back TTL output channel(s) register contents. Bitmapped per TTL channel.
Function Address Offset(s): 0x0A
Type: binary word (16-bit)
Read/Write: R
Initialized Value: 0x00
Operational Settings: Reads the state of output register for each channel, regardless of the state of the I/O channel.
Note
|
This provides the last commanded/written output value, which may differ from the TTL Data 'read' status (if there is a problem, can be used for BIT status). |
D15-D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
FUNCTION |
X |
X |
X |
X |
X |
Ch.4 |
Ch.3 |
Ch.2 |
Ch.1 |
Channel |
0 |
0 |
0 |
0 |
0 |
D |
D |
D |
D |
D=DATA BIT |
TTL IRQ Enable
Function: To configure a channel as an interrupt, its corresponding TTL_DIR register bit must be set for inputs (0). Setting the channel’s bit in this register selects the channel to be enabled for interrupt. Bitmapped per TTL channel.
When generated, the interrupt will be invoked on T2080 IRQ05 (see Hardware Interrupts section).
Function Address Offset(s): 0x14
Type: binary word (16-bit)
Read/Write: R/W
Initialized Value: 0x00
Operational Settings: Write 1 to enable interrupts for selected channel. Write 0 for interrupts not enabled, is default.
D15-D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
FUNCTION |
X |
X |
X |
X |
X |
Ch.4 |
Ch.3 |
Ch.2 |
Ch.1 |
Channel |
0 |
0 |
0 |
0 |
0 |
D |
D |
D |
D |
D=DATA BIT |
TTL IRQ Polarity
Function: When the TTL IRQ Enable register is enabled, this register determines whether the interrupt will be generated for either “rising edge” or “falling edge” event detection. Bitmapped per TTL channel.
Sense on edge setting: Generates interrupt on a rising edge.
Sense on level setting: Generates interrupt when input is at a high level.
Function Address Offset(s): 0x16
Type: binary word (16-bit)
Read/Write: R/W
Initialized Value: 0x00
Operational Settings: Write a 1 to sense on level and a 0 to sense on edge.
D15-D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
FUNCTION |
X |
X |
X |
X |
X |
Ch.4 |
Ch.3 |
Ch.2 |
Ch.1 |
Channel |
0 |
0 |
0 |
0 |
0 |
D |
D |
D |
D |
D=DATA BIT |
TTL IRQ Status
Function: When an interrupt for a channel or channels occurs, the corresponding bit for that channel will be set High in this register. Bitmapped per TTL channel.
Function Address Offset(s): 0x18
Type: binary word (16-bit)
Read/Write: R/W
Initialized Value: 0x00
Operational Settings: When a TTL input channel generates an interrupt, the corresponding bit in the TTL_IRQ_STAT is set High (1). Once a bit is set by a transition on the input pin, the bit remains set until cleared by a register write. Writing a (1) to the corresponding bit resets the interrupt status to (0).
D15-D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
FUNCTION |
X |
X |
X |
X |
X |
Ch.4 |
Ch.3 |
Ch.2 |
Ch.1 |
Channel |
0 |
0 |
0 |
0 |
0 |
D |
D |
D |
D |
D=DATA BIT |
Temperature Sensing
Temperature Alarm Override Select
Function: Overrides temperature alarm auto shutdown.
Function Address Offset(s): 0x1A
Type: binary word (16-bit)
Read/Write: R/W
Initialized Value: 0x0000
Operational Settings: Write a 1 to override the temperature alarm automatic shutdown. Default value = 0.
D15-D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
FUNCTION |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
D |
D=DATA BIT |
Temperature Alarm Interrupt Status Select
Function: Clears latched temperature alarm status.
Function Address Offset(s): 0x1E
Type: binary word (16-bit)
Read/Write: R/W
Initialized Value: 0x0000
Operational Settings: Bit is set to a 1 if temperature alarm interrupt occurs. Write a 1 to clear the interrupt status. Default value = 0.
D15-D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
FUNCTION |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
D |
D=DATA BIT |
Temperature Alarm Interrupt Enable
Function: Enables temperature alarm interrupt.
Function Address Offset(s): 0x20
Type: binary word (16-bit)
Read/Write: R/W
Initialized Value: 0x0000
Operational Settings: Write a 1 to enable the temperature alarm interrupt. Default value = 0.
D15-D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
FUNCTION |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
D |
D=DATA BIT |
Power Shutdown
Power Down Command
Function: Shuts down power to the board.
Function Address Offset(s): 0x1C
Type: binary word (16-bit)
Read/Write: R/W
Initialized Value: 0x000
Operational Settings: Write the proper sequence of words “0xDEAD” followed by "0xC0DE" to initiate a power shutdown.
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
FUNCTION |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D=DATA BIT |
Bank Select
Function: Selects the Bank to boot from.
Function Address Offset(s): 0x04
Type: binary word (16-bit)
*Read/Write: *R/W
Initialized Value: 0
Operational Settings: The T2080 will boot from the first bank (bank 0) if the NOR Flash jumper is not installed, and the external NVMRO signal is left floating. If the NOR Flash jumper is installed, or if NVMRO is grounded then the T2080 will boot from the second bank (bank 1). After boot, writing a 0 to this register will switch to the first bank (bank 0). You cannot write 1 to this register to return to the second bank (bank 1).
Note
|
For NOR location refer to Appendix B: Jumpers. |
Please view the flowchart for an overview of the motherboard boot operation.
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
FUNCTION |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
D |
D=DATA BIT |
Processor Restart Enable
Function: Selects whether the Processor can restart the board.
Function Address Offset(s): 0x0E
Type: binary word (16-bit)
Read/Write: R/W
Initialized Value: 0
Operational Settings: Write a 1 to this register to enable processor restarts. If the Reset jumper is installed a reset cannot occur. Please view this flowchart to see how the setting of this register affects the operation of the board.
Note
|
For RESET location, refer to Appendix B: Jumpers |
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
FUNCTION |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
D |
D=DATA BIT |
SATA Location Select
Function: Selects whether to use external SATA storage through the backplane or module two SATA storage.
Function Address Offset(s): 0x02
Type: binary word (16-bit)
Read/Write: R/W
Initialized Value: 0
Operational Settings: Write a 0 to this register to use module two SATA storage. Write a 1 to use external SATA storage through the backplane.
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
FUNCTION |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
D |
D=DATA BIT |
68PPC2 SOFTWARE LIBRARIES / ASSOCIATED DOCUMENTS
68PPC2 BSP Processor Module Library
The 68PPC2 Processor library package provides function interfaces to the on-module functionality as well as the OpenVPX interface. This package contains Help documentation (in html format) that explains all the functions available in the library. The package also contains the source code (*.h, *.c) files as well as the files needed to build the library using Wind River Linux or other supported operating systems similar. Example programs are also provided to demonstrate the usage of the libraries in typical applications of the module.
Associated Documents
NAI Documents
*Programmer’s Reference Guide for NAI 68PPC2 Single Board Computer (TBD)
*68PPC2 Ethernet Download (TBD)
*68PPC2 USB Download (TBD)
*Standalone documents “pending/TBD”; currently, all reference documentation required are embedded within the specific OS 68PPC2 BSP/Support documentation (i.e. BSPx.x.x \ layers \ nai_bsp \ templates \ board \ nai68PPC2 \ (README) files (where x.x.x is the BSP version/revision available).
REGISTER MEMORY MAP ADDRESSING
The register map address consists of the following:
-
cPCI/PCIe BAR or Base Address for the Board
-
Module Slot Base Address
-
Function Offset Address
Board Base Address
The table below lists the BAR used for access to the motherboard and module registers. The second BAR is used internally for motherboard and module firmware updates. The other cPCI/PCIe BARs not listed are not used.
NAI Boards |
Device ID |
Bus |
Motherboard and Module Register Access |
Motherboard and Module Firmware Updates |
Controller/Master Boards |
||||
68PPC2 |
0x6884 |
PCIe |
BAR 1 Size: Module Dependent (minimum 64K Bytes) |
BAR 2 Size: 1M Bytes |
Module Slot and Function Addresses
The memory map for the modules are dependent on the types of modules on the board and the order in which the modules are installed on the board as well as the firmware installed on the motherboard. The function modules are enumerated allowing for dynamic memory space allocation and therefore the “start” address of the module function register area is factory pre-defined (and read from) the Module Address register. Refer to Figure 1 for an example.
Figure 1. Register Memory Map Addressing for Motherboards with 2 Modules
Address Calculation
Motherboard Registers
Read/Write access to the motherboard registers starts with the base address for the board and then the motherboard base offset address.
For example, to address Module Slot 1 Start Address register (i.e. register address = 0x0400):
-
Start with the base address for the board.
-
Add the motherboard base register address offset.
Motherboard Address = |
Base Address + Motherboard Address Offset |
= 0x0000 0400 |
0x0000 0000 + 0x0400 |
Module Registers:
Read/Write access to the Function module’s registers start with the base address of the board. Add the “content” for the Module Start Address and then, add the specific module function register offset.
For example, to address an appropriate/specific function module with a register offset:
-
Start with the base address for the board.
-
Add the value (contents) from the module base address offset register (contents/value of Motherboard Memory register for Module 1 (i.e., @ 0x0400) = 0x4000.
-
Then add the specific module function Register Offset of interest (i.e., A/D Reading Ch 1 @ 0x1000)
(Function Specific) Address = |
Base Address |
Module Base Address Offset |
Function Register Offset |
= 0x0000 5000 |
0x0000 0000 |
0x4000 |
0x1000 |
MOTHERBOARD COMMON REGISTER DESCRIPTIONS
Module Information Registers
The Module Slot Addressing Ready, Module Slot Address, Module Slot Size and Module Slot ID registers provide information about the modules detected on the board.
Module Slot Addressing Ready
Edit this on GitLab
Function: Indicates that the module slots are ready to be addressed.
Type: unsigned binary word (32-bit)
Data Range: 0x0000 0000 to 0xFFFF FFFF
Read/Write: R
Initialized Value: 0xA5A5A5A5
Operational Settings: This register will contain the value of 0xA5A5A5A5 when the module addresses have been determined.
Module Slot Address
Edit this on GitLab
Function: Specifies the Base Address for the module in the specific slot position.
Type: unsigned binary word (32-bit)
Data Range: 0x0000 0000 to 0xFFFF FFFF
Read/Write: R
Initialized Value: Based on board’s module configuration.
Operational Settings: 0x0000 0000 indicates no Module found.
Module Slot Size
Edit this on GitLab
Function: Specifies the Memory Size (in bytes) allocated for the module in the specific slot position.
Type: unsigned binary word (32-bit)
Range: 0x0000 0000 to 0xFFFF FFFF
Read/Write: R
Initialized Value: Assigned by factory for the module.
Operational Settings: 0x0000 0000 indicates no Module found.
Module Slot ID
Edit this on GitLab
Function: Specifies the Model ID for the module in the specified slot position.
Type: 4-character ASCII string
Data Range: 0x0000 0000 to 0xFFFF FFFF
Read/Write: R
Initialized Value: Assigned by factory for the module.
Operational Settings: The Module ID is formatted as four ASCII bytes: three characters followed by a space. Module IDs are in little-endian order with a single space following the first three characters. For example, 'TL1' is '1LT', 'SC1' is '1CS' and so forth. Example below is for “TL1” (MSB justified). All value of 0000 0000 indicates no Module found.
D31 |
D30 |
D29 |
D28 |
D27 |
D26 |
D25 |
D24 |
D23 |
D22 |
D21 |
D20 |
D19 |
D18 |
D17 |
D16 |
ASCII Character (ex: 'T' - 0x54) |
ASCII Character (ex: 'L' - 0x4C) |
||||||||||||||
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
ASCII Character (ex: '1' - 0x31) |
ASCII Space (' ' - 0x20) |
Hardware Information Registers
The registers identified in this section provide information about the board’s hardware.
Product Serial Number
Edit this on GitLab
Function: Specifies the Board Serial Number.
Type: unsigned binary word (32-bit)
Data Range: 0x0000 0000 to 0xFFFF FFFF
Read/Write: R
Initialized Value: Serial number assigned by factory for the board.
Operational Settings: N/A
Platform
Function: Specifies the Board Platform Identifier. Values are for the ASCII characters for the NAI valid platforms (Identifiers).
Type: unsigned binary word (32-bit)
Data Range: See table below.
Read/Write: R
Initialized Value: ASCII code is for the Platform Identifier of the board
Operational Settings: Valid NAI platform and the associated value for the platform is shown below:
NAI Platform |
Platform Identifier |
ASCII Binary Values (Note: little-endian order of ascii values) |
3U VPX |
68 |
0x0000 3836 |
Model
Function: Specifies the Board Model Identifier. Value is for the ASCII characters for the NAI valid model.
Type: unsigned binary word (32-bit)
Data Range: See table below.
Read/Write: R
Initialized Value: ASCII code is for the Model Identifier of the board
Operational Settings: Example of NAI model and the associated value for the model is shown below:
NAI Model | ASCII Binary Values (Note: little-endian order of ascii values) |
---|---|
PPC |
0x0043 5050 |
Generation
Function: Specifies the Board Generation. Identifier values are for the ASCII characters for the NAI valid generation identifiers.
Type: unsigned binary word (32-bit)
Data Range: See table below.
Read/Write: R
Initialized Value: ASCII code is for the Generation Identifier of the board
Operational Settings: Example of NAI generation and the associated value for the generation is shown below:
NAI Generation | ASCII Binary Values (Note: little-endian order of ascii values) |
---|---|
2 |
0x0000 0032 |
Processor Count/Ethernet Count
Function: Specifies the Processor Count and Ethernet Count
Type: unsigned binary word (32-bit)
Data Range: See table below.
Read/Write: R
Operational Settings:
Processor Count - Integer: indicates the number of unique processor types on the motherboard.
NAI Board | Processor Count | Description | |
---|---|---|---|
3U-VPX |
68PPC2 |
2 |
NXP QorIQ T2080 Quad-Core e6500 Processor Xilinx Zynq 7015 |
Ethernet Interface Count - Indicates the number of Ethernet interfaces on the product motherboard. For example, Single Ethernet = 1; Dual Ethernet = 2.
D31 |
D30 |
D29 |
D28 |
D27 |
D26 |
D25 |
D24 |
D23 |
D22 |
D21 |
D20 |
D19 |
D18 |
D17 |
D16 |
Processor Count (See Table) |
|||||||||||||||
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
Ethernet Count (Based on Part Number Ethernet Options) |
Maximum Module Slot Count/ARM Platform Type
Function: Specifies the Maximum Module Slot Count and ARM Platform Type.
Type: unsigned binary word (32-bit)
Data Range: See table below.
Read/Write: R
Operational Settings:
Maximum Module Slot Count - Indicates the number of modules that can be installed on the product.
ARM Platform - Altera = 1; Xilinx X1 = 2; Xilinx X2 = 3; UltraScale = 4
NAI Board | Maximum Module Slot Count | ARM Platform Type | |
---|---|---|---|
3U-VPX |
68PPC2 |
2 |
Xilinx X2 = 3 |
D31 |
D30 |
D29 |
D28 |
D27 |
D26 |
D25 |
D24 |
D23 |
D22 |
D21 |
D20 |
D19 |
D18 |
D17 |
D16 |
Maximum Module Slot Count (See Table) |
|||||||||||||||
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
ARM Platform Type (See Table) |
Motherboard Firmware Information Registers
The registers in this section provide information on the revision of the firmware installed on the motherboard.
Motherboard Core (MBCore) Firmware Version
Edit this on GitLab
Function: Specifies the Version of the NAI factory provided Motherboard Core Application installed on the board.
Type: Two (2) unsigned binary word (32-bit)
Data Range: 0x0000 0000 to 0xFFFF FFFF
Read/Write: R
Operational Settings: The motherboard firmware version consists of four components: Major, Minor, Minor 2 and Minor 3.
Word 1 (Ex. 0007 0004 = 4.7 (Major.Minor) |
|||||||||||||||
D31 |
D30 |
D29 |
D28 |
D27 |
D26 |
D25 |
D24 |
D23 |
D22 |
D21 |
D20 |
D19 |
D18 |
D17 |
D16 |
Minor (ex: 0x0007 = 7) |
|||||||||||||||
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
Major (ex: 0x0004 = 4) |
|||||||||||||||
Word 2 (Ex. 0x0000 0000 = 0000 = 0.0 (Minor2.Minor3)) |
|||||||||||||||
D31 |
D30 |
D29 |
D28 |
D27 |
D26 |
D25 |
D24 |
D23 |
D22 |
D21 |
D20 |
D19 |
D18 |
D17 |
D16 |
Minor 3 (ex: 0x000 = 0) |
|||||||||||||||
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
Minor 2 (ex: 0x000 = 0) |
Motherboard Firmware Build Time/Date
Edit this on GitLab
Function: Specifies the Build Date/Time of the NAI factory provided Motherboard Core Application installed on the board.
Type: Two (2) unsigned binary word (32-bit)
Data Range: N/A
Read/Write: R
Operational Settings: The motherboard firmware time consists of the Build Date and Build Time.
Note
|
On some builds the the Date/Time fields are fixed to 0000 0000 to maintain binary consistency across builds. |
Word 1 - Build Date (ex. 0x030C 07E2 = 2018-12-03) |
|||||||||||||||
D31 |
D30 |
D29 |
D28 |
D27 |
D26 |
D25 |
D24 |
D23 |
D22 |
D21 |
D20 |
D19 |
D18 |
D17 |
D16 |
Day (ex: 0x03 = 3) |
Month (ex: 0x0C = 12) |
||||||||||||||
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
Year (ex: 0x07E2 = 2018) |
|||||||||||||||
Word 2 - Build Time (ex. 0x001B 3B0A = 10:59:27) |
|||||||||||||||
D31 |
D30 |
D29 |
D28 |
D27 |
D26 |
D25 |
D24 |
D23 |
D22 |
D21 |
D20 |
D19 |
D18 |
D17 |
D16 |
null (0x00) |
Seconds (ex: 0x1B = 27) |
||||||||||||||
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
Minutes (ex: 0x3B = 59) |
Hours (ex: 0x0A = 10) |
Motherboard Monitoring Registers
The registers in this provide motherboard temperature measurement information.
Motherboard Software Initialization Status
Function: Indicates the status of the motherboard software (MBCore) initialization.
Type: unsigned binary word (32-bit)
Data Range: 0 to 1
Read/Write: R
Initialized Value: 0
Operational Settings: Indicates whether the motherboard software initialization has not occurred (0) or has been completed (1). Any other value will indicate an error code.
Note
|
This register will be available beginning with MBCore version 4.129 and OpBM version 4.503. |
Temperature Readings Register
Edit this on GitLab
The temperature registers provide the current, maximum (from power-up) and minimum (from power-up) for the processor and PCB for Zynq processor.
These registers are only available on Xilinx Generation 5 platforms, and are periodically populated by the motherboard core application, which only runs in Petalinux and BareMetal. For other operating systems, refer to the naibrd Software Support Kit (SSK) naibsp_system_Monitor_Temperature_Get() routine to manually retrieve the temperature (NOTE: this feature is typically utilized for development/factory use only; contact the factory for additional details on potential use, if required).
Function: Specifies the Measured Temperatures on Motherboard.
Type: signed byte (8-bits) for each temperature reading - Six (6) 32-bit words
Data Range: 0x0000 0000 to 0xFFFF 0000
Read/Write: R
Initialized Value: Value corresponding to the measured temperatures based on the table below.
Operational Settings: The 8-bit temperature readings are signed bytes. For example, if the following register contains the value 0x6955 0000:
Example:
D31 |
D30 |
D29 |
D28 |
D27 |
D26 |
D25 |
D24 |
D23 |
D22 |
D21 |
D20 |
D19 |
D18 |
D17 |
D16 |
Max Zynq Core Temperature |
Max Zynq PCB Temperature |
||||||||||||||
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
0x00 |
0x00 |
The values would represent the following temperatures:
Temperature Measurements |
Data Bits |
Value |
Temperature (Celsius) |
Max Zynq Core Temperature |
D31:D24 |
0x69 |
+105° |
Max Zynq PCB Temperature |
D23:D16 |
0x55 |
+85° |
Temperature Readings
D31 |
D30 |
D29 |
D28 |
D27 |
D26 |
D25 |
D24 |
D23 |
D22 |
D21 |
D20 |
D19 |
D18 |
D17 |
D16 |
Zynq Core Temperature |
Zynq PCB Temperature |
||||||||||||||
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
0x00 |
0x00 |
D31 |
D30 |
D29 |
D28 |
D27 |
D26 |
D25 |
D24 |
D23 |
D22 |
D21 |
D20 |
D19 |
D18 |
D17 |
D16 |
0x00 |
0x00 |
||||||||||||||
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
0x00 |
0x00 |
D31 |
D30 |
D29 |
D28 |
D27 |
D26 |
D25 |
D24 |
D23 |
D22 |
D21 |
D20 |
D19 |
D18 |
D17 |
D16 |
Max Zynq Core Temp |
Max Zynq PCB Temp |
||||||||||||||
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
0x00 |
0x00 |
D31 |
D30 |
D29 |
D28 |
D27 |
D26 |
D25 |
D24 |
D23 |
D22 |
D21 |
D20 |
D19 |
D18 |
D17 |
D16 |
0x00 |
0x00 |
||||||||||||||
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
D31 |
D30 |
D29 |
D28 |
D27 |
D26 |
D25 |
D24 |
D23 |
D22 |
D21 |
D20 |
D19 |
D18 |
D17 |
D16 |
Min Zynq Core Temperature |
Min Zynq PCB Temperature |
||||||||||||||
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
D31 |
D30 |
D29 |
D28 |
D27 |
D26 |
D25 |
D24 |
D23 |
D22 |
D21 |
D20 |
D19 |
D18 |
D17 |
D16 |
0x00 |
0x00 |
||||||||||||||
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Higher Precision Temperature Readings Register
These registers provide higher precision readings of the current Zynq and PCB temperatures.
Higher Precision Zynq Core Temperature
Edit this on GitLab
Function: Specifies the Higher Precision Measured Zynq Core temperature on Interface Board.
Type: signed word (16-bits) for integer part and unsigned word (16-bits) for fractional part
Data Range: 0x0000 0000 to 0xFFFF FFFF
Read/Write: R
Initialized Value: Measured Zynq Core temperature on Interface Board
Operational Settings: The upper 16-bits represent the signed integer part of the temperature and the lower 16-bits represent the fractional part of the temperature with the resolution of 1/1000 of degree Celsius. For example, if the register contains the value 0x002B 0271, this represents Zynq Core Temperature = 43.625° Celsius, and value 0xFFF6 0177 represents -10.375° Celsius.
D31 |
D30 |
D29 |
D28 |
D27 |
D26 |
D25 |
D24 |
D23 |
D22 |
D21 |
D20 |
D19 |
D18 |
D17 |
D16 |
Signed Integer Part of Temperature |
|||||||||||||||
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
Fractional Part of Temperature |
Higher Precision Motherboard PCB Temperature
Edit this on GitLab
Function: Specifies the Higher Precision Measured Motherboard PCB temperature.
Type: signed word (16-bits) for integer part and unsigned word (16-bits) for fractional part
Data Range: 0x0000 0000 to 0xFFFF FFFF
Read/Write: R
Initialized Value: Measured Motherboard PCB temperature
Operational Settings: The upper 16-bits represent the signed integer part of the temperature and the lower 16-bits represent the fractional part of the temperature with the resolution of 1/1000 of degree Celsius. For example, if the register contains the value 0x0020 007D, this represents Interface PCB Temperature = 32.125° Celsius, and value 0xFFE8 036B represents -24.875° Celsius.
D31 |
D30 |
D29 |
D28 |
D27 |
D26 |
D25 |
D24 |
D23 |
D22 |
D21 |
D20 |
D19 |
D18 |
D17 |
D16 |
Signed Integer Part of Temperature |
|||||||||||||||
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
Fractional Part of Temperature |
Motherboard Health Monitoring Registers
The registers in this section provide a summary of motherboard temperature sensors and their corresponding bits. Additionally, this section provides an overview of the registers allocated to those sensors, which are used to monitor current/minimum/maximum temperature readings, upper & lower critical/warning temperature thresholds, and whether or not a programmed temperature threshold has been exceeded.
These registers are only available on Xilinx Generation 5 platforms, and are periodically populated by the motherboard core application, which only runs in Petalinux and BareMetal. For other operating systems, refer to the naibrd Software Support Kit (SSK) naibsp_system_Monitor_Temperature_Get() routine to manually retrieve the temperature (NOTE: this feature is typically utilized for development/factory use only; contact the factory for additional details on potential use, if required).
Motherboard Sensor Summary Status
Edit this on GitLab
Function: The corresponding sensor bit is set if the sensor has crossed any of its thresholds.
Type: unsigned binary word (32-bits)
Data Range: See table below
Read/Write: R
Initialized Value: 0
Operational Settings: This register provides a summary for motherboard sensors. When the corresponding sensor bit is set, the Sensor Threshold Status register for that sensor will indicate the threshold condition that triggered the event.
Bit(s) |
Sensor |
D31:D5 |
Reserved |
D4 |
Motherboard PCB Temperature |
D3 |
Zynq Core Temperature |
D2:D0 |
Reserved |
Motherboard Sensor Registers
Edit this on GitLab
The registers listed in this section apply to each module sensor listed for the Motherboard Sensor Summary Status register. Each individual sensor register provides a group of registers for monitoring motherboard temperatures readings. From these registers, a user can read the current temperature of the sensor in addition to the minimum and maximum temperature readings since power-up. Upper and lower critical/warning temperature thresholds can be set and monitored from these registers. When a programmed temperature threshold is crossed, the Sensor Threshold Status register will set the corresponding bit for that threshold. The figure below shows the functionality of this group of registers when accessing the Zynq Core Temperature sensor as an example.
Sensor Threshold Status
Edit this on GitLab
Function: Reflects which threshold has been crossed
Type: unsigned binary word (32-bits)
Data Range: See table below
Read/Write: R
Initialized Value: 0
Operational Settings: The associated bit is set when the sensor reading exceed the corresponding threshold settings.
Bit(s) |
Description |
D31:4 |
Reserved |
D3 |
Exceeded Upper Critical Threshold |
D2 |
Exceeded Upper Warning Threshold |
D1 |
Exceeded Lower Critical Threshold |
D0 |
Exceeded Lower Warning Threshold |
Sensor Current Reading
Edit this on GitLab
Function: Reflects current reading of temperature sensor
Type: Single Precision Floating Point Value (IEEE-754)
Data Range: Single Precision Floating Point Value (IEEE-754)
Read/Write: R
Initialized Value: N/A
Operational Settings: The register represents current sensor reading as a single precision floating point value. For example, for a temperature sensor, register value 0x41C6 0000 represents temperature = 24.75° Celsius.
Sensor Minimum Reading
Edit this on GitLab
Function: Reflects minimum value of temperature sensor since power up
Type: Single Precision Floating Point Value (IEEE-754)
Data Range: Single Precision Floating Point Value (IEEE-754)
Read/Write: R
Initialized Value: N/A
Operational Settings: The register represents minimum sensor value as a single precision floating point value. For example, for a temperature sensor, register value 0x41C6 0000 represents temperature = 24.75° Celsius.
Sensor Maximum Reading
Edit this on GitLab
Function: Reflects maximum value of temperature sensor since power up
Type: Single Precision Floating Point Value (IEEE-754)
Data Range: Single Precision Floating Point Value (IEEE-754)
Read/Write: R
Initialized Value: N/A
Operational Settings: The register represents maximum sensor value as a single precision floating point value. For example, for a temperature sensor, register value 0x41C6 0000 represents temperature = 24.75° Celsius.
Sensor Lower Warning Threshold
Edit this on GitLab
Function: Reflects lower warning threshold of temperature sensor
Type: Single Precision Floating Point Value (IEEE-754)
Data Range: Single Precision Floating Point Value (IEEE-754)
Read/Write: R/W
Initialized Value: Default lower warning threshold (value dependent on specific sensor)
Operational Settings: The register represents sensor lower warning threshold as a single precision floating point value. For example, for a temperature sensor, register value 0xC220 0000 represents temperature = -40.0° Celsius.
Sensor Lower Critical Threshold
Edit this on GitLab
Function: Reflects lower critical threshold of temperature sensor
Type: Single Precision Floating Point Value (IEEE-754)
Data Range: Single Precision Floating Point Value (IEEE-754)
Read/Write: R/W
Initialized Value: Default lower critical threshold (value dependent on specific sensor)
Operational Settings: The register represents sensor lower critical threshold as a single precision floating point value. For example, for a temperature sensor, register value 0xC25C 0000 represents temperature = -55.0° Celsius.
Sensor Upper Warning Threshold
Edit this on GitLab
Function: Reflects upper warning threshold of temperature sensor
Type: Single Precision Floating Point Value (IEEE-754)
Data Range: Single Precision Floating Point Value (IEEE-754)
Read/Write: R/W
Initialized Value: Default upper warning threshold (value dependent on specific sensor)
Operational Settings: The register represents sensor upper warning threshold as a single precision floating point value. For example, for a temperature sensor, register value 0x42AA 0000 represents temperature = 85.0° Celsius.
Sensor Upper Critical Threshold
Edit this on GitLab
Function: Reflects upper critical threshold of temperature sensor
Type: Single Precision Floating Point Value (IEEE-754)
Data Range: Single Precision Floating Point Value (IEEE-754)
Read/Write: R/W
Initialized Value: Default upper critical threshold (value dependent on specific sensor)
Operational Settings: The register represents sensor upper critical threshold as a single precision floating point value. For example, for a temperature sensor, register value 0x42FA 0000 represents temperature = 125.0° Celsius.
Interrupt Vector and Steering
Edit this on GitLab
When interrupts are enabled, the interrupt vector associated with the specific interrupt can be programmed (typically with a unique number/identifier) such that it can be utilized in the Interrupt Service Routine (ISR) to identify the type of interrupt. When an interrupt occurs, the contents of the Interrupt Vector registers is reported as part of the interrupt mechanism. In addition to specifying the interrupt vector, the interrupt can be directed (“steered”) to the native bus or to the application running on the onboard ARM processor.
Note
|
The Interrupt Vector and Interrupt Steering registers are mapped to the Motherboard Common Memory and these registers are associated with the Module Slot position (refer to Function Register Map). |
Interrupt Vector
Function: Set an identifier for the interrupt.
Type: unsigned binary word (32-bit)
Data Range: 0x0000 0000 to 0xFFFF FFFF
Read/Write: R/W
Initialized Value: 0
Operational Settings: When an interrupt occurs, this value is reported as part of the interrupt mechanism.
Interrupt Steering
Function: Sets where to direct the interrupt.
Type: unsigned binary word (32-bit)
Data Range: See table Read/Write: R/W
Initialized Value: 0
Operational Settings: When an interrupt occurs, the interrupt is sent as specified:
Direct Interrupt to VME |
1 |
Direct Interrupt to ARM Processor (via SerDes) (Custom App on ARM or NAI Ethernet Listener App) |
2 |
Direct Interrupt to PCIe Bus |
5 |
Direct Interrupt to cPCI Bus |
6 |
Module Control Command Registers
Edit this on GitLab
Function: Provides the ability to command individual Modules to Reset, Power-down, or Power-up.
Type: unsigned binary word (32-bit)
Data Range: 0x0000 0000 to 0xFFFF FFFF
Read/Write: R/W
Operational Settings: The Module Control Commands registers provide the ability to request individual Modules to perform one of the following functions – Reset, Power-down, Power-up. Only one command can be requested at a time per Module. For example, one can’t request a Reset and a Power-down at the same time for the same Module. Once the command is recognized and handled, the bit will be cleared.
Note
|
Clearing of the command request bit only indicates the command has been recognized and initiated, it does not indicate that the command action has been completed. |
There is one Control Command Request register per Module. Each register is Bit-mapped as shown in the table below:
Bit(s) |
Description |
D31:D3 |
Reserved |
D2 |
Module Power-up |
D1 |
Module Power-down |
D0 |
Module Reset |
Modules Health Monitoring Registers
Module Communications Status
Edit this on GitLab
Function: Provides the ability to monitor factors may effect communication status of a Module.
Type: unsigned binary word (32-bit)
Data Range: 0x0000 0000 to 0xFFFF FFFF
Read/Write: R
Operational Settings: The Module Communications registers provide the ability to monitor factors that may effect the Communications Status of individual Modules. There is one register per Module. Each communication factor is bit mapped to the register as shown in the table below:
Bit(s) |
Description |
D31:D5 |
Reserved |
D4 |
Module Communications Error Detected |
D3 |
Module Firmware Not Ready |
D2 |
Module LinkInit Not Done |
D1 |
Module Not Detected |
D0 |
Module Powered-down |
Module Powered-down: The user can request an individual Module be powered-down (see Module Control Command Requests). Once the request is detected and acted upon, this bit will be set. Once powered-down, you will not be able to communicate with the Module.
Module Not Detected: If a Module in this slot has not been detected, you will not be able to communicate with the Module.
Module LinkInit Not Done: Module communications is accomplished via SERDES. LinkInit is required to establish a connection to the Module. If the LinkInit has not been successfully completed, you will not be able to communicate with the Module.
Module Firmware Not Ready: Each Module has Firmware that is ready from Module QSPI and loaded for execution. If this Firmware was not loaded and started successfully, you may not be able to communicate with the Module.
Module Communications Error Detected: If at some point during run-time, communications with the Module has failed, this bit will be set.
Module BIT Status
Edit this on GitLab
Function: Provides the ability to monitor the individual Module BIT Status.
Type: unsigned binary word (32-bit)
Data Range: 0x0000 0000 to 0xFFFF FFFF
Read/Write: R
Operational Settings: The Module BIT Status registers provide the ability to monitor individual Module BIT results as Latched and current value. A 1 in any bit field indicates BIT failure for the Module in that slot.
Bit(s) |
Description |
D31:D19 |
Reserved |
D18 |
Module Slot 2 BIT Failure (current value) |
D17 |
Module Slot 1 BIT Failure (current value) |
D16 |
Reserved |
D15:D3 |
Reserved |
D2 |
Module Slot 2 BIT Failure - Latched |
D1 |
Module Slot 1 BIT Failure - Latched |
D0 |
Reserved |
Scratchpad Area
Edit this on GitLab
Function: Registers reserved as scratch pad for customer use.
Type: unsigned binary word (32-bit)
Data Range: 0x0000 0000 to 0xFFFF FFFF
Read/Write: R/W
Operational Settings: This area in memory is reserved for customer use.
MOTHERBOARD FUNCTION REGISTER MAP
Key:
Bold Underline = Measurement/Status/Board Information
Bold Italic = Configuration/Control
Module Information Registers
0x03FC |
Module Slot Addressing Ready |
R |
0x0400 |
Module Slot 1 Address |
R |
0x0404 |
Module Slot 2 Address |
R |
0x0430 |
Module Slot 1 Size |
R |
0x0434 |
Module Slot 2 Size |
R |
0x0460 |
Module Slot 1 ID |
R |
0x0464 |
Module Slot 2 ID |
R |
Hardware Information Registers
0x0020 |
Product Serial Number |
R |
0x0024 |
Platform |
R |
0x0028 |
Model |
R |
0x002C |
Generation |
R |
0x0030 |
Processor Count/Ethernet Count |
R |
0x0034 |
Maximum Module Slot Count/ARM Platform Type |
R |
Motherboard Firmware Information Registers
Motherboard Core Information
0x0100 |
MBCore Major/Minor Version |
R |
0x0104 |
MBCore Minor 2/3 Version |
R |
0x0108 |
MBCore Build Date |
R |
Motherboard Monitoring Registers
0x0124 |
MB SW Init Status |
R |
Temperature Readings
0x0200 |
Current Zynq Temperatures |
R |
0x0204 |
Reserved |
R |
0x0208 |
Max Zynq Temperatures |
R |
0x020C |
Reserved |
R |
0x0210 |
Min Zynq Temperatures |
R |
0x0214 |
Reserved |
R |
Higher Precision Temperature Readings
0x0230 |
Current Zynq Core Temperature |
R |
0x0234 |
Current Motherboard PCB Temperature |
R |
Interrupt Vector and Steering
0x0500 - 0x057C |
Module 1 Interrupt Vector 1 - 32 |
R/W |
0x0600 - 0x067C |
Module 1 Interrupt Steering 1 - 32 |
R/W |
0x0700 - 0x077C |
Module 2 Interrupt Vector 1 - 32 |
R/W |
0x0800 - 0x087C |
Module 2 Interrupt Steering 1 - 32 |
R/W |
Module Control Command Requests
0x01D8 |
Module Slot 1 Command Request |
R/W |
0x01DC |
Module Slot 2 Command Request |
R/W |
ETHERNET
Edit this on GitLab
(For detailed supplement, please visit the NAI web-site specific product page and refer to: Ethernet Interface for Generation 5 SBC and Embedded IO Boards Specification)
The Ethernet Interface Option allows communications and control access to all function modules either via the system BUS or Ethernet ports 1 or 2.
Ethernet 1 |
Ethernet 2 |
|
The default IP address: |
192.168.1.16 |
192.168.2.16 |
The default subnet: |
255.255.255.0 |
255.255.255.0 |
The default gateway: |
192.168.1.1 |
192.168.2.1 |
Note
|
Actual "as shipped" card Ethernet default IP addresses may vary based upon final ATP configuration(s).) Ethernet Port IP addresses may be field re-flashed to new default programmed addressed via use of the “IP Configuring for Ethernet Supported Boards” FLASH software support kit, available/documented from the specific product web page. |
The NAI interface supports IPv4 and IPv6 and both the TCP and UDP protocols. The Ethernet Operation Mode Command Listener application running on the motherboard host processor implements the operation interface. The listener is operational on startup through the nai_MBStartup process and listen on specific ports for commands to process. The default ports are listed below:
-
TCP1 - Port 52801
-
TCP2 - Port 52802
-
UDP1 - Port 52801
-
UDP2 - Port 52802
While the listener is active, note that interrupts from the motherboard do not trigger. The listener can be disabled by turning off the nai_MBStartup process through the Motherboard EEPROM. To turn off nai_MBStartup use the command mbeeprom_util set MBStartupInitOnlyFlag 1 in the console, either by serial port or telnet to the motherboard, and then reboot the system. To turn on the nai_MBStartup use the command mbeeprom_util set MBStartupInitOnlyFlag 0 in the console, either by serial port or telnet to the motherboard, and then reboot the system.
Ethernet Message Framework
The interface uses a specific message framework for all commands and responses. All messages begin with a Preamble code and end with a Postamble code. The message framework is shown below.
Preamble 2 bytes Always 0xD30F |
SequenceNo 2 bytes |
Type Code 2 byte |
Message Length (2 bytes) |
Payload (0..1414 bytes) |
Postamble 2 bytes Always 0xF03D |
Message Elements
Preamble |
The Preamble is used to delineate the beginning of a message frame. The Preamble is always 0xD30F. |
SequenceNo |
The SequenceNo is used to associate Commands with Responses. |
Type Code |
Type Codes are used to define the type of Command or Response the message contains. |
Message Length |
The Message Length is the number of bytes in the complete message frame starting with and including the Preamble and ending with and including the Postamble. |
Payload |
The Payload contains the unique data that makes up the command or response. Payloads vary based on command type. |
Postamble |
The Postamble is use to delineate the end of a message frame. The Postamble is always 0xF03D. |
Notes
-
The messaging protocol applies only to card products.
-
Messaging is managed by the connected (client) computer. The client computer will send a single message and wait for a reply from the card. Multiple cards may be managed from a single computer, subject to channel and computer capacity.
Board Addressing
The interface provides two main addressing areas: Onboard and Off-board.
Onboard addressing refers to accessing resources located on the board that is implementing the operation interface (including its modules).
Off-board addressing refers to accessing resources located on another board reachable via VME, PCI, or other bus. Off-board addressing requires a Master/Slave configuration.
The user must always specify if a particular address is Onboard or Off-board. See the command descriptions for the onboard and off-board flags.
Within a particular board (Onboard or Off-board), the address space is broken up into two areas: Motherboard Common Address Space and Module Address Space. All addresses are 32-bit.
Motherboard Common Address Space starts at 0x00000000 and ends at 0x00004000. This is a 4Kx32-bit address space (16 kbytes).
Module Address Space starts at 0x00004000. Module addressing is dynamically configured at startup. NAI boards support between 1 and 6 modules. The minimum module address space size is 4Kx32 (16 kbytes) and module sizes are always a multiple of 4Kx32.
Module addressing is dynamic and cumulative. The first detected module (starting with Slot 1) is given an address of 0x00004000. The 2nd detected Module is given an address of:
First_Detected_Module_Address + First_Detected_Module_Size
Note
|
Slots do not define addresses. |
If no module is detected in a module slot, that slot is not given an address. Therefore, if the first detected Module is in Slot 2, then that module address will be 0x00004000. If the next detected module is in Slot 4, then the address of that Module will be:
Second_Detected_Module_Address = First_Detected_Module_Address + First_Detected_Module_Size
If a 3rd Module is detected in Slot 6, then the address of that Module will be:
Third_Detected_Module_Address = Second_Detected_Module_Address + Second_Detected_Module_Size
Note
|
Module addresses are calculated at each board startup when the modules are detected. Therefore, if a module should fail to be detected due to malfunction or because it was removed from the motherboard, the addresses of the modules that follow it in the slot sequence will be altered. This is important to note when programming to this interface. |
Users can always retrieve the Module Addresses, Module Sizes and Module IDs from the fixed Motherboard Common address area. This data is set upon each board startup. While the Module Addressing is dynamic, the address where these addresses are stored is fixed. For example, to find the startup address of the module location in Slot 3, refer to the MB Common Address 0x00000408 from the Motherboard Common Addresses table that follows.
Ethernet Wiring Convention
RJ-45 Pin |
T568A Color |
T568B Color |
10/100Base-T |
1000BASE-T |
NAI wiring convention |
1 |
white/green stripe |
white/orange stripe |
TX+ |
DA+ |
ETH-TP0+ |
2 |
green |
orange |
TX- |
DA- |
ETH-TP0- |
3 |
white/orange stripe |
white/green stripe |
RX+ |
DB+ |
ETH-TP1+ |
4 |
blue |
blue |
DC+ |
ETH-TP2+ |
|
5 |
white/blue stripe |
white/blue stripe |
DC- |
ETH-TP2- |
|
6 |
orange |
green |
RX- |
DB- |
ETH-TP1- |
7 |
white/brown stripe |
white/brown stripe |
DD+ |
ETH-TP3+ |
|
8 |
brown |
brown |
DD- |
ETH-TP3- |
68PPC2 CONNECTOR/PIN-OUT INFORMATION
Front and Rear Panel Connectors
The 68PPC2 3U OpenVPX SBC & multifunction I/O board is available in two configurations: convection or conduction-cooled. The 6PPC2 follows the OpenVPX “Payload Slot Profile” configured as:
Slot profile: |
SLT3-PAY-2F2T-14.2.3 |
Module profile: |
MOD3-PAY-2F2T-16.2.3-3 |
User I/O is available through the (J3, J4) front panel connectors when card is configured with front panel I/O and through the OpenVPX user defined rear I/O connectors P1, P2 (see part number and pin-out information).
Front and Rear Panel Connectors J3, J4 (Convection-Cooled)
44-pin male connectors, 2mm, Harwin P/N M80-5114422.
Mate kit: "Custom Hood Kit" part # M80C108448C (or equivalent); Includes connector, backshell, pins & jackscrews. This mating connector kit may be purchased separately as NAI P/N 05-0119 (contact factory).
Connectors P0, P1, P2
P0 - OpenVPX and Bus Controller interface only / 2mm 5x22 w/key, standard OpenVPX (AMP 352068-1 or equivalent).
P1 - Bus Controller and configured I/O / 2mm 5x22 wo/key, standard OpenVPX (AMP 5352152-1 or equivalent). See mod slot pin-out.
P2 - Configured I/O / 2mm 5x22 wo/key, standard OpenVPX (AMP 5352152-1 or equivalent). See mod slot pin-out.
Panel LEDs
Front Panel LEDs indications (only available on air-cooled units).
LED |
ILLUMINATED |
EXTINGUISHED |
GRN: |
Blinking: Initializing Steady On: Power-On / Ready |
Power off |
RED: |
Module BIT error |
No BIT fault |
YEL: (flash) |
Card access (bus or Gig-E activity) |
No card activity |
Front I/O Utility Connector J5
The 68PPC2 utilizes a Mini-HDMI card edge connector J5, available on either convection or conduction cooled configurations, which provides the following signals:
-
USB (port1)
-
Serial (port 1) (console/debug)
-
Ethernet port 1 (factory configuration option - Ethernet port1 may be redirected to rear I/O)
NAI also provides an optional “breakout” adapter board with a mini-HDMI plug-to-plug cable “kit” (NAI P/N 75SBC4-BB). The “breakout” adapter board and a Mini-HDMI cable allow for standard I/O connections to Ethernet, mini-USB-B, and asynchronous serial (DB9). Consult the factory for availability.
Front J5 |
Standard Configuration |
Option |
J5-01 |
N/C |
N/C |
J5-02 |
N/C |
ETH1-TP0+ |
J5-03 |
N/C |
ETH1-TP0- |
J5-04 |
N/C |
N/C |
J5-05 |
N/C |
ETH1-TP1+ |
J5-06 |
N/C |
ETH1-TP1- |
J5-07 |
N/C |
N/C |
J5-08 |
N/C |
ETH1-TP2+ |
J5-09 |
N/C |
ETH1-TP2- |
J5-10 |
N/C |
N/C |
J5-11 |
N/C |
ETH1-TP3+ |
J5-12 |
N/C |
ETH1-TP3- |
J5-13 |
GND |
GND |
J5-14 |
USB1+5V |
USB1+5V |
J5-15 |
USB1-DP |
USB1-DP |
J5-16 |
USB1-DN |
USB1-DN |
J5-17 |
SER1-RXD |
SER1-RXD |
J5-18 |
SER1-TXD |
SER1-TXD |
J5-19 |
GND |
GND |
Signal Descriptions J5
Signal Name |
Description |
ETH1-TPx |
Ethernet port 1 signals (4 pair) 10/100/1000 twisted pair signals (Optional) |
USB1-DP |
USB port 1 differential Data |
USB1-DN |
USB port 1 differential Data - |
USB1+5V |
USB port 1 + 5 V output power, Current limited to 500mA. |
SER1-TXD |
Asynchronous transmit serial data port 1 (out) |
SER1-RXD |
Asynchronous received serial data port 1 (in) |
GND |
Digital Ground and power (5, +12, -12) return |
Rear I/O VPX Connectors P0-P2 (Conduction-Cooled)
The 68G5 3U OpenVPX multifunction I/O board provides interface via the rear VPX connectors.
Rear I/O Summary
P0 - Utility plane. Contains the following signal definitions:
Power |
Primary +5V, +3.3V_AUX, +/- 12V and System GND |
Geographical Address Pins |
GA0# - GA4#, GAP# |
Card reset |
SYSRST# signal |
VPX AUX/REF CLK/IPMB |
(as/if applicable) |
P1 - Defined as primarily Data/Control Planes (User defined I/O secondary)
High Speed Switched Fabric Interface |
Root-complex ultra-thin pipes; four (4) PCIe GEN 2.0(x1) ports. |
Ethernet |
Dual Gig-E port option(s) are available and defined (See Part Number Designation section) |
P2 - User defined I/O (primary)
Rear I/O Utility Plane (P0)
The P0 (Utility) Plane contains the primary power, bus and utility signals for the OpenVPX board. Additionally, several of the user defined pins can be utilized for Geographical Addressing and a parallel SYSRST# signal. Signals defined as N/C currently have no functionality associated and is not required for general operation.
Rear I/O Data/Control Planes (P1)
The 68PPC2 is a root-complex SBC with four (4) PCIe ver. 2.0 x1 high-speed serial interface fabric bus lanes. As defined in the OpenVPX payload slot specifications, the 68PPC2 provides two ‘fat pipes’ (one Tx and one Rx differential pair), which provides additional user I/O definition opportunity. Additionally, the 68PPC2 can be commanded/controlled via dual port Gig-E (options for either 10/100/1000Base-T and/or 1000Base-KX (SerDes) Interfaces). Additional module I/O is also defined on the P1 user defined plane. Signals defined as N/C currently have no functionality associated or are considered optional and are not required for general operation.
USER I/O - Defined Area (User Defined I/O) (P2)
The following pages contain the 'user defined' I/O data area front and rear panel pin-outs with their respective signal designations for all module types currently offered/configured for the 68PPC2 platform. The card is designed to route the function module I/O signals to the front and rear I/O connector. The following I/O connector pin-out is based upon the function module designated in the module slot. Signals defined as N/C currently have no functionality associated or are considered optional and are not required for general operation.
Front Panel (J3/J4) Connectors Layout
Each connector provides 44 pins of I/O.
Note
|
Front panel I/O only available on air-cooled versions (verify part numbering, contact factory) |
Front (J3/J4) & Rear (P2) User I/O Mapping (Global)
Front/Rear User I/O Mapping (for reference) is shown below, with respect to DATAIO. Additional information on pin-outs can be found in the Module Operational Manuals.
Slot 1 |
Slot 2 |
|||||
Module Signal (Ref Only) |
Front I/O (J3) |
Rear I/O (J2) |
Global (MB) |
Front I/O (J4) |
Rear I/O (J2) |
Global (MB) |
DATIO1 |
J3-2 |
D9 |
J4-2 |
B10 |
||
DATIO2 |
J3-24 |
E9 |
J4-24 |
C10 |
||
DATIO3 |
J3-3 |
A9 |
J4-3 |
E10 |
||
DATIO4 |
J3-25 |
B9 |
J4-25 |
F10 |
||
DATIO5 |
J3-5 |
E8 |
J4-5 |
A11 |
||
DATIO6 |
J3-27 |
F8 |
J4-27 |
B11 |
||
DATIO7 |
J3-7 |
B8 |
J4-7 |
D11 |
||
DATIO8 |
J3-29 |
C8 |
J4-29 |
E11 |
||
DATIO9 |
J3-8 |
D7 |
J4-8 |
B12 |
||
DATIO10 |
J3-30 |
E7 |
J4-30 |
C12 |
||
DATIO11 |
J3-10 |
A7 |
J4-10 |
E12 |
||
DATIO12 |
J3-32 |
B7 |
J4-32 |
F12 |
||
DATIO13 |
J3-12 |
E6 |
J4-12 |
A13 |
||
DATIO14 |
J3-34 |
F6 |
J4-34 |
B13 |
||
DATIO15 |
J3-13 |
B6 |
J4-13 |
D13 |
||
DATIO16 |
J3-35 |
C6 |
J4-35 |
E13 |
||
DATIO17 |
J3-15 |
D5 |
J4-15 |
B14 |
||
DATIO18 |
J3-37 |
E5 |
J4-37 |
C14 |
||
DATIO19 |
J3-17 |
A5 |
J4-17 |
E14 |
||
DATIO20 |
J3-39 |
B5 |
J4-39 |
F14 |
||
DATIO21 |
J3-18 |
E4 |
J4-18 |
A15 |
||
DATIO22 |
J3-40 |
F4 |
J4-40 |
B15 |
||
DATIO23 |
J3-20 |
B4 |
J4-20 |
D15 |
||
DATIO24 |
J3-42 |
C4 |
J4-42 |
E15 |
||
DATIO25 |
J3-4 |
33 |
J4-4 |
B16 |
||
DATIO26 |
J3-26 |
E3 |
J4-26 |
C16 |
||
DATIO27 |
J3-9 |
A3 |
J4-9 |
E16 |
||
DATIO28 |
J3-31 |
B3 |
J4-31 |
F16 |
||
DATIO29 |
J3-14 |
E2 |
J4-14 |
G15 |
||
DATIO30 |
J3-36 |
F2 |
J4-36 |
G13 |
||
DATIO31 |
J3-19 |
B2 |
J4-19 |
G11 |
||
DATIO32 |
J3-41 |
C2 |
J4-41 |
G9 |
||
DATIO33 |
J3-6 |
J4-6 |
G7* |
|||
DATIO34 |
J3-28 |
J4-28 |
G5* |
|||
DATIO35 |
J3-11 |
J4-11 |
G3* |
|||
DATIO36 |
J3-33 |
J4-33 |
G1* |
|||
DATIO37 |
J3-16 |
J4-16 |
||||
DATIO38 |
J3-38 |
J4-38 |
||||
DATIO39 |
J3-21 |
J4-21 |
||||
DATIO40 |
J3-43 |
J4-43 |
||||
J3-1 |
SYS GND |
J4-1 |
SYS GND |
|||
J3-23 |
CHASSIS |
J4-23 |
CHASSIS |
|||
J3-22, 44 |
N/C |
J4-22, 44 |
N/C |
Notes:
Gx* |
Available when Module 2 special option (DATIO 33-36) selected (see part number designation) |
Connector Signal/Pin-Out Notes
NAI Synchro/Resolver Naming Convention
Signal |
Resolver |
Synchro |
S1 |
SIN(-) |
X |
S2 |
COS(+) |
Z |
S3 |
SIN(+) |
Y |
S4 |
COS(-) |
No connect |
Additional Pin-Out Notes
1. Isolated Discrete Module (DT2) |
For 'differential' A/D; “P” designation considered 'positive' input pin, “N” pin designation considered 'negative' input pin. |
2. Discrete I/O Module (DT1) |
All GND pins are common within the module, but, isolated from |
system/power GND. Each pin should be individually wired for optimal |
power current distribution. |
3. TTL I/O Module (TL1) |
I/O referenced to system power GND. |
4. CMRP - A/D Module(s) (ADx) |
The Common Mode Reference Point (CMRP) is an isolated reference connection for all the A/D channels. For expected high common mode voltage applications, it is recommended that the pin designated as CMRP be referenced (direct or resistor coupled) to the signal source GND reference (must have current path between CMRP and signal source generator) to minimize common mode voltage within the acceptable specification range. All channels within the module are independent but share a CMRP, which is isolated from system/power GND. |
SYNCHRO/RESOLVER AND LVDT/RVDT SIMULATION MODULE CODE TABLES
Edit this on GitLab
Select the Digital-to-Synchro (DSx), Digital-to-Resolver (DRx) or Digital-to-LVDT/RVDT (DLx) module ID corresponding to the application operating parameters required from the following code table (where x = the specific module ID designator). Customer should indicate the actual frequency applicable the design to assure that the correct default band width is set at the factory. All Input and Reference voltages are auto ranging. Frequency/voltage band tolerances +/- 10%. For availability and ranges other than those listed contact the factory. Specifications may be subject to change.
-
Single Channel module pending availability (contact factory)
Module ID |
Format |
Channel(s) |
Output Voltage VL-L (Vrms) |
Reference Voltage (Vrms) |
Frequency Range (Hz) |
Power / CH maximum (VA) |
Notes |
DS1 |
SYN |
1* |
2 - 28 |
2 - 115 |
47 - 1 K |
3 |
|
DR1 |
RSL |
||||||
DL1 |
LVDT/RVDT |
||||||
DS2 |
SYN |
1* |
2 - 28 |
2 - 115 |
1 K - 5 K |
3 |
|
DR2 |
RSL |
||||||
DL2 |
LVDT/RVDT |
||||||
DS3 |
SYN |
1* |
2 - 28 |
2 - 115 |
5 K - 10 K |
3 |
|
DR3 |
RSL |
||||||
DL3 |
LVDT/RVDT |
||||||
DS4 |
SYN |
1* |
2 - 28 |
2 - 115 |
10 K - 20 K |
3 |
|
DR4 |
RSL |
||||||
DL4 |
LVDT/RVDT |
||||||
DS5 |
SYN |
1* |
28 - 90 |
2 - 115 |
47 - 1 K |
3 |
|
DR5 |
RSL |
||||||
DL5 |
LVDT/RVDT |
||||||
DSX |
SYN |
1* |
X |
X |
X |
X |
X = TBD; special configuration, requires special part number code designation, contact factory |
DRX |
RSL |
||||||
DLX |
LVDT/RVDT |
||||||
DSA |
SYN |
2 |
2 - 28 |
2 - 115 |
47 - 1 K |
1.5 |
|
DRA |
RSL |
||||||
DLA |
LVDT/RVDT |
||||||
DSB |
SYN |
2 |
2 - 28 |
2 - 115 |
1 K - 5 K |
1.5 |
|
DRB |
RSL |
||||||
DLB |
LVDT/RVDT |
||||||
DSC |
SYN |
2 |
2 - 28 |
2 - 115 |
5 K - 10 K |
1.5 |
|
DRC |
RSL |
||||||
DLC |
LVDT/RVDT |
||||||
DSD |
SYN |
2 |
2 - 28 |
2 - 115 |
10 K - 20 K |
1.5 |
|
DRD |
RSL |
||||||
DLD |
LVDT/RVDT |
||||||
DSE |
SYN |
2 |
28 - 90 |
2 - 115 |
47 - 1 K |
2.2 |
|
DRE |
RSL |
||||||
DLE |
LVDT/RVDT |
||||||
DSY |
SYN |
2 |
Y |
Y |
Y |
Y |
Y = TBD; special configuration, requires special part number code designation, contact factory |
DRY |
RSL |
||||||
DLY |
LVDT/RVDT |
||||||
DSJ |
SYN |
3 |
2 - 28 |
2 - 115 |
47 - 1 K |
0.5 |
|
DRJ |
RSL |
||||||
DLJ |
LVDT/RVDT |
||||||
DSK |
SYN |
3 |
2 - 28 |
2 - 115 |
1 K - 5 K |
0.5 |
|
DRK |
RSL |
||||||
DLK |
LVDT/RVDT |
||||||
DSL |
SYN |
3 |
2 - 28 |
2 - 115 |
5 K - 10 K |
0.5 |
|
DRL |
RSL |
||||||
DLL |
LVDT/RVDT |
||||||
DSM |
SYN |
3 |
2 - 28 |
2 - 115 |
10 K - 20 K |
0.5 |
|
DRM |
RSL |
||||||
DLM |
LVDT/RVDT |
||||||
DSN |
SYN |
3 |
28 - 90 |
2 - 115 |
47 - 1 K |
0.5 |
|
DRN |
RSL |
||||||
DLN |
LVDT/RVDT |
||||||
DSZ |
SYN |
3 |
Z |
Z |
Z |
Z |
Z = TBD; special configuration, requires special part number code designation, contact factory |
DRZ |
RSL |
||||||
DLZ |
LVDT/RVDT |
SYNCHRO/RESOLVER AND LVDT/RVDT MEASUREMENT MODULE CODE TABLES
SYN/RSL Four-Channel Measurement (Field Programmable SYN/RSL)
Select the Synchro/Resolver-to-Digital (SDx) module ID corresponding to the application operating parameters required from the following code table (where x = the specific module ID designator). Customer should indicate the actual frequency applicable to the design to assure that the correct default band width is set at the factory. All Input and Reference voltages are auto ranging. For availability and ranges other than those listed contact the factory. Specifications may be subject to change.
Frequency/voltage band tolerances +/- 10%.
Module ID |
Input Voltage V (Vrms) |
Reference Voltage (Vrms) |
Frequency Range (Hz) |
Notes |
SD1 |
2 - 28 |
2 - 115 |
47 - 1 K |
|
SD2 |
2 - 28 |
2 - 115 |
1K - 5 K |
|
SD3 |
2 - 28 |
2 - 115 |
5K - 10 K |
|
SD4* |
2 - 28 |
2 - 115 |
10K - 20 K |
|
SD5 |
28 - 90 |
2 - 115 |
47 - 1 K |
|
SDX* |
X |
X |
X |
X = TBD; special configuration, requires special part number code designation, contact factory |
*Consult factory for availability
LVDT/RVDT Four-Channel Measurement (Field Programmable 2, 3 or 4-Wire)
Select the LVDT/RVDT-to-Digital (LDx) module ID corresponding to the application operating parameters required from the following code table (where x = the specific module ID designator). Customer should indicate the actual frequency applicable to the design to assure that the correct default band width is set at the factory. All Input and Excitation voltages are auto ranging. For availability and ranges other than those listed contact the factory. Specifications may be subject to change.
Frequency/voltage band tolerances +/- 10%.
Module ID |
Input Signal Voltage V (Vrms) |
Excitation Voltage (Vrms) |
Frequency Range (Hz) |
Notes |
LD1 |
2 - 28 |
2 - 115 |
47 - 1 K |
|
LD2 |
2 - 28 |
2 - 115 |
1K - 5 K |
|
LD3 |
2 - 28 |
2 - 115 |
5K - 10 K |
|
LD4* |
2 - 28 |
2 - 115 |
10K - 20 K |
|
LD5 |
28 - 90 |
2 - 115 |
47 - 1 K |
|
LDX* |
X |
X |
X |
X = TBD; special configuration, requires special part number code designation, contact factory |
*Consult factory for availability
APPENDIX A: 68PPC2 BOOT INSTRUCTIONS (NEED FOR 68PPC2)
Edit this on GitLab
VxWorks Boot ROM
Sample VxWorks system boot - console print:
(items highlighted in red indicate user intervention for re-directing boot parameters)
boot device : memac
unit number : 2
processor number : 0
host name : host
file name : C:\WindRiver\workspace\68ppc2\default\vxWorks
inet on ethernet (e) : 192.168.1.22:ffffff00
host inet (h) : 192.168.1.5
user (u) : winner
ftp password (pw) : winner
flags (f) : 0x8
target name (tn) :
other (o) : memac2
Loading... 2241716 + 300 + 644 + 440584
Starting at 0x100000…
Adding 8355 symbols for standalone.
]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]] ]]]] ]]]]]]]]]] ]] ]]]] (R) ] ]]]]]]]]] ]]]]]] ]]]]]]]] ]] ]]]] ]] ]]]]]]] ]]]]]]]] ]]]]]] ] ]] ]]]] ]]] ]]]]] ] ]]] ] ]]]] ]]] ]]]]]]]]] ]]]] ]] ]]]] ]] ]]]]] ]]]] ]]] ]] ] ]]] ]] ]]]]] ]]]]]] ]] ]]]]]]] ]]]] ]] ]]]] ]]]]] ] ]]]] ]]]]] ]]]]]]]] ]]]] ]] ]]]] ]]]]]]] ]]]] ]]]]]] ]]]]] ]]]]]] ] ]]]]] ]]]] ]] ]]]] ]]]]]]]] ]]]] ]]]]]]] ]]]]] ] ]]]]]] ] ]]] ]]]] ]] ]]]] ]]]] ]]]] ]]]] ]]]]]]]] ]]]]] ]]] ]]]]]]] ] ]]]]]]] ]]]] ]]]] ]]]] ]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]] Development System ]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]] VxWorks 6.9 ]]]]]]]]]]]]]]]]]]]]]]]]]] KERNEL: WIND version 2.13 ]]]]]]]]]]]]]]]]]]]]]]]]] Copyright Wind River Systems, Inc., 1984-2018
CPU: NAI 68PPC2 Freescale QorIQ T2080
Runtime Name: VxWorks
Runtime Version: 6.9
BSP version: 6.9/0
Created: Aug 14 2018 10:41:19
ED&R Policy Mode: Deployed
WDB Comm Type: WDB_COMM_END
WDB: Ready.
-> Instantiating /ata0:0 as rawFs, device = 0x10001 dosFsVolFormat "/ata0:0",0x20 Formatting /ata0:0 for DOSFS Instantiating /ata0:0 as rawFs, device = 0x10001 Formatting...Retrieved old volume params with %38 confidence: Volume Parameters: FAT type: FAT32, sectors per cluster 0 0 FAT copies, 0 clusters, 0 sectors per FAT Sectors reserved 0, hidden 0, FAT sectors 0 Root dir entries 0, sysId (null) , serial number 41e0000 Label:" " ... Disk with 15465744 sectors of 512 bytes will be formatted with: Volume Parameters: FAT type: FAT32, sectors per cluster 8 2 FAT copies, 1929438 clusters, 15104 sectors per FAT Sectors reserved 32, hidden 63, FAT sectors 30208 Root dir entries 0, sysId VX5DOS32, serial number 41e0000 Label:" " ... OK. value = 0 = 0x0 -> copy "nai75sbc4/vxWorks","/ata0:0/vxWorks" value = 0 = 0x0 -> Target Name: vxTarget
Press any key to stop auto-boot…
7
[VxWorks Boot]: c
'.' = clear field; '-' = go to previous field; ^D = quit
boot device : dtsec3 fs
processor number : 0
host name : apexlab42
file name : c:/tftp32/NAI75sbc4/vxworks /ata0:0/vxWorks
inet on ethernet (e) : 10.0.8.181:FF000000
inet on backplane (b):
host inet (h) : 10.0.1.239
gateway inet (g) :
user (u) : winner
ftp password (pw) (blank = use rsh): winner
flags (f) : 0x0
target name (tn) :
startup script (s) :
other (o) : dtsec3
[VxWorks Boot]: @
boot device : fs
unit number : 0
processor number : 0
host name : apexlab42
file name : /ata0:0/vxWorks
inet on ethernet (e) : 10.0.8.181:FF000000
host inet (h) : 10.0.1.239
user (u) : winner
ftp password (pw) : winner
flags (f) : 0x0
other (o) : dtsec3
Loading /ata0:0/vxWorks…1847668 + 300 + 604 + 4657956
Starting at 0x100000…
Target Name: vxTarget
Adding 6433 symbols for standalone.
]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]] ]]]] ]]]]]]]]]] ]] ]]]] (R) ] ]]]]]]]]] ]]]]]] ]]]]]]]] ]] ]]]] ]] ]]]]]]] ]]]]]]]] ]]]]]] ] ]] ]]]] ]]] ]]]]] ] ]]] ] ]]]] ]]] ]]]]]]]]] ]]]] ]] ]]]] ]] ]]]]] ]]]] ]]] ]] ] ]]] ]] ]]]]] ]]]]]] ]] ]]]]]]] ]]]] ]] ]]]] ]]]]] ] ]]]] ]]]]] ]]]]]]]] ]]]] ]] ]]]] ]]]]]]] ]]]] ]]]]]] ]]]]] ]]]]]] ] ]]]]] ]]]] ]] ]]]] ]]]]]]]] ]]]] ]]]]]]] ]]]]] ] ]]]]]] ] ]]] ]]]] ]] ]]]] ]]]] ]]]] ]]]] ]]]]]]]] ]]]]] ]]] ]]]]]]] ] ]]]]]]] ]]]] ]]]] ]]]] ]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]] Development System ]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]] VxWorks 6.9 ]]]]]]]]]]]]]]]]]]]]]]]]]] KERNEL: WIND version 2.13 ]]]]]]]]]]]]]]]]]]]]]]]]] Copyright Wind River Systems, Inc., 1984-2013
CPU: NXP QorIQ® T2080 Quad Core e6500 Processor. Processor #0. Memory Size: 0x7fd00000 (2045Mb). BSP version V_01_01/00. Created: Jan 10 2014, 14:14:49 ED&R Policy Mode: Deployed WDB Comm Type: WDB_COMM_END WDB: Ready.
→
APPENDIX B: JUMPERS
Edit this on GitLab
The 68PPC2 contains two jumpers that affect normal board operations.
The NOR Flash jumper dictates what bank the 68PPC2 can boot from on start up. When this jumper is installed the board will always attempt to boot from Bank 1 even if the setting in the Select Bank register is set for Bank 0. If the jumper is removed, then other signals and registers determine the boot bank. Refer to the Bank Select section for details.
The Reset Jumper determines if the processor can issue a board reset. While the Reset Jumper is installed, if the processor issues a reset request the board will continue normal operation. Attempting to program the FPGA or T2080 over JTAG while the reset jumper is not installed will cause the program to fail and the board to reset. After programming concludes, the board must be power cycled by the user.
APPENDIX C: FPGA WATCHDOG TIMER IMPLEMENTATION
Edit this on GitLab
This section provides background and details regarding the implementation of an FPGA watchdog timer (WDT) on the 68PPC2 processor card.
Watchdog Timer Principle of Operation
The Watchdog timer (WDT) is implemented within the Zynq as a two-counter operation. The primary counter controls the WDT timeout as set by the user. The secondary counter triggers the expiry behavior actions. Since possible expiry actions include processor reset and shutdown, it is necessary to allow time between WDT trip and action(s) taken. This time is used to give the Zynq ARM time to write to FRAM to log the WDT trip. This time is currently set to 20 mSec.
The watchdog functionality generally performs these operations:
-
The WDT is configured and then enabled to run.
-
Periodically, at an interval shorter than the WDT timeout, the target application resets the timer so that it does not expire. This is known colloquially as either “petting the dog” or “kicking the dog”.
-
If the timer is not reset before it expires the designated watchdog trip actions are performed. A detailed description follows in the following paragraphs.
The NAI Software Support Kit (SSK) provides an API which accesses and controls the functions described below.
An overview of the WDT basic operations sample program is provided, along with the underlying register descriptions.
Watchdog Configuration
To Configure the watchdog timer for operation the user must supply two parameters: the duration for WDT expiration and the designated actions to take when the watchdog is tripped.
Watchdog Expiration Interval The target application can set this interval within the range of 655 uSec to 21.462385 Sec, with a resolution of 655 uSec. The max interval represents a count of 32767 times the 655 uSec resolution. This is accomplished by writing the countdown value to the Watchdog Time 1 Set register.
Note
|
Although the Watchdog time Set register is 16 bits, the WDT Library API limits the WDT trip time to less than the maximum register amount possible. This allows time for ARM processor overhead tasks to complete (eg. FRAM write) before the WDT2 counter expires. At that time, the specified output behavior actions are triggered. This overhead time is configurable but is currently set by the API to 20 mSec. |
Watchdog Output Behavior (Trip) Actions
One or more of the desired trip actions can be enabled by setting the appropriate bit(s) in the Watchdog Output Behavior register. The possible trip actions are as follows:
Board Shutdown |
Shuts down power to the 68PPC2 Board |
PPC Reset |
A hardware reset is performed on the T2080 processor |
Backplane Reset |
A VPX reset via PCIe backplane is issued to all other cards |
PPC Interrupt |
An interrupt is sent to the T2080 on IRQ02 |
Note
|
The PPC Interrupt option is not currently compatible with DDC-I Deos |
Watchdog Operation Control
The following control functions are currently available. Each function is commanded by setting the appropriate values to a specified register during run time.
Enable or Disable Watchdog Timer
The WDT is enabled by writing the Watchdog Enable register with data = 0x01.
The WDT is disabled by writing the Watchdog Enable register with data = 0x00.
Reset Watchdog Timer Countdown
The WDT timer counters are reset to their full configured interval by writing the Watchdog Reset register with data = 0x01. Following reset, countdown continues normally.
Watchdog Event Logging
Regardless of any Trip Actions taken, the expiration of the WDT is logged to FRAM (permanent storage on the motherboard). Upon power-up, the host processor can determine if the last reset (possibly due to power down) was caused by a WDT event. This is the primary reason for the dual-counter implementation (to ensure that there is enough time to complete the FRAM write before possible shutdown or reset).
When WDT expiry occurs, an interrupt is issued to the on-chip ARM processor. When the ARM detects the expiry, it writes a 1 to offset 0x794 in platform FRAM.
When the WDT is disabled, then enabled again - the ARM writes a 0 to the same offset to clear the log event.
Watchdog Active Monitoring
As all WDT registers except for the Reset Register can be read during runtime, an active monitor can be created if desired. This could be achieved by monitoring the counter (Watchdog Time Set 1 register) and the counter expiry status (Watchdog Enable/Status register).
Note
|
This function is not provided in the WDT sample application. |
Watchdog Timer Register Definitions
The register descriptions provide the Register Name, Function Address Offset, Type, Data Range, Read or Write information, Initialized Value, a description of the function and, in most cases, a data table. To resolve the absolute address of a particular register:
Base address of FPGA Local Bus = 0xFFDF 0000
Register address = Base 0xFFDF 0000 + Register Offset
Watchdog Enable/Status
Function: Enables or disables both hardware Watchdog Timers. Provides current enable status and expiry state for both WDTs.
Function Address Offset(s): 0x22
Type: binary word (16-bit)
Read/Write: R/W
Initialized Value: 0
Operational Settings: Write a 0 to this register to disable the Watchdog Timer. Write a 1 to enable the Watchdog Timer. Read register for WDT enable and expiry status.
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
FUNCTION |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
D |
D |
0 |
D |
D=DATA BIT |
D3: |
WDT1 Status (1 = WDT1 expired; 0 = not expired) |
D2: |
WDT2 Status (1 = WDT1 expired; 0 = not expired) |
D0: |
WDT Enable (1 = enable both WDT1 and WDT2; 0 = disable both WDT1 and WDT2) |
Watchdog Time 1 Set
Function: Set the duration of the hardware Watchdog Timer 1 (WDT1) in “counts”. (655uS per count)
Function Address Offset(s): 0x24
Type: binary word (16-bit)
Read/Write: R/W
Initialized Value: 0
Operational Settings: Write a 16-bit value to this register to set the “count” for WDT1.
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
FUNCTION |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D=DATA BIT |
D15:D0 |
16-bit word containing WDT1 count setting |
Watchdog Reset
Function: Resets the hardware Watchdog elapsed time for both WDT1 and WDT2.
Function Address Offset(s): 0x26
Type: binary word (16-bit)
Read/Write: Write Only
Initialized Value: 0
Operational Settings: Write a 1 to this register to reset the Watchdog elapsed time. This will “pet” the watchdog.
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
FUNCTION |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
D |
D=DATA BIT |
D0 |
1 resets WDT1 and WDT2 counters |
Watchdog Time 2 Set
Function: Set the duration of the hardware Watchdog Timer 2 (WDT2) in “counts”. (655uS per count)
Function Address Offset(s): 0x28
Type: binary word (16-bit)
Read/Write: R/W
Initialized Value: 0
Operational Settings: Write a 16-bit value to this register to set the “count” for WDT2.
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
FUNCTION |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D |
D=DATA BIT |
D15:D0 |
16-bit word containing WDT2 count setting |
Watchdog Output Behavior
Function: Specifies the desired hardware behavior (actions taken) when either WDT1 or WDT2 count expires.
Function Address Offset(s): 0x2A
Type: binary word (16-bit)
Read/Write: R/W
Initialized Value: 0
Operational Settings: Write a 1 to a behavior data bit to enable the action. Write 0 to the bit to disable it.
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
FUNCTION |
0 |
0 |
0 |
D |
D |
D |
D |
D |
0 |
0 |
0 |
D |
D |
D |
D |
D |
D=DATA BIT |
D12 |
WDT2-Shutdown |
D11 |
WDT2-PPC Reset |
D10 |
WDT2-Backplane Reset |
D9 |
WDT2-PPC Interrupt |
D8 |
WDT2-FPGA Interrupt |
D4 |
WDT1-Shutdown |
D3 |
WDT1-PPC Reset |
D2 |
WDT1-Backplane Reset |
D1 |
WDT1-PPC Interrupt |
D0 |
WDT1-FPGA Interrupt |
Action Definitions (performed when specified WDT count expires):
Shutdown: |
Power Down command is executed (reference: operators manual Power Shutdown register) |
PPC Reset: |
T2080 PPC is reset |
Backplane Reset: |
Backplane Reset issued to all external cards PPC Interrupt: |
T2080 PPC Interrupt on IRQ02 is issued FPGA Interrupt: |
Interrupt issued to Zynq SoC processor |
Note
|
as described herein, not all output behaviors are available (or recommended for use). |
WDT Sample Application
Application Program Description
The sample application program is named wdt_basic_ops (after source file name). Its purpose is to illustrate the methods to call in the naidev library to configure the watchdog timer, load the timer with a countdown value, pet it, and stop it - as well as select among various trigger behavior options.
To operate the watchdog timer, you need to:
-
Configure it: This initializes the timer in the NAIDEV and NAIBSP and connects the user ISR to the interrupt. A new thread will be spawned. Select the desired actions to be taken if the WDT is triggered.
-
Load it: Load the timer with a value. The desired expiration time is converted to “counts” and loaded into the timer register(s).
-
Start it: Starts counting down from the loaded value.
-
Pet it: Pet the watchdog before the expiration time. If it expires, it will cause an interrupt and call the user ISR function. If the watchdog expires, pet it to reset.
-
Stop it: Stops counting down the timer, disconnects the user ISR and kills the spawned ISR thread.
Application Program Menu Options and Associated Call Tree
A basic description of each of the sample app menu options is given below, along with the calling tree from the sample app into the SSK library code. The calling tree only shows the primary function calls of interest.
Note
|
the calling tree is color coded - blue indicates sample app code; black indicates WDT library code. |
Configure Watchdog Timer
Selecting this option from the sample app menu configures the WDT by installing the FPGA interrupt service routine (starts a separate thread) and by writing the Watchdog Output Behavior register (offset 0x2A) with the desired WDT trip behavior.
Note
|
Although the sample app only queries the user for a single output behavior, the user can adjust this to combine multiple behaviors using a bitwise OR of the desired behavior bits. |
Calling tree:
main
→ Load_WDT
→ naidev_Watchdog_ConnectISR
→ naidev_Watchdog_SetExpiryBehavior
→ naibsp_timer_Watchdog_SetExpiryBehavior
→ naibsp_timer_Watchdog_SetExpiryBehavior_Imp
→ naibsp_system_PPC_CPLD_WriteRegU16_Imp
Selecting this option from the sample app menu loads the WDT trip time as specified by the user in milliseconds. The user specified trip time is loaded into the WDT1 counter; that count plus 20mSec (for ARM overhead) is loaded into the WDT2 counter.
Calling tree:
main
→ Configure_WDT
→ naidev_Watchdog_LoadMSeconds
→ naibsp_timer_Watchdog_Load_Mseconds
→ naibsp_timer_Watchdog_Load_Useconds
→ naibsp_timer_Watchdog_Load_USeconds_Imp
→ naibsp_system_PPC_CPLD_WriteRegU16_Imp
Selecting this option from the sample app menu causes the Watchdog Enable register (offset 0x22) to be written with data = 0x01. This enables both WDT1 and WDT2 counters - and they will begin counting .
Calling tree:
main
→ Pet_WDT
→ naidev_Watchdog_Pet
→ naibsp_timer_Watchdog_Pet
→ naibsp_timer_Watchdog_Pet_Imp
→ naibsp_system_PPC_CPLD_WriteRegU16_Imp
Selecting this option from the sample app menu causes the Watchdog Reset register (offset 0x26) to be written with data = 0x01. This causes both WDT1 and WDT2 counters to reset.
Calling tree:
main
→ Pet_WDT
→ naidev_Watchdog_Pet
→ naibsp_timer_Watchdog_Pet
→ naibsp_timer_Watchdog_Pet_Imp
→ naibsp_system_PPC_CPLD_WriteRegU16_Imp
Selecting this option from the sample app menu causes the Watchdog Enable register (offset 0x22) to be written with data = 0x00. This disables both WDT1 and WDT2 counters. The FPGA interrupt service routine is stopped (thread terminated).
Calling tree:
main
→ Stop_WDT
→ naidev_Watchdog_Stop
→ naibsp_timer_Watchdog_Stop
→ naibsp_timer_Watchdog_Stop_Imp
→ naibsp_system_PPC_CPLD_WriteRegU16_Imp
}→ naidev_Watchdog_DisconnectISR
Selecting this option from the sample app menu causes the last WDT expired status to be retrieved from FRAM.
Calling tree:
main
→ GetWDTExpiredFlag
→ naibrd_Log_GetLastWDTExpiredStatus
→ naibrd_POST_SendFRAMCommand
→ naibrd_Write32
→ naibrd_Read32
→ naibrd_Read32
Application Program File Locations within the Installed Code Tree
Miscellaneous
WDT Expiry Behavior Selection
The WDT dual-counter implementation is accomplished in the FPGA using identical IP for each counter. This can be seen in the WDT Output Behavior register as identical actions are selectable for each counter.
As inspection of the sample application and associated library code show, access is not provided to portions of this register. The restrictions are as follows:
-
The WDT1 counter controls the user programmed trip interval. The only output behavior selected is for an FPGA Interrupt. This allows the additional overhead interval necessary for the ARM to log the event to FRAM. The other behavior bits are not exposed by the API.
-
The WDT2 counter is used to trigger the output behavior. All output behavior bits are exposed to the API except for the FPGA IRQ - as the associated ISR for it is already allocated to the function above.
Note
|
There are no safeguards in place that prevent the user from directly manipulating the bits of the WDT Output Behavior register. It is therefore possible to set bits to invoke actions directly upon WDT1 counter expiration. Some of these behaviors may prevent the event logging to FRAM. |
ARM Overhead Period
The ARM overhead period between the trip of WDT1 and WDT2 is currently set in the SSK to 20 mSec, allowing time to complete the event logging to FRAM. This period can be changed by NAI - but requires a modification to the SSK.
If a WDT Reset (i.e. petting the dog) occurs within this interval it will reset the WDT2 counter and thus prevent selected trip actions from executing.
It is unlikely that application code, having failed to pet the dog for enough time to trip WDT1, will suddenly pet it to prevent the trip of WDT2. The application code should be designed with this possibility in mind, however.
68PPC2 Module Reset
No hardware reset is provided to 68PPC2 on-board modules. Software commands are available that can accomplish this action.
Power Shutdown Expiry Action
The mechanism for board power shutdown is the same as if the Power Shutdown Command was issued - as described in the 68PPC2 Manual. This is issued by accessing register offset 0x1C with two write commands. The first with data = 0xDEAD; followed by a second with data = 0xC0DE.
Revision History
Revision |
Date |
Description |
Draft |
A |
02/05/2019 |
ECO C06319 / Initial Release. |
SL |
A1 |
11/20/2019 |
ECO C07136 / Update 3-Ch D/S® & addition of 3-Ch D/L®VDT, DA5 & SG1. Updated part number designation with the addition of Software Option “A" for Deos |
MC |
A2 |
01/09/2020 |
ECO C07250 / Update, correct and reformat module signal User I/O Mapping (Global) pin-out tables. |
ARS |
A3 |
03/23/2020 |
ECO C07466, Update to DA5 and AC1-3 I/O Mapping. Added SC3 4-CH Sync I/O Mapping. Updated part number designation with new features that require new part number option designations: Software, clarified options A & B refer to Deos 653 |
MC |
A4 |
02/11/2021 |
ECO C08277 / Corrected 68PPC2 Jumper references in figure on pages 16 & 55 |
MC |
C |
2023-10-16 |
ECO C10687, transition to docbuilder format. Pg.7, updated from 'Over 70 different functions' to 'Over 100 different modules'. Pg.7, updated product image. Pg.7, updated block diagram to add Zynq FRAM. Pg.7, updated general description. Pg.7, updated processor clock speed from '1.5 GHz' to '1.8 GHz'. Pg.7, updated block diagram for revised processor clock speed. Pg.7, changed Slot Profile to 'SLT3-PAY-2F2U-14.2.3'. Pg.7, added Module Profile. Pg.7, updated BSP/OS support bullet. Pg.8-9, updated available module functions table. Pg.10, updated Introduction. Pg.10, added '+3.3_AUX' power spec to 'General for the Motherboard'. Pg.10, changed Op Temp option from 'E' to 'H'. Pg.10, removed option 'E' from Temp Cycling. Pg.13, updated OS support. Pg.13, removed BSP statement. Pg.16, revised Banks & FRAM sections. Pg.17, revised I2C section paragraph. Pg.18, added 2nd & 3rd paragraph to temp sensor section. Pg.20, changed Temp Alarm Override default to 1. Pg.20, added WDT offsets. Pg.22, updated HW Interrupts section. Pg.23, changed HW register to IRQ05 in TTL Registers. Pg.23, changed TTL I/O Select initialized value to 0x00. Pg.23, updated TTL Data function & op settings. Pg.24, updated Loop Back op settings. Pg.24, changed TTL Enable Interrupts to TTL IRQ Enable and updated function. Pg.24, changed TTL Enable Interrupts HW interrupt to IRQ05. Pg.24, changed TTL Set Edge/Level to TTL IRQ Polarity and updated function/op settings. Pg.25, changed TTL Interrupt Status to TTL IRQ Status. Pg.25, updated Temp Sensing descriptions. Pg.25, changed Temp Alarm Override Select initialized value to 0x0001. Pg.26, updated Temp Alarm Interrupt Status function & op settings. Pg.27, updated Bank Select register descriptions & flowchart. Pg.28, added Appendix B reference to Processor Restart Enable. Pg.29, added WDT section reference. Pg.30-50, reformatted Addressing/Register Descriptions/Function Map sections. Pg.54, added Slot & Module profile configurations. Pg.56, added Rear I/O Summary section. Pg.57-59, revised P0/P1/P2 pinout tables to meet VPX Standard format. Pg.57-59, added 68PPC2 profile images. Pg.61, revised Front/Rear User I/O Mapping table to remove function modules. Pg.62, added Ethernet Rear I/O. Pg.63, updated processor option '0' processor clock speed from '1.5 GHz' to '1.8 GHz'. Pg.63, changed Special Option 1 from 'pending' to 'contact factory'. Pg.64, added Single Channel note. Pg.64, changed DSE/DRE/DLE Power/CH maximum (VA) value from '1.5' to '2.2'. Pg.70, updated NOR Flash Jumper paragraph. Pg.71-78, added WDT appendix. |
DG |
NAI Cares
Edit this on GitLab
North Atlantic Industries (NAI) is a leading independent supplier of Embedded I/O Boards, Single Board Computers, Rugged Power Supplies, Embedded Systems and Motion Simulation and Measurement Instruments for the Military, Aerospace and Industrial Industries. We accelerate our clients’ time-to-mission with a unique approach based on a Configurable Open Systems Architecture™ (COSA®) that delivers the best of both worlds: custom solutions from standard COTS components.
We have built a reputation by listening to our customers, understanding their needs, and designing, testing and delivering board and system-level products for their most demanding air, land and sea requirements. If you have any applications or questions regarding the use of our products, please contact us for an expedient solution.
Please visit us at: www.naii.com or select one of the following for immediate assistance: