Dlaczego procesor jest czasem nazywany BCM2708, a czasem BCM2835?

49

Widziałem System na chipie Raspberry Pi określany zwykle jako „BCM2835” (np. Na Wikipedii ), ale czasami jako „BCM2708” (np. Źródła dla sterownika SPI dla systemu Linux znajdują się w bcm2708.c lub w komentarzach do mojego innego pytania ).

Które jest słuszne, czy też oba - dlaczego? W szczególności, jeśli w obu arkuszach danych występują niespójności, które należy rozumieć jako „ważniejsze”?

akavel
źródło

Odpowiedzi:

13

W rzeczywistości rozbieżność wynika z oznaczenia krzemu i pakietu układów. Pierwotnie istniała silikonowa matryca znana jako BCM2708, wszystkie początkowe prace rozwojowe zostały wykonane wokół tego.

W stosie 9 x 9 z 256 MB pamięci DRAM jest wówczas znany jako BCM2763. (Ułożone są w stos, gdy dosłownie łączysz krzem DRAM na górze procesora i kładziesz druty łączące na podłożu)

Ale kiedy pamięć jest POP (pakiet na pakiecie, pakiet DRAM jest dołączony do górnej części pakietu procesora), wtedy był znany jako BCM2835, to było to urządzenie, które następnie miało włączoną obsługę ARM.

Późniejsze wersje układu mają ten sam schemat, są teraz trzy kawałki krzemu, BCM2708, BCM2709 i BCM2710 oraz trzy pakiety BCM2835, BCM2836 i BCM2837.

GSH
źródło
20

Oprócz odpowiedzi Steve'a, tutaj jest dyskusja w dzienniku problemów git hub dla sterowników Linuksa, omawiająca sposób oznaczania sterowników. Odpowiednie posty to:

popcornmix:

Technicznie 2708 to rodzina, a 2835 to konkretne wdrożenie. Wiemy teraz, że 2835 jest jedyną implementacją w rodzinie, która może uruchamiać Linuksa (i nie będzie nowych modeli tej rodziny), więc prawdopodobnie nie ma znaczenia, który model jest używany, chociaż powinien być spójny.

lp0:

Czy byłoby rozsądne wymienić wszystkie sterowniki 2708, ale plik drzewa konkretnych urządzeń 2835? (zakładając, że jeśli istnieje jeszcze inny model z tej rodziny, który może obsługiwać Linuksa, potrzebowałaby innej listy urządzeń)

Jon Egerton
źródło
Inny komentarz sugeruje, że być może „BCM2708 jest komponentem procesora będącym częścią BCM2835”. Przydałoby się kilka linków do dowodów z pierwszej ręki ... (zadałem też to pytanie, ponieważ chciałbym czegoś więcej niż to, co już znalazłem w pierwszym wyniku Google)
akavel
1
Próbowałem znaleźć. Arkusz danych Broadcom znajduje się tutaj: raspberrypi.org/wp-content/uploads/2012/02/… . Jednak nie ma odniesienia do numeru BCM2708. O ile widzę, jedyne miejsce, w którym te dwie liczby pojawiają się razem, znajduje się na postach zadających tego rodzaju pytania.
Jon Egerton
14

Technicznie 2708 to nazwa rodziny układów, a 2835 to specyficzny układ w Pi. Jeśli chodzi o to, który arkusz danych zastępuje drugi, wybrałbym BCM2835 (specyficzny) zamiast BCM2708 (rodzina).

Steve Robillard
źródło
1
Potrzebne jest ciężkie cytowanie . Inny plakat sugeruje, że być może „BCM2708 jest komponentem procesora będącym częścią BCM2835”. Przepraszam, ale dlaczego mam ci wierzyć, a nie on?
akavel
1
Jako „inny plakat” - chciałbym powiedzieć, że była to spekulacja oparta na źródłach jądra. Nie mam też twardych dowodów ... i naprawdę powinniśmy mieć jakąś kanoniczną (najlepiej Broadcomm) odpowiedź źródłową.
Maria Zverina
1
@MariaZverina W tym konkretnym przypadku takie kanoniczne źródło może nie być dostępne od nikogo - nawet uzyskanie pełnych szczegółów na temat układu wymaga NDA. W rezultacie można wymagać bardziej pragmatycznego podejścia. Pozwól, że zadam pytanie jako sposób na uzyskanie kontekstu dla pytania. Co próbujesz zrobić, czego nie możesz zrobić w wyniku tego pytania o nazewnictwo?
Steve Robillard,
@MariaZverina i akavel Właśnie natknąłem się na ten film na YouTube youtube.com/watch?v=5jEVBK7P1GA Geerta van Leuw mówiącego o układzie w Pi i on nazywa go 2835. Jako źródło informacji o sprzęcie Pi Myślę, że zgodzicie się, że nie będzie dużo lepiej.
Steve Robillard,
4

Warto zdać sobie sprawę, że rdzeń ARM nie jest podstawową częścią SoC, ale rdzeniem pomocniczym utkniętym z boku, za systemowym MMU. Głównym (rozruchowym) procesorem jest VideoCore, który wykonuje wczesną inicjalizację, konfiguruje system MMU i uruchamia rdzeń ARM.

Najprawdopodobniej bcm2708 odnosi się do głównej części SoC zawierającej procesor VideoCore i urządzenia peryferyjne (spójrz na tabelę wikipedii o SoCs VideoCore , zauważ, że żadna część bcm27xx nie ma rdzenia ARM).

W oparciu o wydanie kodu źródłowego sterownika Broadcom, mam wrażenie, że wszystkie SoC VC4 oparte są na bcm2708, podczas gdy VC3 to bcm2707. Istnieją co najmniej trzy wersje bcm2708 (a0, b0, c0), a a0 różni się wystarczająco, aby mieć #ifdefs w całym miejscu i sporo własnych nagłówków. Istnieje również wyjątek dla „dużej wyspy VC4”, której główny nagłówek nie jest uwzględniony, ale tak naprawdę nie mogę znaleźć dużo na ten temat, chociaż ta uwaga jest interesująca.

Dlatego sensowne jest, aby sterowniki odnosiły się do 2708 (zwłaszcza jeśli zostały opracowane przez Broadcom).

Nie jestem pewien, co zrobić z raportowaniem rpi2 bcm2709 ... istnieje wiele stwierdzeń, że SoC bcm2835 i bcm2836 różnią się tylko podsystemem ARM i peryferyjnym adresem bazowym (tj. Nieco inną konfiguracją MMU systemu), więc wydaje się, że jest wysoce prawdopodobnie jest to również oparte na bcm2708, ale dostępne informacje są raczej ograniczone. Zastanawiam się, czy ktoś po prostu wybił numer, aby poradzić sobie z kodem, który zakłada, że ​​bcm2708 implikuje rdzeń ARM11 (podczas gdy w rzeczywistości nie implikuje żadnego rdzenia ARM).

Edycja: Nowo wydany dokument bcm2836 quad-A7 potwierdza, że ​​jest również oparty na bcm2708.

Matthijs
źródło
Wierzę, że BCM2709 to ARMv8. ARMv8 to AArch64 (ARM-64), co oznacza, że ​​sprzęt ma rozszerzenia takie jak crc32, pmull, aes, sha1 i sha2 .
jww
Ehm, czy w ogóle przeczytałeś moją odpowiedź? BCM2708 odnosi się tylko do głównej części SoC (urządzenia peryferyjne VideoCore 4 +), bez ARM. Zobacz np. Wydanie nagłówka broadcom, aby dowiedzieć się, co zawiera. BCM2835 / 6/7 (i wiele innych części) zostały następnie skonstruowane poprzez przyklejenie (odpowiednio) podsystemu ARM arm11 / quad-a7 / quad-a53. Nie ma to jednak wiele wspólnego z resztą SoC.
Matthijs,
0

Moje poszukiwania tej kwestii został poproszony przez tą stronę

Zwróć uwagę na odpowiedź polecenia cat / proc / cpuinfo

...

Sprzęt: BCM2708

Wersja: 1000002

slomobile
źródło
Hm, ciekawe! Chociaż, w świetle innych odpowiedzi, uważam, że nadal nie rozwiązuje wystarczająco sytuacji - wciąż może to być zarówno nazwisko, nazwa konkretnego wdrożenia, czy coś innego ...
akavel