¿Por qué a veces se hace referencia a la CPU como BCM2708, a veces BCM2835?

49

He visto el Sistema en Chip de Raspberry Pi referido generalmente como "BCM2835" (por ejemplo, en Wikipedia ), pero a veces como "BCM2708" (por ejemplo, las fuentes para el controlador SPI de Linux están en bcm2708.c , o en comentarios a mi otra pregunta )

¿Qué es correcto o son ambos? ¿Por qué? Especialmente, si hay inconsistencias en las hojas de datos para ambos, ¿qué se entenderá como "más importante"?

akavel
fuente

Respuestas:

13

En realidad, la discrepancia se debe a la designación del silicio y el paquete de chips. Originalmente existía el dado de silicio que se conoce como BCM2708, todo el desarrollo inicial se realizó alrededor de esto.

En un paquete de 9x9 apilado con 256 MB de DRAM, se conoce como BCM2763. (Apilado es cuando, literalmente, une el silicio DRAM en la parte superior del procesador y coloca los cables de enlace sobre el sustrato)

Pero cuando la memoria es POP'd (paquete en paquete, el paquete DRAM está conectado a la parte superior del paquete del procesador) entonces se conocía como BCM2835, este es el dispositivo que tenía el ARM habilitado.

Las versiones posteriores del chip siguen el mismo esquema, ahora hay tres piezas de silicio, BCM2708, BCM2709 y BCM2710 y tres paquetes BCM2835, BCM2836 y BCM2837.

GSH
fuente
20

Además de la respuesta de Steve, aquí hay una discusión sobre el registro de problemas de git hub para controladores de Linux que discute cómo deben etiquetarse los controladores. Las publicaciones pertinentes son:

palomitas de maíz:

Técnicamente 2708 es la familia, y 2835 es una implementación específica. Ahora sabemos que 2835 es la única implementación en la familia que puede ejecutar Linux (y no habrá nuevos modelos de esta familia), por lo que probablemente no importa qué modelo se use, aunque debería ser coherente.

lp0:

Entonces, ¿sería razonable nombrar todos los controladores 2708 pero el archivo de árbol de dispositivo específico 2835? (suponiendo que si alguna vez hay otro modelo de esa familia que pueda ejecutar Linux, necesitaría una lista diferente de dispositivos)

Jon Egerton
fuente
Otro comentario sugiere que tal vez "BCM2708 es el componente de la CPU que forma parte del BCM2835". Algunos enlaces a evidencia de primera mano serían buenos ... (también, publiqué esta pregunta porque me gustaría algo más de lo que ya encontré en el primer resultado de Google)
akavel
1
Traté de encontrar algunos. La hoja de datos de Broadcom está vinculada aquí: raspberrypi.org/wp-content/uploads/2012/02/… . Sin embargo, no hace referencia al número BCM2708. Hasta donde puedo ver, el único lugar donde esos dos números aparecen juntos es en publicaciones que hacen este tipo de preguntas.
Jon Egerton
14

Técnicamente 2708 es el nombre de la familia de chips, y 2835 es el chip específico en el Pi. En cuanto a qué hoja de datos reemplaza a la otra, elegiría el BCM2835 (específico) sobre el BCM2708 (familia).

Steve Robillard
fuente
1
Cita dura necesaria . Otro póster sugiere que tal vez "BCM2708 es el componente de la CPU que forma parte del BCM2835". Disculpe, pero ¿por qué debo creerle, no a él?
akavel
1
Como el "otro póster", me gustaría decir que fue una especulación basada en las fuentes del núcleo. Tampoco tengo pruebas contundentes ... y realmente deberíamos tener algún tipo de respuesta fuente canónica (preferiblemente Broadcomm).
Maria Zverina
1
@MariaZverina En este caso particular, tal fuente canónica puede no estar disponible para nadie, ya que incluso obtener todos los detalles del chip requiere un NDA. Como resultado, puede requerirse un enfoque más pragmático. Permítanme hacer una pregunta para obtener el contexto de la pregunta. ¿Qué estás tratando de hacer que no puedas como resultado de esta pregunta de nomenclatura?
Steve Robillard
@MariaZverina y akavel Acabo de encontrar este video en YouTube youtube.com/watch?v=5jEVBK7P1GA de Geert van Leuw hablando sobre el chip en el Pi y se refiere a él como el 2835. Como fuente de información sobre el hardware de Pi Creo que habrá aceptado que no mejora mucho.
Steve Robillard
4

Vale la pena darse cuenta de que el núcleo ARM no es una parte principal del SoC, sino un núcleo auxiliar atrapado en el costado, detrás de una MMU del sistema. El procesador principal (de arranque) es VideoCore, que realiza una inicialización temprana, configura la MMU del sistema y arranca el núcleo ARM.

Lo más probable es que bcm2708 se refiera a la parte principal del SoC que contiene el procesador y los periféricos de VideoCore (consulte la tabla de Wikipedia de SoC de VideoCore , observe cómo ninguna parte de bcm27xx tiene un núcleo ARM).

Basado en el lanzamiento del código fuente del controlador de broadcom, realmente tengo la impresión de que todos los SoC VC4 se basan en el bcm2708, mientras que VC3 es bcm2707. Sin embargo, hay al menos tres revisiones de bcm2708 (a0, b0, c0), y a0 difiere lo suficiente como para tener #ifdefs por todas partes y bastantes encabezados propios. También hay una excepción para "VC4 big island" cuyo encabezado principal no está incluido, pero realmente no puedo encontrar mucho al respecto, aunque este comentario es interesante.

Por lo tanto, tiene sentido que los controladores se refieran al 2708 (especialmente si fueron desarrollados por broadcom).

No estoy seguro de qué hacer con el informe rpi2 bcm2709 ... hay numerosas afirmaciones de que los SoC bcm2835 y bcm2836 difieren solo en el subsistema ARM y la dirección de base periférica (es decir, la configuración MMU del sistema es ligeramente diferente), por lo que parece altamente es probable que también esté basado en bcm2708, pero la información disponible es bastante limitada. Me pregunto si alguien acaba de encontrar el número para tratar con el código que supone que bcm2708 implica un núcleo ARM11 (mientras que en realidad no implica ningún núcleo ARM).

Editar: el nuevo documento bcm2836 quad-A7 confirma que también se basa en el bcm2708.

Matthijs
fuente
Creo que el BCM2709 es ARMv8. ARMv8 es AArch64 (ARM-64), y significa que el hardware tiene extensiones como crc32, pmull, aes, sha1 y sha2 .
jww
Ehm, ¿has leído mi respuesta? BCM2708 solo se refiere a la parte principal del SoC (periféricos VideoCore 4 +), no ARM. Consulte, por ejemplo, el lanzamiento del encabezado de broadcom para tener una idea de lo que incluye. El BCM2835 / 6/7 (y muchas otras partes) se construyeron pegando un subsistema ARM arm11 / quad-a7 / quad-a53 (respectivamente) a su lado. Sin embargo, esto no tiene mucho que ver con el resto del SoC.
Matthijs
0

Mi búsqueda de esta pregunta fue impulsada por esta página

Tenga en cuenta la respuesta del comando cat / proc / cpuinfo

...

Hardware: BCM2708

Revisión: 1000002

slomobile
fuente
Hm, interesante! A pesar de que, a la luz de las otras respuestas, creo que todavía no resuelve el suficiente situación - que todavía puede ser tanto el nombre de la familia, o el nombre de la aplicación específica, o alguna otra cosa ...
akavel