これは12-CURRENT時代の主にSOC関係の話です。mipsはもちろんディスクトップもありましたが、ほとんど手に入らないと思います。その点SOCベースのものは比較的簡単に入手できます。mipsサポートはTier 3でリリースは作らないけどビルドはできる状態になっています。自分はビルドはZRouterで行っています。メモリ16MのFlash4Mが最低ラインです。mipsは未だにgcc 4.2を使い続けています。
Atheros(Qualcomm)
AR7/9やQCA955Xのサポートコードがある。唯一BIG EndianなSOC。FDT/INTRNG非対応なコードになっている。コンフィグレーションはhintsベース。大きく分けると100のEtherswitchが入ったチップと入ってないチップがあります。両方共Etherインターフェースは二つあります。データーシートはコンフィデンシャルだが漏れているものが入手可能。
mips/atheros/ar531xに古いAR2/5系のサポートコードがある。NetBSDのコードなどをベースに私が作りました。なぜこれを作ったかというと、このころのSOCにはEthernet Switchが入っていなくて外付けでいろいろなチップが使われていて、それを試したかったからです。このチップは二世代あり、最初のチップはFlashがCFIでEtherインターフェースが2つあり、後の世代はFlashがSPIでEtherが1つになりました。こちらはNON-FDTだがINTRNGは対応してあります。
Mediatek
Ralink時代のRT3050やMediatekになってからのMT7620などのコードがある。rayさんがやっていたmips/rt3050を実装し直した。FTD/INTRNG対応済み。データーシートはネットで入手可能。MediatekはSOCの種類も少なくアーキテクチャもシンプルで、私の一押し。
Broadcom
mipsサポートの初期のコードを再実装している。BroadcomはMIPS SOCを止めてしまったので、ターゲットは結構限られるし、後期のSOCは日本ではほとんど目にしない。FDT対応はしていないがbhndというドライバーを使ってコンフィグレーションをしている。このメーカーのSOCは2種類あり、sibaを使ったものとbcma(AMBA)を使ったもの。INTRNGは対応済み。データーシートはまったく入手できない。ブートローダーがCFEというBroadcomオリジナルになっている。こちらもrayさんがやっていた物を再実装している。実装が大きくなってしまっている上にチップがいろいろあり、かなり厳しい状態。(個人的にsibaなターゲットはFreeBSDをあきらめてBareMetalでmrubyを動くようにしました。)
チップ | タイプ | 備考 |
---|---|---|
BCM4712 | siba | 11gの初期のWIFIチップ。Buffaloでいろいろつかわていた。メモリ16MのFlash 4Mのモデルがほとんど。Etherswitch無しの11gの最終のチップ。 |
BCM5350,2,4 | siba | 11gの後期のWIFIチップ。Buffaloでいろいろつかわていた。Etherswitchが内蔵されている。メモリ16MのFlash 4Mのモデルがほとんど。 |
BCM4718,BCM5356 | bcma | BCM/mips最後の頃のチップ。WIFIは11n。日本ではほとんど使われてない。 |
BCM33xx | ? | ケーブルモデム用のチップで、WIFI AP系のチップとは別のよう。日本にはほとんど入ってきてない。大変紛らわしいのはBMIPS3300というアーキテクチャがあること。BCM3380,3383,3384,3390まであったようです。BCM3380は珍しいデュアルコア。BCM66XXの亜流のようです。 |
BCM66xx | ? | DSL用のチップでBCM33xxとCPUは同じなのではないかと思われる。6338,6348,6358,6362,6368があったよう。 |
BCM7405 | ? | セットトップボックス用のソリューションの模様。 |
他
以前はAdmtek(Infineonに買収)やIDTなどのポートもあったのですが、ターゲットがあまりなくメモリーなどのリソースも小さかったので消されてしまいました。
ターゲット
これらのチップは市販の無線ルーターに入っています。自分はハードオフで入手しています。ハードオフのジャンクは保障が無いのであまりお勧めはできません。ただ私の肌感では5%くらいの確率で壊れているものもあるていどで、ほとんど正常に使えます。Atheros/Mediatekはu-bootを使ってますが、NecのAtherosは独自bootなのでいじるのは難しいです。Broadcomは11gの頃の無線ルーターでは使われていましたが、11n以降では国内ではあまり使われなくなっています。
登場人物
Adrian Chadd
元AtherosでAtherosとWiFiの人。mips系コミッターのメンター。オーストラリア出身でアメリカ在住。
Oleksandr Rybalko(ray)
ZRouter.orgを始めた人。最近はあまりFreeBSDはアクティブではないけど、ZRouterは続けてます。Rayが書いたコードはいくつか書き直されてますが、いろいろ功績があります。ウクライナの人
Oleksandr Tymoshenko(gonzo)
AtherosやAdamtekなどのドライバーを書いていました。armやdevの下にもいろいろコードがあります。gonzoさんのコードは非常に分かりやすく、私が書いてるドライバーの下敷きになっています。ウクライナ出身で今はアメリカにいるようです。
Stefan Bethke
etherswitchを作った人。rayと最初は一緒にやってたみたいなんですが、途中から別々な開発になり、etherswitchがHEADに入りました。ドイツの人。
Stanislav Galabov
Mediatek(Ralink)対応をFDTで書き直した人。mips/mediatekの実装はちょっと風変わりで面白いです。Mediatekのサポートはかなり広くどうやって作ったのか聞いてたかったりします。ブルガリアの人
Landon Fuller
Broadcom周りの人。bhndやてます。bhndは作り込みが大きくなっていて、個人的にはあまり好きではありません。元Appleでアメリカの人
Michael Zhilin
Landonと一緒にBroadcom周り。AsiaBSDCon2018に参加してました。私のレビューをいろいろ見てもらってます。仕事で日本来ることが何度かあり、会っていました。ロシアの人
Hiroki Mori
自分はコミッターじゃないですけどいろいろいじってレビュー出してます。Atherosの古いSOCのサポートやRalinkの最初のSOCのRT2880のサポートやMediatek GPIOのGPSサポートなどなど。日本の人