我已经看到过Raspberry Pi的片上系统通常称为“ BCM2835”(例如在Wikipedia上),但有时也称为“ BCM2708”(例如Linux SPI驱动程序的源在bcm2708.c中,或对我的其他问题的评论中)。
哪个是对的,或者两者都是-为什么?特别是,如果两者的数据表中都有不一致之处,应理解为“更重要”?
我已经看到过Raspberry Pi的片上系统通常称为“ BCM2835”(例如在Wikipedia上),但有时也称为“ BCM2708”(例如Linux SPI驱动程序的源在bcm2708.c中,或对我的其他问题的评论中)。
哪个是对的,或者两者都是-为什么?特别是,如果两者的数据表中都有不一致之处,应理解为“更重要”?
Answers:
除了Steve的回答,这里还有linux驱动程序的git hub问题日志的讨论,讨论应如何标记驱动程序。有关职位为:
popcornmix:
从技术上讲2708是该系列,而2835是一个特定的实现。我们现在知道2835是该系列中唯一可以运行linux的实现(并且不会有该系列的新模型),因此使用哪种模型可能无关紧要,尽管应该保持一致。
lp0:
因此,将所有驱动程序2708命名为特定设备树文件2835是合理的吗?(假设如果该家族的其他型号可以运行linux,则将需要不同的设备列表)
从技术上讲2708是该系列芯片的名称,而2835是Pi中的特定芯片。至于哪个数据表取代另一个数据表,我会选择BCM2835(专用)而不是BCM2708(系列)。
值得认识到的是,ARM内核不是SoC的主要部分,而是一个辅助内核,位于系统MMU后方的侧面。主(启动)处理器是VideoCore,它执行早期初始化,设置系统MMU并引导ARM内核。
bcm2708最有可能是指包含VideoCore处理器和外围设备的SoC的主要部分(请参阅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。