CPUがBCM2708、BCM2835と呼ばれることがあるのはなぜですか?


49

Raspberry Piのシステムオンチップは、通常「BCM2835」(例:Wikipedia)と呼ばれますが、「BCM2708」(例:Linux SPIドライバーのソースはbcm2708.cまたは他の質問へのコメント)と呼ばれます。)。

どちらが正しい、または両方です-なぜですか?特に、両方のデータシートに矛盾がある場合、それは「より重要」と理解されますか?

回答:


13

実際、不一致はシリコンとチップパッケージの指定によるものです。もともとBCM2708として知られているシリコンダイがありましたが、すべての初期開発はこれを中心に行われました。

256MBのDRAMを搭載したスタック9x9パッケージでは、BCM2763として知られています。(スタックとは、文字通りプロセッサーの上部にDRAMシリコンをボンディングし、ボンディングワイヤーを基板に下ろすことです)

ただし、メモリがPOP(パッケージオンパッケージ、DRAMパッケージがプロセッサパッケージの上部に接続されている)の場合、BCM2835として知られていました。これは、ARMが有効になったデバイスです。

チップの以降のバージョンも同じスキームに従っており、3つのシリコン片、BCM2708、BCM2709、BCM2710、および3つのパッケージBCM2835、BCM2836、BCM2837があります。


20

Steveの答えに加えて、Linuxドライバーのgitハブの問題ログで、ドライバーのラベル付け方法について議論しています。関連する投稿は次のとおりです。

popcornmix:

技術的には2708がファミリであり、2835は特定の実装です。現在、2835がLinuxを実行できるファミリの唯一の実装であることがわかっているため(このファミリの新しいモデルはありません)、どのモデルを使用するかは重要ではありませんが、一貫している必要があります。

lp0:

それでは、特定のデバイスツリーファイル2835以外のすべてのドライバーに名前を付けるのが妥当でしょうか?(Linuxを実行できるそのファミリの別のモデルがある場合、別のデバイスのリストが必要になると仮定します)


別のコメントは、「BCM2708はBCM2835の一部であるCPUコンポーネントである」と示唆しています。
直接的

1
見つけようとしました。Broadcomデータシートは、raspberrypi.org / wp-content / uploads / 2012/02 /…にリンクされています。ただし、BCM2708番号の参照は行いません。私が見る限り、これらの2つの数字が一緒に表示される唯一の場所は、この種の質問をする投稿にあります。
ジョンイガートン

14

技術的には、2708はチップファミリの名前であり、2835はPiの特定のチップです。どのデータシートが他のデータシートに優先するかについては、BCM2708(ファミリ)よりもBCM2835(特定)を選択します。


1
厳しい引用が必要です別のポスターは、おそらく「BCM2708はBCM2835の一部であるCPUコンポーネントです」と示唆しています。すみませんが、なぜ彼ではなく、あなたを信じるのですか?
akavel

1
「他のポスター」として-私はそれがカーネルソースに基づく推測であったと言いたいです。私には確固たる証拠もありません...そして、ある種の標準的な(好ましくはBroadcommの)ソースの回答が本当に必要です。
マリアズベリナ

1
@MariaZverinaこの特定のケースでは、そのような標準的なソースは誰からも利用できない可能性があります-チップの完全な詳細を取得する場合でもNDAが必要なためです。その結果、より実用的なアプローチが求められる場合があります。質問のコンテキストを取得する手段として質問をさせてください。このネーミングの質問の結果としてできないことを何をしようとしていますか?
スティーブロビラード

@MariaZverinaとakavel YouTubeでこの動画に出会ったばかりですyoutube.com/watch?v=5jEVBK7P1GAのGeert van LeuwがPiのチップについて話し、彼はそれを2835と呼んでいます。Piハードウェアの情報源としてあなたはそれがあまり良くならないことに同意するだろうと思う。
スティーブロビラード

4

ARMコアはSoCの主要部分ではなく、システムMMUの背後に横たわっている補助コアであることを理解する価値があります。メイン(ブート)プロセッサはVideoCoreで、初期初期化を実行し、システムMMUをセットアップし、ARMコアを起動します。

最も可能性の高いbcm2708は、VideoCoreプロセッサと周辺機器を含むSoCの主要部分を指します(WikiCore のVideoCore SoC表を参照してください。bcm27xx部分にはARMコアがないことに注意してください)。

Broadcomのドライバーソースコードリリースに基づいて、VC3はbcm2707であるのに対し、VC4 SoCはすべてbcm2708に基づいているという印象を受けます。ただし、少なくとも3つのbcm2708リビジョン(a0、b0、c0)があり、a0は十分に異なり、場所全体に#ifdefがあり、独自のヘッダーがかなりあります。メインヘッダーが含まれていない「VC4ビッグアイランド」にも例外がありますが、この発言は興味深いものですが、あまり詳しくはわかりません。

したがって、ドライバーが2708を参照することは理にかなっています(特にBroadcomによって開発された場合)。

bcm2709を報告するrpi2の作成方法がわからない... bcm2835とbcm2836 SoCはARMサブシステムと周辺機器のベースアドレス(つまり、システムMMU構成がわずかに異なる)のみが異なるという多数のステートメントがあるため、おそらくbcm2708ベースでもありますが、利用できる情報はかなり限られています。bcm2708がARM11コアを暗示するコードを処理するために誰かが数字を増やしただけではないかと思います(実際には、ARMコアをまったく意味しません)。

編集:新しくリリースされたbcm2836 quad-A7ドキュメントでは、bcm2708にも基づいていることが確認されています。


BCM2709はARMv8だと思います。ARMv8はAArch64(ARM-64)であり、ハードウェアにcrc32、pmull、aes、sha1、sha2などの拡張機能があることを意味します。
-jww

えーと、私の答えを読んだことがありますか?BCM2708は、SoCの主要部分(VideoCore 4 +周辺機器)のみを指し、ARMは指しません。たとえば、broadcomのヘッダーリリースを参照して、含まれる内容を把握してください。BCM2835 / 6/7(および他の多くの部品)は、arm11 / quad-a7 / quad-a53 ARMサブシステム(それぞれ)をその側面に貼り付けることで構築されました。ただし、これはSoCの他の部分とはあまり関係ありません。
Matthijs

0

このページでこの質問の検索が促されました

コマンドcat / proc / cpuinfoからの応答に注意してください

...

ハードウェア:BCM2708

改訂:1000002


うーん、面白い!しかし、他の答えに照らして、それでも状況を十分に解決できないと思います-それはまだ姓、特定の実装名、または何か他のものである可能性があります
...-akavel
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.