Vietnamese (machine translation)

Lưu ý

Mục đích của file này là để độc giả tiếng Việt có thể đọc và hiểu tài liệu nhân kernel dễ dàng hơn, không phải để tạo ra một nhánh tài liệu riêng. Nếu bạn có bất kỳ nhận xét hoặc cập nhật nào cho file này, vui lòng thử cập nhật file tiếng Anh gốc trước. Nếu bạn thấy có sự khác biệt giữa bản dịch và bản gốc, hoặc có vấn đề về bản dịch, vui lòng gửi góp ý hoặc patch cho người dịch của file này, hoặc nhờ người bảo trì và người review tài liệu tiếng Việt giúp đỡ.

Bản gốc:

DPAA2 DPIO (Data Path I/O) Overview

Người dịch:

Google Translate (machine translation)

Phiên bản gốc:

8541d8f725c6

Cảnh báo

Tài liệu này được dịch tự động bằng máy và chưa được review bởi người dịch. Nội dung có thể không chính xác hoặc khó hiểu ở một số chỗ. Khi có sự khác biệt với bản gốc, bản gốc luôn là chuẩn. Bản dịch chất lượng cao (được review) được đặt trong thư mục vi_VN/.

Tổng quan về DPAA2 DPIO (I/O đường dẫn dữ liệu)

Bản quyền:

ZZ0000ZZ 2016-2018 NXP

Tài liệu này cung cấp thông tin tổng quan về Freescale DPAA2 DPIO trình điều khiển

Giới thiệu

DPAA2 DPIO (I/O đường dẫn dữ liệu) là một đối tượng phần cứng cung cấp các giao diện để xếp hàng và loại bỏ các khung hình đến/từ các giao diện mạng và các máy gia tốc khác. DPIO cũng cung cấp bộ đệm phần cứng quản lý nhóm cho các giao diện mạng.

Tài liệu này cung cấp thông tin tổng quan về trình điều khiển Linux DPIO, các thành phần phụ và API của nó.

Xem Tài liệu/mạng/device_drivers/ethernet/freescale/dpaa2/overview.rst để biết tổng quan chung về DPAA2 và kiến trúc trình điều khiển DPAA2 chung trong Linux.

Tổng quan về trình điều khiển

Trình điều khiển DPIO được liên kết với các đối tượng DPIO được phát hiện trên bus fsl-mc và cung cấp các dịch vụ:

  1. cho phép các trình điều khiển khác, chẳng hạn như trình điều khiển Ethernet, xếp hàng và loại bỏ

    khung cho các đối tượng tương ứng của họ

  1. cho phép người lái xe đăng ký cuộc gọi lại để nhận thông báo về tính khả dụng của dữ liệu khi dữ liệu có sẵn trên hàng đợi hoặc kênh

  2. cho phép trình điều khiển quản lý vùng đệm phần cứng

Trình điều khiển Linux DPIO bao gồm 3 thành phần chính--

Trình điều khiển đối tượng DPIO-- trình điều khiển fsl-mc quản lý đối tượng DPIO

Dịch vụ DPIO-- cung cấp API cho các trình điều khiển Linux khác cho các dịch vụ

Giao diện cổng thông tin QBman-- gửi lệnh cổng thông tin, nhận phản hồi:

fsl-mc khác
tài xế xe buýt

ZZ0000ZZ

+---+----+ +------+------+ ZZ0001ZZ ZZ0002ZZ ZZ0003ZZ---ZZ0004ZZ +--------+ +------+------+


ZZ0005ZZ ZZ0006ZZ +-----------+


phần cứng

Sơ đồ bên dưới cho thấy các thành phần trình điều khiển DPIO khớp với các thành phần khác như thế nào Các thành phần trình điều khiển Linux DPAA2:

+-----------+

ZZ0000ZZ ZZ0001ZZ

+-------------+ +-------------+ ZZ0002ZZ. . . . . . . ZZ0003ZZ ZZ0004ZZ ZZ0005ZZ +-.----------+ +---+---+----+

. . ^ |

. . <dữ liệu có sẵn, ZZ0006ZZ<enqueue,

. . xác nhận tx> Hàng đợi ZZ0007ZZ>

+-------------+ . ZZ0008ZZ ZZ0009ZZ. +--------+ +-------------+ ZZ0010ZZ. . ZZ0011ZZ ZZ0012ZZ +----------+--+ ZZ0013ZZ-ZZ0014ZZ

+--------+ +------+------+

ZZ0015ZZ------+ ZZ0016ZZ QBman |

+----+--------------+ ZZ0017ZZ ZZ0018ZZ +-------------+ ZZ0019ZZ | ZZ0020ZZ | +-------------------+ |


+-+--DPIO---|-------------+ ZZ0022ZZ | ZZ0023ZZ +--------------+


Trình điều khiển đối tượng DPIO (dpio-driver.c)

Thành phần trình điều khiển dpio đăng ký với bus fsl-mc để xử lý các đối tượng của

gõ “dpio”. Việc triển khai thăm dò() xử lý việc khởi tạo cơ bản của DPIO bao gồm ánh xạ các vùng DPIO (cổng QBman SW) và khởi tạo các ngắt và đăng ký trình xử lý irq. Trình điều khiển dpio đăng ký DPIO được thăm dò với dịch vụ dpio.

Dịch vụ DPIO (dpio-service.c, dpaa2-io.h)

Thành phần dịch vụ dpio cung cấp hàng đợi, thông báo và bộ đệm

dịch vụ quản lý cho trình điều khiển DPAA2, chẳng hạn như trình điều khiển Ethernet. Một hệ thống thường sẽ phân bổ 1 đối tượng DPIO cho mỗi CPU để cho phép các hoạt động xếp hàng xảy ra đồng thời trên tất cả các CPU.

Xử lý thông báo

dpaa2_io_service_register()

dpaa2_io_service_deregister()

dpaa2_io_service_rearm()

Xếp hàng

dpaa2_io_service_pull_fq()

dpaa2_io_service_pull_channel()

dpaa2_io_service_enqueue_fq()

dpaa2_io_service_enqueue_qd()

dpaa2_io_store_create()

dpaa2_io_store_destroy()

dpaa2_io_store_next()

Quản lý vùng đệm

dpaa2_io_service_release()

dpaa2_io_service_acquire()

Giao diện cổng thông tin QBman (qbman-portal.c)

Thành phần cổng thông tin qbman cung cấp các API để thực hiện phần cứng cấp thấp

xoay vòng một chút cho các hoạt động như:

  • khởi tạo cổng phần mềm Qman
    • xây dựng và gửi lệnh cổng thông tin

    • cấu hình và xử lý ngắt cổng thông tin

API cổng thông tin qbman không được công khai đối với các trình điều khiển khác và được

chỉ được sử dụng bởi dịch vụ dpio.

Khác (dpaa2-fd.h, dpaa2-global.h)

Các định nghĩa về bộ mô tả khung và tập hợp phân tán cũng như các API được sử dụng để

thao tác chúng được xác định trong dpaa2-fd.h.

Các API phân tích và cấu trúc kết quả Dequeue được xác định trong dpaa2-global.h.