CodingBox 문서

CMIS 하위 페이지 레지스터 맵

CMIS 모듈(QSFP-DD, OSFP, QSFP112, CMIS를 쓰는 SFP-DD 등)의 하위 128바이트는 항상 접근 가능하며 모듈 수준의 런타임 인터페이스를 담고 있습니다: 식별자와 CMIS 버전, 모듈 상태, 플래그와 마스크, 모듈 모니터, 전역 제어, CDB 상태, 미디어 종류, 처음 8개의 애플리케이션 디스크립터, 비밀번호 입력, 뱅크/페이지 선택자입니다. 이 페이지는 CMIS 5.x를 기준으로 바이트와 비트 단위까지 정리했으며 4.x와의 차이도 표기했습니다. 설명: CMIS; 상위 페이지: CMIS 상위 페이지 맵; 레인별 페이지: CMIS 레인 페이지 맵.

범례: rsvd = 예약됨 · custom = 벤더 고유 · 플래그는 래치되며 읽으면 지워집니다; 마스크 비트가 1이면 해당 플래그가 IntL에 반영되지 않습니다.

식별과 상태: 바이트 0–7

바이트필드비트/값
0IdentifierSFF-8024 Table 4-1: 18h QSFP-DD · 19h OSFP · 1Eh CMIS를 쓰는 QSFP+/28/56 · 1Fh CMIS를 쓰는 SFP-DD · 20h CMIS를 쓰는 SFP+(SFP112) · 21h OSFP-XD
1CMIS revision7–4 메이저 · 3–0 마이너: 30h = 3.0 · 40h = 4.0 · 41h = 4.1 · 50h = 5.0 · 51h–53h = 5.1–5.3
2Memory characteristics7 MemoryModel(1 = 플랫, 페이징 없음) · 6 SteppedConfigOnly(1 = 데이터 경로 구성을 레인별로 순차 적용해야 함) · 5–4 rsvd · 3–2 MciMaxSpeed: 00 = 400 kHz · 01 = 1 MHz · 1–0 rsvd
3Module state7–4 rsvd · 3–1 ModuleState: 001 ModuleLowPwr · 010 ModulePwrUp · 011 ModuleReady · 100 ModulePwrDn · 101 ModuleFault · 0 InterruptDeasserted(1 = 대기 중인 인터럽트 없음)
4뱅크 0 플래그 요약뱅크 0 레인 페이지에 있는 플래그 그룹마다 1비트(데이터 경로 상태 변경, Tx/Rx 플래그, 알람). 어느 뱅크를 확인해야 할지 알기 위해 읽습니다
5뱅크 1 플래그 요약레인 9–16에 대해 바이트 4와 동일
6뱅크 2 플래그 요약레인 17–24
7뱅크 3 플래그 요약레인 25–32

모듈 플래그: 바이트 8–11

바이트필드비트
8모듈 수준 플래그7–5 rsvd · 4 CdbCmdComplete2 · 3 CdbCmdComplete1 · 2 DataPathFirmwareFault · 1 ModuleFirmwareFault · 0 ModuleStateChanged
9온도/Vcc 플래그7 Vcc 저경고 · 6 Vcc 고경고 · 5 Vcc 저알람 · 4 Vcc 고알람 · 3 온도 저경고 · 2 온도 고경고 · 1 온도 저알람 · 0 온도 고알람
10Aux1/Aux2 플래그7 Aux2 저경고 · 6 Aux2 고경고 · 5 Aux2 저알람 · 4 Aux2 고알람 · 3 Aux1 저경고 · 2 Aux1 고경고 · 1 Aux1 저알람 · 0 Aux1 고알람
11Aux3/custom 플래그7–4 custom 모니터 저경고/고경고/저알람/고알람 · 3 Aux3 저경고 · 2 Aux3 고경고 · 1 Aux3 저알람 · 0 Aux3 고알람
12–13rsvd

모듈 모니터: 바이트 14–25

바이트모니터형식
14–15온도부호 있는 16비트, 1/256 °C
16–17Vcc부호 없는 16비트, 100 µV
18–19Aux1TEC 전류(부호 있음, 최댓값 대비 % ×100/32767) 또는 레이저 온도(1/256 °C). 종류는 페이지 01h에 광고됨
20–21Aux2레이저 온도 또는 TEC 전류
22–23Aux3레이저 온도 또는 추가 공급 전압(100 µV)
24–25Custom monitor벤더가 정의

전역 제어와 마스크: 바이트 26–36

바이트필드비트
26모듈 전역 제어CMIS 5.x: 7 rsvd · 6 LowPwrAllowRequestHW(1 = LPMode 핀이 저전력을 요청할 수 있음) · 5 SquelchMethodSelect(0 = OMA 스퀠치, 1 = Pave) · 4 LowPwrRequestSW(1 = 저전력 요청) · 3 SoftwareReset · 2–0 rsvd · 4.x: 6 = LowPwr(소프트웨어 저전력 요청) · 4 = ForceLowPwr · 5와 3은 위와 동일
27Module flag masks바이트 8에 대한 마스크(동일한 비트 위치)
28Temperature/Vcc masks바이트 9에 대한 마스크
29Aux1/Aux2 masks바이트 10에 대한 마스크
30Aux3/custom masks바이트 11에 대한 마스크
31–36rsvd

CDB 상태와 펌웨어: 바이트 37–41

바이트필드비트/값
37CdbStatus1(명령 블록 1)7 CdbIsBusy · 6 CdbHasFailed · 5–0 CdbCommandResult: 처리 중에는 01h 명령 캡처 중, 02h 확인 중, 03h 실행 중; 성공 시에는 01h 성공, 02h 응답 없음?; 실패 시에는 01h 알 수 없는 명령, 02h 파라미터 범위 초과, 03h 길이 오류, 04h 체크섬 오류, 05h 비밀번호 오류, 06h 비활성화 상태, 07h 중단? 등(CMIS Table 8-20 참고)
38CdbStatus2(명령 블록 2)위와 동일한 구조
39Module active firmware: 메이저현재 실행 중인 이미지 버전
40Module active firmware: 마이너
41ModuleFaultCause00h 장애 없음 · 01h TEC 폭주 · 02h 데이터 메모리 손상 · 03h 프로그램 메모리 손상 · 04h–1Fh rsvd · 20h–FFh custom
42–63rsvd
64–84rsvd/custom리비전마다 다름

미디어 종류와 애플리케이션: 바이트 85–117

바이트필드내용
85MediaType00h 정의되지 않음 · 01h MMF(SFF-8024 Table 4-6) · 02h SMF(4-7) · 03h 패시브 구리(4-8) · 04h 액티브 케이블(4-9) · 05h BASE-T(4-10) · 06h–3Fh rsvd · 40h–8Fh custom
86–89애플리케이션 디스크립터 1바이트 86 HostInterfaceID(SFF-8024 Table 4-5) · 87 MediaInterfaceID(바이트 85 기준 표) · 88 비트 7–4 HostLaneCount, 3–0 MediaLaneCount · 89 HostLaneAssignmentOptions: 비트 n = 1이면 레인 n+1이 이 애플리케이션의 데이터 경로에서 첫 레인이 될 수 있음
90–93애플리케이션 디스크립터 2위와 동일한 구조
94–97애플리케이션 디스크립터 3
98–101애플리케이션 디스크립터 4
102–105애플리케이션 디스크립터 5
106–109애플리케이션 디스크립터 6
110–113애플리케이션 디스크립터 7
114–117애플리케이션 디스크립터 8

디스크립터의 첫 바이트가 FFh이면 목록이 끝납니다. 디스크립터 9–15는 페이지 01h 바이트 223–250에 이어지며, 그 미디어 레인 할당 옵션은 페이지 01h 176–190에 있습니다. 예시: 12 1C 84 01 = 400GAUI-8 C2M ↔ 400GBASE-DR4, 호스트 레인 8개/미디어 레인 4개, 호스트 레인 1부터 시작; 0E 14 21 55 = 100GAUI-2 ↔ 100GBASE-DR, 레인 2/1개, 레인 1, 3, 5, 7 중 어디서든 시작 가능(4 × 100G 브레이크아웃).

비밀번호와 선택자: 바이트 118–127

바이트필드내용
118–121Password change entry벤더가 정의
122–125Password entry벤더가 정의. 참고: 쓰기 보호 유형
126BankSelect00h 뱅크 0(레인 1–8) · 01h 뱅크 1(9–16) · 02h 뱅크 2 · 03h 뱅크 3; 뱅크 구조인 페이지 10h–3Fh에 적용
127PageSelect00h 식별 정보 · 01h 광고 정보 · 02h 임계값 · 04h 레이저 지원 기능 · 10h 레인 제어 · 11h 레인 상태 · 12h 튜너블 제어 · 13h–14h 진단 · 20h–2Fh VDM · 9Fh CDB · A0h–AFh CDB EPL · 80h–8Fh… custom

QSFP-DD 하위 페이지를 실전에서 읽는 법

  1. 바이트 0 = 18h, 바이트 1 = 50h → QSFP-DD, CMIS 5.0; 바이트 2 비트 7 = 0 → 페이징 메모리.
  2. 바이트 3 = 03h → ModuleLowPwr(비트 3–1이 001, 인터럽트 미발생), 삽입 직후에는 정상; 07h → ModuleReady.
  3. 바이트 85 = 02h → SMF 미디어 표; 바이트 86–89 → 첫 번째 애플리케이션(예: DR4).
  4. 바이트 8–11 → 세워진 모듈 플래그가 있는지 확인. 이력을 지우려면 두 번 읽습니다.
  5. 바이트 14–17 → 온도와 Vcc.
  6. 5.x에서 저전력 모드를 벗어나려면: 바이트 26 비트 4(LowPwrRequestSW)를 지우고 LPMode 핀을 로우로 두거나 비트 6을 0으로 설정한 다음, 바이트 3이 07h가 될 때까지 기다립니다.

관련 맵


이 문서에서 부정확한 내용이나 오류를 발견하면 해당 부분을 선택하고 Ctrl+Enter를 눌러 해 주세요.