CodingBox Q&A Ask question

Membaca dan menulis ulang EEPROM SFP lewat bus I2C Raspberry Pi, bukan beli programmer

Asked Active Viewed 84 AI translation from English
4

Saya punya setumpuk SFP bekas cabutan di rumah, dan saya ingin bisa membaca EEPROM-nya, memperbaiki modul yang checksum-nya rusak, dan sesekali coding ulang salah satu buat switch yang rewel soal vendor string. Beli programmer komersial untuk segelintir modul setahun rasanya nggak sepadan, jadi saya coba cari tahu sejauh mana rig rakitan sendiri ini bisa menjangkau.

Yang ada di meja kerja saya:

  • Raspberry Pi dengan bus I2C yang saya keluarkan ke cage SFP yang saya kabel sendiri
  • board programmer USB CH341A sisa dari kerjaan BIOS
  • tumpukan campuran modul SFP/SFP+ 1G dan 10G, plus dua QSFP+ yang juga ingin saya coba

Baca setidaknya jalan, dalam artian ada yang merespons di bus-nya:

$ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 51 -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
$ i2cdump -y 1 0x50

Yang sudah saya coba:

  • dump A0h secara manual dan bandingkan byte-nya dengan offset field SFF-8472, lambat dan gampang salah
  • tulis beberapa byte pakai CH341A: berhasil masuk, tapi nggak ada yang menghitung ulang checksum-nya buat saya, jadi modulnya jadi berantakan sampai saya tambal sendiri
  • modul QSFP+ saya biarkan saja, soalnya cage yang saya buat cuma muat SFP

Jadi tooling open source buat ini sebenarnya seperti apa: ada nggak yang paham memory layout-nya, memverifikasi byte checksum setelah ditulis, dan juga bisa jalanin slot QSFP+? Dan di titik mana rig rakitan sendiri ini berhenti cukup?

Comments 4

Untuk kerjaan SFP/SFP+ biasa, Pi saja sudah cukup. Modulnya cuma dua device I2C, persis seperti yang ditunjukkan output i2cdetect Anda di 0x50 dan 0x51, dan nggak ada keajaiban lain di luar itu. Yang menghemat Anda dari hitung byte manual adalah sfppi: dia menjalankan bus I2C Pi, men-decode field-nya buat Anda, dan mengecek CC_BASE dan CC_EXT serta menawarkan perbaikan setelah penulisan. Itu persis langkah yang nggak dilakukan CH341A buat Anda. CH341A bukannya nggak berguna, dia baca dan tulis dengan baik, cuma nggak tahu arti byte-nya, jadi semua checksum tetap jadi urusan Anda.

Untuk QSFP+, cage hasil solderan Anda nggak akan membantu. Desain yang jadi rujukan komunitas adalah Hubble, programmer open source dengan slot QSFP di sebelah slot SFP, jadi itu arahnya kalau mau utak-atik dua jenis modul itu. Ada juga build Reveltronics yang bare-bones, dipakai buat brute-force password penulisan pada modul yang menolak ditulis sama sekali. Saya sendiri belum pernah butuh yang itu, jadi anggap saja sebagai petunjuk dan coba dulu di hardware yang Anda rela kalau rusak.

2 SpaincoreguruES Show original (English) AI translation

Itu cocok dengan yang saya lihat di sini. Halaman kedua juga live, jadi kedua bagian memori bisa dibaca:

$ i2cdump -y 1 0x51

Saya akan pasang ulang kabel cage dengan benar, lalu coba jalur checksum di modul yang nggak saya pedulikan dulu, sebelum menyentuh apa pun yang ingin saya simpan. QSFP+ saya parkir dulu untuk sekarang, bikin cage kedua buat dua modul setahun susah dijustifikasi, jadi itu bakal tetap read-only sampai saya putuskan apakah Hubble sepadan dengan usahanya.

2 Netherlandsoptichub40NL Show original (English) AI translation

Menambahkan dari ujung lain rentang harga, karena nggak semua orang rakit sendiri: alat yang biasa dipakai sehari-hari itu SNR SFP Writer, seri SFPTotal Plus, dan berbagai device buatan sendiri berbasis board CH341, chip yang sama dengan yang sudah ada di meja Anda.

Yang penting diketahui sebelum masuk lebih dalam: nggak semua modul itu EEPROM biasa. Sebagian punya mikrokontroler sendiri yang meng-emulasikan memori A0/A2, bukan chip asli, dan Medick SFP-10G-BX dengan C8051F392 di dalamnya adalah contoh yang paling sering disebut. Modul semacam itu bisa menerapkan password penulisan atau vendor challenge, dan sebanyak apa pun bus-nya diutak-atik, dia nggak akan berubah jadi EEPROM biasa. Kasus paling menyebalkan yang sering diangkat orang adalah EEPROM interaktif HP/Aruba dengan key.

Satu catatan praktis buat cage Anda sendiri: pastikan pinout-nya benar atau Anda bakal kejar-kejaran sama hantu. TX_Disable itu pin 3, Mod_Abs pin 6, VeeR pin 9. Mod_Abs khususnya yang menentukan apakah sistem percaya ada modul terpasang sama sekali.

2 IndiagigopsIN Show original (English) AI translation

Dan sisi risikonya, karena ini jarang disebut sampai ada yang modulnya mati. Banyak modul minta password 4-byte sebelum mau menerima penulisan. Kebanyakan password itu beredar bebas di publik dan nggak ada utility universal, jadi ujung-ujungnya Anda punya setumpuk tool khusus vendor dan image yang diambil dari database firmware atau dari pabrikan. Salah sedikit saja dan modul yang harganya lebih mahal dari programmer-nya jadi brick.

Jadi sebelum menyentuh EEPROM sama sekali, buktikan dulu modulnya memang rusak: baca suhu DDM, voltage, bias current, dan daya TX/RX dari A0h/A2h, bersihkan latch, kontak, dan lensa, ganti sementara dengan modul yang sudah pasti bagus, dan load-test link-nya pakai iperf3. Separuh dari modul yang katanya perlu di-reflash sebenarnya cuma perlu dibersihkan.

Kalau lebih memilih bayar daripada solder, perlu tahu box komersial juga datang dengan string-nya sendiri. FS Box bisa recode dengan bagus, orang berhasil bikin modul FS SFP-GE-BX jalan di Intel X710 dengan autoselect lewat cara itu, tapi dia cuma memprogram modul FS saja, dan memasukkan modul non-FS bikin akun user terkunci sampai seminggu.

2 Egypttxeng18EG Show original (English) AI translation
Log in to comment. Log in