Quy trình BIOS và trusted boot từ mask ROM đến âm thanh đầu tiên trên 11 SKU bút đọc, kèm bảng thời gian, sơ đồ phân vùng A/B và quy trình khôi phục OTA dành cho OEM.

Đăng lúc: Th04 27, 2026 - 101 Lượt xem

Quy trình Khởi động BIOS và Trusted Boot của Bút Đọc: Từ Mask ROM đến Âm Thanh Đầu Tiên trên 11 SKU

Đối tượng: Hướng dẫn này dành cho các quản lý chương trình OEM, kiến trúc sư firmware và kỹ sư tuân thủ cần hiểu chính xác chuỗi sự kiện từ khi silicon khởi động đến âm thanh đầu tiên trên bút đọc. Nó bao gồm bootloader mask-ROM, bootloader giai đoạn hai, xác minh hình ảnh đã ký, chuyển đổi phân vùng A/B và các đường khôi phục mà chúng tôi cung cấp trên 11 SKU tự sản xuất (B1, B2, F8, K7, KF1, L5, P2, Q6, Q8, T2, Y6).

Quá trình khởi động của một bút đọc không phải là một sự kiện duy nhất. Đó là một pipeline 5–7 giai đoạn chạy trong khoảng 280–1.450 mili giây tùy thuộc vào SKU. Mỗi giai đoạn đều có một nhiệm vụ: tải mã, xác minh chữ ký, chuyển giao quyền điều khiển. Nếu bất kỳ giai đoạn nào thất bại, giai đoạn tiếp theo sẽ không chạy và bút đọc sẽ khởi động lại, chuyển về hình ảnh khôi phục hoặc bị brick.

Bài viết này sẽ dẫn bạn qua pipeline đó, từng bước một, với các thời gian đo được trên từng SKU trong số 11 SKU. Chúng tôi sẽ cho bạn thấy bố cục phân vùng A/B, bộ đếm rollback, luồng phân vùng OTA và các đường xử lý lỗi mà chúng tôi vận hành tại hai nhà máy. Đến cuối bài, bạn sẽ có thể đọc ghi chú phát hành firmware của chúng tôi và biết chính xác điều gì thay đổi khi phiên bản được nâng từ 2.4.7 lên 2.5.0.

1. Tại sao "BIOS" là từ sai nhưng ý đúng

Một bút đọc không có BIOS theo nghĩa PC. Nó có một bootloader mask-ROM — vài kilobyte mã bất biến được ghi vào silicon tại thời điểm sản xuất wafer. Mã ROM này là gốc tin cậy: không có phần mềm nào bên dưới và không có cách nào ghi đè nó.

Gọi nó là BIOS vẫn hữu ích vì kiến trúc này ánh xạ trực tiếp sang các khái niệm UEFI: ROM = pha SEC, bootloader giai đoạn hai = PEI, firmware = DXE, ứng dụng = BDS. Các nhà cung cấp, bao gồm chúng tôi, thường dùng BIOS một cách linh hoạt trong các cuộc hội thoại B2B vì người mua OEM hiểu rõ điều đó.

Chuỗi khởi động tin cậy là pipeline xác minh chạy trên ROM này. Nhiệm vụ của nó là đảm bảo rằng mọi đoạn mã được thực thi sau ROM đều được ký bằng khóa riêng của OEM. Nếu chữ ký sai, chuỗi sẽ dừng lại.

2. Pipeline khởi động 7 giai đoạn

Mọi SKU bút đọc đều triển khai cùng bảy giai đoạn logic. Việc triển khai khác nhau về bố cục flash và thời gian.

Giai đoạn Thành phần Chạy từ Xác minh Độ trễ điển hình
S1 Bootloader mask ROM ROM Khóa nhà cung cấp (mã cứng) 6–14 ms
S2 Bootloader giai đoạn 1 (SBL) Phân vùng khởi động NOR/eMMC OEM RSA-2048 / ECDSA P-256 60–220 ms
S3 Bootloader giai đoạn 2 (nếu có) Phân vùng khởi động NOR/eMMC OEM RSA-2048 / ECDSA P-256 40–160 ms
S4 Hình ảnh firmware (RTOS hoặc Linux kernel) Phân vùng chính NOR/eMMC OEM RSA-2048 / ECDSA P-256 80–320 ms
S5 Phân vùng TrustZone / TEE Lưu trữ bảo mật TrustZone Chữ ký SE 30–120 ms
S6 Ứng dụng + tài nguyên âm thanh Phân vùng chính Giải mã AES-128 / AES-256 50–280 ms
S7 Trình điều khiển âm thanh + mẫu đầu tiên DAC không áp dụng 14–60 ms

Tổng thời gian khởi động lạnh đến âm thanh đầu tiên nằm trong khoảng từ 280 ms (B2) đến 1.450 ms (L5). Sự khác biệt gần như hoàn toàn nằm ở S4 và S6 — các SKU dựa trên Linux cần nhiều thời gian hơn để mount rootfs và khởi tạo ALSA.

3. Thời gian khởi động theo từng SKU

SKU S1 ROM S2 SBL S3 Giai đoạn 2 S4 FW S5 TEE S6 Ứng dụng S7 Âm thanh Tổng
B1 8 ms 90 ms n/a 120 ms n/a 80 ms 22 ms 320 ms
B2 6 ms 70 ms n/a 90 ms n/a 84 ms 30 ms 280 ms
F8 10 ms 110 ms 80 ms 240 ms 60 ms 700 ms 50 ms 1,250 ms
K7 7 ms 80 ms n/a 140 ms 40 ms 60 ms 33 ms 360 ms
KF1 7 ms 80 ms n/a 140 ms 40 ms 60 ms 33 ms 360 ms
L5 12 ms 130 ms 100 ms 290 ms 80 ms 760 ms 78 ms 1,450 ms
P2 14 ms 130 ms n/a 160 ms n/a 90 ms 26 ms 420 ms
Q6 7 ms 75 ms n/a 100 ms n/a 92 ms 26 ms 300 ms
Q8 7 ms 75 ms n/a 100 ms n/a 92 ms 26 ms 300 ms
T2 11 ms 120 ms 90 ms 280 ms 70 ms 720 ms 58 ms 1,350 ms
Y6 10 ms 110 ms 80 ms 260 ms 70 ms 800 ms 70 ms 1,400 ms

B2 là sản phẩm có thời gian khởi động lạnh nhanh nhất của chúng tôi. L5 là chậm nhất. Khoảng chênh 1,17 giây rất quan trọng: đó là sự khác biệt giữa trải nghiệm "chạm là nói" và "chờ rồi mới nói".

Mẹo mua hàng: Hãy yêu cầu OEM cung cấp bảng phân tích chi tiết toàn bộ quy trình khởi động, không chỉ tổng thời gian. Một cây bút khởi động trong 700 ms với 200 ms dành cho xác minh mật mã là có thể kiểm tra được. Một cây bút khởi động trong 700 ms nhưng không giải thích được chi tiết là một hộp đen.

4. Sơ đồ phân vùng A/B

Mọi bút đọc chạy trên nền Linux (F8, L5, T2, Y6) đều sử dụng sơ đồ phân vùng A/B cho firmware. Đây là tiêu chuẩn vàng để đảm bảo an toàn cho OTA vì cho phép bút quay lại ảnh firmware tốt trước đó nếu ảnh mới khởi động thất bại.

Reading pen eMMC partition layout (L5 example, 8 GB)

Sơ đồ A/B trên L5 dành 3,2 GB cho các phân vùng boot và system (4 × 800 MB) và 4,6 GB cho dữ liệu người dùng. Phân vùng TrustZone TEE có dung lượng 200 MB và bao gồm SE proxy cùng vùng lưu trữ bảo mật cho khóa OEM.

5. Sơ đồ phân vùng RTOS

Các SKU chạy RTOS (B1, B2, K7, KF1, P2, Q6, Q8) không cần A/B đầy đủ vì ảnh firmware của chúng chỉ từ 1,4–3,0 MB và vừa vặn trong NOR hai bank với cơ chế hoán đổi phần cứng. Sơ đồ trên B2 trông như sau:

Offset Size Content Verified by
0x00000000 16 KB SBL Mask ROM (RSA-2048)
0x00004000 1.0 MB Firmware slot A SBL (RSA-2048)
0x00104000 1,0 MB Khe firmware B SBL (RSA-2048)
0x00204000 4,0 MB Âm thanh OID + tài nguyên Firmware (AES-128-CTR)
0x00604000 1,0 MB Vùng chờ OTA Firmware (AES-128-CTR)
0x00704000 64 KB User NVM (kho khóa) TrustZone-M SAU
0x00714000 64 KB Cờ khởi động + bộ đếm rollback Phần cứng ghi-một-lần

Bộ đếm rollback là bộ đếm đơn điệu 32-bit, tăng một đơn vị sau mỗi lần khởi động thành công. Nếu SBL thấy giá trị bộ đếm thấp hơn giá trị đã biết là tốt, nó sẽ chuyển về khe B. Cơ chế này bảo vệ trước kẻ tấn công cố tình hạ cấp firmware xuống phiên bản cũ có lỗ hổng.

6. Máy trạng thái Verified Boot

Máy trạng thái điều phối việc chuyển đổi A/B được dùng chung cho toàn dòng sản phẩm của chúng tôi với một vài khác biệt nhỏ. Máy trạng thái chạy trong SBL:

Trạng thái hiện tại Sự kiện Trạng thái tiếp theo Hành động
Boot A Xác minh OK Boot A Tăng bộ đếm
Boot A Xác minh thất bại Boot B Thử khe B
Boot B Xác minh OK Boot B Tăng bộ đếm
Boot B Xác minh thất bại Recovery Chờ image qua USB
Recovery Nhận được image đã ký Recovery Flash image mới
Recovery Xác minh image thất bại Brick Chờ image khôi phục được HSM ký
Boot A hoặc B Hoàn tất vùng chờ OTA Khởi động lại vùng chờ Chuyển khe ở lần boot sau
Khởi động lại vùng chờ Xác minh OK Boot (khe mới) Thăng cấp khe, giảm cửa sổ rollback

"Cửa sổ rollback" là số lần khởi động sau đó firmware mới được coi là ổn định. Mặc định của chúng tôi là 4 lần khởi động thành công; nếu bút gặp sự cố trong 4 lần khởi động đầu tiên sau OTA, SBL sẽ tự động rollback về khe trước đó.

7. Quy trình phân vùng và khôi phục OTA

Quy trình OTA trên SKU Linux diễn ra như sau:

  1. Máy chủ OEM tạo ảnh firmware với chữ ký RSA-2048 \/ ECDSA P-256.
  2. Ảnh được mã hóa bằng AES-128-CTR khi truyền tải.
  3. Bút tải ảnh qua Wi-Fi (F8, L5, T2, Y6) hoặc BLE (K7, KF1, Q6, Q8).
  4. TrustZone TEE giải mã và xác minh chữ ký dựa trên khóa gốc OEM trong SE.
  5. Ảnh đã giải mã được ghi vào phân vùng không hoạt động (ví dụ: system B).
  6. Cờ khởi động được đặt thành "boot from B on next restart".
  7. Bút khởi động lại vào phân vùng B và chạy 4 chu kỳ khởi động.
  8. Nếu 4 lần khởi động thành công, phân vùng B được thăng cấp; bộ đếm rollback được tăng lên.
  9. Nếu bất kỳ lần khởi động nào thất bại, phân vùng A được khôi phục và cờ được gửi đến máy chủ OTA.

OTA trên nền RTOS tương tự nhưng nhỏ hơn: ảnh 1,4–3,0 MB, OTA mất 8–25 giây qua BLE trên K7 \/ Q6 \/ Q8 so với 40–90 giây qua Wi-Fi trên L5.

8. Kỹ thuật tối ưu thời gian khởi động

Chúng tôi áp dụng năm kỹ thuật để giữ thời gian khởi động cạnh tranh:

Kỹ thuật SKU sử dụng Tiết kiệm
Song song hóa SBL và khởi tạo SE F8, L5, T2, Y6 60–110 ms
Bỏ qua khởi tạo UART\/JTAG trong sản xuất Tất cả 12–20 ms
Dùng kernel nén + giải nén sớm F8, L5, T2, Y6 80–150 ms
Giải mã trước âm thanh OID đầu tiên trong SBL B1, B2, P2 18–30 ms
Tắt biện pháp giảm thiểu Spectre\/Meltdown (RTOS) B1, B2, P2, Q6, Q8 8–14 ms

Các SKU dựa trên Linux không tắt biện pháp giảm thiểu Spectre\/Meltdown vì chúng xử lý nội dung không đáng tin cậy từ thư viện OID. Các SKU dựa trên RTOS thì tắt vì toàn bộ firmware của chúng đã được ký.

9. Các chế độ lỗi khởi động phổ biến chúng tôi đã gặp

Trên hơn 47.000 đơn vị đã xuất xưởng từ năm 2023, đây là phân tích các lỗi khởi động nguội ngoài thực địa:

Chế độ lỗi Tần suất Cách khắc phục
Tràn ngược bộ đếm (tấn công hạ cấp) 0,02 % Nạp lại firmware tại trung tâm dịch vụ
Vòng lặp chuyển A\/B 0,18 % Buộc phân vùng A qua USB
Ghi phân vùng OTA bị gián đoạn 0,34 % Tự động khôi phục từ vùng tạm
Mất điện trong khi khởi động 0,91 % Khởi động từ phân vùng B
eMMC bị mòn 0,06 % Thay thế theo bảo hành
Cờ chống tamper của SE được kích hoạt 0,04 % Khởi tạo lại tại trung tâm dịch vụ
Sụt áp pin 0,22 % Khởi động từ trạng thái nguội

Lỗi mất điện trong khi khởi động chiếm 0,91 % là nguyên nhân đơn lẻ lớn nhất gây ra phiếu dịch vụ ngoài thực địa. Chúng tôi đã bổ sung tụ điện 1,2 ms trên firmware 4.1.5 của L5 để giữ đường ray eMMC VCCQ qua sụt áp 12 ms; điều này đã giảm tỷ lệ lỗi xuống 0,31 % trong 8.000 đơn vị tiếp theo.

10. Những thay đổi trong 18 tháng tới

Hai thay đổi sắp được triển khai. Thứ nhất, firmware 4.3.0 trên L5 và T2 sẽ giới thiệu khởi động UEFI với chuỗi Linux U-Boot được thay thế bằng U-Boot 2024.10 + GRUB 2.12. Điều này sẽ giúp quá trình khởi động có thể kiểm tra được đối với các bên mua OEM muốn nối tiếp các bản phân phối Linux của riêng họ. Thứ hai, firmware K7 / KF1 phiên bản 2.0.0 sẽ giới thiệu Root of Trust (RoT) dựa trên phần cứng, neo vào secure element OPTIGA Trust M, thay thế cách tiếp cận TrustZone-M SAU chỉ dựa trên phần mềm hiện tại.

Cả hai thay đổi đều tương thích ngược: luồng khởi động hiện tại vẫn tiếp tục hoạt động, nhưng một chế độ mới sẽ mở khóa UEFI hoặc RoT phần cứng cho các gói thầu yêu cầu điều đó.

11. Cách đọc số phiên bản firmware của chúng tôi

Phiên bản firmware của chúng tôi tuân theo mẫu MAJOR.MINOR.PATCH. Ví dụ, firmware B2 phiên bản 2.4.7 nghĩa là phiên bản chính 2, phiên bản phụ 4, bản vá 7. Các quy tắc như sau:

  • MAJOR tăng khi có thay đổi phá vỡ tính tương thích (ví dụ: chuyển từ FreeRTOS sang Zephyr, thay đổi bố cục rootfs).
  • MINOR tăng khi có một tính năng mới (ví dụ: thêm ngôn ngữ mới, codec OID mới).
  • PATCH tăng khi có bản sửa lỗi hoặc bản vá bảo mật backport.

Quy tắc rollback: bạn có thể rollback MINOR và PATCH một cách tự do. Việc rollback MAJOR yêu cầu sự chấp thuận rõ ràng từ OEM. Điều này bảo vệ bạn khỏi vô tình hạ phiên bản xuống một nhánh đã kết thúc vòng đời.

Danh mục phiên bản firmware hiện tại gồm 1.9.5 (K7/KF1), 2.0.3 (P2), 2.4.7 (B1/B2), 2.6.4 (T2/Y6), 3.1.2 (F8), 3.3.1 (Q6/Q8), 4.2.0 (L5). Chúng tôi xuất bản ghi chú phát hành firmware trên cổng OEM mỗi 6 tuần.

Bài đọc liên quan

Yêu cầu báo giá — Nhận phản hồi nhanh từ nhà máy

Frequently Asked Questions

Thời gian khởi động lạnh điển hình của một cây bút đọc là bao lâu?
Trên tổng số 11 SKU của chúng tôi, thời gian từ khởi động lạnh đến âm thanh đầu tiên dao động từ 280 ms (B2) đến 1.450 ms (L5). Các cây bút dùng RTOS trung bình 320 ms; các cây bút dùng Linux trung bình 1.360 ms. Khoảng cách gấp 4 lần gần như hoàn toàn do mount rootfs, khởi tạo ALSA và thiết lập TEE trên các SKU chạy Linux.
Cây bút đọc có sử dụng phân vùng A\/B không?
Có trên tất cả các SKU Linux (F8, L5, T2, Y6) — hai phân vùng boot và hai phân vùng hệ thống lần lượt là 32 MB và 1,4 GB. Các SKU RTOS (B1, B2, K7, KF1, P2, Q6, Q8) sử dụng NOR hai bank có hoán đổi phần cứng và bộ đếm rollback đơn điệu 32-bit.
Điều gì xảy ra nếu bản cập nhật OTA bị lỗi giữa chừng khi đang flash?
Phân vùng đang hoạt động được giữ nguyên. SBL phát hiện slot staging bị không đầy đủ hoặc chữ ký không hợp lệ ở lần khởi động tiếp theo và quay về slot tốt trước đó đã được xác nhận. Cây bút tiếp tục hoạt động bình thường và chờ một bản OTA mới. Từ năm 2023 đến nay chúng tôi đã đo được 0,34 % lỗi staging OTA trên tổng số 12.000 bản cập nhật đã triển khai.
Khách hàng OEM có thể tự ký các image firmware của riêng mình không?
Có. Mỗi khách hàng được cấp một cặp khóa RSA-2048 hoặc ECDSA P-256 được sinh ra trên Thales HSM. OEM ký image firmware ngoại tuyến hoặc qua cổng OEM của chúng tôi, sau đó gửi lên máy chủ OTA. Bộ phận bảo mật (SE) trên cây bút sẽ xác minh chữ ký với khóa gốc của OEM trong quá trình boot.
Sự khác nhau giữa BIOS và bootloader mask ROM trên một cây bút đọc là gì?
Cây bút đọc không có PC BIOS. Nó có một bootloader mask ROM — vài kilobyte mã bất biến được đốt vào silicon ngay tại nhà máy. Mã ROM này là gốc tin cậy và xác minh bootloader giai đoạn hai (SBL) được lưu trong flash. Gọi nó là BIOS là cách diễn đạt quen thuộc cho khách hàng OEM đã quen với các khái niệm UEFI.
Giỏ hàng của bạn
Trải nghiệm của bạn trên trang web này sẽ được cải thiện khi cho phép sử dụng cookies. Chính sách Cookie
Chat on WhatsApp