LoginSignup
0
0

BCM3383をブートしてみた

Last updated at Posted at 2024-04-17

以前ハードオフで108円で手に入れた、CATVのルーターをいじってみました。

このルーターはBCM3383を使ったものです。このチップはBroadcomのCATV用のMIPS SOCです。

シリアルのピンはハーフピッチでパターンが接続されてなかったので、使えるようにいじりました。

115200で以下のメッセージが確認できます。

BCM338332 TP0 346890
MemSize:            128 M
Chip ID:     BCM3383G-B0

BootLoader Version: 2.6.0-15-gac1e Release Gnu spiboot reduced DDR drive
Build Date: Mar 13 2015
Build Time: 15:41:05
SPI flash ID 0xc22018, size 16MB, block size 64KB, write buffer 256, flags 0x0
parameter offset is 40788

Auto tftp boot mode!! try to connect TFTP to doandload manufacture f/w!!

Signature/PID: 3383

Switch detected: 53125
ProbePhy: Found PHY 0, MDIO on MAC 0, data on MAC 0
Using GMAC0, phy 0

Enet link up: 1G full
Press any key within 0 seconds to abort tftp upgrade.

cfeやu-bootではないようです。

Main Menu:
==========
  b) Boot from flash
  g) Download and run from RAM
  d) Download and save to flash
  e) Erase flash sector
  m) Set mode
  s) Store bootloader parameters to flash
  i) Re-init ethernet
  k) Reconfig TFTP Info
  c) Back to Default
  v) Set tftp boot mode
  M) Set boot mode
  r) Read memory
  w) Write memory
  j) Jump to arbitrary address
  X) Erase all of flash except the bootloader
  z) Reset

ブートも作らないとだめかと思っていたのですが、いろいろ試したら使えそうなので、このブートを使うことにしました。

iやkでネットを設定してsして保存します。

freebsdのsys/mips/mips/locore.Sに一文字出力を入れます。

uartのアドレスは

shared/broadcom/include/bcm963xx/3383_map.h

というソースにあり、uartのレジスタの構成は

shared/broadcom/include/bcm963xx/bcm3383/uart.h

にあります。

GLOBAL(btext)
ASM_ENTRY(_start)
VECTOR(_locore, unknown)
        li      t0, 0xb4e00500
        li      t1, 0x55
        sw      t1, 0x14(t0)

これでビルドしてProgramStoreというプログラムでkbinをイメージにします。ProgramStoreはbroadcomのaeolusというレポジトリにあったのですが、64ビット環境でビルドするとおかしな動作になったので、直してZRouterに入れました。

ProgramStoreにたどりついたのはflashの中にあったecram_sto.binという文字列をgithubで検索したら、下記のページが出てきました。

イメージをgコマンドでtftpして起動してみます。Switchの初期化が遅いのか電源投入後しばらくしないとネットワークが使えません。

TFTP Get Selected
Board TFTP Server IP Address [10.10.10.3]:  
Enter filename [freebsd.bin]: 


Destination: a5f00000

Destination: a5f00000
Starting TFTP of freebsd.bin from 10.10.10.3
Getting freebsd.bin using octet mode
......................................
Tftp complete
Received 2230045 bytes

Image 3 Program Header:
   Signature: 3383
     Control: 0001
   Major Rev: 8271
   Minor Rev: 8486
  Build Time: 2024/4/17 10:09:05 Z
 File Length: 2229953 bytes
Load Address: 80040120
    Filename: /tmp/freebsd.bin
         HCS: 3cd6
         CRC: 601643df

Store parameters to flash? [n] 
Performing CRC on Image 3...
CRC time = 48243367
Detected LZRW1/KH compressed image...decompressing...
Target Address: 0x80040120
Decompressed length: 3366416

Executing Image 3...




BOOT PARAM STRING(0x800008c4): HMXBLPA]BOOTMODE=normal;OFFSET=40788;

U

ブートできました。

BCM3383を使って面白そうなことしてる人見つけました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0