Pourquoi le processeur est-il parfois appelé BCM2708, parfois BCM2835?


49

J'ai vu le système sur puce de Raspberry Pi généralement appelé "BCM2835" (par exemple sur Wikipedia ), mais parfois "BCM2708" (par exemple, les sources du pilote Linux SPI se trouvent dans bcm2708.c ou dans des commentaires sur mon autre question ).

Qui a raison, ou les deux, pourquoi? En particulier, s’il existe des incohérences dans les feuilles de données pour les deux, ce qui doit être compris comme "plus important"?

Réponses:


13

En réalité, la divergence est due à la désignation du silicium et du boîtier de la puce. Il y avait à l'origine la matrice en silicium connue sous le nom de BCM2708, tout le développement initial a été fait autour de cela.

Dans un package empilé 9x9 avec 256 Mo de DRAM, il est alors appelé BCM2763. (Stacked, c’est quand vous collez littéralement le silicium DRAM sur le processeur et placez les fils de liaison sur le substrat)

Mais lorsque la mémoire est POP'd (package sur package, le package DRAM est attaché au sommet du package de processeur), il était alors connu sous le nom de BCM2835. Il s’agissait du périphérique sur lequel l’ARM était activé.

Les versions ultérieures de la puce suivent le même schéma, il existe maintenant trois pièces de silicium, BCM2708, BCM2709 et BCM2710 et trois packages BCM2835, BCM2836 et BCM2837.


20

En réponse à la réponse de Steve, il est question ici du journal des problèmes de git hub pour les pilotes Linux, indiquant comment les pilotes doivent être étiquetés. Les postes pertinents sont:

popcornmix:

Techniquement, 2708 est la famille et 2835 est une implémentation spécifique. Nous savons maintenant que 2835 est la seule implémentation de la famille à pouvoir exécuter Linux (et qu'il n'y aura pas de nouveaux modèles de cette famille), le modèle utilisé n'a donc probablement aucune importance, même s'il doit être cohérent.

lp0:

Il serait donc raisonnable de nommer tous les pilotes 2708, mais le fichier d'arborescence de périphérique spécifique 2835? (en supposant que s'il existe un autre modèle de cette famille pouvant exécuter Linux, il aurait besoin d'une liste différente de périphériques)


Un autre commentaire suggère que "BCM2708 est peut-être le composant CPU qui fait partie du BCM2835". Quelques liens vers des preuves de première main seraient bien ... (aussi, j'ai posté cette question parce que j'aimerais bien quelque chose de plus que ce que j'ai déjà trouvé dans le premier résultat de Google)
akavel

1
J'ai essayé d'en trouver. La fiche de données broadcom est liée ici: raspberrypi.org/wp-content/uploads/2012/02/… . Cependant, il ne fait aucune référence au numéro BCM2708. Autant que je sache, le seul endroit où ces deux chiffres apparaissent ensemble se trouve sur des posts qui posent ce genre de question.
Jon Egerton

14

Techniquement, 2708 est le nom de la famille de puces et 2835, une puce spécifique du Pi. En ce qui concerne la fiche technique qui remplace l’autre, j’ai choisi le BCM2835 (spécifique) par rapport au BCM2708 (famille).


1
Citation dure nécessaire . Une autre affiche suggère que "BCM2708 est peut-être le composant de processeur qui fait partie du BCM2835". Excusez-moi, mais pourquoi dois-je vous croire, pas lui?
akavel

1
En tant qu '"autre affiche" - je voudrais dire que c'était une spéculation basée sur les sources du noyau. Je n'ai aucune preuve tangible non plus ... et nous devrions vraiment avoir une sorte de réponse source canonique (de préférence Broadcomm).
Maria Zverina

1
@MariaZverina Dans ce cas particulier, une telle source canonique peut ne pas être disponible, car même obtenir des détails complets sur la puce nécessite un NDA. En conséquence, une approche plus pragmatique peut être requise. Permettez-moi de poser une question pour obtenir le contexte de la question. Qu'essayez-vous de faire que vous ne puissiez pas à la suite de cette question de nommage?
Steve Robillard

@MariaZverina et akavel Je viens de tomber sur cette vidéo sur YouTube youtube.com/watch?v=5jEVBK7P1GA de Geert van Leuw parlant de la puce dans le Pi et il l'appelle le 2835. En tant que source d'informations sur le matériel du Pi Je pense que vous conviendrez que cela ne va pas beaucoup mieux.
Steve Robillard

4

Il convient de se rendre compte que le coeur ARM n'est pas une partie principale du SoC, mais un coeur auxiliaire collé sur le côté derrière une MMU système. Le processeur principal (de démarrage) est le VideoCore, qui effectue une initialisation précoce, configure la MMU du système et démarre le coeur ARM.

Le plus probablement bcm2708 fait référence à la partie principale du SoC contenant le processeur et les périphériques de VideoCore (consultez le tableau des SoC VideoCore de wikipedia , remarquez qu'aucune partie de bcm27xx ne possède de cœur ARM).

D'après la version du code source du pilote de broadcom, j'ai vraiment l'impression que tous les SoC VC4 sont basés sur le bcm2708, alors que VC3 est le bcm2707. Il y a au moins trois révisions de bcm2708 (a0, b0, c0) bien que, et a0 diffère suffisamment pour avoir #ifdefs partout et assez quelques en-têtes. Il existe également une exception pour "VC4 big island" dont l'en-tête principal n'est pas inclus, mais je ne trouve pas grand chose à ce sujet, bien que cette remarque soit intéressante.

Il est donc logique que les conducteurs se réfèrent au 2708 (surtout s’ils ont été développés par broadcom).

Je ne suis pas sûr de savoir quoi faire du rapport rpi2 bcm2709 ... Il existe de nombreuses déclarations selon lesquelles les SoC bcm2835 et bcm2836 diffèrent uniquement par le sous-système ARM et l'adresse de base du périphérique (c'est-à-dire une configuration légèrement différente du système MMU); c’est probablement aussi basé sur bcm2708, mais l’information disponible est plutôt limitée. Je me demande si quelqu'un vient de frapper le nombre pour traiter avec du code qui suppose que bcm2708 implique un cœur ARM11 (alors qu'en réalité, cela n'implique aucun cœur ARM).

Edit: le document bcm2836 quad-A7 récemment publié confirme qu’il est également basé sur le programme bcm2708.


Je crois que le BCM2709 est ARMv8. ARMv8 est AArch64 (ARM-64) et cela signifie que le matériel a des extensions telles que crc32, pmull, aes, sha1 et sha2 .
jww

Euh, avez-vous lu ma réponse du tout? BCM2708 fait simplement référence à la partie principale du SoC (périphériques VideoCore 4 +), sans ARM. Voir par exemple la publication de l'en- tête de broadcom pour avoir une idée de ce qu'elle inclut. Le BCM2835 / 6/7 (et de nombreuses autres pièces) ont ensuite été construits en collant un sous-système arm11 / quad-a7 / quad-a53 (respectivement) sur son côté. Ceci n’a cependant pas grand chose à voir avec le reste du SoC.
Matthijs

0

Ma recherche de cette question a été motivée par cette page

Notez la réponse de la commande cat / proc / cpuinfo

...

Matériel: BCM2708

Révision: 1000002


Hm, intéressant! Bien que, à la lumière des autres réponses, je pense que cela ne résout toujours pas la situation de manière satisfaisante - il peut toujours s'agir du nom de famille, ou du nom de la mise en œuvre spécifique, ou de quelque chose d'autre ...
akavel
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.