CodingBox Q&A Ask question

QSFP28 और QSFP-DD coding: SFF-8472 A0h/A2h छोड़ने के बाद ID block कहां रहता है

Asked Active Viewed 74 AI translation from English
4

मैं integrators के लिए modules की छोटी batches recode करता हूं, और अब तक मेरे bench पर सब कुछ SFP-shaped रहा है: A0h पर 256 bytes पढ़ो जिसमें पहले आधे में serial ID हो, diagnostics और thresholds के लिए A2h पढ़ो, identification block लिखो, खत्म। अब एक customer 100G और 400G parts लेकर आया है और मेरा rig साफ तौर पर इसके लिए नाकाफी है।

  • recode करने वाले modules: QSFP28 की एक tray, कुछ QSFP-DD और एक OSFP sample
  • current programmer: plain I2C, A0h और A2h पढ़ता-लिखता है, कोई page select बिल्कुल नहीं
  • दूर वाले hosts port light करने से पहले vendor name, part number और serial check करते हैं

memory कैसे laid out है इस पर मेरे working notes, जो असल में मैं check करवाना चाहता हूं:

SFP/SFP+/SFP28 (SFF-8472): A0h 256B, serial ID in first 128B; A2h 256B diagnostics + thresholds, optional 128B pages
QSFP+/QSFP28 (SFF-8636): single A0h, 128B pages selected by byte 7Fh, page 00h mandatory
XFP (INF-8077i): byte 7Fh picks the active table, with serial ID in table 01h and user EEPROM in 02h
OSFP/QSFP-DD/SFP-DD (CMIS 5.x): lower 128B fixed, upper memory by bank and page via 7Eh and 7Fh

जो try किया:

  • अपनी SFP profile से एक QSFP28 dump किया, जो मुझे निचला आधा भाग और जो भी page उस वक्त selected था वो देता है
  • यह देखने के लिए कि कौन से bytes खुद-ब-खुद बदलते हैं, एक ही module के दो dumps एक के बाद एक लिए

क्या यह map सही है, और memory paged और banked हो जाने के बाद vendor coding के लिए मुझे असल में कौन सी fields लिखनी होती हैं?

Comments 5

map सार में सही है। आपके rig में जो कमी है वो यह कि SFF-8636 पर सिर्फ एक ही address है और ऊपर के 128 bytes एक window हैं: byte 7Fh में page number लिखो, फिर ऊपरी आधा पढ़ो तो वही page मिलता है। Page 00h mandatory है और उसी में identification block रहता है, तो coding के लिए शायद ही कभी कहीं और जाना पड़े। CMIS इसके ऊपर एक bank जोड़ता है - 7Eh bank चुनता है, 7Fh page, और निचले 128 bytes fixed रहते हैं और हमेशा readable। page select के बिना आपका tool आपको वही page थमाता रहता है जिस पर module पार्क था, जो ठीक वही behaviour है जो आपने describe किया।

vendor coding के लिए जो fields मायने रखती हैं वो हर जगह एक जैसी हैं: vendor name, part number, revision, serial, OUI और checksums। एक checksum गलत करो और एक नखरे वाला host module बाहर फेंक देता है भले ही hex dump में हर string बिल्कुल सही दिखे। एक और चीज़ के लिए तैयार रहना: कुछ modules vendor functions को manufacturer और host passwords के पीछे protect करते हैं जबकि plain reads खुले रहते हैं, तो आप खुशी-खुशी ऐसा part dump कर सकते हो जिसे लिख नहीं सकते।

4 KazakhstanrackhubKZ Show original (English) AI translation

पहली कोशिश में checksums ने ही मुझे काटा - strings एक known-good module से byte for byte match करते थे और host ने फिर भी part मना कर दिया। यह जानना अच्छा है कि identification block के लिए page 00h काफी है, इससे काम का scope छोटा रहता है।

तो ईमानदार summary यह है कि मेरा programmer यह बिल्कुल कर ही नहीं सकता, क्योंकि read से पहले byte 7Fh लिखने का इसके पास कोई तरीका नहीं। एक order के लिए home-made rig पर page select जोड़ने की बजाय मैं एक board खरीदना पसंद करूंगा। क्या market में कुछ ऐसा है जो CMIS banks को ठीक से handle करे, या यह ज़्यादा datasheet वाली feature है?

2 ChinasfpnodeCN Show original (English) AI translation

commercial boards यह advertise करते ही हैं - SFPTotal Plus X, Reveltronics gear (REVELPROG-IS), EDGE programmers और Flexoptix, सबकी feature list में QSFP-DD और OSFP हैं, और साथ में एक vendor code database भी देते हैं। SFPTotal 25,000 से ज़्यादा codes का दावा करता है, Cisco, Huawei और HPE समेत।

इसमें से कितना आपके bench पर मौजूद खास parts से मेल खाता है यह अलग सवाल है, और इसके लिए मेरी बात पर भी भरोसा मत करो। अगर हो सके, purchase पक्का करने से पहले customer का QSFP-DD sample board के सामने लेकर देखो। datasheet पर किसी form factor का support उस खास module के support जैसा नहीं है जो आपके हाथ में है, और banked parts में ही यह gap दिखता है।

3 South Koreawaverunner63KR Show original (English) AI translation

तुलना के लिए, plain SFP वाला काम आज भी उतना ही crude है जितना हमेशा से था: 256-byte dump में से असल में सिर्फ पहले 128 bytes मायने रखते हैं, बाकी manufacturer reserved है, और लोग सालों से generic CWDM parts पर GLC-LX या GLC-BX-D/GLC-BX-U images लिखकर उन्हें Catalyst 3560, HP J8692A या EX4200-24F से accept करवाते आ रहे हैं। इसके लिए home-made programmer schematics हाथों-हाथ घूमते थे, serp-0.3 वो है जो मैंने बनाया था, और एक Finisar FCMJ-8521-3, एक HP J4858C या J4859C या एक D-Link DEM-310GT के dumps आम reference points थे।

अलग तरह की चीज़, पर जानने लायक अगर आपके bench पर GPON sticks आ जाएं: वहां आप बाहर से बिल्कुल code नहीं करते। एक FS GPON-ONU-34-20BI पर, जो Nokia G-010S-A का रिश्तेदार है, आपको stick पर ही एक shell मिलता है - fibre लगे होने पर यह 192.168.1.10 पर ONTUSER के तौर पर जवाब देता है - uci से serial और MAC set करो, और अंदर से sfp_i2c के साथ EEPROM की vendor strings दोबारा लिखो।

2 Türkiyelinknerd83TR Show original (English) AI translation

QDD और OSFP में CMIS structure होता है और Page 0 में सिर्फ एक ही checksum byte होता है।

0 SingaporeparallaxSG Show original (English) AI translation
Log in to comment. Log in