FreeBSD on Freescale QorIQ Data Path Acceleration Architecture - - PowerPoint PPT Presentation

freebsd on freescale qoriq data path acceleration
SMART_READER_LITE
LIVE PREVIEW

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture - - PowerPoint PPT Presentation

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Piotr Zicik kosmo@semihalf.com BSDCan 2012 9-13 May, 2012 FreeBSD on Freescale QorIQ Data Path


slide-1
SLIDE 1

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Piotr Zięcik kosmo@semihalf.com BSDCan 2012 9-13 May, 2012

slide-2
SLIDE 2

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Presentation outline

◮ Introduction,

slide-3
SLIDE 3

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Presentation outline

◮ Introduction, ◮ Hardware description:

slide-4
SLIDE 4

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Presentation outline

◮ Introduction, ◮ Hardware description:

◮ Data Path Acceleration Architecture.

slide-5
SLIDE 5

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Presentation outline

◮ Introduction, ◮ Hardware description:

◮ Data Path Acceleration Architecture.

◮ Software description:

slide-6
SLIDE 6

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Presentation outline

◮ Introduction, ◮ Hardware description:

◮ Data Path Acceleration Architecture.

◮ Software description:

◮ Porting process.

slide-7
SLIDE 7

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Presentation outline

◮ Introduction, ◮ Hardware description:

◮ Data Path Acceleration Architecture.

◮ Software description:

◮ Porting process.

◮ Current state,

slide-8
SLIDE 8

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Presentation outline

◮ Introduction, ◮ Hardware description:

◮ Data Path Acceleration Architecture.

◮ Software description:

◮ Porting process.

◮ Current state, ◮ Future work.

slide-9
SLIDE 9

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Introduction

Networks are too fast!

slide-10
SLIDE 10

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Introduction

Networks are too fast!

◮ High packet rate:

slide-11
SLIDE 11

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Introduction

Networks are too fast!

◮ High packet rate:

◮ Fast Ethernet: 182 kpps.

slide-12
SLIDE 12

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Introduction

Networks are too fast!

◮ High packet rate:

◮ Fast Ethernet: 182 kpps. ◮ Gigabit Ethernet: 1.46 Mpps

slide-13
SLIDE 13

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Introduction

Networks are too fast!

◮ High packet rate:

◮ Fast Ethernet: 182 kpps. ◮ Gigabit Ethernet: 1.46 Mpps (4k ring buffer full in 2.8 ms).

slide-14
SLIDE 14

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Introduction

Networks are too fast!

◮ High packet rate:

◮ Fast Ethernet: 182 kpps. ◮ Gigabit Ethernet: 1.46 Mpps (4k ring buffer full in 2.8 ms).

◮ Problems:

slide-15
SLIDE 15

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Introduction

Networks are too fast!

◮ High packet rate:

◮ Fast Ethernet: 182 kpps. ◮ Gigabit Ethernet: 1.46 Mpps (4k ring buffer full in 2.8 ms).

◮ Problems:

◮ High interrupt rate and/or latency,

slide-16
SLIDE 16

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Introduction

Networks are too fast!

◮ High packet rate:

◮ Fast Ethernet: 182 kpps. ◮ Gigabit Ethernet: 1.46 Mpps (4k ring buffer full in 2.8 ms).

◮ Problems:

◮ High interrupt rate and/or latency, ◮ DMA memory management overhead,

slide-17
SLIDE 17

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Introduction

Networks are too fast!

◮ High packet rate:

◮ Fast Ethernet: 182 kpps. ◮ Gigabit Ethernet: 1.46 Mpps (4k ring buffer full in 2.8 ms).

◮ Problems:

◮ High interrupt rate and/or latency, ◮ DMA memory management overhead, ◮ Lock congestion,

slide-18
SLIDE 18

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Introduction

Networks are too fast!

◮ High packet rate:

◮ Fast Ethernet: 182 kpps. ◮ Gigabit Ethernet: 1.46 Mpps (4k ring buffer full in 2.8 ms).

◮ Problems:

◮ High interrupt rate and/or latency, ◮ DMA memory management overhead, ◮ Lock congestion, ◮ Packet parsing/inspection overhead.

slide-19
SLIDE 19

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Freescale QoriQ DPAA Family

◮ Most recent Freescale Communication SoCs,

slide-20
SLIDE 20

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Freescale QoriQ DPAA Family

◮ Most recent Freescale Communication SoCs, ◮ Successor of the PowerQUICC family,

slide-21
SLIDE 21

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Freescale QoriQ DPAA Family

◮ Most recent Freescale Communication SoCs, ◮ Successor of the PowerQUICC family, ◮ Up to 8 e500mc Cores,

slide-22
SLIDE 22

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Freescale QoriQ DPAA Family

◮ Most recent Freescale Communication SoCs, ◮ Successor of the PowerQUICC family, ◮ Up to 8 e500mc Cores, ◮ Up to 2x 10GbE + 8x 1GbE,

slide-23
SLIDE 23

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Freescale QoriQ DPAA Family

◮ Most recent Freescale Communication SoCs, ◮ Successor of the PowerQUICC family, ◮ Up to 8 e500mc Cores, ◮ Up to 2x 10GbE + 8x 1GbE, ◮ Hardware Virtualization Support,

slide-24
SLIDE 24

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Freescale QoriQ DPAA Family

◮ Most recent Freescale Communication SoCs, ◮ Successor of the PowerQUICC family, ◮ Up to 8 e500mc Cores, ◮ Up to 2x 10GbE + 8x 1GbE, ◮ Hardware Virtualization Support, ◮ Data Path Acceleration Architecture.

slide-25
SLIDE 25

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Freescale QoriQ DPAA Family

QorIQ P3041 Communication Processor (source: P3041 Fact Sheet)

slide-26
SLIDE 26

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components

slide-27
SLIDE 27

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components

◮ Buffer Manager,

slide-28
SLIDE 28

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components

◮ Buffer Manager, ◮ Queue Manager,

slide-29
SLIDE 29

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components

◮ Buffer Manager, ◮ Queue Manager, ◮ Frame Manager (NICs),

slide-30
SLIDE 30

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components

◮ Buffer Manager, ◮ Queue Manager, ◮ Frame Manager (NICs), ◮ Others:

slide-31
SLIDE 31

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components

◮ Buffer Manager, ◮ Queue Manager, ◮ Frame Manager (NICs), ◮ Others:

◮ Security Accelerator,

slide-32
SLIDE 32

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components

◮ Buffer Manager, ◮ Queue Manager, ◮ Frame Manager (NICs), ◮ Others:

◮ Security Accelerator, ◮ Pattern Matching Engine.

slide-33
SLIDE 33

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Buffer Manager

slide-34
SLIDE 34

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Buffer Manager

◮ Maintains Buffers,

slide-35
SLIDE 35

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Buffer Manager

◮ Maintains Buffers, ◮ Pools = Set of Buffers,

slide-36
SLIDE 36

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Buffer Manager

◮ Maintains Buffers, ◮ Pools = Set of Buffers, ◮ Pools are managed by software,

slide-37
SLIDE 37

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Buffer Manager

◮ Maintains Buffers, ◮ Pools = Set of Buffers, ◮ Pools are managed by software, ◮ Software and hardware may directly allocate/free buffer.

slide-38
SLIDE 38

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

slide-39
SLIDE 39

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

◮ Maintains Frames,

slide-40
SLIDE 40

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

◮ Maintains Frames, ◮ Frame Queue = Linked list of Frames,

slide-41
SLIDE 41

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

◮ Maintains Frames, ◮ Frame Queue = Linked list of Frames, ◮ Work Queue = Linked list of Frame Queues,

slide-42
SLIDE 42

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

◮ Maintains Frames, ◮ Frame Queue = Linked list of Frames, ◮ Work Queue = Linked list of Frame Queues, ◮ Channel = 8 ∗ (Work Queue + Priority).

slide-43
SLIDE 43

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

◮ Frames are enqueued to Frame Queues,

slide-44
SLIDE 44

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

◮ Frames are enqueued to Frame Queues, ◮ Frames are dequeued from Channels,

slide-45
SLIDE 45

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

◮ Frames are enqueued to Frame Queues, ◮ Frames are dequeued from Channels, ◮ Channels are attached to SoC components:

slide-46
SLIDE 46

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

◮ Frames are enqueued to Frame Queues, ◮ Frames are dequeued from Channels, ◮ Channels are attached to SoC components:

◮ Dedicated Channel: Connected to single device,

slide-47
SLIDE 47

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

◮ Frames are enqueued to Frame Queues, ◮ Frames are dequeued from Channels, ◮ Channels are attached to SoC components:

◮ Dedicated Channel: Connected to single device, ◮ Poll Channel: Connected to group of devices.

slide-48
SLIDE 48

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

◮ Frames are enqueued to Frame Queues, ◮ Frames are dequeued from Channels, ◮ Channels are attached to SoC components:

◮ Dedicated Channel: Connected to single device, ◮ Poll Channel: Connected to group of devices.

◮ Other Queue Manager features:

slide-49
SLIDE 49

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

◮ Frames are enqueued to Frame Queues, ◮ Frames are dequeued from Channels, ◮ Channels are attached to SoC components:

◮ Dedicated Channel: Connected to single device, ◮ Poll Channel: Connected to group of devices.

◮ Other Queue Manager features:

◮ Congestion Management (Tail drop, RED/WRED),

slide-50
SLIDE 50

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

◮ Frames are enqueued to Frame Queues, ◮ Frames are dequeued from Channels, ◮ Channels are attached to SoC components:

◮ Dedicated Channel: Connected to single device, ◮ Poll Channel: Connected to group of devices.

◮ Other Queue Manager features:

◮ Congestion Management (Tail drop, RED/WRED), ◮ Frame order restoration.

slide-51
SLIDE 51

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Frame Manager

slide-52
SLIDE 52

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Frame Manager

◮ MACs:

slide-53
SLIDE 53

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Frame Manager

◮ MACs:

◮ 1x 10Gb Ethernet + 5x 1Gb Ethernet.

slide-54
SLIDE 54

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Frame Manager

◮ MACs:

◮ 1x 10Gb Ethernet + 5x 1Gb Ethernet.

◮ DMA:

slide-55
SLIDE 55

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Frame Manager

◮ MACs:

◮ 1x 10Gb Ethernet + 5x 1Gb Ethernet.

◮ DMA:

◮ Buffer Manager Interface (QMI).

slide-56
SLIDE 56

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Frame Manager

◮ MACs:

◮ 1x 10Gb Ethernet + 5x 1Gb Ethernet.

◮ DMA:

◮ Buffer Manager Interface (QMI). ◮ Queue Manager Interface (BMI),

slide-57
SLIDE 57

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Frame Manager

◮ MACs:

◮ 1x 10Gb Ethernet + 5x 1Gb Ethernet.

◮ DMA:

◮ Buffer Manager Interface (QMI). ◮ Queue Manager Interface (BMI), ◮ DMA Engine,

slide-58
SLIDE 58

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Frame Manager

◮ MACs:

◮ 1x 10Gb Ethernet + 5x 1Gb Ethernet.

◮ DMA:

◮ Buffer Manager Interface (QMI). ◮ Queue Manager Interface (BMI), ◮ DMA Engine,

◮ Frame Processor:

slide-59
SLIDE 59

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Frame Manager

◮ MACs:

◮ 1x 10Gb Ethernet + 5x 1Gb Ethernet.

◮ DMA:

◮ Buffer Manager Interface (QMI). ◮ Queue Manager Interface (BMI), ◮ DMA Engine,

◮ Frame Processor:

◮ Parser,

slide-60
SLIDE 60

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Frame Manager

◮ MACs:

◮ 1x 10Gb Ethernet + 5x 1Gb Ethernet.

◮ DMA:

◮ Buffer Manager Interface (QMI). ◮ Queue Manager Interface (BMI), ◮ DMA Engine,

◮ Frame Processor:

◮ Parser, ◮ Key Generator,

slide-61
SLIDE 61

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Frame Manager

◮ MACs:

◮ 1x 10Gb Ethernet + 5x 1Gb Ethernet.

◮ DMA:

◮ Buffer Manager Interface (QMI). ◮ Queue Manager Interface (BMI), ◮ DMA Engine,

◮ Frame Processor:

◮ Parser, ◮ Key Generator, ◮ Policer,

slide-62
SLIDE 62

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Frame Manager

◮ MACs:

◮ 1x 10Gb Ethernet + 5x 1Gb Ethernet.

◮ DMA:

◮ Buffer Manager Interface (QMI). ◮ Queue Manager Interface (BMI), ◮ DMA Engine,

◮ Frame Processor:

◮ Parser, ◮ Key Generator, ◮ Policer, ◮ Frame Processing Module.

slide-63
SLIDE 63

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Software Portals

slide-64
SLIDE 64

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Software Portals

◮ CPU ↔ DPAA communication channels,

slide-65
SLIDE 65

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Software Portals

◮ CPU ↔ DPAA communication channels, ◮ Portal = Cache Enabled + Cache Inhibited registers,

slide-66
SLIDE 66

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Software Portals

◮ CPU ↔ DPAA communication channels, ◮ Portal = Cache Enabled + Cache Inhibited registers, ◮ Transaction oriented,

slide-67
SLIDE 67

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Software Portals

◮ CPU ↔ DPAA communication channels, ◮ Portal = Cache Enabled + Cache Inhibited registers, ◮ Transaction oriented, ◮ Efficient SoC Bus usage.

slide-68
SLIDE 68

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Hardware: Other selected features

slide-69
SLIDE 69

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Hardware: Other selected features

◮ Cache Stashing,

slide-70
SLIDE 70

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Hardware: Other selected features

◮ Cache Stashing, ◮ Virtualization:

slide-71
SLIDE 71

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Hardware: Other selected features

◮ Cache Stashing, ◮ Virtualization:

◮ Additional privilege level in e500mc core,

slide-72
SLIDE 72

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Hardware: Other selected features

◮ Cache Stashing, ◮ Virtualization:

◮ Additional privilege level in e500mc core, ◮ Peripheral Access Management Units,

slide-73
SLIDE 73

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Hardware: Other selected features

◮ Cache Stashing, ◮ Virtualization:

◮ Additional privilege level in e500mc core, ◮ Peripheral Access Management Units, ◮ Logical I/O Device Number,

slide-74
SLIDE 74

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Hardware: Other selected features

◮ Cache Stashing, ◮ Virtualization:

◮ Additional privilege level in e500mc core, ◮ Peripheral Access Management Units, ◮ Logical I/O Device Number, ◮ Data Path Acceleration Architecture.

slide-75
SLIDE 75

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Software

slide-76
SLIDE 76

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Software

◮ Toolchain,

slide-77
SLIDE 77

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Software

◮ Toolchain, ◮ Early kernel initialization,

slide-78
SLIDE 78

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Software

◮ Toolchain, ◮ Early kernel initialization, ◮ Data Path Acceleration Architecture bring-up,

slide-79
SLIDE 79

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Software

◮ Toolchain, ◮ Early kernel initialization, ◮ Data Path Acceleration Architecture bring-up, ◮ SMP,

◮ DPAA in SMP environment,

slide-80
SLIDE 80

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Software

◮ Toolchain, ◮ Early kernel initialization, ◮ Data Path Acceleration Architecture bring-up, ◮ SMP,

◮ DPAA in SMP environment,

◮ Other peripherals.

slide-81
SLIDE 81

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Toolchain

slide-82
SLIDE 82

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Toolchain

◮ Support for e500v2 (predecessor of the e500mc) had

been already present,

slide-83
SLIDE 83

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Toolchain

◮ Support for e500v2 (predecessor of the e500mc) had

been already present,

◮ Only minor changes were required in binutils and gcc,

slide-84
SLIDE 84

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Toolchain

◮ Support for e500v2 (predecessor of the e500mc) had

been already present,

◮ Only minor changes were required in binutils and gcc, ◮ All patches were available from the community and

Freescale.

slide-85
SLIDE 85

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

locore.S

slide-86
SLIDE 86

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

locore.S

◮ First code executed in FreeBSD kernel,

slide-87
SLIDE 87

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

locore.S

◮ First code executed in FreeBSD kernel, ◮ Architecture depended assembly,

slide-88
SLIDE 88

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

locore.S

◮ First code executed in FreeBSD kernel, ◮ Architecture depended assembly, ◮ Prepares environment for C.

slide-89
SLIDE 89

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

locore.S

◮ First code executed in FreeBSD kernel, ◮ Architecture depended assembly, ◮ Prepares environment for C.

PowerPC locore.S

slide-90
SLIDE 90

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

locore.S

◮ First code executed in FreeBSD kernel, ◮ Architecture depended assembly, ◮ Prepares environment for C.

PowerPC locore.S

◮ TLB initialization,

slide-91
SLIDE 91

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

locore.S

◮ First code executed in FreeBSD kernel, ◮ Architecture depended assembly, ◮ Prepares environment for C.

PowerPC locore.S

◮ TLB initialization, ◮ Kernel stack initialization.

slide-92
SLIDE 92

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

e500mc features in locore.S

slide-93
SLIDE 93

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

e500mc features in locore.S

◮ Bigger TLB,

slide-94
SLIDE 94

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

e500mc features in locore.S

◮ Bigger TLB, ◮ Hypervisor privilege level,

slide-95
SLIDE 95

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

e500mc features in locore.S

◮ Bigger TLB, ◮ Hypervisor privilege level, ◮ Hardware Implementation-Dependent Registers (HIDs).

slide-96
SLIDE 96

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

e500mc features in locore.S

◮ Bigger TLB, ◮ Hypervisor privilege level, ◮ Hardware Implementation-Dependent Registers (HIDs).

New TLB also affects pmap(9).

slide-97
SLIDE 97

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

DPAA Bring-up

slide-98
SLIDE 98

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

DPAA Bring-up

NetCommSw

slide-99
SLIDE 99

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

DPAA Bring-up

NetCommSw

◮ A packet processing framework,

slide-100
SLIDE 100

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

DPAA Bring-up

NetCommSw

◮ A packet processing framework, ◮ OS Agnostic,

slide-101
SLIDE 101

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

DPAA Bring-up

NetCommSw

◮ A packet processing framework, ◮ OS Agnostic, ◮ Greatly reduces development time,

slide-102
SLIDE 102

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

DPAA Bring-up

NetCommSw

◮ A packet processing framework, ◮ OS Agnostic, ◮ Greatly reduces development time, ◮ Propertiary licensed.

slide-103
SLIDE 103

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

DPAA Bring-up

NetCommSw

◮ A packet processing framework, ◮ OS Agnostic, ◮ Greatly reduces development time, ◮ Propertiary licensed.

Thanks to Freescale!

Buffer, Queue and Frame Manager drivers are now available under the BSD license.

slide-104
SLIDE 104

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

NetCommSw Driver Model

slide-105
SLIDE 105

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

XX Routines

slide-106
SLIDE 106

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

XX Routines

◮ Simple routines for basic OS functions:

slide-107
SLIDE 107

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

XX Routines

◮ Simple routines for basic OS functions:

◮ void *XX_Malloc(unsigned int size)

slide-108
SLIDE 108

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

XX Routines

◮ Simple routines for basic OS functions:

◮ void *XX_Malloc(unsigned int size)

◮ Physical to Virtual translation is required:

slide-109
SLIDE 109

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

XX Routines

◮ Simple routines for basic OS functions:

◮ void *XX_Malloc(unsigned int size)

◮ Physical to Virtual translation is required:

◮ Not supported by the FreeBSD kernel,

slide-110
SLIDE 110

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

XX Routines

◮ Simple routines for basic OS functions:

◮ void *XX_Malloc(unsigned int size)

◮ Physical to Virtual translation is required:

◮ Not supported by the FreeBSD kernel, ◮ Ambiguous,

slide-111
SLIDE 111

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

XX Routines

◮ Simple routines for basic OS functions:

◮ void *XX_Malloc(unsigned int size)

◮ Physical to Virtual translation is required:

◮ Not supported by the FreeBSD kernel, ◮ Ambiguous,

◮ Solution:

slide-112
SLIDE 112

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

XX Routines

◮ Simple routines for basic OS functions:

◮ void *XX_Malloc(unsigned int size)

◮ Physical to Virtual translation is required:

◮ Not supported by the FreeBSD kernel, ◮ Ambiguous,

◮ Solution:

◮ Keep list of all active mappings in vm_page structure,

slide-113
SLIDE 113

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

XX Routines

◮ Simple routines for basic OS functions:

◮ void *XX_Malloc(unsigned int size)

◮ Physical to Virtual translation is required:

◮ Not supported by the FreeBSD kernel, ◮ Ambiguous,

◮ Solution:

◮ Keep list of all active mappings in vm_page structure, ◮ pmap_enter() and pmap_remove() manages the list,

slide-114
SLIDE 114

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

XX Routines

◮ Simple routines for basic OS functions:

◮ void *XX_Malloc(unsigned int size)

◮ Physical to Virtual translation is required:

◮ Not supported by the FreeBSD kernel, ◮ Ambiguous,

◮ Solution:

◮ Keep list of all active mappings in vm_page structure, ◮ pmap_enter() and pmap_remove() manages the list, ◮ XX Routines: PA → vm_page → the mappings list → VA.

slide-115
SLIDE 115

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Wrapper Drivers

slide-116
SLIDE 116

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Wrapper Drivers

◮ OS ↔ NetCommSw API translation layer,

slide-117
SLIDE 117

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Wrapper Drivers

◮ OS ↔ NetCommSw API translation layer, ◮ Access serialization layer,

slide-118
SLIDE 118

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Wrapper Drivers

◮ OS ↔ NetCommSw API translation layer, ◮ Access serialization layer, ◮ Written as simple newbus attachments,

slide-119
SLIDE 119

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Wrapper Drivers

◮ OS ↔ NetCommSw API translation layer, ◮ Access serialization layer, ◮ Written as simple newbus attachments, ◮ Export own API.

slide-120
SLIDE 120

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Frame Manager Wrapper Driver

slide-121
SLIDE 121

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Frame Manager Wrapper Driver

◮ Consists of several NetCommSw submodules,

slide-122
SLIDE 122

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Frame Manager Wrapper Driver

◮ Consists of several NetCommSw submodules, ◮ Each submodule have own API,

slide-123
SLIDE 123

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Frame Manager Wrapper Driver

◮ Consists of several NetCommSw submodules, ◮ Each submodule have own API, ◮ A single Frame Manger Wrapper Driver:

slide-124
SLIDE 124

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Frame Manager Wrapper Driver

◮ Consists of several NetCommSw submodules, ◮ Each submodule have own API, ◮ A single Frame Manger Wrapper Driver:

◮ Performs initialization of common parts,

slide-125
SLIDE 125

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Frame Manager Wrapper Driver

◮ Consists of several NetCommSw submodules, ◮ Each submodule have own API, ◮ A single Frame Manger Wrapper Driver:

◮ Performs initialization of common parts, ◮ Manages internal FMan resources,

slide-126
SLIDE 126

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Frame Manager Wrapper Driver

◮ Consists of several NetCommSw submodules, ◮ Each submodule have own API, ◮ A single Frame Manger Wrapper Driver:

◮ Performs initialization of common parts, ◮ Manages internal FMan resources, ◮ Exports single, simplified API.

slide-127
SLIDE 127

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver

slide-128
SLIDE 128

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver

◮ Classic NIC driver from OS perspective,

slide-129
SLIDE 129

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver

◮ Classic NIC driver from OS perspective, ◮ Uses BMan, QMan and FMan wrapper drivers,

slide-130
SLIDE 130

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver

◮ Classic NIC driver from OS perspective, ◮ Uses BMan, QMan and FMan wrapper drivers, ◮ Binds DPAA parts together.

slide-131
SLIDE 131

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver: DPAA Usage

slide-132
SLIDE 132

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver: DPAA Usage

◮ Buffer Manager:

slide-133
SLIDE 133

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver: DPAA Usage

◮ Buffer Manager:

◮ RX buffer pool management.

slide-134
SLIDE 134

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver: DPAA Usage

◮ Buffer Manager:

◮ RX buffer pool management.

◮ Queue Manager:

slide-135
SLIDE 135

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver: DPAA Usage

◮ Buffer Manager:

◮ RX buffer pool management.

◮ Queue Manager:

◮ Reads/Writes frames from/to queues (associated with

MACs).

slide-136
SLIDE 136

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver: DPAA Usage

◮ Buffer Manager:

◮ RX buffer pool management.

◮ Queue Manager:

◮ Reads/Writes frames from/to queues (associated with

MACs).

◮ Frame Manager:

slide-137
SLIDE 137

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver: DPAA Usage

◮ Buffer Manager:

◮ RX buffer pool management.

◮ Queue Manager:

◮ Reads/Writes frames from/to queues (associated with

MACs).

◮ Frame Manager:

◮ MAC abstraction,

slide-138
SLIDE 138

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver: DPAA Usage

◮ Buffer Manager:

◮ RX buffer pool management.

◮ Queue Manager:

◮ Reads/Writes frames from/to queues (associated with

MACs).

◮ Frame Manager:

◮ MAC abstraction, ◮ Data flow configuration.

slide-139
SLIDE 139

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver: TX Path

slide-140
SLIDE 140

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver: RX Path

slide-141
SLIDE 141

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP Bring-Up

slide-142
SLIDE 142

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP Bring-Up

◮ Based on existing e500v2 implementation,

slide-143
SLIDE 143

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP Bring-Up

◮ Based on existing e500v2 implementation, ◮ Issues with more than 2 cores:

slide-144
SLIDE 144

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP Bring-Up

◮ Based on existing e500v2 implementation, ◮ Issues with more than 2 cores:

◮ IPI Multicasting

slide-145
SLIDE 145

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP Bring-Up

◮ Based on existing e500v2 implementation, ◮ Issues with more than 2 cores:

◮ IPI Multicasting

◮ DPAA-related issues.

slide-146
SLIDE 146

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Mapping

slide-147
SLIDE 147

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Mapping

◮ Dedicated portal for each CPU,

slide-148
SLIDE 148

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Mapping

◮ Dedicated portal for each CPU, ◮ Same portal address on each CPU,

slide-149
SLIDE 149

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Mapping

◮ Dedicated portal for each CPU, ◮ Same portal address on each CPU, ◮ Such device mapping was not supported:

slide-150
SLIDE 150

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Mapping

◮ Dedicated portal for each CPU, ◮ Same portal address on each CPU, ◮ Such device mapping was not supported:

◮ Introduction of "shared" bit,

slide-151
SLIDE 151

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Mapping

◮ Dedicated portal for each CPU, ◮ Same portal address on each CPU, ◮ Such device mapping was not supported:

◮ Introduction of "shared" bit, ◮ Implemented using user-defined bits in TLB entry,

slide-152
SLIDE 152

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Mapping

◮ Dedicated portal for each CPU, ◮ Same portal address on each CPU, ◮ Such device mapping was not supported:

◮ Introduction of "shared" bit, ◮ Implemented using user-defined bits in TLB entry, ◮ Only marked entries are propagated to other cores,

slide-153
SLIDE 153

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Mapping

◮ Dedicated portal for each CPU, ◮ Same portal address on each CPU, ◮ Such device mapping was not supported:

◮ Introduction of "shared" bit, ◮ Implemented using user-defined bits in TLB entry, ◮ Only marked entries are propagated to other cores, ◮ Private are set on each CPU.

slide-154
SLIDE 154

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Configuration

slide-155
SLIDE 155

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Configuration

◮ Has to be performed on each portal (CPU),

slide-156
SLIDE 156

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Configuration

◮ Has to be performed on each portal (CPU), ◮ Only boot CPU can execute configuration during boot,

slide-157
SLIDE 157

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Configuration

◮ Has to be performed on each portal (CPU), ◮ Only boot CPU can execute configuration during boot, ◮ Other cores must initialize portals on demand:

slide-158
SLIDE 158

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Configuration

◮ Has to be performed on each portal (CPU), ◮ Only boot CPU can execute configuration during boot, ◮ Other cores must initialize portals on demand:

◮ This may happen any time,

slide-159
SLIDE 159

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Configuration

◮ Has to be performed on each portal (CPU), ◮ Only boot CPU can execute configuration during boot, ◮ Other cores must initialize portals on demand:

◮ This may happen any time, ◮ Portal configuration includes IRQ request,

slide-160
SLIDE 160

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Configuration

◮ Has to be performed on each portal (CPU), ◮ Only boot CPU can execute configuration during boot, ◮ Other cores must initialize portals on demand:

◮ This may happen any time, ◮ Portal configuration includes IRQ request, ◮ But intr_event_create() may sleep!

slide-161
SLIDE 161

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Configuration

◮ Has to be performed on each portal (CPU), ◮ Only boot CPU can execute configuration during boot, ◮ Other cores must initialize portals on demand:

◮ This may happen any time, ◮ Portal configuration includes IRQ request, ◮ But intr_event_create() may sleep! ◮ Solution: Interrupt preallocation in XX Routines.

slide-162
SLIDE 162

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Interrupts

slide-163
SLIDE 163

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Interrupts

◮ Portal Interrupts must be bound to particular CPU,

slide-164
SLIDE 164

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Interrupts

◮ Portal Interrupts must be bound to particular CPU, ◮ Solution: Interrupt thread binding layer in XX Routines.

slide-165
SLIDE 165

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Other Peripherals

slide-166
SLIDE 166

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Other Peripherals

◮ PCI Express Bus,

slide-167
SLIDE 167

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Other Peripherals

◮ PCI Express Bus, ◮ USB Controller (EHCI compliant),

slide-168
SLIDE 168

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Other Peripherals

◮ PCI Express Bus, ◮ USB Controller (EHCI compliant), ◮ SD/MMC Controller,

slide-169
SLIDE 169

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Other Peripherals

◮ PCI Express Bus, ◮ USB Controller (EHCI compliant), ◮ SD/MMC Controller, ◮ I2C Controller,

slide-170
SLIDE 170

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Other Peripherals

◮ PCI Express Bus, ◮ USB Controller (EHCI compliant), ◮ SD/MMC Controller, ◮ I2C Controller, ◮ IDMA Controller.

slide-171
SLIDE 171

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Current State and Results

slide-172
SLIDE 172

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Current State and Results

◮ Supported chips: P2041, P3041 and P5020 (in 32-bit

mode),

slide-173
SLIDE 173

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Current State and Results

◮ Supported chips: P2041, P3041 and P5020 (in 32-bit

mode),

◮ Simple iperf test:

slide-174
SLIDE 174

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Current State and Results

◮ Supported chips: P2041, P3041 and P5020 (in 32-bit

mode),

◮ Simple iperf test:

◮ Speed: 897 Mbit/s

slide-175
SLIDE 175

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Current State and Results

◮ Supported chips: P2041, P3041 and P5020 (in 32-bit

mode),

◮ Simple iperf test:

◮ Speed: 897 Mbit/s ◮ CPU Utilization: 30%,

slide-176
SLIDE 176

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Current State and Results

◮ Supported chips: P2041, P3041 and P5020 (in 32-bit

mode),

◮ Simple iperf test:

◮ Speed: 897 Mbit/s ◮ CPU Utilization: 30%, ◮ Of which 90% was interrupt servicing.

slide-177
SLIDE 177

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Current State and Results

p3041# vmstat -i interrupt total rate irq121: bman0 1 irq120: qman0 2784930 3584 irq122: qman0 2194130 2823 irq124: qman0 2263079 2912 irq126: qman0 2148167 2764 (...)

slide-178
SLIDE 178

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Future work

slide-179
SLIDE 179

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Future work

◮ More networking features:

slide-180
SLIDE 180

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Future work

◮ More networking features:

◮ Pooling Mode,

slide-181
SLIDE 181

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Future work

◮ More networking features:

◮ Pooling Mode, ◮ Hardware Checksumming,

slide-182
SLIDE 182

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Future work

◮ More networking features:

◮ Pooling Mode, ◮ Hardware Checksumming, ◮ Jumbo Frames,

slide-183
SLIDE 183

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Future work

◮ More networking features:

◮ Pooling Mode, ◮ Hardware Checksumming, ◮ Jumbo Frames,

◮ More peripherals:

slide-184
SLIDE 184

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Future work

◮ More networking features:

◮ Pooling Mode, ◮ Hardware Checksumming, ◮ Jumbo Frames,

◮ More peripherals:

◮ Pattern Matching Engine,

slide-185
SLIDE 185

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Future work

◮ More networking features:

◮ Pooling Mode, ◮ Hardware Checksumming, ◮ Jumbo Frames,

◮ More peripherals:

◮ Pattern Matching Engine, ◮ Security Engine,

slide-186
SLIDE 186

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Future work

◮ More networking features:

◮ Pooling Mode, ◮ Hardware Checksumming, ◮ Jumbo Frames,

◮ More peripherals:

◮ Pattern Matching Engine, ◮ Security Engine, ◮ SATA Controller.

slide-187
SLIDE 187

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Acknowledgments

slide-188
SLIDE 188

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Acknowledgments

◮ Michał Dubiel (Semihalf),

slide-189
SLIDE 189

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Acknowledgments

◮ Michał Dubiel (Semihalf), ◮ Rafał Jaworowski (Semihalf, The FreeBSD Project),

slide-190
SLIDE 190

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Acknowledgments

◮ Michał Dubiel (Semihalf), ◮ Rafał Jaworowski (Semihalf, The FreeBSD Project), ◮ Phil Brownfield (Freescale)

slide-191
SLIDE 191

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Acknowledgments

◮ Michał Dubiel (Semihalf), ◮ Rafał Jaworowski (Semihalf, The FreeBSD Project), ◮ Phil Brownfield (Freescale) ◮ Zbigniew Bodek, Piotr Nowak, Tomasz Nowicki, Jan

Sięka, Łukasz Wójcik (all Semihalf).

slide-192
SLIDE 192

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

The End Any questions?