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:

ARECA FIRMWARE SPEC

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/.

ARECA FIRMWARE SPEC

Cách sử dụng bộ chuyển đổi IOP331

(Tất cả vào/ra đều ở chế độ xem của IOP331)

1. Tin nhắn 0

  • Tin nhắn initThread và mã trả về

2. Chuông cửa dùng để mô phỏng RS-232

trong Chuông cửa
bit0

dữ liệu đã sẵn sàng zDRIVER DATA WRITE OK)

bit1

dữ liệu đã được đọc (DRIVER DATA READ được)

outDooeBell:
bit0

dữ liệu đã sẵn sàng (IOP331 DATA WRITE được)

bit1

dữ liệu trong đã được đọc (IOP331 DATA READ được)

3. Sử dụng bộ nhớ chỉ mục

offset 0xa00 cho mã tin nhắn gửi đến message_rwbuffer

(trình điều khiển gửi tới IOP331)

offset 0xa00 cho mã tin nhắn gửi đi message_rwbuffer

(IOP331 gửi cho tài xế)


4. Giả lập RS-232

Hiện tại bộ đệm 128 byte được sử dụng:


5. PostQ

Tất cả Lệnh SCSI phải được gửi qua postQ:

(cổng xếp hàng vào)

Khung yêu cầu phải được căn chỉnh 32 byte:

#bit27--bit31

cờ cho bài viết ccb

#bit0--bit26

địa chỉ thực (bit27--bit31) của bài đăng arcmsr_cdb

bit31 phải là 0 (đối với loại trả lời này) bit30 dành riêng cho bắt tay BIOS bit29 dành riêng bit28 == ========================================================

0 không có lỗi, bỏ qua AdapStatus/DevStatus/SenseData 1 Lỗi, mã lỗi AdapStatus/DevStatus/SenseData =========================================================

bit27 dành riêng ===== ============================================================

6. Yêu cầu BIOS

Tất cả yêu cầu BIOS đều giống với yêu cầu từ PostQ

Ngoại trừ:

Khung yêu cầu được gửi từ không gian cấu hình:

IRQ tới IOP331

Hoàn thành yêu cầu:

(bit30 == 0, bit28==cờ lỗi)

7. Định nghĩa mục nhập SGL (cấu trúc)

8. Message1 Out - Mã trạng thái chẩn đoán (????)

9. Mã tin nhắn Message0

Chữ ký 0x87974060(4) Yêu cầu len 0x00000200(4) số hàng đợi 0x00000100(4) SDRAM Kích thước 0x00000100(4)->256 MB Kênh IDE 0x00000008(4) nhà cung cấp 40 byte char mô hình 8 byte char FirmVer 16 byte char Bản đồ thiết bị 16 byte char Phiên bản phần mềm DWORD

  • Đã thêm để kiểm tra

    khả năng phần mềm mới

0x02 Đặt cấu hình

->offset 0xa00 :đối với mã tin nhắn gửi đến message_rwbuffer (trình điều khiển gửi tới IOP331)

Đặt lại 0x03 (Hủy tất cả lệnh được xếp hàng đợi) 0x04 Dừng hoạt động nền Bộ đệm ẩn 0x05 0x06 Bắt đầu hoạt động nền

(bắt đầu lại nếu nền bị tạm dừng)

0x07 Kiểm tra xem lệnh máy chủ đang chờ xử lý

(Novel Có Thể Cần Chức Năng Này)

0x08 Đặt thời gian điều khiển

-> offset 0xa00 cho mã tin nhắn gửi đến message_rwbuffer (trình điều khiển đến IOP331)

byte 2 năm (04) byte 3 tháng (1..12) ngày byte 4 (1..31) byte 5 giờ (0..23) byte 6 phút (0..59) byte 7 giây (0..59) ==========================

Giao diện lệnh cấp thấp chỉ dành riêng cho thiết bị đầu cuối VT100

1. Trình tự thực hiện lệnh

  1. Tiêu đề

    Chuỗi 3 byte (0x5E, 0x01, 0x61)

  2. Khối lệnh

    độ dài thay đổi của dữ liệu bao gồm độ dài, mã lệnh, dữ liệu và byte tổng kiểm tra

  3. Trả về dữ liệu

    độ dài thay đổi của dữ liệu

2. Khối lệnh

  1. byte thứ 1

    độ dài khối lệnh (byte thấp)

  2. byte thứ 2

    độ dài khối lệnh (byte cao)

    Lưu ý

    command block length shouldn’t > 2040 bytes, length excludes these two bytes

  3. byte thứ 3

    mã lệnh

  4. byte thứ 4 và byte tiếp theo

    byte dữ liệu có độ dài thay đổi

phụ thuộc vào mã lệnh

  1. byte cuối cùng

    byte tổng kiểm tra (tổng của byte đầu tiên cho đến byte dữ liệu cuối cùng)

3. Mã lệnh và dữ liệu liên quan

Sau đây là mã lệnh được xác định trong lệnh điều khiển đột kích mã 0x10--0x1? được sử dụng để quản lý cấp hệ thống, không cần kiểm tra mật khẩu và nên được thực hiện riêng biệt tiện ích được kiểm soát tốt và không dành cho người dùng cuối truy cập. Mã lệnh 0x20--0x?? luôn kiểm tra mật khẩu, phải nhập mật khẩu để kích hoạt các lệnh này:

liệt kê
{

GUI_SET_SERIAL=0x10, GUI_SET_VENDOR, GUI_SET_MODEL, GUI_IDENTIFY, GUI_CHECK_PASSWORD, GUI_LOGOUT, GUI_HTTP, GUI_SET_ETHERNET_ADDR, GUI_SET_LOGO, GUI_POLL_EVENT, GUI_GET_EVENT, GUI_GET_HW_MONITOR, // GUI_QUICK_CREATE=0x20, (đã xóa chức năng) GUI_GET_INFO_R=0x20, GUI_GET_INFO_V, GUI_GET_INFO_P, GUI_GET_INFO_S, GUI_CLEAR_EVENT, GUI_MUTE_BEEPER=0x30, GUI_BEEPER_SETTING, GUI_SET_PASSWORD, GUI_HOST_INTERFACE_MODE, GUI_REBUILD_PRIORITY, GUI_MAX_ATA_MODE, GUI_RESET_CONTROLLER, GUI_COM_PORT_SETTING, GUI_NO_OPERATION, GUI_DHCP_IP, GUI_CREATE_PASS_THROUGH=0x40, GUI_MODIFY_PASS_THROUGH, GUI_DELETE_PASS_THROUGH, GUI_IDENTIFY_DEVICE, GUI_CREATE_RAIDSET=0x50, GUI_DELETE_RAIDSET, GUI_EXPAND_RAIDSET, GUI_ACTIVATE_RAIDSET, GUI_CREATE_HOT_SPARE, GUI_DELETE_HOT_SPARE, GUI_CREATE_VOLUME=0x60, GUI_MODIFY_VOLUME, GUI_DELETE_VOLUME, GUI_START_CHECK_VOLUME, GUI_STOP_CHECK_VOLUME

};

Mô tả lệnh

GUI_SET_SERIAL

Đặt số sê-ri của bộ điều khiển

độ dài mật khẩu byte 3 (nên là 0x0f) byte 4-0x13 phải là “ArEcATEcHnoLogY” byte 0x14--0x23 Chuỗi số sê-ri (phải là 16 byte) ===================================================================

GUI_SET_VENDOR

Đặt chuỗi nhà cung cấp cho bộ điều khiển

độ dài mật khẩu byte 3 (nên là 0x08) byte 4-0x13 phải là “ArEcAvAr” chuỗi nhà cung cấp byte 0x14--0x3B (phải là 40 byte) ===================================================================

GUI_SET_MODEL

Đặt tên model của bộ điều khiển

độ dài mật khẩu byte 3 (nên là 0x08) byte 4-0x13 phải là “ArEcAvAr” chuỗi mô hình byte 0x14--0x1B (phải là 8 byte) ===================================================================

GUI_IDENTIFY

Xác định thiết bị

trả về “Hệ thống con Areca RAID”

GUI_CHECK_PASSWORD

Xác minh mật khẩu

độ dài mật khẩu byte 3 byte 4-0x?? mật khẩu người dùng cần được kiểm tra ===================================================================

GUI_LOGOUT

Đăng xuất GUI (buộc kiểm tra mật khẩu ở lệnh tiếp theo)

GUI_HTTP

Giao diện HTTP (dành riêng cho dịch vụ proxy Http) (0x16)

GUI_SET_ETHERNET_ADDR

Đặt địa chỉ ethernet MAC

độ dài mật khẩu byte 3 (nên là 0x08) byte 4-0x13 phải là “ArEcAvAr” byte 0x14--0x19 Địa chỉ Ethernet MAC (phải là 6 byte) ===================================================================

GUI_SET_LOGO

Đặt logo trong HTTP

byte 3 Trang# (0/1/2/3) (0xff --> xóa logo OEM) byte 4/5/6/7 0x55/0xaa/0xa5/0x5a dữ liệu byte 8 TITLE.JPG (mỗi trang phải là 2000 byte)

Lưu ý

page0 1st 2 byte must be actual length of the JPG file


GUI_POLL_EVENT

Thăm dò ý kiến nếu nhật ký sự kiện thay đổi

GUI_GET_EVENT

Đọc sự kiện

GUI_GET_HW_MONITOR

Nhận dữ liệu giám sát CTNH

QUẠT # of byte 3(ví dụ 2) Cảm biến điện áp byte 4 # of(ví dụ 3) cảm biến nhiệt độ byte 5 # of (ví dụ 2) nguồn 6 byte # of byte 7/8 Fan#0 (RPM) byte 9/10 Fan#1 byte 11/12 Điện áp#0 giá trị ban đầu trong ZZ0000ZZ byte 13/14 Giá trị điện áp#0 byte 15/16 Điện áp#1 tổ chức byte 17/18 Điện áp#1 byte 19/20 Điện áp#2 tổ chức byte 21/22 Điện áp#2 byte 23 Temp#0 byte 24 Temp#1 byte 25 Chỉ báo nguồn (bit0 power#0,

bit1 power#1)

GUI_QUICK_CREATE

Tạo nhanh tập đột kích/âm lượng

dung lượng thô byte 3/4/5/6 cấp độ đột kích byte 7 kích thước sọc byte 8 byte 9 dự phòng byte 10/11/12/13 mặt nạ thiết bị (các thiết bị để tạo đột kích/âm lượng) ====================================================================

Chức năng này bị loại bỏ, ứng dụng như

để thực hiện chức năng tạo nhanh

cần sử dụng chức năng GUI_CREATE_RAIDSET và GUI_CREATE_VOLUMESET.

GUI_GET_INFO_R

Nhận thông tin về tập hợp đột kích

cấu trúc typedef sGUI_RAISET
{

BYTE grsRaidSetName[16]; DWORD grsCông suất; DWORD grsCapacityX; DWORD grsFailMask; BYTE grsDevArray[32]; BYTE grsMemberThiết bị; BYTE grsNewMemberThiết bị; BYTE grsRaidState; BYTE grsVolumes; BYTE grsVolumeList[16]; BYTE grsRes1; BYTE grsRes2; BYTE grsRes3; BYTE grsFreeSegments; DWORD grsRawStripes[8]; DWORD grsRes4; DWORD grsRes5; // Tổng cộng tới 128 byte DWORD grsRes6; // Tổng cộng tới 128 byte

} sGUI_RAISET, *pGUI_RAISET;

GUI_GET_INFO_V

Nhận thông tin về tập đĩa

cấu trúc typedef sGUI_VOLUMESET
{

BYTE gvsVolumeName[16]; // 16 DWORD gvsCapacity; DWORD gvsCapacityX; DWORD gvsFailMask; DWORD gvsStripeSize; DWORD gvsNewFailMask; DWORD gvsNewStripeSize; DWORD gvsVolumeStatus; DWORD gvsProgress; // 32 sSCSI_ATTR gvsScsi; BYTE gvsMemberDisks; BYTE gvsRaidLevel; // 8 BYTE gvsNewMemberDisks; BYTE gvsNewRaidLevel; BYTE gvsRaidSetNumber; BYTE gvsRes0; // 4 BYTE gvsRes1[4]; // 64 byte

} sGUI_VOLUMESET, *pGUI_VOLUMESET;

GUI_GET_INFO_P

Nhận thông tin ổ đĩa vật lý

cấu trúc typedef sGUI_PHY_DRV
{

BYTE gpdModelName[40]; BYTE gpdSerialNumber[20]; BYTE gpdFirmRev[8]; DWORD gpdCapacity; DWORD gpdCapacityX; // Dành riêng cho việc mở rộng BYTE gpdDeviceState; BYTE gpdPioMode; BYTE gpdCurrentUdmaMode; BYTE gpdUdmaChế độ; BYTE gpdDriveSelect; BYTE gpdRaidNumber; // 0xff nếu không thuộc nhóm đột kích sSCSI_ATTR gpdScsi; BYTE gpdReserved[40]; // Tổng cộng tới 128 byte

} sGUI_PHY_DRV, *pGUI_PHY_DRV;

GUI_GET_INFO_S

Nhận thông tin hệ thống

cấu trúc typedef sCOM_ATTR
{

BYTE comBaudRate; BYTE comDataBits; BYTE comStopBits; BYTE tương đương; BYTE comFlowControl;

} sCOM_ATTR, *pCOM_ATTR; cấu trúc typedef sSYSTEM_INFO {

BYTE gsiVendorName[40]; BYTE gsiSerialNumber[16]; BYTE gsiFirmVersion[16]; BYTE gsiBootVersion[16]; BYTE gsiMbVersion[16]; BYTE gsiModelName[8]; BYTE gsiLocalIp[4]; BYTE gsiCurrentIp[4]; DWORD gsiTimeTick; DWORD gsiCpuTốc độ; DWORD gsiICache; DWORD gsiDCache; DWORD gsiScache; DWORD gsiMemorySize; DWORD gsiBộ nhớTốc độ; DWORD gsiSự kiện; BYTE gsiMacAddress[6]; BYTE gsiDhcp; BYTE gsiBeeper; BYTE gsiChannelSử dụng; BYTE gsiMaxAtaMode; BYTE gsiSdramEcc; // 1: nếu ECC được bật BYTE gsiRebuildPriority; sCOM_ATTR gsiComA; // 5 byte sCOM_ATTR gsiComB; // 5 byte BYTE gsiIdeKênh; BYTE gsiScsiHostCác kênh; BYTE gsiIdeHostCác kênh; BYTE gsiMaxVolumeSet; BYTE gsiMaxRaidSet; BYTE gsiEtherPort; // 1: nếu cổng mạng ether được hỗ trợ BYTE gsiRaid6Engine; // 1: Hỗ trợ động cơ Raid6 BYTE gsiRes[75];

} sSYSTEM_INFO, *pSYSTEM_INFO;

GUI_CLEAR_EVENT

Xóa sự kiện hệ thống

GUI_MUTE_BEEPER

Tắt tiếng bíp hiện tại

GUI_BEEPER_SETTING

Tắt tiếng bíp

GUI_SET_PASSWORD

Thay đổi mật khẩu

độ dài từ truyền byte 3 (phải <= 15) mật khẩu byte 4 (phải là chữ và số) ===================================================================

GUI_HOST_INTERFACE_MODE

Đặt chế độ giao diện máy chủ

GUI_REBUILD_PRIORITY

Đặt mức độ ưu tiên xây dựng lại

GUI_MAX_ATA_MODE

Đặt chế độ ATA tối đa sẽ được sử dụng

GUI_RESET_CONTROLLER

Đặt lại bộ điều khiển

  • Phản hồi bằng màn hình VT100 (loại bỏ nó)

GUI_COM_PORT_SETTING

Cài đặt cổng COM

byte 3 0->COMA (cổng hạn),

1->COMB (cổng gỡ lỗi)

byte 4 0/1/2/3/4/5/6/7

(1200/2400/4800/9600/19200/38400/57600/115200)

bit dữ liệu byte 5

(0:7 bit, 1:8 bit phải là 8 bit)

byte 6 bit dừng (bit dừng 0:1, 1:2) tính chẵn lẻ byte 7 (0:không, 1:tắt, 2:chẵn) điều khiển luồng byte 8

(0:none, 1:xon/xoff, 2:hardware => không được sử dụng)

GUI_NO_OPERATION

Không có hoạt động

GUI_DHCP_IP

Đặt tùy chọn DHCP và địa chỉ IP cục bộ

byte 3 0:dhcp bị tắt, 1:dhcp được bật địa chỉ IP byte 4/5/6/7 ===================================================================

GUI_CREATE_PASS_THROUGH

Tạo thông qua đĩa

thiết bị byte 3 # byte 4 kênh scsi (0/1) id scsi byte 5 (0->15) byte 6 scsi lun (0-->7) hàng đợi được gắn thẻ byte 7 (đã bật 1) Chế độ bộ đệm byte 8 (bật 1) tốc độ tối đa byte 9 (0/1/2/3/4,

không đồng bộ/20/40/80/160 cho scsi) (0/1/2/3/4, 33/66/100/133/150 cho ide)

GUI_MODIFY_PASS_THROUGH

Sửa đổi chuyển qua đĩa

thiết bị byte 3 # byte 4 kênh scsi (0/1) id scsi byte 5 (0->15) byte 6 scsi lun (0-->7) hàng đợi được gắn thẻ byte 7 (đã bật 1) Chế độ bộ đệm byte 8 (bật 1) tốc độ tối đa byte 9 (0/1/2/3/4,

không đồng bộ/20/40/80/160 cho scsi) (0/1/2/3/4, 33/66/100/133/150 cho ide)

GUI_DELETE_PASS_THROUGH

Xóa đĩa đi qua

GUI_IDENTIFY_DEVICE

Xác định thiết bị

Phương thức flash byte 3

(0: đã chọn flash, 1: không chọn flash)

mặt nạ thiết bị byte 4/5/6/7 IDE sẽ được flash

Lưu ý

no response data available


GUI_CREATE_RAIDSET

Tạo nhóm đột kích

mặt nạ thiết bị byte 3/4/5/6 Tên tập hợp byte 7-22 (nếu byte 7 == 0: sử dụng mặc định) ===================================================================

GUI_DELETE_RAIDSET

Xóa bộ đột kích

GUI_EXPAND_RAIDSET

Mở rộng bộ đột kích

mặt nạ thiết bị byte 3 raidset# byte 4/5/6/7 để mở rộng byte 8/9/10 (8:0 không thay đổi, 1 thay đổi, 0xff:chấm dứt,

9: cấp độ đột kích mới, 10: kích thước sọc mới 0/1/2/3/4/5->4/8/16/32/64/128K )

GUI_ACTIVATE_RAIDSET

Kích hoạt bộ đột kích chưa hoàn thành

GUI_CREATE_HOT_SPARE

Tạo đĩa dự phòng nóng

GUI_DELETE_HOT_SPARE

Xóa đĩa dự phòng nóng

GUI_CREATE_VOLUME

Tạo bộ âm lượng

tên tập hợp khối lượng byte 3 raidset# byte 4-19

(nếu byte4 == 0, sử dụng mặc định)

dung lượng âm lượng byte 20-27 (khối) cấp độ đột kích byte 28 kích thước sọc byte 29

(0/1/2/3/4/5->4/8/16/32/64/128K)

kênh byte 30 ID byte 31 byte 32 LUN thẻ kích hoạt byte 33 1 byte 34 1 kích hoạt bộ đệm tốc độ byte 35

(0/1/2/3/4->async/20/40/80/160 cho scsi) (0/1/2/3/4->33/66/100/133/150 cho IDE )

GUI_MODIFY_VOLUME

Chỉnh sửa âm lượng Đặt

tập byte 3# byte 4-19 tên bộ tập mới

(nếu byte4 == 0, không thay đổi)

dung lượng ổ đĩa mới byte 20-27 (dành riêng) cấp độ đột kích mới byte 28 byte 29 kích thước sọc mới

(0/1/2/3/4/5->4/8/16/32/64/128K)

kênh mới byte 30 byte 31 ID mới byte 32 LUN mới thẻ kích hoạt byte 33 1 byte 34 1 kích hoạt bộ đệm tốc độ byte 35

(0/1/2/3/4->async/20/40/80/160 cho scsi) (0/1/2/3/4->33/66/100/133/150 cho IDE )

GUI_DELETE_VOLUME

Xóa bộ âm lượng

GUI_START_CHECK_VOLUME

Bắt đầu kiểm tra tính nhất quán của âm lượng

GUI_STOP_CHECK_VOLUME

Dừng kiểm tra tính nhất quán của âm lượng

4. Dữ liệu trả về

  1. Tiêu đề Chuỗi 3 byte (0x5E, 0x01, 0x61)

  2. Chiều dài 2 byte (byte thấp thứ 1, không bao gồm độ dài và byte tổng kiểm tra)

  3. trạng thái hoặc dữ liệu:

  1. Nếu độ dài == 1 ==> mã trạng thái 1 byte

#define GUI_OK 0x41

#define GUI_RAIDSET_NOT_NORMAL 0x42 #define GUI_VOLUMESET_NOT_NORMAL 0x43 #define GUI_NO_RAIDSET 0x44 #define GUI_NO_VOLUMESET 0x45 #define GUI_NO_PHYSICAL_DRIVE 0x46 #define GUI_PARAMETER_ERROR 0x47 #define GUI_UNSUPPORTED_COMMAND 0x48 #define GUI_DISK_CONFIG_CHANGED 0x49 #define GUI_INVALID_PASSWORD 0x4a #define GUI_NO_DISK_SPACE 0x4b #define GUI_CHECKSUM_ERROR 0x4c #define GUI_PASSWORD_REQUIRED 0x4d

  1. Nếu độ dài > 1:

khối dữ liệu được trả về từ bộ điều khiển

và nội dung phụ thuộc vào mã lệnh

  1. Tổng kiểm tra tổng kiểm tra độ dài và trạng thái hoặc byte dữ liệu