Perché a volte la CPU viene definita BCM2708, a volte BCM2835?


49

Ho visto il sistema su chip di Raspberry Pi di solito indicato come "BCM2835" (ad esempio su Wikipedia ), ma a volte come "BCM2708" (ad esempio le fonti per il driver SPI di Linux sono in bcm2708.c , o nei commenti all'altra mia domanda ).

Qual è giusto o entrambi - perché? In particolare, se ci sono incoerenze nei fogli di dati per entrambi, che devono essere intesi come "più importanti"?

Risposte:


13

In realtà la discrepanza è dovuta alla designazione del silicio e del pacchetto di chip. In origine c'era il dado al silicio che è noto come BCM2708, tutto lo sviluppo iniziale è stato fatto attorno a questo.

In un pacchetto impilato 9x9 con 256 MB di DRAM è quindi noto come BCM2763. (Impilato è quando si lega letteralmente il silicone DRAM sulla parte superiore del processore e si posizionano i fili di collegamento sul substrato)

Ma quando la memoria è POP'd (pacchetto sul pacchetto, il pacchetto DRAM è collegato nella parte superiore del pacchetto del processore), allora era noto come BCM2835, questo è il dispositivo che ha quindi abilitato ARM.

Le versioni successive del chip seguono lo stesso schema, ora ci sono tre pezzi di silicio, BCM2708, BCM2709 e BCM2710 e tre pacchetti BCM2835, BCM2836 e BCM2837.


20

Oltre alla risposta di Steve, c'è una discussione qui sul registro dei problemi dell'hub git per i driver linux che discute come i driver dovrebbero essere etichettati. I post pertinenti sono:

popcornmix:

Tecnicamente 2708 è la famiglia e 2835 è un'implementazione specifica. Ora sappiamo che 2835 è l'unica implementazione nella famiglia che può eseguire linux (e non ci saranno nuovi modelli di questa famiglia), quindi probabilmente non importa quale modello sia usato, anche se dovrebbe essere coerente.

lp0:

Quindi sarebbe ragionevole nominare tutti i driver 2708 ma il file specifico dell'albero dei dispositivi 2835? (supponendo che se esiste un altro modello di quella famiglia che può eseguire Linux avrebbe bisogno di un diverso elenco di dispositivi)


Un altro commento suggerisce che forse "BCM2708 è il componente CPU che fa parte del BCM2835". Alcuni link a prove di prima mano sarebbero carini ... (ho anche pubblicato questa domanda perché mi piacerebbe qualcosa di più di quello che ho già trovato nel primo risultato di Google)
Akavel

1
Ho provato a trovarne un po '. La scheda tecnica Broadcom è collegata qui: raspberrypi.org/wp-content/uploads/2012/02/… . Tuttavia non fa riferimento al numero BCM2708. Per quanto posso vedere, l'unico posto in cui questi due numeri compaiono insieme sono sui post che fanno questo tipo di domande.
Jon Egerton,

14

Tecnicamente 2708 è il nome della famiglia di chip e 2835 è il chip specifico nel Pi. Per quanto riguarda quale scheda tecnica sostituisce l'altra, sceglierei il BCM2835 (specifico) rispetto al BCM2708 (famiglia).


1
È necessaria una forte citazione . Un altro poster suggerisce che forse "BCM2708 è il componente CPU che fa parte del BCM2835". Mi scusi, ma perché devo crederti, non lui?
Akavel,

1
Come "altro poster" - vorrei dire che si trattava di una speculazione basata sui sorgenti del kernel. Neanche io ho prove concrete ... e dovremmo davvero avere una sorta di risposta alla fonte canonica (preferibilmente Broadcomm).
Maria Zverina,

1
@MariaZverina In questo caso particolare, una tale fonte canonica potrebbe non essere disponibile da nessuno - poiché anche ottenere tutti i dettagli sul chip richiede un NDA. Di conseguenza, può essere richiesto un approccio più pragmatico. Vorrei porre una domanda come mezzo per ottenere il contesto per la domanda. Cosa stai cercando di fare e non puoi a causa di questa domanda di denominazione?
Steve Robillard,

@MariaZverina e Akavel Mi sono appena imbattuto in questo video su YouTube youtube.com/watch?v=5jEVBK7P1GA di Geert van Leuw parlando del chip nel Pi e lo chiama 2835. Come fonte di informazioni sull'hardware Pi Penso che sarai d'accordo sul fatto che non migliora molto.
Steve Robillard,

4

Vale la pena rendersi conto che il core ARM non è una parte primaria del SoC, ma un core ausiliario bloccato sul lato, dietro una MMU di sistema. Il processore principale (avvio) è VideoCore, che esegue l'inizializzazione anticipata, imposta la MMU di sistema e avvia il core ARM.

Molto probabilmente bcm2708 si riferisce alla parte principale del SoC contenente il processore e le periferiche VideoCore (guarda la tabella di Wikipedia dei SoC VideoCore , nota come nessuna parte bcm27xx abbia un core ARM).

Sulla base del rilascio del codice sorgente del driver di Broadcom, in realtà ho l'impressione che tutti i SoC VC4 siano basati su bcm2708, mentre VC3 è bcm2707. Ci sono almeno tre revisioni di bcm2708 (a0, b0, c0) e a0 differisce abbastanza da avere #ifdefs dappertutto e alcune intestazioni diverse. C'è anche un'eccezione per "VC4 big island" la cui intestazione principale non è inclusa, ma non riesco davvero a trovare molto al riguardo, sebbene questa osservazione sia interessante.

Quindi ha senso che i conducenti si riferiscano al 2708 (specialmente se sono stati sviluppati da Broadcom).

Non sono sicuro di cosa pensare del report rpi2 bcm2709 ... ci sono numerose affermazioni secondo cui i SoC bcm2835 e bcm2836 differiscono solo nel sottosistema ARM e nell'indirizzo di base periferico (ovvero configurazione MMU di sistema leggermente diversa), quindi sembra altamente probabilmente è basato anche su bcm2708, ma le informazioni disponibili sono piuttosto limitate. Mi chiedo se qualcuno abbia semplicemente aumentato il numero per gestire il codice che presuppone che bcm2708 implichi un core ARM11 (mentre in realtà non implica alcun core ARM).

Modifica: il documento quad-A7 bcm2836 appena rilasciato conferma che si basa anche sul bcm2708.


Credo che il BCM2709 sia ARMv8. ARMv8 è AArch64 (ARM-64) e significa che l'hardware ha estensioni come crc32, pmull, aes, sha1 e sha2 .
1616

Ehm, hai letto la mia risposta? BCM2708 si riferisce solo alla parte principale del SoC (periferiche VideoCore 4 +), senza ARM. Vedi ad esempio la versione dell'intestazione di Broadcom per avere un'idea di cosa include. Il BCM2835 / 6/7 (e molte altre parti) furono quindi costruiti attaccando un sottosistema ARM arm11 / quad-a7 / quad-a53 (rispettivamente) su un lato. Questo, tuttavia, non ha molto a che fare con il resto del SoC.
Matthijs,

0

La mia ricerca per questa domanda è stata richiesta da questa pagina

Nota la risposta dal comando cat / proc / cpuinfo

...

Hardware: BCM2708

Revisione: 1000002


Interessante! Anche se, alla luce delle altre risposte, credo che non risolva ancora abbastanza la situazione - può ancora essere sia il cognome, sia il nome specifico dell'implementazione, o qualcos'altro ...
Akavel
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.