+ All Categories
Home > Documents > FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on...

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on...

Date post: 28-Jun-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
192
FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Piotr Ziƒcik [email protected] BSDCan 2012 9-13 May, 2012
Transcript
Page 1: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

FreeBSD on Freescale QorIQ Data PathAcceleration Architecture Devices

Piotr Zię[email protected]

BSDCan 2012 9-13 May, 2012

Page 2: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Presentation outline

I Introduction,

I Hardware description:

I Data Path Acceleration Architecture.

I Software description:

I Porting process.

I Current state,I Future work.

Page 3: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Presentation outline

I Introduction,I Hardware description:

I Data Path Acceleration Architecture.I Software description:

I Porting process.

I Current state,I Future work.

Page 4: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Presentation outline

I Introduction,I Hardware description:

I Data Path Acceleration Architecture.

I Software description:

I Porting process.

I Current state,I Future work.

Page 5: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Presentation outline

I Introduction,I Hardware description:

I Data Path Acceleration Architecture.I Software description:

I Porting process.I Current state,I Future work.

Page 6: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Presentation outline

I Introduction,I Hardware description:

I Data Path Acceleration Architecture.I Software description:

I Porting process.

I Current state,I Future work.

Page 7: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Presentation outline

I Introduction,I Hardware description:

I Data Path Acceleration Architecture.I Software description:

I Porting process.I Current state,

I Future work.

Page 8: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Presentation outline

I Introduction,I Hardware description:

I Data Path Acceleration Architecture.I Software description:

I Porting process.I Current state,I Future work.

Page 9: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Introduction

Networks are too fast!

I High packet rate:

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

(4k ring buffer full in 2.8 ms).

I Problems:

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

Page 10: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Introduction

Networks are too fast!

I High packet rate:

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

(4k ring buffer full in 2.8 ms).

I Problems:

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

Page 11: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Introduction

Networks are too fast!

I High packet rate:I Fast Ethernet: 182 kpps.

I Gigabit Ethernet: 1.46 Mpps

(4k ring buffer full in 2.8 ms).

I Problems:

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

Page 12: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Introduction

Networks are too fast!

I High packet rate:I Fast Ethernet: 182 kpps.I Gigabit Ethernet: 1.46 Mpps

(4k ring buffer full in 2.8 ms).I Problems:

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

Page 13: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Introduction

Networks are too fast!

I High packet rate:I Fast Ethernet: 182 kpps.I Gigabit Ethernet: 1.46 Mpps (4k ring buffer full in 2.8 ms).

I Problems:

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

Page 14: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Introduction

Networks are too fast!

I High packet rate:I Fast Ethernet: 182 kpps.I Gigabit Ethernet: 1.46 Mpps (4k ring buffer full in 2.8 ms).

I Problems:

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

Page 15: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Introduction

Networks are too fast!

I High packet rate:I Fast Ethernet: 182 kpps.I Gigabit Ethernet: 1.46 Mpps (4k ring buffer full in 2.8 ms).

I Problems:I High interrupt rate and/or latency,

I DMA memory management overhead,I Lock congestion,I Packet parsing/inspection overhead.

Page 16: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Introduction

Networks are too fast!

I High packet rate:I Fast Ethernet: 182 kpps.I Gigabit Ethernet: 1.46 Mpps (4k ring buffer full in 2.8 ms).

I Problems:I High interrupt rate and/or latency,I DMA memory management overhead,

I Lock congestion,I Packet parsing/inspection overhead.

Page 17: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Introduction

Networks are too fast!

I High packet rate:I Fast Ethernet: 182 kpps.I Gigabit Ethernet: 1.46 Mpps (4k ring buffer full in 2.8 ms).

I Problems:I High interrupt rate and/or latency,I DMA memory management overhead,I Lock congestion,

I Packet parsing/inspection overhead.

Page 18: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Introduction

Networks are too fast!

I High packet rate:I Fast Ethernet: 182 kpps.I Gigabit Ethernet: 1.46 Mpps (4k ring buffer full in 2.8 ms).

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

Page 19: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Freescale QoriQ DPAA Family

I Most recent Freescale Communication SoCs,

I Successor of the PowerQUICC family,I Up to 8 e500mc Cores,I Up to 2x 10GbE + 8x 1GbE,I Hardware Virtualization Support,I Data Path Acceleration Architecture.

Page 20: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Freescale QoriQ DPAA Family

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

I Up to 8 e500mc Cores,I Up to 2x 10GbE + 8x 1GbE,I Hardware Virtualization Support,I Data Path Acceleration Architecture.

Page 21: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Freescale QoriQ DPAA Family

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

I Up to 2x 10GbE + 8x 1GbE,I Hardware Virtualization Support,I Data Path Acceleration Architecture.

Page 22: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Freescale QoriQ DPAA Family

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

I Hardware Virtualization Support,I Data Path Acceleration Architecture.

Page 23: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Freescale QoriQ DPAA Family

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

I Data Path Acceleration Architecture.

Page 24: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Freescale QoriQ DPAA Family

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

Page 25: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Freescale QoriQ DPAA Family

QorIQ P3041 Communication Processor (source: P3041 Fact Sheet)

Page 26: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components

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

I Security Accelerator,I Pattern Matching Engine.

Page 27: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components

I Buffer Manager,

I Queue Manager,I Frame Manager (NICs),I Others:

I Security Accelerator,I Pattern Matching Engine.

Page 28: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components

I Buffer Manager,I Queue Manager,

I Frame Manager (NICs),I Others:

I Security Accelerator,I Pattern Matching Engine.

Page 29: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components

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

I Others:

I Security Accelerator,I Pattern Matching Engine.

Page 30: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components

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

I Security Accelerator,I Pattern Matching Engine.

Page 31: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components

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

I Security Accelerator,

I Pattern Matching Engine.

Page 32: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components

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

I Security Accelerator,I Pattern Matching Engine.

Page 33: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Buffer Manager

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

Page 34: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Buffer Manager

I Maintains Buffers,

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

Page 35: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Buffer Manager

I Maintains Buffers,I Pools = Set of Buffers,

I Pools are managed by software,I Software and hardware may directly allocate/free buffer.

Page 36: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Buffer Manager

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

I Software and hardware may directly allocate/free buffer.

Page 37: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Buffer Manager

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

Page 38: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

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

Page 39: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

I Maintains Frames,

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

Page 40: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

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

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

Page 41: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

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

I Channel = 8 ∗ (Work Queue + Priority).

Page 42: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

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

Page 43: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

I Frames are enqueued to Frame Queues,

I Frames are dequeued from Channels,I Channels are attached to SoC components:

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

I Other Queue Manager features:

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

Page 44: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

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

I Channels are attached to SoC components:

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

I Other Queue Manager features:

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

Page 45: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

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

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

I Other Queue Manager features:

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

Page 46: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

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

I Dedicated Channel: Connected to single device,

I Poll Channel: Connected to group of devices.I Other Queue Manager features:

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

Page 47: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

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

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

I Other Queue Manager features:

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

Page 48: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

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

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

I Other Queue Manager features:

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

Page 49: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

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

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

I Other Queue Manager features:I Congestion Management (Tail drop, RED/WRED),

I Frame order restoration.

Page 50: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Components: Queue Manager

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

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

I Other Queue Manager features:I Congestion Management (Tail drop, RED/WRED),I Frame order restoration.

Page 51: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration ArchitectureComponents: Frame Manager

I MACs:

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

I DMA:

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

I Frame Processor:

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

Page 52: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration ArchitectureComponents: Frame Manager

I MACs:

I 1x 10Gb Ethernet + 5x 1Gb Ethernet.I DMA:

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

I Frame Processor:

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

Page 53: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration ArchitectureComponents: Frame Manager

I MACs:I 1x 10Gb Ethernet + 5x 1Gb Ethernet.

I DMA:

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

I Frame Processor:

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

Page 54: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration ArchitectureComponents: Frame Manager

I MACs:I 1x 10Gb Ethernet + 5x 1Gb Ethernet.

I DMA:

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

I Frame Processor:

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

Page 55: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration ArchitectureComponents: Frame Manager

I MACs:I 1x 10Gb Ethernet + 5x 1Gb Ethernet.

I DMA:I Buffer Manager Interface (QMI).

I Queue Manager Interface (BMI),I DMA Engine,

I Frame Processor:

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

Page 56: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration ArchitectureComponents: Frame Manager

I MACs:I 1x 10Gb Ethernet + 5x 1Gb Ethernet.

I DMA:I Buffer Manager Interface (QMI).I Queue Manager Interface (BMI),

I DMA Engine,I Frame Processor:

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

Page 57: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration ArchitectureComponents: Frame Manager

I MACs:I 1x 10Gb Ethernet + 5x 1Gb Ethernet.

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

I Frame Processor:

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

Page 58: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration ArchitectureComponents: Frame Manager

I MACs:I 1x 10Gb Ethernet + 5x 1Gb Ethernet.

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

I Frame Processor:

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

Page 59: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration ArchitectureComponents: Frame Manager

I MACs:I 1x 10Gb Ethernet + 5x 1Gb Ethernet.

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

I Frame Processor:I Parser,

I Key Generator,I Policer,I Frame Processing Module.

Page 60: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration ArchitectureComponents: Frame Manager

I MACs:I 1x 10Gb Ethernet + 5x 1Gb Ethernet.

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

I Frame Processor:I Parser,I Key Generator,

I Policer,I Frame Processing Module.

Page 61: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration ArchitectureComponents: Frame Manager

I MACs:I 1x 10Gb Ethernet + 5x 1Gb Ethernet.

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

I Frame Processor:I Parser,I Key Generator,I Policer,

I Frame Processing Module.

Page 62: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration ArchitectureComponents: Frame Manager

I MACs:I 1x 10Gb Ethernet + 5x 1Gb Ethernet.

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

I Frame Processor:I Parser,I Key Generator,I Policer,I Frame Processing Module.

Page 63: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Software Portals

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

Page 64: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Software PortalsI CPU↔ DPAA communication channels,

I Portal = Cache Enabled + Cache Inhibited registers,I Transaction oriented,I Efficient SoC Bus usage.

Page 65: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Software PortalsI CPU↔ DPAA communication channels,I Portal = Cache Enabled + Cache Inhibited registers,

I Transaction oriented,I Efficient SoC Bus usage.

Page 66: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

Software PortalsI CPU↔ DPAA communication channels,I Portal = Cache Enabled + Cache Inhibited registers,I Transaction oriented,

I Efficient SoC Bus usage.

Page 67: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Data Path Acceleration Architecture

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

Page 68: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Hardware: Other selected features

I Cache Stashing,I Virtualization:

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

I Logical I/O Device Number,

I Data Path Acceleration Architecture.

Page 69: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Hardware: Other selected features

I Cache Stashing,

I Virtualization:

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

I Logical I/O Device Number,

I Data Path Acceleration Architecture.

Page 70: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Hardware: Other selected features

I Cache Stashing,I Virtualization:

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

I Logical I/O Device Number,

I Data Path Acceleration Architecture.

Page 71: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Hardware: Other selected features

I Cache Stashing,I Virtualization:

I Additional privilege level in e500mc core,

I Peripheral Access Management Units,

I Logical I/O Device Number,

I Data Path Acceleration Architecture.

Page 72: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Hardware: Other selected features

I Cache Stashing,I Virtualization:

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

I Logical I/O Device Number,I Data Path Acceleration Architecture.

Page 73: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Hardware: Other selected features

I Cache Stashing,I Virtualization:

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

I Logical I/O Device Number,

I Data Path Acceleration Architecture.

Page 74: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Hardware: Other selected features

I Cache Stashing,I Virtualization:

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

I Logical I/O Device Number,I Data Path Acceleration Architecture.

Page 75: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Software

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

I DPAA in SMP environment,I Other peripherals.

Page 76: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Software

I Toolchain,

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

I DPAA in SMP environment,I Other peripherals.

Page 77: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Software

I Toolchain,I Early kernel initialization,

I Data Path Acceleration Architecture bring-up,I SMP,

I DPAA in SMP environment,I Other peripherals.

Page 78: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Software

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

I SMP,I DPAA in SMP environment,

I Other peripherals.

Page 79: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Software

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

I DPAA in SMP environment,

I Other peripherals.

Page 80: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Software

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

I DPAA in SMP environment,I Other peripherals.

Page 81: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Toolchain

I Support for e500v2 (predecessor of the e500mc) hadbeen already present,

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

Page 82: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Toolchain

I Support for e500v2 (predecessor of the e500mc) hadbeen already present,

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

Page 83: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Toolchain

I Support for e500v2 (predecessor of the e500mc) hadbeen already present,

I Only minor changes were required in binutils and gcc,

I All patches were available from the community andFreescale.

Page 84: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Toolchain

I Support for e500v2 (predecessor of the e500mc) hadbeen already present,

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

Page 85: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

locore.S

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

PowerPC locore.S

I TLB initialization,I Kernel stack initialization.

Page 86: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

locore.SI First code executed in FreeBSD kernel,

I Architecture depended assembly,I Prepares environment for C.

PowerPC locore.S

I TLB initialization,I Kernel stack initialization.

Page 87: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

locore.SI First code executed in FreeBSD kernel,I Architecture depended assembly,

I Prepares environment for C.

PowerPC locore.S

I TLB initialization,I Kernel stack initialization.

Page 88: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

locore.SI First code executed in FreeBSD kernel,I Architecture depended assembly,I Prepares environment for C.

PowerPC locore.S

I TLB initialization,I Kernel stack initialization.

Page 89: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

locore.SI First code executed in FreeBSD kernel,I Architecture depended assembly,I Prepares environment for C.

PowerPC locore.S

I TLB initialization,I Kernel stack initialization.

Page 90: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

locore.SI First code executed in FreeBSD kernel,I Architecture depended assembly,I Prepares environment for C.

PowerPC locore.SI TLB initialization,

I Kernel stack initialization.

Page 91: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

locore.SI First code executed in FreeBSD kernel,I Architecture depended assembly,I Prepares environment for C.

PowerPC locore.SI TLB initialization,I Kernel stack initialization.

Page 92: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

e500mc features in locore.S

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

New TLB also affects pmap(9).

Page 93: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

e500mc features in locore.SI Bigger TLB,

I Hypervisor privilege level,I Hardware Implementation-Dependent Registers (HIDs).

New TLB also affects pmap(9).

Page 94: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

e500mc features in locore.SI Bigger TLB,I Hypervisor privilege level,

I Hardware Implementation-Dependent Registers (HIDs).

New TLB also affects pmap(9).

Page 95: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

e500mc features in locore.SI Bigger TLB,I Hypervisor privilege level,I Hardware Implementation-Dependent Registers (HIDs).

New TLB also affects pmap(9).

Page 96: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Early kernel initialization

e500mc features in locore.SI Bigger TLB,I Hypervisor privilege level,I Hardware Implementation-Dependent Registers (HIDs).

New TLB also affects pmap(9).

Page 97: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

DPAA Bring-up

NetCommSw

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

Thanks to Freescale!Buffer, Queue and Frame Manager drivers are now availableunder the BSD license.

Page 98: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

DPAA Bring-up

NetCommSw

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

Thanks to Freescale!Buffer, Queue and Frame Manager drivers are now availableunder the BSD license.

Page 99: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

DPAA Bring-up

NetCommSwI A packet processing framework,

I OS Agnostic,I Greatly reduces development time,I Propertiary licensed.

Thanks to Freescale!Buffer, Queue and Frame Manager drivers are now availableunder the BSD license.

Page 100: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

DPAA Bring-up

NetCommSwI A packet processing framework,I OS Agnostic,

I Greatly reduces development time,I Propertiary licensed.

Thanks to Freescale!Buffer, Queue and Frame Manager drivers are now availableunder the BSD license.

Page 101: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

DPAA Bring-up

NetCommSwI A packet processing framework,I OS Agnostic,I Greatly reduces development time,

I Propertiary licensed.

Thanks to Freescale!Buffer, Queue and Frame Manager drivers are now availableunder the BSD license.

Page 102: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

DPAA Bring-up

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

Thanks to Freescale!Buffer, Queue and Frame Manager drivers are now availableunder the BSD license.

Page 103: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

DPAA Bring-up

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

Thanks to Freescale!Buffer, Queue and Frame Manager drivers are now availableunder the BSD license.

Page 104: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

NetCommSw Driver Model

Page 105: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

XX Routines

I Simple routines for basic OS functions:

I void *XX_Malloc(unsigned int size)

I Physical to Virtual translation is required:

I Not supported by the FreeBSD kernel,I Ambiguous,

I Solution:

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

Page 106: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

XX Routines

I Simple routines for basic OS functions:

I void *XX_Malloc(unsigned int size)I Physical to Virtual translation is required:

I Not supported by the FreeBSD kernel,I Ambiguous,

I Solution:

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

Page 107: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

XX Routines

I Simple routines for basic OS functions:I void *XX_Malloc(unsigned int size)

I Physical to Virtual translation is required:

I Not supported by the FreeBSD kernel,I Ambiguous,

I Solution:

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

Page 108: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

XX Routines

I Simple routines for basic OS functions:I void *XX_Malloc(unsigned int size)

I Physical to Virtual translation is required:

I Not supported by the FreeBSD kernel,I Ambiguous,

I Solution:

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

Page 109: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

XX Routines

I Simple routines for basic OS functions:I void *XX_Malloc(unsigned int size)

I Physical to Virtual translation is required:I Not supported by the FreeBSD kernel,

I Ambiguous,I Solution:

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

Page 110: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

XX Routines

I Simple routines for basic OS functions:I void *XX_Malloc(unsigned int size)

I Physical to Virtual translation is required:I Not supported by the FreeBSD kernel,I Ambiguous,

I Solution:

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

Page 111: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

XX Routines

I Simple routines for basic OS functions:I void *XX_Malloc(unsigned int size)

I Physical to Virtual translation is required:I Not supported by the FreeBSD kernel,I Ambiguous,

I Solution:

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

Page 112: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

XX Routines

I Simple routines for basic OS functions:I void *XX_Malloc(unsigned int size)

I Physical to Virtual translation is required:I Not supported by the FreeBSD kernel,I Ambiguous,

I Solution:I Keep list of all active mappings in vm_page structure,

I pmap_enter() and pmap_remove() manages the list,I XX Routines: PA→ vm_page→ the mappings list→ VA.

Page 113: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

XX Routines

I Simple routines for basic OS functions:I void *XX_Malloc(unsigned int size)

I Physical to Virtual translation is required:I Not supported by the FreeBSD kernel,I Ambiguous,

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

I XX Routines: PA→ vm_page→ the mappings list→ VA.

Page 114: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

XX Routines

I Simple routines for basic OS functions:I void *XX_Malloc(unsigned int size)

I Physical to Virtual translation is required:I Not supported by the FreeBSD kernel,I Ambiguous,

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

Page 115: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Wrapper Drivers

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

Page 116: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Wrapper Drivers

I OS↔ NetCommSw API translation layer,

I Access serialization layer,I Written as simple newbus attachments,I Export own API.

Page 117: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Wrapper Drivers

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

I Written as simple newbus attachments,I Export own API.

Page 118: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Wrapper Drivers

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

I Export own API.

Page 119: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Wrapper Drivers

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

Page 120: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Frame Manager Wrapper Driver

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

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

Page 121: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Frame Manager Wrapper Driver

I Consists of several NetCommSw submodules,

I Each submodule have own API,I A single Frame Manger Wrapper Driver:

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

Page 122: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Frame Manager Wrapper Driver

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

I A single Frame Manger Wrapper Driver:

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

Page 123: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Frame Manager Wrapper Driver

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

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

Page 124: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Frame Manager Wrapper Driver

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

I Performs initialization of common parts,

I Manages internal FMan resources,I Exports single, simplified API.

Page 125: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Frame Manager Wrapper Driver

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

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

I Exports single, simplified API.

Page 126: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Frame Manager Wrapper Driver

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

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

Page 127: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver

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

Page 128: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver

I Classic NIC driver from OS perspective,

I Uses BMan, QMan and FMan wrapper drivers,I Binds DPAA parts together.

Page 129: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver

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

I Binds DPAA parts together.

Page 130: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver

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

Page 131: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver: DPAA Usage

I Buffer Manager:

I RX buffer pool management.

I Queue Manager:

I Reads/Writes frames from/to queues (associated withMACs).

I Frame Manager:

I MAC abstraction,I Data flow configuration.

Page 132: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver: DPAA Usage

I Buffer Manager:

I RX buffer pool management.I Queue Manager:

I Reads/Writes frames from/to queues (associated withMACs).

I Frame Manager:

I MAC abstraction,I Data flow configuration.

Page 133: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver: DPAA Usage

I Buffer Manager:I RX buffer pool management.

I Queue Manager:

I Reads/Writes frames from/to queues (associated withMACs).

I Frame Manager:

I MAC abstraction,I Data flow configuration.

Page 134: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver: DPAA Usage

I Buffer Manager:I RX buffer pool management.

I Queue Manager:

I Reads/Writes frames from/to queues (associated withMACs).

I Frame Manager:

I MAC abstraction,I Data flow configuration.

Page 135: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver: DPAA Usage

I Buffer Manager:I RX buffer pool management.

I Queue Manager:I Reads/Writes frames from/to queues (associated withMACs).

I Frame Manager:

I MAC abstraction,I Data flow configuration.

Page 136: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver: DPAA Usage

I Buffer Manager:I RX buffer pool management.

I Queue Manager:I Reads/Writes frames from/to queues (associated withMACs).

I Frame Manager:

I MAC abstraction,I Data flow configuration.

Page 137: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver: DPAA Usage

I Buffer Manager:I RX buffer pool management.

I Queue Manager:I Reads/Writes frames from/to queues (associated withMACs).

I Frame Manager:I MAC abstraction,

I Data flow configuration.

Page 138: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver: DPAA Usage

I Buffer Manager:I RX buffer pool management.

I Queue Manager:I Reads/Writes frames from/to queues (associated withMACs).

I Frame Manager:I MAC abstraction,I Data flow configuration.

Page 139: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver: TX Path

Page 140: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

dTSEC Driver: RX Path

Page 141: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP Bring-Up

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

I IPI Multicasting

I DPAA-related issues.

Page 142: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP Bring-Up

I Based on existing e500v2 implementation,

I Issues with more than 2 cores:

I IPI Multicasting

I DPAA-related issues.

Page 143: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP Bring-Up

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

I IPI MulticastingI DPAA-related issues.

Page 144: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP Bring-Up

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

I IPI Multicasting

I DPAA-related issues.

Page 145: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP Bring-Up

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

I IPI MulticastingI DPAA-related issues.

Page 146: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Mapping

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

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

Page 147: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Mapping

I Dedicated portal for each CPU,

I Same portal address on each CPU,I Such device mapping was not supported:

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

Page 148: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Mapping

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

I Such device mapping was not supported:

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

Page 149: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Mapping

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

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

Page 150: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Mapping

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

I Introduction of "shared" bit,

I Implemented using user-defined bits in TLB entry,I Only marked entries are propagated to other cores,I Private are set on each CPU.

Page 151: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Mapping

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

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

I Only marked entries are propagated to other cores,I Private are set on each CPU.

Page 152: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Mapping

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

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

I Private are set on each CPU.

Page 153: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Mapping

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

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

Page 154: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Configuration

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

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

Page 155: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Configuration

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

I Only boot CPU can execute configuration during boot,I Other cores must initialize portals on demand:

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

Page 156: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Configuration

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

I Other cores must initialize portals on demand:

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

Page 157: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Configuration

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

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

Page 158: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Configuration

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

I This may happen any time,

I Portal configuration includes IRQ request,I But intr_event_create() may sleep!I Solution: Interrupt preallocation in XX Routines.

Page 159: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Configuration

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

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

I But intr_event_create() may sleep!I Solution: Interrupt preallocation in XX Routines.

Page 160: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Configuration

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

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

I Solution: Interrupt preallocation in XX Routines.

Page 161: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Configuration

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

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

Page 162: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Interrupts

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

Page 163: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Interrupts

I Portal Interrupts must be bound to particular CPU,

I Solution: Interrupt thread binding layer in XX Routines.

Page 164: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

SMP vs DPAA: Issues

Portal Interrupts

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

Page 165: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Other Peripherals

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

Page 166: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Other Peripherals

I PCI Express Bus,

I USB Controller (EHCI compliant),I SD/MMC Controller,I I2C Controller,I IDMA Controller.

Page 167: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Other Peripherals

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

I SD/MMC Controller,I I2C Controller,I IDMA Controller.

Page 168: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Other Peripherals

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

I I2C Controller,I IDMA Controller.

Page 169: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Other Peripherals

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

I IDMA Controller.

Page 170: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Other Peripherals

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

Page 171: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Current State and Results

I Supported chips: P2041, P3041 and P5020 (in 32-bitmode),

I Simple iperf test:

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

Page 172: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Current State and Results

I Supported chips: P2041, P3041 and P5020 (in 32-bitmode),

I Simple iperf test:

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

Page 173: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Current State and Results

I Supported chips: P2041, P3041 and P5020 (in 32-bitmode),

I Simple iperf test:

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

Page 174: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Current State and Results

I Supported chips: P2041, P3041 and P5020 (in 32-bitmode),

I Simple iperf test:I Speed: 897 Mbit/s

I CPU Utilization: 30%,I Of which 90% was interrupt servicing.

Page 175: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Current State and Results

I Supported chips: P2041, P3041 and P5020 (in 32-bitmode),

I Simple iperf test:I Speed: 897 Mbit/sI CPU Utilization: 30%,

I Of which 90% was interrupt servicing.

Page 176: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Current State and Results

I Supported chips: P2041, P3041 and P5020 (in 32-bitmode),

I Simple iperf test:I Speed: 897 Mbit/sI CPU Utilization: 30%,I Of which 90% was interrupt servicing.

Page 177: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Current State and Results

p3041# vmstat -iinterrupt total rateirq121: bman0 1 0irq120: qman0 2784930 3584irq122: qman0 2194130 2823irq124: qman0 2263079 2912irq126: qman0 2148167 2764(...)

Page 178: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Future work

I More networking features:

I Pooling Mode,I Hardware Checksumming,I Jumbo Frames,

I More peripherals:

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

Page 179: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Future work

I More networking features:

I Pooling Mode,I Hardware Checksumming,I Jumbo Frames,

I More peripherals:

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

Page 180: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Future work

I More networking features:I Pooling Mode,

I Hardware Checksumming,I Jumbo Frames,

I More peripherals:

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

Page 181: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Future work

I More networking features:I Pooling Mode,I Hardware Checksumming,

I Jumbo Frames,I More peripherals:

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

Page 182: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Future work

I More networking features:I Pooling Mode,I Hardware Checksumming,I Jumbo Frames,

I More peripherals:

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

Page 183: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Future work

I More networking features:I Pooling Mode,I Hardware Checksumming,I Jumbo Frames,

I More peripherals:

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

Page 184: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Future work

I More networking features:I Pooling Mode,I Hardware Checksumming,I Jumbo Frames,

I More peripherals:I Pattern Matching Engine,

I Security Engine,I SATA Controller.

Page 185: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Future work

I More networking features:I Pooling Mode,I Hardware Checksumming,I Jumbo Frames,

I More peripherals:I Pattern Matching Engine,I Security Engine,

I SATA Controller.

Page 186: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Future work

I More networking features:I Pooling Mode,I Hardware Checksumming,I Jumbo Frames,

I More peripherals:I Pattern Matching Engine,I Security Engine,I SATA Controller.

Page 187: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Acknowledgments

I Michał Dubiel (Semihalf),I Rafał Jaworowski (Semihalf, The FreeBSD Project),I Phil Brownfield (Freescale)I Zbigniew Bodek, Piotr Nowak, Tomasz Nowicki, JanSięka, Łukasz Wójcik (all Semihalf).

Page 188: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Acknowledgments

I Michał Dubiel (Semihalf),

I Rafał Jaworowski (Semihalf, The FreeBSD Project),I Phil Brownfield (Freescale)I Zbigniew Bodek, Piotr Nowak, Tomasz Nowicki, JanSięka, Łukasz Wójcik (all Semihalf).

Page 189: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Acknowledgments

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

I Phil Brownfield (Freescale)I Zbigniew Bodek, Piotr Nowak, Tomasz Nowicki, JanSięka, Łukasz Wójcik (all Semihalf).

Page 190: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Acknowledgments

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

I Zbigniew Bodek, Piotr Nowak, Tomasz Nowicki, JanSięka, Łukasz Wójcik (all Semihalf).

Page 191: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

Acknowledgments

I Michał Dubiel (Semihalf),I Rafał Jaworowski (Semihalf, The FreeBSD Project),I Phil Brownfield (Freescale)I Zbigniew Bodek, Piotr Nowak, Tomasz Nowicki, JanSięka, Łukasz Wójcik (all Semihalf).

Page 192: FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices · 2015-12-16 · FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices Data Path Acceleration

FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices

The End

Any questions?


Recommended