VS

1. 사양 비교

항목
CM4
CM5
폼팩터
55 × 40 mm, 2×100핀 커넥터
동일 (기계적 호환)
SoC
Broadcom BCM2711
4× Cortex-A72 @ 1.5 GHz
Broadcom BCM2712
4× Cortex-A76 @ 2.4 GHz
GPU
VideoCore VI
VideoCore VII
RAM
LPDDR4 1 / 2 / 4 / 8 GB
LPDDR4X 2 / 4 / 8 / 16 GB
eMMC
0(Lite) / 8 / 16 / 32 GB
0(Lite) / 16 / 32 / 64 GB
무선
일부 모델 Wi-Fi 5 + BT 5.0
일부 모델 Wi-Fi 5 + BT 5.0
USB
USB 2.0 ×1 (OTG 겸용)
USB 3.0 ×2, USB 2.0 ×2
PCIe
PCIe Gen 2 ×1
PCIe Gen 2 ×1
Ethernet
Gigabit Ethernet (RGMII)
Gigabit Ethernet (RGMII)
HDMI
2x HDMI (최대 4K@60Hz)
HDMI 2.0 ×2
DSI & CSI
1x 2-lane MIPI DSI, 1x 4-lane MIPI DSI
1x 2-lane MIPI CSI, 1x 4-lane MIPI CSI
2x 4-lane MIPI ports(콤보 포트)
GPIO 확장
28핀
28핀
전원 입력
5 V
5 V
I/O 전압
1.8 V 또는 3.3 V 선택
1.8 V 또는 3.3 V 선택 (점퍼)
출시 시기
2020년 10월
2024년 11월
생산 수명
최소 2031년 1월까지 지원
최소 2036년 1월까지 지원

 

2. I/O 구조 변화

  • USB 3.0 추가: CM5는 USB 3.0 ×2 지원, CM4의 CSI0/DSI0 일부 라인이 USB 3.0으로 변경됨
  • MIPI 인터페이스 통합: CAM/DISP0, CAM/DISP1 포트가 카메라·디스플레이 겸용 콤보 형태
  • I/O 전압 선택 가능: CM5는 GPIO_VREF를 1.8 V 또는 3.3 V로 설정 가능
  • M.2 확장: CM5 IO 보드에 M.2 M-Key 슬롯 추가
  • 전원/관리 핀 추가 기능: 전원 버튼, RTC 배터리, 팬 제어 신호 추가

 

3. CM4 → CM5 핀 변경 (주요 변화)

Pin
CM4 신호
CM5 신호
변경 내용
16
SYNC_IN
Fan_tacho
팬 속도 센서 입력
19
Ethernet_nLED1
Fan_PWM
팬 PWM 출력
76
Reserved
VBAT
RTC 배터리 입력
92
RUN_PG
PWR_Button
전원 버튼 입력
94
AnalogIP1
CC1
USB-C 전류 협상
96
AnalogIP0
CC2
USB-C 전류 협상
99
Global_EN
PMIC_ENABLE
PMIC 제어
100
nEXTRST
CAM_GPIO1
부팅 시 nRESET 에뮬
104
Reserved
PCIE_DET_nWAKE
PCIe 웨이크
106
Reserved
PCIE_PWR_EN
PCIe 전원 제어
111
VDAC_COMP
VBUS_EN
USB 3.0 전원 제어
128
CAM0_D0_N
USB3-0-RX_N
USB 3.0 RX−
130
CAM0_D0_P
USB3-0-RX_P
USB 3.0 RX+
134
CAM0_D1_N
USB3-0-DP
USB 2.0 D+
136
CAM0_D1_P
USB3-0-DM
USB 2.0 D−
140
CAM0_C_N
USB3-0-TX_N
USB 3.0 TX−
142
CAM0_C_P
USB3-0-TX_P
USB 3.0 TX+
157
DSI0_D0_N
USB3-1-RX_N
USB 3.0 RX−
159
DSI0_D0_P
USB3-1-RX_P
USB 3.0 RX+
163
DSI0_D1_N
USB3-1-DP
USB 2.0 D+
165
DSI0_D1_P
USB3-1-DM
USB 2.0 D−
169
DSI0_C_N
USB3-1-TX_N
USB 3.0 TX−
171
DSI0_C_P
USB3-1-TX_P
USB 3.0 TX+

 

4. 공식 IO 보드 기능 비교

항목
CM4 IO 보드
CM5 IO 보드
USB
USB 2.0 허브 기반 외부 2포트
USB 3.0 직결 2포트 + USB 2.0
PCIe
PCIe Gen2 ×1
PCIe Gen2 ×1 + M.2 M-Key
디스플레이
HDMI 2.0 ×2
HDMI 2.0 ×2
MIPI
CSI ×2, DSI ×2
콤보 MIPI ×2
네트워크
기가비트 Ethernet + PoE HAT 핀
동일
전원
5 V 입력
5 V 입력(USB-C PD 5 A 지원)
기타
없음
전원 버튼, 팬 커넥터, RTC 배터리

 

5. 설계 시 주의점

  • 기존 CM4용 보드에 CM5를 꽂으면 USB 3.0, 일부 MIPI 포트 동작 불가 가능성 있음
  • USB 3.0·PCIe·HDMI 차동 라인 설계 시 90 Ω 임피던스 매칭
  • GPIO_VREF 설정 필수(1.8 V 또는 3.3 V)
  • 전력 소모 증가 → FAN 추가 장착 등의 발열 대책 필요

 

 

Target
Board
Raspberry Pi CM4 + IO Board
Host
PC - Window
목표
CM4의 EEPROM 부트로더를 최신화하고 BOOT_ORDER를 수정하여 부팅 순서 설정

 

1. Raspberry Pi Compute Module 4(이하 CM4)의 EEPROM 부트로더 개요

- CM4에는 EEPROM이 내장되어 있으며, 이 EEPROM에는 부트로더(Bootloader)가 저장됨

- CM4는 EEPROM에 저장된 부트로더를 실행하여 운영체제를 로드

 

2. CM4의 부트 과정

CM4의 부팅 과정은 다음과 같음

(1). EEPROM에서 부트로더 실행

- CM4는 부팅 시 SPI EEPROM에서 부트로더를 로드하고 실행

- 이 부트로더는 Raspberry Pi 재단에서 제공하며, 펌웨어 업데이트를 통해 변경할 수 있음

 

(2). 부팅 소스 확인

 

(3). 부트로더는 설정된 부팅 순서(BOOT_ORDER)에 따라 가능한 부팅 장치를 검색

기본적인 부팅 순서는 다음과 같습니다:

- eMMC (또는 SD 카드)

- USB 장치 (USB Storage, USB Boot 등)

- Network Boot (PXE, TFTP)

- Fallback (재시도 및 복구 모드 진입)

 

(4). 운영체제 커널 로드 및 실행

- 선택된 부팅 장치에서 운영체제 커널을 로드하여 실행


1. CM4 EEPROM Bootloader 업데이트를 위한 준비물

 
HOST
CM4 또는 rpiboot 도구가 설치된 Linux PC
DEVICE
CM4
케이블
USB to USB-A 케이블 (CM4의 경우 USB-C to USB-A 케이블)

 

HOST $ sudo apt install git libusb-1.0-0-dev pkg-config build-essential
HOST $ git clone --recurse-submodules --shallow-submodules --depth=1 https://github.com/raspberrypi/usbboot
 

 

- bootloader 수정

HOST $ cd ~/usbboot/recovery
HOST $ nano boot.conf
 

 

- 아래와 같이 수정

[all]
BOOT_UART=0
WAKE_ON_GPIO=1
POWER_OFF_ON_HALT=0
 
# Try SD first (1), followed by, USB PCIe, NVMe PCIe, USB SoC XHCI then network
BOOT_ORDER=0xf25641
 
# Set to 0 to prevent bootloader updates from USB/Network boot
# For remote units EEPROM hardware write protection should be used.
ENABLE_SELF_UPDATE=1
 
HOST $ ./update-pieeprom.sh
 

 

STEP2 : DEVICE

- CM4를 USB 모드로 설정 : EMMC-DISABLE / nRPIBOOT(GPIO 40)를 GND에 연결. ROM을 usbboot 모드로 전환해야 함. 그렇지 않으면 SPI EEPROM 부트로더 이미지가 대신 로드됨

- CM4를 HOST의 USB 포트에 연결

- 전원을 공급

 

STEP3 : HOST

- recovery/pieeprom.bin부트로더 EEPROM에 쓰려면 다음 명령을 실행

- 다음 명령을 실행하여 업데이트된 pieeprom.bin이미지를 EEPROM에 씁니다.

HOST $ cd ~/usbboot

HOST $ sudo ./rpiboot -d recovery
 

완료되면 EEPROM_nWP는 low로 떨어짐

 

 

HOST 화면

 

DEVICE 화면 : rpiboot 실행 전 rpi-eeprom-config로 boot.conf 확인

 

DEVICE 화면 : rpiboot 실행 후 rpi-eeprom-config로 boot.conf 확인

 

BOOT_ORDER의 다양한 부팅 모드 설정 속성

Value
Mode
Description
0x0
SD CARD DETECT
Try SD then wait for card-detect to indicate that the card has changed - deprecated now that 0xf (RESTART) is available.
0x1
SD CARD
/eMMC
SD card (or eMMC on Compute Module 4).
0x2
NETWORK
Network boot
0x3
RPIBOOT
RPIBOOT
0x4
USB-MSD
USB mass storage boot
0x5
BCM-USB-MSD
USB 2.0 boot from USB Type C socket (CM4: USB type A socket on CM4IO board).
0x6
NVME
CM4 only: boot from an NVMe SSD connected to the PCIe interface.
0x7
HTTP
HTTP boot over ethernet.
0xe
STOP
Stop and display error pattern. A power cycle is required to exit this state.
0xf
RESTART
Restart from the first boot-mode in the BOOT_ORDER field i.e. loop

 

사용 예

0xf25641 Network → BCM-USB-MSD → NVME → USB → SD/eMMC
0xf14 USB → SD/eMMC → Network
0x1 SD/eMMC 우선
0xf21 Network → USB → SD/eMMC

 

 
Target
Board
Raspberry Pi CM4 + IO Board
Host
PC - Window
목표
Raspberry Pi CM4 - 크로스 컴파일 환경 구축(1)

 


Raspberry Pi CM4 구동

1. Raspberry Pi Imager 설치

2. Boot 프로그램 설치

3. rpiboot 실행

4. CM4에 Image Write

5. 구동 확인


Raspberry Pi CM4 구동

 

1. Raspberry Pi Imager 설치

 

2. Boot 프로그램 설치

https://github.com/raspberrypi/usbboot/raw/master/win32/rpiboot_setup.exe ​

 

3. rpiboot 실행

- 연결 : 전원(J19) + micro USB(J11) + disable eMMC Boot(J2) 점퍼 삽입

 

 

- 검색 → rpiboot 실행

- CM4 전원 ON

- CM4의 eMMC를 윈도우 드라이브로 인식 되는 것을 확인

 

4. CM4에 Image Write

- Raspberry Pi Imager 실행

- Trager Board 선택

- 운영 체제 선택

- 저장소 선택

- 다음

- CM4 전원 OFF

 

5. 구동 확인

- 연결 : 전원(J19) + micro USB(J11) 제거 + disable eMMC Boot(J2) 점퍼 제거 + USB 연결

- CM4 전원 ON


- 최신 OS에서는 otg_mode=1로 되어 있기 때문에 USB가 자동으로 연결 된다.

cm4-datasheet p.7

 

- USB가 연결이 안되는 이유는 micro USB를 뽑지 않아서이다.

- 구 버전 OS는 config.txt를 아래과 같이 수정해야 한다.

- 전원 reboot → rpiboot 실행하여 config.txt 수정

- 맨 아랫줄에 다음과 같이 추가

dtoverlay=dwc2,dr_mode=host
 

 

 

+ Recent posts