為什麼 ARM SoC 看起來很難用核心處理?

為什麼 ARM SoC 看起來很難用核心處理?

例如,當我在x64 系統上安裝了一些Linux 發行版時,我幾乎可以拔下儲存磁碟機並將其放入另一台x64 電腦中,安裝一些HL 驅動程式(例如圖形驅動程式),並且它很可能會毫無麻煩地運行。

當談到 ARM 系統,尤其是 ARM SoC 時,就像任何類型的智慧型手機一樣,情況則完全不同。每個智慧型手機都有不同版本的相同作業系統(例如 OEM Android 發行版)。

我的問題是:這是為什麼?

據我了解,與具有標準化架構的 PC 不同,SoC 晶片和架構有很多很多。但是考慮到設備樹,我問自己為什麼沒有辦法將設備樹(作為硬體描述)與某些 ROM 晶片上的引導程式一起放置,並獨立於任何硬體規格構建 Linux 作業系統,至少在一些明確的限制。

答案1

我問自己,為什麼沒有辦法將設備樹(作為硬體描述)與引導程式放在某個 ROM 晶片上,並獨立於任何硬體規格(至少在某些定義的限制內)建立 Linux 作業系統。

答:便宜。沒有人願意為 ROM 晶片付費。 SoC 中有一個啟動 ROM,但設備樹會根據 SoC 所在的電路而變化,所以這不好。您需要一個單獨的“BIOS 晶片”(例如 x86 主機板)才能實現此功能。

您可以透過將大多數 ARM 板啟動的 SD 卡視為 BIOS 晶片來使其工作;只需將 U-Boot 和裝置樹放在上面,然後讓 U-Boot 從 USB 隨身碟載入核心即可。然後 USB 驅動器就可以(相當)從 ARM 板移植到 ARM 板。

在最佳化方面,雖然您可以針對 ARM 一般進行編譯,但針對特定處理器確實值得(比在 x86_64 上更有效)。

相關內容