Por que a CPU às vezes é chamada de BCM2708, às vezes BCM2835?

49

Eu vi o System on Chip do Raspberry Pi chamado geralmente de "BCM2835" (por exemplo, na Wikipedia ), mas às vezes como "BCM2708" (por exemplo, fontes para o driver SPI do Linux estão no bcm2708.c ou nos comentários de minha outra pergunta) )

O que é certo ou os dois - por quê? Especialmente, se houver inconsistências nas folhas de dados para ambos, o que deve ser entendido como "mais importante"?

akavel
fonte

Respostas:

13

Na verdade, a discrepância se deve à designação do silício e do pacote de chips. Originalmente, havia o molde de silicone conhecido como BCM2708, todo o desenvolvimento inicial foi feito em torno disso.

Em um pacote 9x9 empilhado com 256 MB de DRAM, ele é conhecido como BCM2763. (Empilhado é quando você literalmente liga o silício DRAM na parte superior do processador e coloca os fios de ligação no substrato)

Mas quando a memória é POP (pacote em pacote, o pacote DRAM é anexado à parte superior do pacote do processador), era conhecido como BCM2835, este é o dispositivo que tinha o ARM ativado.

Versões posteriores do chip seguem o mesmo esquema, agora existem três peças de silício, BCM2708, BCM2709 e BCM2710 e três pacotes BCM2835, BCM2836 e BCM2837.

GSH
fonte
20

Além da resposta de Steve, há uma discussão aqui no log de problemas do hub git para drivers Linux, discutindo como os drivers devem ser rotulados. Os posts pertinentes são:

popcornmix:

Tecnicamente, 2708 é a família e 2835 é uma implementação específica. Agora sabemos que 2835 é a única implementação na família que pode executar o linux (e não haverá novos modelos dessa família), portanto, provavelmente não importa qual modelo é usado, embora deva ser consistente.

lp0:

Portanto, seria razoável nomear todos os drivers 2708, mas o arquivo específico da árvore de dispositivos 2835? (assumindo que, se houver outro modelo dessa família que possa executar o linux, seria necessária uma lista diferente de dispositivos)

Jon Egerton
fonte
Outro comentário sugere que talvez "BCM2708 seja o componente da CPU que faz parte do BCM2835". Alguns links para evidências em primeira mão seriam bons ... (também postei esta pergunta porque gostaria de algo mais do que já encontrei no primeiro resultado do Google)
akavel
11
Eu tentei encontrar alguns. A planilha de dados da broadcom está vinculada aqui: raspberrypi.org/wp-content/uploads/2012/02/… . No entanto, não faz referência ao número BCM2708. Até onde eu vejo, o único lugar em que esses dois números aparecem juntos é em postagens que fazem esse tipo de pergunta.
31812 Jon Egerton
14

Tecnicamente, 2708 é o nome da família de chips e 2835 é o chip específico no Pi. Quanto a qual folha de dados substitui a outra, eu escolheria o BCM2835 (específico) sobre o BCM2708 (família).

Steve Robillard
fonte
11
Citação difícil necessária . Outro pôster sugere que talvez "BCM2708 seja o componente da CPU que faz parte do BCM2835". Com licença, mas por que devo acreditar em você, não nele?
akavel
11
Como o "outro pôster" - eu gostaria de dizer que era especulação baseada nas fontes do kernel. Também não tenho provas concretas ... e realmente devemos ter algum tipo de resposta canônica (preferencialmente Broadcomm).
Maria Zverina
11
@MariaZverina Nesse caso em particular, uma fonte canônica pode não estar disponível para ninguém - já que mesmo para obter detalhes completos sobre o chip, é necessário um NDA. Como resultado, pode ser necessária uma abordagem mais pragmática. Deixe-me fazer uma pergunta como meio de obter o contexto da pergunta. O que você está tentando fazer e não consegue como resultado dessa pergunta de nomenclatura?
27512 Steve Steve Robillard
@MariaZverina e akavel Acabei de encontrar este vídeo no YouTube youtube.com/watch?v=5jEVBK7P1GA de Geert van Leuw falando sobre o chip no Pi e ele se refere a ele como o 2835. Como fonte de informações sobre o hardware do Pi Eu acho que você vai concordar que não fica muito melhor.
9788 Steve Robillard
4

Vale a pena perceber que o núcleo do ARM não é uma parte principal do SoC, mas um núcleo auxiliar preso ao lado, atrás de uma MMU do sistema. O processador principal (de inicialização) é o VideoCore, que executa a inicialização antecipada, configura o MMU do sistema e inicializa o núcleo do ARM.

Provavelmente, o bcm2708 se refere à parte principal do SoC que contém o processador e os periféricos do VideoCore (veja a tabela de SoCs do VideoCore da wikipedia , observe como nenhuma parte do bcm27xx possui um núcleo ARM).

Com base no código-fonte do driver da broadcom, tenho a impressão de que todos os VC4 SoCs são baseados no bcm2708, enquanto o VC3 é bcm2707. Porém, existem pelo menos três revisões do bcm2708 (a0, b0, c0), e a0 difere suficientemente para ter #ifdefs em todo o lugar e vários cabeçalhos. Há também uma exceção para "VC4 big island", cujo cabeçalho principal não está incluído, mas não consigo encontrar muito sobre isso, embora essa observação seja interessante.

Portanto, faz sentido que os drivers estejam se referindo ao 2708 (especialmente se eles foram desenvolvidos pela broadcom).

Não sei ao certo o que fazer com o relatório rpi2 bcm2709 ... existem inúmeras declarações de que os SoCs bcm2835 e bcm2836 diferem apenas no subsistema ARM e no endereço base periférico (ou seja, configuração MMU do sistema ligeiramente diferente), por isso parece altamente provavelmente também é baseado em bcm2708, mas as informações disponíveis são bastante limitadas. Gostaria de saber se alguém acabou de aumentar o número para lidar com o código que assume que o bcm2708 implica em um núcleo ARM11 (enquanto, na verdade, isso não implica em nenhum núcleo ARM).

Edit: O recém-lançado documento bcm2836 quad-A7 confirma que também é baseado no bcm2708.

Matthijs
fonte
Eu acredito que o BCM2709 é ARMv8. O ARMv8 é o AArch64 (ARM-64) e significa que o hardware possui extensões como crc32, pmull, aes, sha1 e sha2 .
jww 27/07
Ehm, você leu minha resposta? BCM2708 refere-se apenas à parte principal do SoC (periféricos VideoCore 4 +), sem ARM. Veja, por exemplo, o lançamento do cabeçalho da broadcom para ter uma idéia do que inclui. O BCM2835 / 6/7 (e muitas outras partes) foram então construídos colando um subsistema arm11 / quad-a7 / quad-a53 ARM (respectivamente) de lado. No entanto, isso não tem muito a ver com o resto do SoC.
Matthijs 29/07
0

Minha pesquisa por esta pergunta foi solicitada por esta página

Observe a resposta do comando cat / proc / cpuinfo

...

Hardware: BCM2708

Revisão: 1000002

slomobile
fonte
Hum, interessante! Apesar de, à luz das outras respostas, acredito que ainda não resolve o suficiente situação - ele ainda pode ser tanto nome de família, ou nome de implementação específica, ou qualquer outra coisa ...
akavel