U-Boot 포팅 (2. 개발 환경 구축 / 타겟 보드 선택)
2025. 2. 26. 12:25ㆍ프로그래밍/시스템
타겟 보드 선택
U-Boot는 다양한 임베디드 보드와 SoC(System on Chip)를 지원합니다.
따라서, U-Boot를 포팅할 때 타겟 보드를 선택하고, 해당 보드의 설정을 확인하는 과정이 필요합니다.
이 과정에서는 U-Boot가 지원하는 보드를 확인하는 방법과 특정 보드의 디바이스 트리(DTS) 파일을 분석하는 방법을 설명합니다.
1. 지원되는 보드 확인 (boards.cfg 활용)
🔹 boards.cfg 파일이란?
- boards.cfg 파일은 U-Boot가 지원하는 보드 목록과 해당 설정 정보를 포함한 파일입니다.
- 이 파일을 확인하면 보드의 기본 설정(defconfig), CPU 아키텍처, SoC 정보를 알 수 있습니다.
- 경로:
u-boot/boards.cfg
🔹 지원되는 보드 목록 확인
📌 boards.cfg 파일을 직접 확인하려면:
cat boards.cfg | less
📌 특정 보드를 검색하려면 (grep 사용):
grep "rpi" boards.cfg # Raspberry Pi 관련 보드 검색
grep "imx" boards.cfg # i.MX 시리즈 보드 검색
📌 출력 예제 (Raspberry Pi 4)
rpi_arm64 aarch64 armv8 rpi - - rpi_4_defconfig
- rpi_arm64 → 보드 이름
- aarch64 → CPU 아키텍처
- armv8 → ARMv8 아키텍처 기반
- rpi_4_defconfig → 기본 설정 파일
2. 특정 보드용 디바이스 트리(DTS) 파일 분석
🔹 디바이스 트리(DTS)란?
- 디바이스 트리(DTS, Device Tree Source)는 하드웨어 정보를 커널과 U-Boot가 이해할 수 있도록 정의하는 파일입니다.
- 보드의 CPU, RAM, 저장 장치, 네트워크, GPIO, 클럭 등을 설정하는 역할을 합니다.
🔹 DTS 파일의 기본 경로
디바이스 트리 파일은 arch/<ARCH>/dts/ 경로에 위치합니다.
📌 ARM 64-bit (AArch64)
ls arch/arm/dts/
📌 RISC-V
ls arch/riscv/dts/
🔹 특정 보드의 DTS 파일 확인 방법
1) 특정 보드의 디바이스 트리 파일 찾기
find arch/arm/dts/ -name "*rpi*.dts"
예제 출력 (Raspberry Pi 관련 파일):
arch/arm/dts/bcm2711-rpi-4-b.dts
arch/arm/dts/bcm2837-rpi-3-b.dts
2) DTS 파일 내용 분석
📌 DTS 파일을 직접 열어 확인:
cat arch/arm/dts/bcm2711-rpi-4-b.dts
📌 DTS 파일에서 특정 키워드 검색:
grep -A5 "memory" arch/arm/dts/bcm2711-rpi-4-b.dts
예제 출력:
memory {
device_type = "memory";
reg = <0x0 0x3b000000>;
};
- device_type = "memory"; → 메모리 장치임을 나타냄
- reg = <0x0 0x3b000000>; → 메모리 시작 주소와 크기(0x3b000000 = 약 944MB)
🔹 DTS 파일을 수정해야 하는 경우
📌 GPIO 핀 추가:
&gpio {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio>;
};
📌 부팅 커맨드라인 추가:
chosen {
bootargs = "console=ttyS0,115200 root=/dev/mmcblk0p2 rw";
};
📌 클럭 설정:
&clk {
clock-frequency = <24000000>; // 24MHz 설정
};
📌 저장 후, dtc 명령어로 DTS → DTB 변환:
dtc -I dts -O dtb -o bcm2711-rpi-4-b.dtb bcm2711-rpi-4-b.dts
📌 정리
✅ U-Boot에서 지원하는 보드를 확인하려면 boards.cfg 파일을 활용
✅ 보드의 기본 설정 파일(defconfig)을 찾고 적용해야 함
✅ 특정 보드의 디바이스 트리(DTS) 파일을 분석하여 하드웨어 설정을 확인 가능
✅ DTS 파일에서 메모리, GPIO, 클럭, 부팅 옵션 등을 수정 가능
'프로그래밍 > 시스템' 카테고리의 다른 글
U-Boot 포팅 (3. U-Boot 빌드 및 실행 / 빌드 결과물 분석) (0) | 2025.02.26 |
---|---|
U-Boot 포팅 (3. U-Boot 빌드 및 실행 / 기본적인 U-Boot 빌드 과정) (0) | 2025.02.26 |
U-Boot 포팅 (2. 개발 환경 구축 / 크로스 컴파일 환경 설정) (0) | 2025.02.26 |
U-Boot 포팅 (2. 개발 환경 구축 / 필요한 도구 및 패키지 설치) (0) | 2025.02.26 |
U-Boot 포팅 (1. U-Boot 개요 및 기본 개념 / U-Boot의 구조) (0) | 2025.02.26 |