View the site in Français Site displayed in English (USA) View the site in English (GB)
You are here: ac6 > ac6-formation > Freescale Power CPUs > MPC832XE implementation

FPQ7 MPC832XE implementation

This course covers PowerQUICC II Pro MPC8321, MPC8321E, MPC8323 and MPC8323E

Objectives
bullet_jaune_1 The course clarifies the architecture of the MPC832XE and MPC8323E, particularly the operation of the coherency module that interconnects the e300 to memory and high-speed interfaces.
bullet_jaune_1 Cache coherency protocol is introduced in increasing depth.
bullet_jaune_1 The e300 core is viewed in detail, especially the MMU.
bullet_jaune_1 The boot sequence and the clocking are explained.
bullet_jaune_1 The course focuses on the hardware implementation of the MPC832XE.
bullet_jaune_1 A long introduction to DDR SDRAM operation is done before studying the DDR1/2 SDRAM controller.
bullet_jaune_1 Communication between CPUs through the PCI message unit is clarified.
bullet_jaune_1 Interacting with the Security Engine through descriptors is studied as well as direct access to SEC registers.
bullet_jaune_1 The course describes the sophisticated QoS mechanisms supported by the UCC Ethernet Controller.
bullet_jaune_1 Regarding MPC8323E, a dedicated part on ATM controllers is proposed on request.
bullet_jaune_1 Generation of a Linux image and Root File System by using LTIB can also be included into the training.

A more detailed course description is available on request at info@ac6-training.com
Prerequisites and related courses
bullet_jaune_2 The knowledge of the following interconnect standards may be required:
bullet_jaune_3 PCI, see our course reference IC1
bullet_jaune_3 Gigabit Ethernet, see our course reference N1
bullet_jaune_3 USB 2.0, see our course reference IP2

Outline
INTRODUCTION TO MPC832XE
Overview
bullet_jaune_2 Internal architecture
bullet_jaune_2 Highlighting data paths inside the MPC832XE, benefit of a dual-DDR controller system
bullet_jaune_2 Block diagram: characteristics of each of the 3 internal modules e300 core, Platform, QuiccEngine
bullet_jaune_2 Software migration from MPC8XX/MPC82XX/MPC85XX families
bullet_jaune_2 Application examples
e300
THE INSTRUCTION PIPELINE
bullet_jaune_2 Superscalar operation
bullet_jaune_2 Branch processing unit
bullet_jaune_2 Branch instructions
bullet_jaune_2 Coding guidelines
DATA AND INSTRUCTION PATHS
bullet_jaune_2 Load / store architecture
bullet_jaune_2 Load / store buffers
bullet_jaune_2 Sync and eieio instructions, determining where eieio is really required
CACHES
bullet_jaune_2 Cache basics
bullet_jaune_2 Cache locking
bullet_jaune_2 PLRU algorithm, highlighting the difference between a True LRU and the PLRU replacement algorithms
bullet_jaune_2 Shared resource management, lwarx and stwcx. instructions
bullet_jaune_2 Cache coherency mechanism, snooping
bullet_jaune_2 Memory coherency required attribute
bullet_jaune_2 The MEI state machine
bullet_jaune_2 Basic snoop requests: clean / flusk / kill
bullet_jaune_2 Management of cache enabled pages shared with PCI DMAs
bullet_jaune_2 Cache related instructions
bullet_jaune_2 Software enforced cache coherency
SOFTWARE IMPLEMENTATION
bullet_jaune_2 PowerPC architecture specification, the 3 books UISA, VEA and OEA
bullet_jaune_2 addressing modes, load / store instructions
bullet_jaune_2 Integer instructions
bullet_jaune_2 Rotate instructions
bullet_jaune_2 PowerPC EABI
bullet_jaune_2 Linking an application with Diab Data, parameterizing the linker command file
THE MMU
bullet_jaune_2 Thread vs process
bullet_jaune_2 Introduction to real, block and segmentation / pagination translations
bullet_jaune_2 Real mode restrictions
bullet_jaune_2 Memory attributes and access rights definition
bullet_jaune_2 Virtual space benefit
bullet_jaune_2 TLBs organization
bullet_jaune_2 Segment-translation: process ID definition
bullet_jaune_2 Page-translation
bullet_jaune_2 MMU implementation in real-time sensitive applications
THE EXCEPTION MECHANISM
bullet_jaune_2 Supervisor registers description
bullet_jaune_2 Save / restore registers for non-critical interrupts
bullet_jaune_2 Critical interrupt, automatic nesting
bullet_jaune_2 Exception management mechanism
bullet_jaune_2 Requirements to allow exception nesting
THE DEBUG PORT
bullet_jaune_2 JTAG emulation, restrictions
bullet_jaune_2 Code instrumentation
bullet_jaune_2 Hardware breakpoints
THE PLATFORM CONFIGURATION
POWER, RESET AND CLOCKING
bullet_jaune_2 DC and AC electrical characteristics
bullet_jaune_2 Configuration signals sampled at reset
bullet_jaune_2 Reset configuration words source
bullet_jaune_2 Utilization of the I2C boot sequencer
bullet_jaune_2 PCI Host / Agent configuration
bullet_jaune_2 Boot memory space
bullet_jaune_2 Clocking in PCI Host mode, system clock domains
bullet_jaune_2 External clock inputs
bullet_jaune_2 System PLL ratio
PLATFORM CONFIGURATION
bullet_jaune_2 Address translation and mapping, local memory map, local access windows
bullet_jaune_2 Arbiter and bus monitor
bullet_jaune_2 Sequencer
bullet_jaune_2 General purpose inputs / outputs
bullet_jaune_2 Timers
THE DDR2 MEMORY CONTROLLER
bullet_jaune_2 DDR-SDRAM operation: a 128-Mbits DDR-SDRAM from Micron is used as an example
bullet_jaune_2 Jedec specification basics, mode register initialization, bank selection and precharge
bullet_jaune_2 On-Die termination and calibration
bullet_jaune_2 Differences between DDR1 and DDR2
bullet_jaune_2 Command truth table
bullet_jaune_2 Bank activation, read, write and precharge timing diagrams, page mode
bullet_jaune_2 DDR-SDRAM controller overview
bullet_jaune_2 Initial configuration following Power-on-Reset
bullet_jaune_2 Address decode
bullet_jaune_2 Timing parameters programming
bullet_jaune_2 Initialization routine
LOCAL BUS CONTROLLER
bullet_jaune_2 Multiplexed or non-multiplexed address and data buses
bullet_jaune_2 Burst support
bullet_jaune_2 Dynamic bus sizing
bullet_jaune_2 GPCM, UPMs states machines
bullet_jaune_2 Interfacing to ZBT SRAMs
PCI BUS INTERFACES
bullet_jaune_2 Bridge features
bullet_jaune_2 Read prefetch and write posting FIFOs
bullet_jaune_2 Inbound transactions handling, Outbound transactions handling in both modes
bullet_jaune_2 PCI bus arbitration
bullet_jaune_2 PCI hierarchy configuration when operating as host
INTEGRATED DMA CONTROLLER
bullet_jaune_2 Priority between the 4 channels
bullet_jaune_2 Scatter / gathering
bullet_jaune_2 Selectable hardware enforced coherency
bullet_jaune_2 Concurrent execution across multiple channels with programmable bandwidth control
bullet_jaune_2 Messaging unit
INTEGRATED PROGRAMMABLE INTERRUPT CONTROLLER
bullet_jaune_2 Interrupt sources
bullet_jaune_2 Definition of interrupt priorities
bullet_jaune_2 System critical interrupt
bullet_jaune_2 Interrupt management, vector register
bullet_jaune_2 Requirements to support nesting
bullet_jaune_2 Machine check interrupts
SECURITY ENGINE
bullet_jaune_2 Introduction to DES, 3DES and AES algorithms
bullet_jaune_2 Data descriptor
bullet_jaune_2 Crypto channels
bullet_jaune_2 Link tables
bullet_jaune_2 Operation of DEU, MDEU and AESU
bullet_jaune_2 Snooping by caches
LOW SPEED PERIPHERALS
bullet_jaune_2 Description of the NS€52/16552 compliant Uarts
bullet_jaune_2 FIFO mode
bullet_jaune_2 Flow control signal management
bullet_jaune_2 I2C protocol fundamentals
bullet_jaune_2 Transfer timing diagrams, SCL and SDA pins
bullet_jaune_2 Transmit and receive sequence
QUICC ENGINE
SYSTEM INTERFACE AND CONNECTION TO EXTERNAL COMMUNICATION PORTS
bullet_jaune_2 Serial DMA
bullet_jaune_2 Multi-threading
bullet_jaune_2 NMSI vs TDM
bullet_jaune_2 Enabling connections to TSA or NMSI
bullet_jaune_2 CMX registers
bullet_jaune_2 Baud-rate generators
BUFFER MANAGEMENT
bullet_jaune_2 Utilization of Buffer Descriptors
bullet_jaune_2 Chaining descriptors into rings
bullet_jaune_2 Interrupt management
bullet_jaune_2 Parameter RAM independent of protocol
SERIAL PERIPHERAL INTERFACE [On-request]
bullet_jaune_2 Introduction to SPI protocol
bullet_jaune_2 SPI modes of operation
bullet_jaune_2 SPI buffer descriptor
bullet_jaune_2 Transmit and receive sequence
UNIFIED COMMUNICATION CONTROLLERS
bullet_jaune_2 UCC feature set
bullet_jaune_2 Handling UCC interrupts
bullet_jaune_2 Initialization sequence
bullet_jaune_2 UCC for slow communications controllers, UART mode
bullet_jaune_2 UCC for fast protocols, virtual FIFOs
bullet_jaune_2 Defining Tx- and Rx-FIFO thresholds
UCC ETHERNET CONTROLLER
bullet_jaune_2 Physical interfaces to transceiver
bullet_jaune_2 Auto-negotiation
bullet_jaune_2 IP header checksum
bullet_jaune_2 Flow control
bullet_jaune_2 Frame filtering and address recognition, high level description of parse command descriptors
bullet_jaune_2 Header parsing
bullet_jaune_2 Quality of Service
bullet_jaune_2 Interrupt coalescing
bullet_jaune_2 Ethernet scheduler, traffic shaper
bullet_jaune_2 BD and Parameter RAM description
bullet_jaune_2 Ethernet statistics, MIB
bullet_jaune_2 Ethernet host command set
QUICC MULTI-CHANNEL CONTROLLER [On request]
bullet_jaune_2 QMC and serial interface
bullet_jaune_2 Memory organization
bullet_jaune_2 UCC Base and Global multichannel parameters
bullet_jaune_2 Channel-specific HDLC parameters
bullet_jaune_2 QMC exceptions
bullet_jaune_2 QMC host commands
USB [On request]
bullet_jaune_2 Host controller limitations
bullet_jaune_2 Packet-level interface
bullet_jaune_2 Transaction-level interface
bullet_jaune_2 Endpoint parameters block pointer
bullet_jaune_2 USB BD ring
bullet_jaune_2 Host commands
THE ATM CONTROLLER [On request, MPC8323E only]
ATM BASICS
bullet_jaune_2 ATM benefit compared to X.25 or ISDN
bullet_jaune_2 Standardization and related links
bullet_jaune_2 UNI and NNI network interfaces
bullet_jaune_2 Cell format
bullet_jaune_2 Virtual connection
bullet_jaune_2 Layer model
bullet_jaune_2 AAL1 layer: circuit emulation
bullet_jaune_2 AAL3/4: used by the service providers
bullet_jaune_2 AAL5: packet transfer
ATM TRAFFIC MANAGEMENT
bullet_jaune_2 The 5 service classes defined by the ATM forum: CBR, VBRrt, VBRnrt, UBR, ABR
bullet_jaune_2 The QoS ATM attributes: PCR/CDVT, CLR, CTD/CDV
bullet_jaune_2 Traffic policy
bullet_jaune_2 Traffic shaping
bullet_jaune_2 Early packet discard
UTOPIA L2 BUS CONTROLLER
bullet_jaune_2 Connection to 1 device through one UL2 Standard bus I/F
bullet_jaune_2 Cell level handshake support
bullet_jaune_2 Internal rate features
bullet_jaune_2 Tx scheduling
bullet_jaune_2 Rx cell transfer
THE UCC ATM CONTROLLER
bullet_jaune_2 Introduction: the adaptation layers and the service classes supported by the UCC
bullet_jaune_2 APC unit: schedule tables, GCRA algorithm for VBR traffic
bullet_jaune_2 VCI/VPI of incoming cells lookup
bullet_jaune_2 OAM AAL0 cells management
bullet_jaune_2 Performance monitoring
bullet_jaune_2 ATM/TDM interworking
bullet_jaune_2 ATM controller parameter RAM description
bullet_jaune_2 RxBD and TxBD format according to the adaptation layer
SERIAL ATM CONTROLLER
bullet_jaune_2 Interworking between QMC and Serial ATM
bullet_jaune_2 Transmit SAM features, payload scrambling
bullet_jaune_2 Receive SAM features, cell delineation
bullet_jaune_2 Run-time statistics
bullet_jaune_2 Microcode TC Layer [MTC]
INVERSE MULTIPLEXING FOR ATM - IMA
bullet_jaune_2 IMA frame, control cells, filler cells
bullet_jaune_2 IMA User Plane functions
bullet_jaune_2 Transmit queue operation
bullet_jaune_2 Cell reception task
bullet_jaune_2 low-level statistic counters
Linux Target Image Builder (LTIB)
GENERATING THE LINUX KERNEL IMAGE
bullet_jaune_2 Introducing the tools required to generate the kernel image
bullet_jaune_2 What is required on the host before installing LTIB
bullet_jaune_2 Common package selection screen
bullet_jaune_2 Common target system configuration screen
bullet_jaune_2 Building a complete BSP with the default configurations
bullet_jaune_2 Creating a Root Filesystems image
bullet_jaune_2 e-configuring the kernel under LTIB
bullet_jaune_2 Selecting user-space packages
bullet_jaune_2 Setup the bootloader arguments to use the exported RFS
bullet_jaune_2 Debugging Uboot and the kernel by using Trace32
bullet_jaune_2 Command line options
bullet_jaune_2 Adding a new package
bullet_jaune_2 Other deployment methods
bullet_jaune_2 Creating a new package and integrating it into LTIB
bullet_jaune_3 A lot of labs have been created to explain the usage of LTIB