Freescale PowerPoint Template

advertisement
TM
FTF-ENT-F0585
August 2011
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, t
he Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony
are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack,
ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ
Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks
of Freescale Semiconductor, Inc. All other product or service names are the property
of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
FSL Software and Enablement Strategy
•
Multicore Software Development Kit (SDK)
QorIQ Virtualization Strategy and Roadmap
Linux & USDPAA- Linux User Space DPAA
NetComm Software Technology
Enablement and Ecosystem Partnership Strategy
Q&A
•
•
•
•
•
Freescale on Kaixin
Tag yourself in photos
and upload your own!
TM
2
Weibo?
Please use hashtag
#FTF2011#
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Invest in Optimized Platforms
−
•
Multicore, DSP, Accelerators,
Heterogeneous Devices
Stand alone base tools and run-time
Technologies
−
Built around standard platforms
−
Available throughout the ecosystem
Partner for Vertical Solutions
−
−
Applications
Stacks
Partner

Silicon optimized Software IP across
all of our hardware devices and
platforms –
Development Tools
−
Invest
•
APIs/Libraries
OSs Schedulers
Drivers/BSPs/HAL
Complete solutions in select
application spaces – VortiQa
software
Silicon
Leverage Partners (MG, ENEA, GHS,
WR, TATA, Aricent, CCPU, others)
TM
3
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
• Advanced SW Development Tools
• Full Application Visibility/Control
CodeWarrior
App Profile
• Si Optimized SW
components
Applications
Comm Events
• Scalable Robust SW
Architectures
Comm Stacks and APIs
Run Time, Schedulers, Virtualization
Optimized Software
Drivers/BSPs/HAL
• Compiler Friendly Cores
• Advanced Debug IP
TM
Run Time Events
Instrumentation
IP Events, Trace
Cores
Accelerators
4
Peripherals
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
WRS support for VxWorks
1.
−
FSL has long term partnership support with WRS
Internal Linux development
2.
−
FSL works strategically with customers on Linux technology
development and roadmaps
Use FSL strategic partner Mentor Graphics
3.
−
FSL works in partnership with Mentor Graphics to provide full
Linux based solutions
TM
5
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, t
he Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony
are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack,
ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ
Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks
of Freescale Semiconductor, Inc. All other product or service names are the property
of their respective owners. © 2011 Freescale Semiconductor, Inc.
Linux User Space
USDPAA Applications
PME Tools
IPFwd/IPSEC
Focused Performance Examples
PME
Crypto
pthreads
DPAA Tools
stats/state access
USDPAA
Std commands/libs
perfmon control
Mem Mgt
SEC Driver
Initialization
BM Driver
PME Driver
Statistics
debug support
FM Enhanced CfgDriver
QM Driver
System Configuration
and Control
Linux Kernel
FM Basic Cfg Driver
scheduler control
DPAA Ethernet Driver
Timer
Atomic Calls
hugetlbfs
UIO Drivers for USDPAA
perfmon
KVM
RT-Patch
QM Driver
BM Driver
SEC Driver
PME Driver
Legacy Drivers
Hypervisor
Virtual CPU
IOMMU
U-Boot
Interrupt controller
Byte-channels
Error Mgmt
Guest debugging
Boot services
Power Mgmt
IPI
GNU Tools
Secure Boot
Partition Mgmt
MG System Builder
TM
7
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Legend
Early access
Early access (feature complete)
QorIQ DPAA SDK Roadmap
Release candidate (or beta)
GA / FCS
Mar-2011
A Above the line (POR) A Below the line
2011
Jan
Feb
Mar
Apr
Linux/uboot Platform and QorIQ SDK
QorIQ DPAA SDK Beta 2.3
•Linux / U-Boot
•Kernel rev. 2.6.34
•Boot from eSPI
•Secure boot loader reference
& code signing tool
•Networking performance
improvements: 680 Kpps
•Hardware checksum
•FMAN offline parsing ports
•Drivers:
•SATA (P5020/P3041)
•Prelim 64-bit kernel and
drivers
•LWE / User space
• User space DPAA alpha
Virtualization
• Topaz
•Warm reboot
May
Jun
2012
Jul
Aug
QorIQ DPAA SDK 1.0
•System Builder migration
•Linux / U-Boot
•Kernel rev. 2.6.37
•Quad-ranked DIMM
•U-Boot open source commit
•Boot from SDHC devices
•64-bit user applications
•Hugetlbfs
•Drivers:
•Initial RAID (P5020)
•IEEE1588
•LWE / User space
• User space DPAA (beta)
Sep
Oct
QorIQ DPAA SDK 1.1 (POI)*
•Linux
•Kernel rev: 2.6.37
•Deterministic low-latency
(wireless infra.)
• Autonomous IPSec w/o
frag/reassembly, policing
•Drivers:
•Initial RMAN
(P5020/P3041)
•LWE / User space
•User space DPAA (GA)
• KVM
•E500-mc porting (EAR –
Nov.)
• Topaz
•CPU hotplug
•KVM
•E500-mc kernel.org
commitment
Nov
Dec
Jan
QorIQ DPAA SDK 1.2 (PV)
•Linux / U-Boot
• e6500 compatibillity mode
ramp (64 bit)
•Autonomous IPSec with
frag/reassembly
•Drivers:
•DPAA open source
commit
•(De)compression engine
•LWE / User space
•User space DPAA (EA) –
e6500-based devices
•Fragmentation /reassembly
offload sample
• Topaz
•Interpartition communication
•KVM
•TLB optimizations, interrupt
handling optimizations
BSP
P4080DS, P4040DS
P5020, P3041DS
P1023RDB*
TM
8
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
8
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, t
he Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony
are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack,
ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ
Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks
of Freescale Semiconductor, Inc. All other product or service names are the property
of their respective owners. © 2011 Freescale Semiconductor, Inc.
Virtualization
Partitioning
• Hardware
consolidation
• Partitioned/dedicated
resources, minimal
sharing.
• Dedicated CPUs, I/O
devices
OS
OS
CPU
CPU
TM
• N virtual machines
• Resource sharing,
oversubscription
• Virtual I/O
• Highly virtualized
environment
• Live migration
OS
OS
CPU
10
OS
OS
CPU
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Mobile
Enterprise/Desktop
(ARM dominant)
(Intel x86 dominant)
Netbook,
Enterprise Server/
MID
Mobile Virtualization
Desktop Virtualization
(VirtualLogix, Trango,
OK-Labs,…)
(VMWare, Xen, kvm,…)
Enea, WRS
Embedded
MILS separation
Kernel
(GHS, LynuxWorks,…)
Mil/Aero
TM
11
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
Consolidation == cost / power savings
•
Flexibility
OS
OS
CPU
•
OS
OS
CPU
Improved resource utilization
TM
12
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
•
•
•
•
Partition system into functional domains (e.g. control plane,
data plane)
Preserve investment in legacy software, running side-byside with Linux
Isolate untrusted software/sandboxes
High availability / active-standby
In-service upgrade
TM
13
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
•
•
•
•
•
•
Requires cooperation among partitions
Security -- No enforced isolation, can‟t allow untrusted guest
OSes
Boot Sequence
OS
OS
Who controls global hardware resources?
−
Local access windows
−
Interrupt controller
−
Shared caches
−
IOMMU
CPU
CPU
Error management
Scarce resources– e.g. UART
Debugging
TM
14
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
Hypervisor: Layer of software
more privileged than operating
systems. Provides:
− Enforcement
of system security,
partition boundaries
− Global resource management
(e.g. interrupt controller)
− Resource sharing and
virtualization– CPUs
− Other Services (e.g. debug)
TM
15
OS
OS
Hypervisor
CPU
CPU
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
T4xxx IP Block Diagram
Power Arch™
Power Arch™
Power Arch™
Power Arch™
Power Arch™
Power Arch™
Power Arch™
Power Arch™
e6500Arch™
e6500Arch™
e6500Arch™
e6500Arch™
Power
Power
Power
Power
e6500
e6500
e6500
e6500
e6500Arch™
Power
e6500Arch™ Power
e6500Arch™ Power
e6500Arch™ Power
e6500
e6500
e6500
e6500
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB I-Cache
32 KB
32 KBI-Cache
32 KBD-Cache
32 KB I-Cache
32 KBD-Cache
32 KB I-Cache
32 KBD-Cache
D-Cache
D-Cache
I-Cache
D-Cache
I-Cache
D-Cache
I-Cache
D-Cache
I-Cache
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
D-Cache I-Cache D-Cache I-Cache D-Cache I-Cache D-Cache I-Cache
D-Cache I-Cache D-Cache I-Cache D-Cache I-Cache D-Cache I-Cache
256KB Banked L2
256KB
Banked L2
256KB
256KBBanked
BankedL2
L2
1MB Banked L2
eOpenPIC
CoreNet™
PreBoot Loader
Coherency Fabric
Security Monitor
PAMU
PAMU
PAMU
PAMU
L3
Cache
64b DDR-3/3L
Memory Controller
L3
Cache
64b DDR-3/3L
Memory Controller
L3
Cache
64b DDR-3/3L
Memory Controller
L3
Cache
64b DDR-3/3L
Memory Controller
Peripheral
Access Mgmt Unit
Internal BootROM
FMan Complex
DMA
QMan
Parse, Classify,
Distribute
SPI
PME
BMan
2x DUART
IFC
RAID
RMan
40G 40G 10G 10G
10G 10G
1G 1G 1G 1G
1G 1G 1G 1G
1G 1G 1G 1G
1G 1G 1G 1G
PCIe
PCIe
sRIO
sRIO
2x I 2 C
H/W
Timers
Real Time
Debug
DMA
SATA 2.0
SD/MMC
SEC
2 x USB2.0
Clocks/Reset
GPIO
2x 18-Lane SerDes (6GBaud and 11Gbaud)
DCE
Data
DeDup
CCSR
TM
16
Interlaken
Power Mgmt
Watchpoint
Cross
Trigger
CoreNet
Perf
Monitor Trace
Aurora
• e6500 Power Architecture® with
AltivecTM
• 16 x 64b e6500 cores
• Up to 2GHz
• 1MB L2 per core cluster
• L3 Cache (4MB total)
• Memory Controllers
• 4x DDR3/3L (1800 MHz)
• 64 bit data bus w/ECC
• High Speed Interconnect
• 4 PCIe Gen 2 Controllers
• 4 sRIO 2.0 Controllers
• 2x USB 2.0 , 1x SATA 2.0
• 1x 40Gbps Interlaken LA-1
• Frame Manager
• 16 x 10/100/1000/2500GE
• 4 x 10GE, 2 x 40GE
• SGMII, QSGMII, XAUI, XFI, KR
• Datapath Acceleration
• Parse/Class/Distribute/Policing
• QMan prioritization/egress shaping
• Buffer Management
• Reg-ex Pattern Matcher (PME)
• SSL and IPSec Encryption (SEC)
• Decompression/compression (DCE)
• Data deduplication (Data DeDup)
• TCP/IP offload, HW timers
• 40Gbps IPv4 @ 64B
• 20Gbps IPSec @ IMIX
• 10Gbps RegEx @ IMIX
• 40Gbps Classification @ 64B
• Power targets
• <50W thermal max at 1.8GHz
• <40W thermal max at 1.67GHz
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
T4xxx Virtualization IP Block Diagram
Power Arch™
Power Arch™
Power Arch™
Power Arch™
Power Arch™
Power Arch™
Power Arch™
Power Arch™
e6500Arch™
e6500Arch™
e6500Arch™
e6500Arch™
Power
Power
Power
Power
e6500
e6500
e6500
e6500
e6500Arch™
Power
e6500Arch™ Power
e6500Arch™ Power
e6500Arch™ Power
e6500
e6500
e6500
e6500
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB I-Cache
32 KB
32 KBI-Cache
32 KBD-Cache
32 KB I-Cache
32 KBD-Cache
32 KB I-Cache
32 KBD-Cache
D-Cache
D-Cache
I-Cache
D-Cache
I-Cache
D-Cache
I-Cache
D-Cache
I-Cache
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
32 KB
D-Cache I-Cache D-Cache I-Cache D-Cache I-Cache D-Cache I-Cache
D-Cache I-Cache D-Cache I-Cache D-Cache I-Cache D-Cache I-Cache
256KB Banked L2
256KB
Banked L2
256KB
256KBBanked
BankedL2
L2
1MB Banked L2
eOpenPIC
CoreNet™
PreBoot Loader
Coherency Fabric
Security Monitor
PAMU
PAMU
PAMU
PAMU
L3
Cache
64b DDR-3/3L
Memory Controller
L3
Cache
64b DDR-3/3L
Memory Controller
L3
Cache
64b DDR-3/3L
Memory Controller
L3
Cache
64b DDR-3/3L
Memory Controller
Peripheral
Access Mgmt Unit
Internal BootROM
FMan Complex
DMA
QMan
Parse, Classify,
Distribute
SPI
PME
BMan
2x DUART
IFC
RAID
RMan
40G 40G 10G 10G
10G 10G
1G 1G 1G 1G
1G 1G 1G 1G
1G 1G 1G 1G
1G 1G 1G 1G
PCIe
PCIe
sRIO
sRIO
2x I 2 C
H/W
Timers
Real Time
Debug
DMA
SATA 2.0
SD/MMC
SEC
2 x USB2.0
Clocks/Reset
GPIO
2x 18-Lane SerDes (6GBaud and 11Gbaud)
DCE
Data
DeDup
CCSR
TM
17
Interlaken
Power Mgmt
Watchpoint
Cross
Trigger
CoreNet
Perf
Monitor Trace
Aurora
• e6500 Power Architecture® with
AltivecTM
• 16 x 64b e6500 cores
• Up to 2GHz
• 1MB L2 per core cluster
• L3 Cache (4MB total)
• Memory Controllers
• 4x DDR3/3L (1800 MHz)
• 64 bit data bus w/ECC
• High Speed Interconnect
• 4 PCIe Gen 2 Controllers
• 4 sRIO 2.0 Controllers
• 2x USB 2.0 , 1x SATA 2.0
• 1x 40Gbps Interlaken LA-1
• Frame Manager
• 16 x 10/100/1000/2500GE
• 4 x 10GE, 2 x 40GE
• SGMII, QSGMII, XAUI, XFI, KR
• Datapath Acceleration
• Parse/Class/Distribute/Policing
• QMan prioritization/egress shaping
• Buffer Management
• Reg-ex Pattern Matcher (PME)
• SSL and IPSec Encryption (SEC)
• Decompression/compression (DCE)
• Data deduplication (Data DeDup)
• TCP/IP offload, HW timers
• 40Gbps IPv4 @ 64B
• 20Gbps IPSec @ IMIX
• 10Gbps RegEx @ IMIX
• 40Gbps Classification @ 64B
• Power targets
• <50W thermal max at 1.8GHz
• <40W thermal max at 1.67GHz
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
CPU feature (Power ISA)
e500v2
e500mc e6500
e5500
Category: Base
X
X
X
Category: Embedded
X
X
X
Category: Alternate Time Base
X
X
X
Embedded.Performance Monitor
X
X
X
Memory Coherence
X
X
X
Embedded.Little-Endian
X
X
X
Embedded.Cache Locking
X
X
X
Signal Processing Engine (SPE), Embedded Float
X
Floating Point and Floating Point.Record
X
X
Embedded.Enhanced Debug
X
X
64-bit
X
TM
18
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
CPU feature (Power ISA)
e500v2
e500mc
e5500
e6500
Embedded.External PID
X
X
Embedded.Hypervisor
X
X
Embedded.Processor Control
X
X
External Proxy
X
X
Wait
X
X
Decorated Storage
X
X
Store Conditional Page Mobility
X
X
Embedded.Hypervisor.LRAT
X
Embedded.Page Table
X
Embedded.Multi-Threading
X
Embedded.Multi-Threading.Thread Management
X
TM
19
Virtualization
Extensions
Virtualization
Extensions
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
Key hardware
resources are
accessible by
hypervisor
privileged
state only:
−
−
−
−
−
MMU
Timers
Cache control
Debug
resources
Interrupt
Configuration
TM
With Hypervisor
partition
No Hypervisor
partition
User
MSR[PR=1][GS=0]
Kernel/Supervisor
MSR[PR=0][GS=0]
App
User
MSR[PR=1][GS=1]
Kernel/Supervisor
MSR[PR=0][GS=1]
App
Hypervisor
MSR[PR=0][GS=0]
OS
App
App
OS
Hypervisor
CPU
CPU
Memory
Memory
I/O
I/O
20
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
mc
Guest / Hypervisor
Logical Partition
e500v2 model
U/S level, PID, AS/DS
GS
Other states
LPID
32-bit Effective Address (EA)
Virtual Address
Virtualization
extensions also
add an expanded
address space with
an LPID (logical
partition ID).
Allows the
hypervisor to more
easily separate the
address space of
virtual machines.
MMU / TLBs
36-bit Real Address
TM
21
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
PAMU
enforces
I/O-tomemory
accesses
Linux®
CPU
•
A key
compone
nt in a
securely
partition
ed
system
RTOS
CPU
CPU
Access
Denied
Memory
Access
OK
Memory
PAMU
I/O
I/O
TM
CPU
I/O
22
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Standards
KVM
Topaz
3rd Party
ISVs
TM
23
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
power.org ePAPR
− 1.0
complete in 8/2008
− Resource discovery (device tree)
− Multi-CPU boot
− 1.1, including virtualization
extensions targeted for Q1 2011
•
Guest
OS
Guest
OS
Guest
OS
hypervisor
power.org Embedded
Virtualization Committee
(2009-2010)
hardware
− Virtual
CPU standard– the
behavior of instructions and
registers in a virtual machine
− Paravirtualization & standard
hcalls
standard
interfaces
New virtualization extensions in ePAPR 1.1, which should be out by this summer
TM
24
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
•
•
•
•

•
•
An embedded hypervisor designed for
Power architecture from the ground up
Requires CPU with Power ISA 2.06
virtualization extensions
Partitioning focus-- secure partitioning of
the hardware resources of an SOC and
board
No scheduler
Hypervisor is minimally intrusive
A moderate set of services– interrupt
controller, inter-partition interrupts, bytechannels, power management,
active/standby/failover, error management
Targets: e500mc
BSD License
TM
25
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
Debug of guest
operating systems is
supported using
hypervisor-resident
debug agents
• Transport over
multiplexed serial
interface
• CodeWarrior and GDB
supported
• Plug-in architecture for
creating stubs
Hypervisor
partition
partition
OS
OS
stub
stub
CPU
CPU
stub
MUX
System
Hardware
Host
CPU
Memory
Memory
UART
GDB
GDB
Memory
GDB remote serial protocol
MUX server
TM
26
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
Linux kernel with KVM module
+ Qemu is the hypervisor
−
−
−
−
−
X86 origins
Allows fully virtualized platforms–
can run many more virtual
machines than physical
resources available
Strong open source community
Targets: e500v2, e500mc
Partitioning features being
added by Freescale
Partition 1
Partition 2
App
Qemu
App
App
Qemu
OS
App
OS
Linux Kernel
kvm
KVM is an open source originated from the x86 server world. The Linux kernel effectively becomes the hypervisor with the
KVM kernel module.
Big strength of KVM is the large open source community-- we can leverage a significant amount of effort that has gone into
this technology.
Our intent is to push KVM technology in a direction that makes is useful for embedded systems--- running OSes besides
Linux, allowing partitioning of SoC hardware resources.
TM
27
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Basic split of responsibilities between
Qemu and KVM
•
•
•
Qemu provides
−
Virtual machine setup
−
Initialization
−
Memory allocation
−
Virtual I/O services
−
Debug stub
KVM provides
−
Virtual CPU services
−
API used by Qemu (see Documentation/kvm/api.txt)
Kernel schedules VMs
KVM is a kernel driver and the user space Qemu application interfaces to KVM through an API.
Qemu handles initialization. KVM handles runtime CPU events and Qemu handles runtime
I/O events.
Standard kernel scheduler is used and provides all the standard Linux scheduling services to
virtual machines under KVM.
TM
28
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Qemu
VM init,
boot
User mode
MSR[PR]=1
App
Virtual
I/O
OS
On the e500v2
must run OSes in
user mode– which
causes some
performance impact
that had to be
solved.
debug
KVM
Linux
Kernel
Virtual
CPU
Kernel mode
MSR[PR]=0
TM
App
29
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Shows how the major components are separated by hardware privilege
levels-- host kernel, qemu/host-applications, guest kernel, guest
applications.
TM
30
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
Two general approaches to I/O
− Virtual
I/O devices

Software emulation of real hardware device-- register-level
emulation

Virtio
− Direct
assigned I/O devices
Virtual I/O is how you allow multiple domains/guest/virtual-machine share a hardware I/O devices.
Advantage of emulation of real hardware device is that guest drivers do not have to change. The
virtual machine makes it look identical to the real hardware that is being emulated. Disadvantage is
slow performance.
Virtio is a technology in Linux and Qemu that allows sharing of network, block (e.g. disk), and console
devices-- designed for virtualization and has improved performance.
Direct assigned I/O devices is something new that Freescale has developed due to the needs of
embedded systems– allows a guest OS private ownership of devices and direct access to device
registers.
TM
31
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
Guest has “front-end”
driver that
communicates with
“back-end” driver
which interfaces to
physical I/O device
Qemu (vmm)
Linux
(guest)
Back-end
driver
Front-end
driver
Host Linux Kernel
eth
TM
32
kvm
Hardware
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
•
•
•
Guest is assigned I/O
device and it become a
private, non-shared
resource of the partition
Standard approach in
Topaz
New direct-map support
in KVM
PAMU is needed to
enforce partition
boundaries and do
guest physical to true
physical address
translation
TM
Qemu (vmm)
Linux
(guest)
Host Linux Kernel
kvm
Hardware
33
iommu
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
Partition is defined in a
device tree– memory,
virtual I/O devices, direct
assigned I/O devices
• Direct map
− Feature
created by
Freescale to directly assign
memory
− Host kernel only knows
about subset of physical
memory
When Qemu starts a virtual machine it is passed a device tree that describes
the real and virtual resources belonging to the VM.
A key new feature we‟ve added to KVM/Qemu is the ability to directly map
memory and I/O devices to virtual machines
TM
34
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
•
•
•
Direct mapped SoC
devices use similar
approach to existing
PCI-E endpoint
assignment in x86
KVM
Host kernel takes all
interrupts which must
be forwarded to the
guest
KVM registers ISR for
direct mapped interrupt
sources
MPIC emulation is in
the kernel
TM
Qemu
VM init,
boot
App
Virtual
I/O
App
OS
(guest kernel)
debug
KVM
Linux
Kernel
(host kernel)
Virtual
CPU
In Kernel
MPIC
Direct map
ISR
35
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Sources of overhead - CPU
Asynchronous exceptions
TLB misses, decrementer
interrupts, external interrupts
Privileged instructions
tlbwe,tlbilx,tlbsx,tlbre,msgsnd
Privileged SPRs
DEC, TCR, IVORx
Hcalls
Scheduling/Context switches
Sources of overhead – I/O
Virtual I/O
emulated registers, interrupts
Direct I/O (direct-map)
Interrupt latency, (no overhead for
register access)
Key: overhead is workload dependent
TM
36
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
Overview
− Freescale


Book E CPUs have 2 hardware TLBs–
TLB1 allows variable sized pages with locking
TLB0 has 4KB pages, is set associative, and entries are typically
recycled
− Guest
TLB operations (e.g. write, invalidate) must be validated by
the hypervisor.
•
The pressure (or lack of) on TLB0 will be a significant factor in
overall hypervisor overhead. Every TLB miss implies the need to
write a new TLB entry (which must be validated)
►Processor
Roadmap: logical to real address translation (LRAT) in
CPU expected to eliminate hypervisor overhead in TLB
managment
TM
37
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
•
•
•
•
LRAT is defined in Power ISA 2.0.6
On a TLB write, a hardware table translates the guest physical
address to true physical. tlbwe does not trap to HV.
If the guest physical address misses in the LRAT the hypervisor
services and decides whether mapping is allowed.
Only valid mappings are placed in the LRAT. These are
typically large mappings so the vast majority of TLB writes can
complete without a trap.
An LRAT should solve the overhead associated with TLB misses
to TLB0
With LRAT a new hardware lookup table handles guest
physical address translation instead of it being done in
software by the hypervisor
TM
38
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
Qemu
provides a
gdb stub
that can be
used to
debug
guests
Qemu
VM init,
boot
Virtual
I/O
App
App
OS
debug
stub
gdb
KVM
Linux
Kernel
TM
39
Virtual
CPU
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
Virtual CPU
provides
standard e500
debug resources,
enabling guest
resident debug
stubs
•
KVM is in linux
kernel so same
tools you utilize
for kernel debug
can be utilized
• Guest debug can
be done via GDB
and hooks in
Qemu
TM
Qemu
VM init,
boot
Virtual
I/O
App
App
OS
debug
stub
gdb
KVM
Linux
Kernel
40
Virtual
CPU
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
e500v2
− Proof
•
of concept completed in 12/2010

basic CPU features

direct map of memory and I/O devices

paravirtualization performance improvements
e500mc
− Port
in progress
− Currently booting Linux
•
Beta version will be in DPAA SDK 1.0 release (5/2011)
TM
41
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
e500v2
−
•

basic CPU features

direct map of memory and I/O devices

paravirtualization performance improvements
e500mc
−
−
•
Proof of concept completed in 12/2010
Port in progress
Currently booting Linux
Alpha version will be in DPAA SDK 1.0 release (5/2011)
2010
2011
proof-of-concept
TM
DPAA
SDK 1.0
42
DPAA
SDK 1.1 SDK 1.1
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Virtual CPU feature
KVM
e500v2
KVM
e500mc
E5500
Category: Base
1.0
1.0
Category: Embedded
1.0
1.0
Category: Alternate Time Base
1.0
1.0
Embedded Floating Point
1.0
-
Classic Floating Point
-
1.0
Embedded.External PID
-
1.0
External Proxy
[1]
1.0
Wait
1.0
1.0
Watchdog
1.0
1.0
VCPU paravirt extensions (CONFIG_KVM_GUEST )
CPU Debug Facilities (debug registers, interrupt)
TM
43
1.0
1.1
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Virtual CPU feature
KVM
e500v2
KVM
e500mc
E5500
1.1
1.1
Embedded.Hypervisor
-
-
Embedded.Processor Control
-
1.1
Guest Cache Locking
1.1
1.1
Fixed interval timer
1.1
1.1
Memory Coherence Required
1.0
1.0
Decorated Storage
-
1.0
Embedded.Little-Endian
-
-
64-bit
-
1.1
On going
On going
Embedded.Performance Monitor
MMU Performance
TM
44
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Virtual Machine feature
KVM
e500v2
KVM
e500mc
E5500
Direct map of memory
1.0
1.0
Direct map of I/O devices
1.0
1.0
PAMU
-
1.1
Direct map of Portals
-
1.1
Virtio net
1.0
1.0
Virtio block
1.0
1.0
Virtio console
1.0
1.0
Virtio security
1.2
1.2
Vhost net
1.1
1.1
GDB stub
1.0
1.0
USB Passthrough
1.0
1.0
TM
45
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Virtual Machine feature
KVM
e500v2
KVM
e500mc
E5500
ePAPR 1.1 Compliance
1.1
1.1
Hugetlbfs– dynamic use of large pages
1.1
1.1
SMP– multiple CPUs in guest
1.2
1.2
PCI-E Endpoint partitioning
1.2
1.2
Power management
TBD
TBD
Error Management
TBD
TBD
Failover
TBD
TBD
Direct interrupt delivery to guests
TBD
TBD
Virtual machine management (libvirt)
TBD
TBD
TM
46
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Guest
OS
Guest
OS
Linux / KVM
Guest
OS
Guest
OS
Topaz
hardware
TM
hardware
47
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Feature
Topaz
KVM
Type 1
Type 2
no/minimal
no/minimal
OS modifications– other services
yes
yes 3
Real time
yes1
?2
ePAPR
ePAPR/PCI
static config tree
Qemu/device tree
HV or guest
agent
Qemu
Static partitioning CPUs
yes
pin
Physically contiguous memory partitioning
yes
yes
Direct SOC device assignment
yes
yes
Direct interrupts to guest OS
yes
no
Shared memory
yes
yes
Type of hypervisor
OS modifications-- CPU
Resource discovery
Partition configuration
Guest debugging
TM
48
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Feature
Topaz
KVM
Scheduling– multiple partitions on physical CPU
no
yes
Dynamic partitioning
no
yes/Qemu
Live migration
no
yes
High availability / Active-standby
yes
?
Inter-partition doorbells
yes
no
Virtual console/uart
yes
Qemu/virtio
Virtual ethernet
no
Qemu/virtio
Virtual block device
no
Qemu/virtio
Virtual interrupt controller
yes
Qemu/virtio
Virtual PCI (for virtual device discovery)
no
yes
TM
49
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
What requirements with respect to physical partitioning of system?
− Direct/dedicated
•
How many virtual machines / partitions?
− Is
•
•
•
•
assignment of CPUs, memory, I/O devices
number/configuration static? Dynamic?
Virtual I/O requirements. Which devices? Performance?
Dynamic resource management? Moving CPUs, devices?
How many CPUs per virtual machine? SMP guests?
Performance
− What
are your critical measures of performance?
− Benchmarks
•
•
Real time requirements? Interrupt latency. Determinism.
Guest OS modifications– what is acceptable?
TM
50
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
Virtual machine management requirements?
• Interpartition communication
APIs?
− Doorbell
interrupts
− Shared memory
− MCAPI
•
High availability requirements? Active/standby.
• power management
− sleep states (nap mode)
− frequency scaling
TM
51
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, t
he Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony
are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack,
ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ
Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks
of Freescale Semiconductor, Inc. All other product or service names are the property
of their respective owners. © 2011 Freescale Semiconductor, Inc.
loop {
get work via QMan dequeue;
complete work and QMan enqueue as needed;
}
Assigning cores the role of running light-weight “run-to-completion”
software within the context of a Linux multi-threaded user space process
instead of in a separate partition as a hypervisor guest.
•
•
Accept work and then “complete” it before accepting other work.
“Complete” often involves doing a QMan enqueue to
•
•
Send frame via FMan
•
Send work to SEC or PME
•
Other
•
Run-to-completion is a scheduling statement
•
QMan dequeues can poll– do not need to be interrupt driven
TM
53
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
USDPAA is a change in deployment context for “data plane” run-tocompletion software. USDPAA = LWE in Linux user space.
• LWE – deployed in a partition in the Freescale Hypervisor
• USDPAA – deployed in a Linux user space process
Linux User Space
Linux User Space
USDPAA
LWE
Linux Kernel
Freescale Embedded Hypervisor
Linux Kernel
Benefits:
• Richer, more flexible environment– use Linux standard services
rather than inventing new ones (C++, 36-bit, 8th core, debug, etc).
• More standard– Linux is ubiquitous and supported from multiple
sources.
• Provides high-performance run-to-completion but other use-cases
also– a use case super-set.
TM
54
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
DPAA: Data Path Acceleration Architecture
Collection of cores, HW
accelerators and bridges,
tied together by HW
Buffer and Queue
Managers.
Rapid I/O
Messaging
and more
RMan
Rapid I/O
Manager
Ethernet
FMan
Frame
Manager
TM
Power
Architecture
Cores
QMan
Queue
Manager
BMan
Buffer
Manager
55
SEC
Security
Engine
PME
Pattern
Match
Engine
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
SW Portal: memory mapped hardware element that provides
QMan and Bman access to software running on Power cores.
•
Portal is a ring-like structure, but more sophisticated. SW maps
portals as cached for important operations.
Power
Architecture Core
enqueue,
dequeue,
and more
TM
QMan SW
Portal
BMan SW
Portal
QMan
Queue
Manager
BMan
Buffer
Manager
56
acquire,
release,
and more
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Portals mapped
directly into
application’s virtual
address space.
No system call or
kernel context switch
to access a portal.
Linux User Space
Application
QMan and BMap Access
API Library
enqueue,
dequeue,
and more
TM
QMan SW
Portal
BMan SW
Portal
QMan
Queue
Manager
BMan
Buffer
Manager
57
acquire,
release,
and more
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
Some portals can be allocated to the Linux kernel. Others are free to
be dedicated to an USDPAA thread (that is in turn affine to a core).
USDPAA Thread Affine to Core
Kernel Drivers
USDPAA threads directly map and access the
portal that is dedicated to them.
Portals allocated to the kernel are accessed via inkernel drivers. These provide enqueue/dequeue and
other services to a next layer of kernel drivers such as
standard ethernet drivers that use QMan to exchange
frames with FMan. One portal multiplexes several
kernel drivers.
map
User Space
Thread
High API
QMan Driver
user
map
kernel
PME
Driver
SEC
Driver
User Space
Driver
Ethernet
Driver
High API
QMan Driver
Portal Driver
Contiguous Space for Buffer Pools
portal
portal
QMan shown. BMan similar.
TM
58
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
USDPAA Application Can Use 1 to 8 Cores (P4080)
Other
Other
Processes
Processes
Each thread has a dedicated portal and is affine to a core,
1 thread per core
USDPAA Application in User Space Process
thread
thread
QPortal
QPortal
thread
QPortal
thread
thread
QPortal
QPortal
thread
QPortal
thread
QPortal
thread
QPortal
BPortal
BPortal
BPortal
BPortal
BPortal
BPortal
BPortal
BPortal
C0
C1
C2
C3
C4
C5
C6
C7
isolated cores
Net Stack
Eth Driver
kernel
BMan / QMan
Other Driver
BQMan Drivers
FMan Ethernet
Ports
QPortal
7 cores are isolated but 1 can
run an USDPAA thread as
well as other processes.
BPortal
Core 0 has portal for kernel use and standard Linux networking
TM
59
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
QMan user space (and kernel) portal drivers.
•
BMan user space (and kernel) portal drivers
•
BMan and QMan overall configuration drivers (kernel)
•
DMA-able memory allocator for user space
•
SEC Descriptor Constructor Library
•
SEC overall configuration (kernel)
•
PME configuration
•
FMan configuration
TM
60
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
USDPAA deployed within single SMP Linux instance
•
Threading via pthreads
•
Threads that access portals must be core-affine
•
Threads may be scheduler-isolated, but need not be
•
Buffers must be in DMA-able memory.
•
Standard Linux system calls are available
•
Standard tools, like debuggers may be used.
•
Portals must be dedicated to the kernel or to user
space threads.
TM
61
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
• “Work” (like packet) is enqueued into QMan by a worker (e.g. FMan)
• QMan scheduler acts as a HW “work” scheduler
• Different types of work are assigned to specific frame queues.
• Frame queues are placed into work queues for scheduling.
• QMan enforces atomicity (no locks) when needed
• Qman schedules the work to another worker (e.g. a core).
• Repeat (in possibly many steps) until processing is done.
polled access
1
SEC
4
8
5
QMan
PME
Core
2
3
Core
***
FMan
6
Core
7
Core SW does:
while (1) {
type=dequeue_work();
do_work(type);
if (needed)
enqueue_work();
}
If software is written such that any core can do any work, the result is a
very flexible, scalable, and efficient system.
TM
62
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
•
•
•
•
Polled run-to-completion works best with one thread per core.
More than one thread per core suggesed interrupt-driven
execution.
Portal drivers support UIO interrupts
Portals have file descriptors
Application can call select, poll, epoll and sleep if there is
nothing to deqeuue.
Core SW does:
Thread sleeps if nothing
on portal.
while (1) {
select(fd_set,….)
type=dequeue_work();
do_work(type);
if (needed)
enqueue_work();
reenable_interrupts_via_UIO.
}
TM
63
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
USDPAA – independent of Linux scheduler configuration.
OK to use SCHED_FIFO, etc.
USDPAA – independent of items like PREEMPT_RT, use it or
not.
USDPAA Thread-Core Affinity is required, but exclusivity is not.
Less
Exclusive
More
Exclusive
Use Case Continuum
pthreads-like
LWE-like
Interrupt-driven,
PREEMPT_RT matters more,
Linux scheduler used
normally.
Polling-based run-tocompletion, PREEMPT_RT
matters more, trivial use of
Linux scheduler, less than
1% overhead
TM
64
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
Areas of physically contiguous memory are available and can be
mapped to a process address space.
•
Simplifies conversion between effective and physical addresses.
•
Buffer memory.
•
General shared memory for many purposes.
control , init, and
other processes
C0
QPortal
BPortal
C1
QPortal
USDPAA app in user space
thread
QPortal
thread
QPortal
thread
QPortal
thread
QPortal
2nd USDPAA app
thread
QPortal
thread
QPortal
BPortal
BPortal
BPortal
BPortal
BPortal
BPortal
C2
C3
C4
C5
C6
C7
BPortal
Contiguous Space for Buffer Pools
TM
65
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
SEC and PME have QMan interfaces.
So USDPAA threads can interact with them via their portals.
USDPAA app in user space
thread
QPortal
thread
thread
QPortal
QPortal
thread
QPortal
BPortal
BPortal
BPortal
BPortal
C2
C3
C4
C5
BMan / QMan
SEC
TM
PME
66
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
USDPAA threads (define as threads with portals) may be
dynamically created and destroyed.
•
USDPAA processes (define as processes with USDPAA thread)
may be terminated and restarted.
•
But, applications manage their own resources.
• Resources initialized must be quiesced and deinitialized
• Both on normal and abnormal termination.
•
Rationale: It is not practical for kernel based software to track
relationships between resourced that are shared between
applications or applications and the kernel.
•
It is not practical for kernel software to dictate policy in these
cases.
TM
67
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Reflector performance with 64-byte packets
35
25
30
20
25
M
p 20
p 15
s 10
5
G
15
b
p 10
s
5
0
0
1
2
3
4
5
6
7
8
1
Cores
3
4
5
6
7
8
Cores
PoC (Apr 2010) - Low bin RCW
Ph. 0 - Low bin RCW
Ph. 0 - High bin RCW
TM
2
PoC (Apr 2010) - Low bin RCW
Ph. 0 - Low bin RCW
Ph. 0 - High bin RCW
68
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Linux in partition:
control and
initialization
C0
QPortal
BPortal
C1
QPortal
BPortal
LWE on Hypervisor – multi-image
LWE app in partition (each core
acts like a thread)
LWE app in
partition
C2
C6
QPortal
C3
QPortal
BPortal
BPortal
C4
QPortal
C5
QPortal
BPortal
BPortal
QPortal
BPortal
C7
QPortal
BPortal
USDPAA – Processes in one Linux Instance
control and
initialization
processes
USDPAA app in user space
thread
QPortal
C0
QPortal
BPortal
C1
QPortal
thread
QPortal
thread
QPortal
thread
QPortal
2nd USDPAA app
thread
QPortal
thread
QPortal
BPortal
BPortal
BPortal
BPortal
BPortal
BPortal
C2
C3
C4
C5
C6
C7
BPortal
Portals dedicated to threads; threads affine to cores.
TM
69
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
USDPAA roadmap
A Below the line
A Above the line
2010
Sep
Oct
2011
Nov
USDPAA
Phase 0 (POR)
• USDPAA Proof of
concept migrated to SDK
2.2 platform
•Core affinity
• Core isolation
•Static allocation of large
contiguous blocks of
memory
• Scale up to 8 cores
• <5% overhead
Dec
Jan
Feb
Mar
Apr
May
June
Q3
Beta in SDK
Q4
Future
GA in SDK
Phase 2
Phase 3
Phase 1 (POR)
•USDPAA infrastructure
•USDPAA infrastructure
•USDPAA infrastructure
• Dynamically allocate
• Dynamically allocate
• Application restart support
contiguous blocks using
contiguous blocks using
• Support for poll() system
DMA mem mgr (hugetlbfs)
hugetlbfs (all sizes)
calls (wait for I/O)
• Initialization using fmc tool
• Placement of application
• UIO signaling for
• SEC descriptor user space
text segment using hugetlbfs
Qman/Bman interrupts
library
support in gcc tool chain
• Static initialization – device
• Access to linux system calls
• Dynamic configuration and
tree initialization and
/ services
control APIs
configuration (as per
Linux/LWE)
•Reference / Sample apps
•Reference / Sample apps
•LWE apps (parity)
•Fragmentation/reassembly
•Reference / Sample apps
• Order restoration
•IPSec
• Packet reflection
• QoS
• IP forwarding sample
• Congestion groups
• Simple crypto
• Policer / Shaping
Linux
• Hugetlbfs
•Support for arbitrary page
sizes (limited only by H/W)
•Support for text placement
• Support for CPU sets
• Hugetlbfs
•Support for limited range of
page sizes
• Support for allocation of
contiguous ranges
TM
70
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
70
TM
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, t
he Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony
are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack,
ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ
Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks
of Freescale Semiconductor, Inc. All other product or service names are the property
of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
•
Low level drivers
BareBoard user environment:
−
−
−
−
•
Platform support:
−
−
•
•
System integration code (device-manager, layouts, etc)
“XX” layer (OS services)
Use Cases
General utilities (ITG, ITA, CLI, etc)
DS board support
SoC drivers (mem-ctrl, intr-ctrl, core, etc)
CommExpert - Configuration tool
Supporting documentation
−
−
−
−
−
Device Driver User Guide
Device Driver Reference Manual
Use Case Guide
Porting Guide
CommExpert User Guide
TM
72
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
•
•
•
•
•
•
•
Complete set of API routines, supporting the majority of
chip functionality
Fully modular peripheral drivers
OS agnostic
Interrupt or polling modes for communication peripherals
External memory management
Multiple type memory management supporting user‟s
memory partitioning
Object Oriented design and coding in „C‟
Highly documented package
TM
73
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Use-Case /
Application /
FMC
XX API
Driver‟s API
STL,
etc
OS / System
LLD
CORE API
WRITE_UINT /
GET_UINT API
TM
HW /
FW
74
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
Initialization – initialization of registers,
internal memory, and data structures required
by the hardware and software modules.
•
Runtime data path – Tx/Rx and related, time
critical routines.
•
Runtime Control – other runtime routines
such as on-the-fly adjustment of controllers
and features.
•
Exceptions – errors and special events.
TM
75
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
Each module provides a separate set of API
routines for functional manipulation.
• Initialization requires a set of calls including
 Configuration routine(s)
 Initialization routine
 Enable routine
• Runtime, control and exception routines may
be called at any time (after initialization),
passing as first parameter the module
descriptor.
TM
76
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
Callback Routines
•
Supplied by the application at initialization
time as parameters for initialization routine
• Called by the driver when needed (For
example f_exception is called upon the
occasion of certain exceptions)
TM
77
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
XX Routines
•
Hooks to the RTOS
• Supplied by the OS and called directly by the
drivers
• Examples of XX Routines: XX_Malloc,
XX_EnableIntr, etc.
TM
78
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
Application
System
While driver‟s
routines (API) are
called passing a
h_Module =Module_Config(p_Param)
handle of the
(p_Param contains h_App)
initialized object,
application routines
Module_Routine(h_Module)
- callbacks are
called passing the
user context as
initialized by the
XX_Routine()
user at the
f_Callback(h_App)
initialization routine
(h_App parameter)
Driver
TM
79
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
inc
env
hardware
user
integrations
cores
util
P4080
E500
etc
NetCommSw
MemCtl
DDR
PAR_IO
inc
LBC
DUART
Port
Peripherals
FM
IntrCtl
BM
EPIC
MAC
PCD
HC
QM
inc
DPAA
Rtc
MACSEC
Bare_P4080_cw_build
TM
80
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
API Objects
•
Each “object” in the API is represented by a data structure which holds
the members of the „class‟
•
The methods of a class are API routines which take as first argument
the object‟s handle, i.e. a pointer to the object‟s data structure
•
Initialization Routines
•
The object configuration routine functions as a constructor It returns a
handle to the newly created instantiation of the object. The init routine
applies the configuration to the hardware.
•
The object free routine functions as a destructor of the SW object, but
also clears the HW initialization.
TM
81
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
•
•
•
During initialization of each module that uses irqs,
the application specifies its irq number.
It is responsibility of the application above the driver
to manage the number of the irqs in the system
The driver registers to its irqs using the system
supplied XX routines:
− XX_SetIntr / XX_FreeIntr
− XX_EnableIntr / XX_DisableIntr
If application don‟t want the driver to register to
interrupt, it should pass „NO_IRQ‟ as a parameter to
the driver during initialization
TM
82
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
The runtime API consists of 2 types of routines:
− Control
API
API for changing parameters on the fly, setting functional modes
etc. Typically routines such as:
t_Error MODULE_SetXXX(t_Handle h_Module, <type>
<param>);
t_Error MODULE_GetXXX(t_Handle h_Module, <type>
*<param>);
− Runtime
Data
Datapath API, for transmission or reception of data
TM
83
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
TM
Enablement and Ecosystem
Partnership
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, t
he Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore and Symphony
are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack,
ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a Package, Processor Expert, QorIQ
Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks
of Freescale Semiconductor, Inc. All other product or service names are the property
of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
March 2010, Freescale announced industry-leading strategic alliances
with key software ecosystem partners
•
Partners are Enea, Green Hills Software and Mentor Graphics.
•
Initial architectures targeted – QorIQ, StarCore and PowerQUICC
−
Ongoing relationship with long standing partners - WR
•
Key Customer Benefits:
−
Freescale device-specific optimizations in ecosystem software - Ex: P4080
−
Availability of optimized ecosystem software close to first silicon samples
−
Coverage of new derivatives in each family – Ex: QorIQ, PowerQUICC etc.
TM
85
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
•
Objectives and Customer Benefits
−
Faster availability of commercial Linux support for Freescale processors
−
Seamless migration for customers moving from Roll-Your-Own-Linux (RYOL) to
Commercial Linux from Mentor
−
Highly integrated Linux solutions with specific optimizations for Freescale‟s device
Execution
−
Freescale will continue to develop and make available to customers and community the
Linux kernel and basic packages
−
Mentor add to the base from Freescale with their Commercial Linux Offerings
•
•
•
−


−


Professional tools support (EDGE toolset) including leading debug technology
Additional Hardening, Warranty, Indemnity, Liability, Support & Maintenance, Services
Additional Customizations/Packages for specific vertical markets
Mentor and Freescale partner to jointly develop Linux solutions
LTIB based distribution phased-out in favor of System Builder – OpenEmbedded Framework
Alignment on Kernel, Tool chain and test infrastructure
Mentor and Freescale partner to develop tooling solutions
Leverage common Eclipse-based environments for CodeWarrior and EDGE
Reuse USBTap and GigaTAP connections for high-performance run-control
TM
86
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Beach
Beach
Mentor
Production
Offering
Technology
Mentor
Commercial
Product
Technology
Base
Smooth
Transition
Common
Evaluation
Platform
No Cost
Linux
Customer
Platform
Reference
Board
Linux
Technology
Evaluation/
Prototyping
Freescale Mentor R&D Collaboration
TM
87
Production
Development
time
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Debugging Focus Area
Linux Application(s)
Ethernet
CodeWarrior
StarCore™
SDOS
Application(s)
Linux Debug Agent
SDOS
Linux
CodeWarrior
Power Arch
SC
SC
Host
Peripherals
PA
PA
91xx
Run Control/
Trace
TM
88
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Debugging Focus Area
Linux Application(s)
Ethernet
CodeWarrior
StarCore™
Mentor
Embedded
EDGE
SDOS
Application(s)
Linux Debug Agent
SDOS
Linux
SC
SC
Host
Peripherals
PA
PA
91xx
Run Control
Trace
TM
89
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
Debugging Focus Area
Linux Application(s)
Ethernet
CodeWarrior
StarCore™
SDOS
Application(s)
Linux Debug Agent
SDOS
Linux
WindRiver
WorkBench
SC
SC
Peripherals
Host
PA
PA
91xx
Run
Control/Trace
TM
Run Control
Trace
90
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
•
Initial development run-time choice – Linux + SDOS
•
Development and Integration work done on FSL / Mentor Linux
•
Tools and Enablement - CW or CW + Mentor Edge
−
•
Seamless integration – Same HW connection, Ecplise, Build tools…etc
WRS engaged on 91XX platform
−
Starcore capabilities / Heterogeneous support new for WRS
−
Linux flow and support - new integration model required
−
Eclipse synchronization and tools – new integration and engagement
model required
−
HW connection – new engagement model or separate run-control devices
−
Additional effort , investment and time to enable other partners / WR
TM
91
Freescale, the Freescale logo, AltiVec, C-5, CodeTEST, CodeWarrior, ColdFire, C-Ware, the Energy Efficient Solutions logo, mobileGT, PowerQUICC, QorIQ, StarCore
and Symphony are trademarks of Freescale Semiconductor, Inc., Reg. U.S. Pat. & Tm. Off. BeeKit, BeeStack, ColdFire+, CoreNet, Flexis, Kinetis, MXC, Platform in a
Package, Processor Expert, QorIQ Qonverge, Qorivva, QUICC Engine, SMARTMOS, TurboLink, VortiQa and Xtrinsic are trademarks of Freescale Semiconductor, Inc.
All other product or service names are the property of their respective owners. © 2011 Freescale Semiconductor, Inc.
TM
Download