Почему процессор иногда называют BCM2708, иногда BCM2835?

49

Я видел Систему на чипе Raspberry Pi, которую обычно называют «BCM2835» (например, в Википедии ), но иногда как «BCM2708» (например, источники для драйвера SPI для Linux находятся в bcm2708.c , или в комментариях к моему другому вопросу ).

Что правильно, или оба - почему? Особенно, если в таблицах для обоих есть несоответствия, которые следует понимать как «более важные»?

akavel
источник

Ответы:

13

На самом деле расхождение связано с обозначением кремния и чипа пакета. Первоначально существовала кремниевая матрица, известная как BCM2708, все начальные разработки были сделаны вокруг этого.

В пакетном пакете 9x9 с 256 МБ памяти DRAM он называется BCM2763. (Штабелирование - это когда вы буквально приклеиваете кремний DRAM поверх процессора и кладете провода на подложку)

Но когда память POP'd (пакет в пакете, пакет DRAM прикреплен к верхней части пакета процессора), то он был известен как BCM2835, это устройство, которое затем включил ARM.

Более поздние версии чипа следуют той же схеме, теперь есть три куска кремния, BCM2708, BCM2709 и BCM2710 и три пакета BCM2835, BCM2836 и BCM2837.

GSH
источник
20

В дополнение к ответу Стива, здесь есть обсуждение журнала проблем git hub для драйверов linux, где обсуждается, как эти драйверы должны быть помечены. Соответствующие посты:

popcornmix:

Технически 2708 - это семья, а 2835 - это конкретная реализация. Теперь мы знаем, что 2835 - единственная реализация в семействе, которая может запускать linux (и не будет новых моделей этого семейства), поэтому, вероятно, не имеет значения, какая модель используется, хотя она должна быть согласованной.

lp0:

Таким образом, было бы разумно назвать все драйверы 2708, но конкретный файл дерева устройств 2835? (при условии, что если когда-нибудь будет другая модель этого семейства, которая может работать под Linux, потребуется другой список устройств)

Джон Эгертон
источник
Другой комментарий предполагает, что, возможно, «BCM2708 является компонентом ЦП, который является частью BCM2835». Некоторые ссылки на доказательства из первых рук были бы хорошими ... (также я разместил этот вопрос, потому что мне хотелось бы чего-то большего, чем то, что я уже нашел в первом результате Google)
akavel
1
Я пытался найти некоторые. Таблица данных по Broadcom приведена здесь: raspberrypi.org/wp-content/uploads/2012/02/… . Однако он не ссылается на номер BCM2708. Насколько я вижу, единственное место, где эти два числа появляются вместе, - это посты, задающие подобные вопросы.
Джон Эгертон
14

Технически, 2708 - это название семейства чипов, а 2835 - это особый чип в Pi. Что касается того, какая таблица данных заменяет другую, я бы выбрал BCM2835 (специфический) вместо BCM2708 (семейство).

Стив Робиллард
источник
1
Жесткая цитата нужна . Другой плакат предполагает, что, возможно, «BCM2708 является компонентом ЦП, который является частью BCM2835». Извините, но почему я должен верить вам, а не ему?
akavel
1
Как «другой постер» - я бы хотел сказать, что это были предположения, основанные на исходниках ядра. У меня также нет никаких веских доказательств ... и у нас действительно должен быть какой-то канонический (предпочтительно Broadcomm) исходный ответ.
Мария Зверина
1
@MariaZverina В этом конкретном случае такой канонический источник может быть недоступен никому - поскольку даже для получения полной информации о чипе требуется NDA. В результате может потребоваться более прагматичный подход. Позвольте мне задать вопрос как средство получения контекста для вопроса. Что вы пытаетесь сделать, что вы не можете в результате этого вопроса об именах?
Стив Робиллард
@MariaZverina и akavel Я только что натолкнулся на это видео на YouTube youtube.com/watch?v=5jEVBK7P1GA, в котором Герт ван Лев рассказывает о чипе в Пи, и он называет его 2835. В качестве источника информации об оборудовании Пи Я думаю, что вы согласитесь, что это не становится намного лучше.
Стив Робиллард
4

Стоит осознать, что ядро ​​ARM является не основной частью SoC, а вспомогательным ядром, застрявшим сбоку за системным MMU. Основным (загрузочным) процессором является VideoCore, который выполняет раннюю инициализацию, настраивает системный MMU и загружает ядро ​​ARM.

Скорее всего, bcm2708 относится к основной части SoC, содержащей процессор и периферийные устройства VideoCore (посмотрите на таблицу SoC VideoCore в Википедии , обратите внимание, что ни одна из частей bcm27xx не имеет ядра ARM).

Основываясь на выпуске исходного кода драйвера Broadcom, у меня сложилось впечатление, что все VC4 SoC основаны на bcm2708, а VC3 - bcm2707. Существует, по крайней мере, три версии bcm2708 (a0, b0, c0), и a0 достаточно отличается, чтобы иметь повсеместно #ifdefs и довольно много собственных заголовков. Есть также исключение для «большого острова VC4», основной заголовок которого не включен, но я не могу найти много об этом, хотя это замечание является интересным.

Поэтому для водителей имеет смысл обращаться к 2708 (особенно, если они были разработаны Broadcom).

Я не уверен, что делать с отчетом rpi2 о bcm2709 ... есть многочисленные заявления о том, что SoCs bcm2835 и bcm2836 отличаются только подсистемой ARM и периферийным базовым адресом (то есть немного другой конфигурацией системного MMU), поэтому кажется, что скорее всего, он также основан на bcm2708, но доступная информация довольно ограничена. Интересно, кто-то только что увеличил число, чтобы иметь дело с кодом, который предполагает, что bcm2708 подразумевает ядро ​​ARM11 (хотя на самом деле это вообще не подразумевает никакого ядра ARM).

Редактировать: Недавно выпущенный документ bcm2836 quad-A7 подтверждает, что он также основан на bcm2708.

Matthijs
источник
Я считаю, что BCM2709 - это ARMv8. ARMv8 - это AArch64 (ARM-64), и это означает, что аппаратное обеспечение имеет такие расширения, как crc32, pmull, aes, sha1 и sha2 .
jww
Эмм, ты вообще прочитал мой ответ? BCM2708 относится только к основной части SoC (VideoCore 4 + периферия), а не к ARM. Посмотрите, например, заголовочный выпуск broadcom, чтобы понять, что в него входит. BCM2835 / 6/7 (и многие другие части) были затем построены путем наклеивания подсистемы ARM arm11 / quad-a7 / quad-a53 (соответственно) на ее сторону. Это, однако, не имеет ничего общего с остальной частью SoC.
Маттис
0

Мой поиск по этому вопросу был вызван этой страницей

Обратите внимание на ответ от команды cat / proc / cpuinfo

...

Аппаратное обеспечение: BCM2708

Редакция: 1000002

slomobile
источник
Хм, интересно! Хотя, в свете других ответов, я считаю, что это все еще не решает ситуацию достаточно - это может быть и фамилия, или конкретное имя реализации, или что-то еще ...
akavel