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
| 바이트 | 필드 | 비트/값 |
|---|
| 0 | Identifier | SFF-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 |
| 1 | CMIS revision | 7–4 메이저 · 3–0 마이너: 30h = 3.0 · 40h = 4.0 · 41h = 4.1 · 50h = 5.0 · 51h–53h = 5.1–5.3 |
| 2 | Memory characteristics | 7 MemoryModel(1 = 플랫, 페이징 없음) · 6 SteppedConfigOnly(1 = 데이터 경로 구성을 레인별로 순차 적용해야 함) · 5–4 rsvd · 3–2 MciMaxSpeed: 00 = 400 kHz · 01 = 1 MHz · 1–0 rsvd |
| 3 | Module state | 7–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 온도 고알람 |
| 10 | Aux1/Aux2 플래그 | 7 Aux2 저경고 · 6 Aux2 고경고 · 5 Aux2 저알람 · 4 Aux2 고알람 · 3 Aux1 저경고 · 2 Aux1 고경고 · 1 Aux1 저알람 · 0 Aux1 고알람 |
| 11 | Aux3/custom 플래그 | 7–4 custom 모니터 저경고/고경고/저알람/고알람 · 3 Aux3 저경고 · 2 Aux3 고경고 · 1 Aux3 저알람 · 0 Aux3 고알람 |
| 12–13 | rsvd | — |
모듈 모니터: 바이트 14–25
| 바이트 | 모니터 | 형식 |
|---|
| 14–15 | 온도 | 부호 있는 16비트, 1/256 °C |
| 16–17 | Vcc | 부호 없는 16비트, 100 µV |
| 18–19 | Aux1 | TEC 전류(부호 있음, 최댓값 대비 % ×100/32767) 또는 레이저 온도(1/256 °C). 종류는 페이지 01h에 광고됨 |
| 20–21 | Aux2 | 레이저 온도 또는 TEC 전류 |
| 22–23 | Aux3 | 레이저 온도 또는 추가 공급 전압(100 µV) |
| 24–25 | Custom 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은 위와 동일 |
| 27 | Module flag masks | 바이트 8에 대한 마스크(동일한 비트 위치) |
| 28 | Temperature/Vcc masks | 바이트 9에 대한 마스크 |
| 29 | Aux1/Aux2 masks | 바이트 10에 대한 마스크 |
| 30 | Aux3/custom masks | 바이트 11에 대한 마스크 |
| 31–36 | rsvd | — |
CDB 상태와 펌웨어: 바이트 37–41
| 바이트 | 필드 | 비트/값 |
|---|
| 37 | CdbStatus1(명령 블록 1) | 7 CdbIsBusy · 6 CdbHasFailed · 5–0 CdbCommandResult: 처리 중에는 01h 명령 캡처 중, 02h 확인 중, 03h 실행 중; 성공 시에는 01h 성공, 02h 응답 없음?; 실패 시에는 01h 알 수 없는 명령, 02h 파라미터 범위 초과, 03h 길이 오류, 04h 체크섬 오류, 05h 비밀번호 오류, 06h 비활성화 상태, 07h 중단? 등(CMIS Table 8-20 참고) |
| 38 | CdbStatus2(명령 블록 2) | 위와 동일한 구조 |
| 39 | Module active firmware: 메이저 | 현재 실행 중인 이미지 버전 |
| 40 | Module active firmware: 마이너 | — |
| 41 | ModuleFaultCause | 00h 장애 없음 · 01h TEC 폭주 · 02h 데이터 메모리 손상 · 03h 프로그램 메모리 손상 · 04h–1Fh rsvd · 20h–FFh custom |
| 42–63 | rsvd | — |
| 64–84 | rsvd/custom | 리비전마다 다름 |
미디어 종류와 애플리케이션: 바이트 85–117
| 바이트 | 필드 | 내용 |
|---|
| 85 | MediaType | 00h 정의되지 않음 · 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–121 | Password change entry | 벤더가 정의 |
| 122–125 | Password entry | 벤더가 정의. 참고: 쓰기 보호 유형 |
| 126 | BankSelect | 00h 뱅크 0(레인 1–8) · 01h 뱅크 1(9–16) · 02h 뱅크 2 · 03h 뱅크 3; 뱅크 구조인 페이지 10h–3Fh에 적용 |
| 127 | PageSelect | 00h 식별 정보 · 01h 광고 정보 · 02h 임계값 · 04h 레이저 지원 기능 · 10h 레인 제어 · 11h 레인 상태 · 12h 튜너블 제어 · 13h–14h 진단 · 20h–2Fh VDM · 9Fh CDB · A0h–AFh CDB EPL · 80h–8Fh… custom |
QSFP-DD 하위 페이지를 실전에서 읽는 법
- 바이트 0 = 18h, 바이트 1 = 50h → QSFP-DD, CMIS 5.0; 바이트 2 비트 7 = 0 → 페이징 메모리.
- 바이트 3 = 03h → ModuleLowPwr(비트 3–1이 001, 인터럽트 미발생), 삽입 직후에는 정상; 07h → ModuleReady.
- 바이트 85 = 02h → SMF 미디어 표; 바이트 86–89 → 첫 번째 애플리케이션(예: DR4).
- 바이트 8–11 → 세워진 모듈 플래그가 있는지 확인. 이력을 지우려면 두 번 읽습니다.
- 바이트 14–17 → 온도와 Vcc.
- 5.x에서 저전력 모드를 벗어나려면: 바이트 26 비트 4(LowPwrRequestSW)를 지우고 LPMode 핀을 로우로 두거나 비트 6을 0으로 설정한 다음, 바이트 3이 07h가 될 때까지 기다립니다.
관련 맵