匯總產品定義

bringup 產品是開發的最低可行目標。這項產品的重點在於簡單和精簡,因此功能集非常少。

請注意,名稱 bringup build 不應表示「僅在啟動新平台時使用」,這個名稱是沿用舊名。

啟動產品至少有下列用途:

  1. 啟動:新平台尚未執行 Fuchsia (core 產品設定或更高版本),因為執行所需的所有元件尚未完成/運作可靠,例如網路、儲存空間或 fx 裝置探索和套件管理所需的設定。
  2. 核心和低階驅動程式庫開發:開發需要運作的設施,甚至嘗試使用 core 產品,都需要啟動建構作業。這適用於核心開發和驅動程式,例如 core 中所需的網路和儲存空間。請注意,如果核心所需的驅動程式尚未準備就緒,音訊等較高層級的驅動程式也能從啟動建構版本獲益。

啟動建構版本具有下列基本功能:

  1. 已啟用序列輸出:這包括來自驅動程式的偵錯記錄 (例如透過 zxlogf)。這項保證必須確保開發人員在推出新平台時,能夠視需要進行 printf 偵錯。
  2. RAM 是否可載入:必須能將啟動建構作業載入 RAM,載入順序如下:
    1. 對於支援「fastboot boot」的平台,必須能夠直接從系統啟動載入程式實作 ZBI 的 RAM 開機 (例如使用 bootshim 機制)。
    2. 如果平台不支援「fastboot boot」,則必須能使用現有的 zedboot (例如載入可開機的 USB 隨身碟或先前刷入的 zedboot),透過 netsvc (用於網路開機) 或 overnet (例如透過序列埠) 等機制開機。
    3. 對於不支援「Fastboot 啟動」的平台 (例如無法控制系統啟動載入程式時),也必須能夠直接從系統啟動載入程式實作 ZBI 的 RAM 啟動 (例如為特定系統啟動載入程式建立 bootshim)。
  3. 不依附於早期啟動時無法使用的驅動程式: 早期啟動時可用的驅動程式包括中斷控制器和序列埠。早期啟動時無法使用的驅動程式包括網路和儲存空間。
  4. 對 Fuchsia 整體而言,依附元件最少,因為:
    1. 透過序列連結驅動工作流程。
    2. 允許載入建構作業所需的一切項目,以及核心 (即啟動檔案系統)。
    3. 不依賴需要儲存空間的 Fuchsia 功能,例如鋪路。
    4. 不支援 fx serve 和 fx shell 等 fx 指令。因此,啟動建構作業無法在執行階段新增軟體或自行升級。
  5. 可輕鬆納入其他驅動程式或二進位檔:必須能夠在啟動建構中納入其他二進位檔和驅動程式。舉例來說,透過 GN 納入啟動檔案系統,將開發中的驅動程式庫新增至建構。

請注意,這些功能不會阻止將啟動建構的最低設定擴展至其他更完整的設定,進而改善工作流程。