我已經看到Raspberry Pi的片上系統通常被稱為“ BCM2835”(例如Wikipedia上的),但有時也被稱為“ BCM2708”(例如Linux SPI驅動程序的源代碼位於 bcm2708.c,或在我對其他問題的評論中)。
哪個是正確的,還是兩個都正確-為什麼?特別是,如果兩者的數據表中都有不一致之處,應理解為“更重要”?
我已經看到Raspberry Pi的片上系統通常被稱為“ BCM2835”(例如Wikipedia上的),但有時也被稱為“ BCM2708”(例如Linux SPI驅動程序的源代碼位於 bcm2708.c,或在我對其他問題的評論中)。
哪個是正確的,還是兩個都正確-為什麼?特別是,如果兩者的數據表中都有不一致之處,應理解為“更重要”?
根據Steve的回答,此處在 Linux驅動程序的git hub問題日誌上進行了討論,討論瞭如何標記驅動程序。相關文章為:
popcornmix:
從技術上講2708是該家族,而2835是一個特定的實現。我們現在知道2835是該系列中唯一可以運行linux的實現(並且不會有該系列的新模型),因此使用哪種模型可能無關緊要,儘管應該保持一致。 / p>
lp0:
因此,將所有驅動程序2708命名為特定設備樹文件2835是合理的嗎? (假設如果該家族的其他型號可以運行linux,則將需要不同的設備列表)
實際上,差異是由於指定了矽和芯片封裝。最初有一個矽芯片,稱為BCM2708,所有初始開發都圍繞此完成。
在帶有256MB DRAM的堆疊9x9封裝中,其後稱為BCM2763。 (堆疊是指您將DRAM矽片字面上鍵合在處理器頂部,然後將鍵合線放到基板上)
但是,當存儲器進行POP封裝時(封裝在包裝中,則將DRAM封裝連接到處理器封裝的頂部),即BCM2835,這是當時啟用了ARM的設備。
該芯片的更高版本遵循相同的方案,現在有三塊矽, BCM2708,BCM2709和BCM2710以及三個封裝BCM2835,BCM2836和BCM2837。
從技術上講2708是該系列芯片的名稱,而2835是Pi中的特定芯片。至於哪個數據表取代另一個數據表,我會選擇BCM2835(專用)而不是BCM2708(系列)。
值得認識到的是,ARM內核不是SoC的主要部分,而是一個輔助內核,位於系統MMU的側面。主(引導)處理器是VideoCore,它執行早期初始化,設置系統MMU並引導ARM內核。
bcm2708最有可能是指SoC的主要部分,其中包含VideoCore處理器和外設(查看Wikipedia的 VideoCore SoC表,請注意bcm27xx部分沒有ARM內核)。
基於Broadcom的驅動程序源代碼發布,我實際上給人的印像是VC4 SoC基於bcm2708,而VC3是bcm2707。但是,至少有三個bcm2708修訂版(a0,b0,c0),而a0的區別足以使#ifdefs遍歷整個地方,並且有相當數量的標頭。 “ VC4大島”也沒有例外,它的主標頭不包括在內,儘管此備註是一個有趣的提示,但我確實找不到很多。
因此,對於驅動程序而言,使用2708是有意義的(特別是如果它們是由Broadcom開發的。)
我不確定報告bcm2709的rpi2是做什麼的...有很多說法bcm2835和bcm2836 SoC僅在ARM子系統和外圍設備基地址(即,系統MMU配置略有不同)上有所不同,因此,似乎很有可能實際上也是基於bcm2708的,但可用信息相當有限。我想知道是否有人增加了處理假設bcm2708暗含ARM11內核的代碼的數量(實際上它根本不暗含任何ARM內核)。
編輯:新發布的bcm2836 Quad-A7文檔確認它也基於bcm2708。