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