AMI Boot code
Jump to navigation
Jump to search
Overview
AMI(American Megatrends) BIOS 부트 코드와 POST(Power-On Self-Test) Progress/Error 코드 테이블입니다.
Summary
- 무엇인가? AMI BIOS 부팅 과정의 코드 상태표
- 왜 필요한가? 서버 부팅 문제 진단, POST 코드 해석
- 언제 사용하는가? 서버 부팅 실패 시 에러 코드 매핑, BIOS 업데이트 전후 테스트
---
Purpose
이 문서가 존재하는 이유
- Goal: AMI BIOS POST 코드 해석을 통한 서버 부팅 문제 진단 지원
- Scope: SEC, PEI, BDS, DXE, ACPI, RT, SMM 등 각เฟ이즈별 코드 정의
- Non-goals: BIOS 펌웨어 수정, OEM 커스텀 코드 해석
---
Key Concepts
| Concept | Description | Related |
|---|---|---|
| POST | Power-On Self-Test — 전원 공급 후 하드웨어自检 | BIOS |
| AMI BIOS | American Megatrends BIOS — 가장 널리 쓰이는 서버 BIOS | BIOS |
| SEC Phase | Start-End-Initial-CPU — CPU 초기화 첫 단계 | UEFI |
| PEI Phase | Pre-EFI Initialization — 메모리 이전 하드웨어 초기화 | UEFI |
| BDS Phase | Boot Device Selection — 부팅 장치 선택 | UEFI |
| DXE Phase | Driver Execution Environment — 드라이버 실행 환경 | UEFI |
| Progress Code | 0x00-0xFF — 부팅 진행 상황 표시 코드 | AMI Boot code |
| Error Code | 0xC0-0xFF — 부팅 실패 시 에러 코드 | AMI Boot code |
---
Architecture
UEFI 부팅 프로세스와 AMI POST 코드 흐름:
graph TD
A[전원 On] --> B[SEC Phase]
B --> C[PEI Phase]
C --> D[DXE Phase]
D --> E[BDS Phase]
E --> F[Boot Manager]
F --> G[OS Loader]
G --> H[OS Boot]
B -.-> B1[SEC Error: 0C-0F]
C -.-> C1[PEI Error: 10-FF]
D -.-> D1[DXE Error]
E -.-> E1[BDS Error]---
Workflow
POST 코드 디버깅 워크플로우:
- 서버 전원 On — POST 코드 표시 장치(LED/스피커/PCI 카드) 확인
- 코드 매핑 — 아래 테이블에서 코드 찾기
- フェ이즈 식별 — SEC/PEI/DXE/BDS 중 어느 단계에서 멈췄는지 확인
- 원인 분석 — 해당フェ이즈의 초기화 대상 확인 (CPU, 메모리, PCH 등)
- 조치 — 메모리 재장착, BIOS 리셋, CPU 재장착 등
- 재부팅 — 수정 후 재부팅하여 코드 진행 확인
| Stage | Input | Output |
|---|---|---|
| Power On | 전원 공급 | SEC Phase 시작 |
| CPU Init | SEC 코드 | PEI Phase 진입 |
| Memory Init | PEI 코드 | DXE Phase 진입 |
| Device Init | DXE 코드 | BDS Phase 진입 |
| Boot Select | BDS 코드 | OS Loader 실행 |
---
Detailed Explanation
SEC Phase (Start-End-Initial-CPU)
SEC Phase는 CPU가 최초로 실행하는 단계입니다. 마이크로코드 로딩과 초기 AP(Application Processor) 설정을 수행합니다.
| Code | Description |
|---|---|
| Reserved for future AMI SEC error codes | |
| Reserved for future AMI SEC error codes | |
| Microcode not found | |
| Microcode not loaded |
PEI Phase (Pre-EFI Initialization)
PEI Phase는 메모리 이전 초기화 단계입니다. CPU, System Agent, PCH, 메모리 등을 초기화합니다.
| Code | Description |
|---|---|
| Not used | |
| Power on. Reset type detection (soft/hard) | |
| AP initialization before microcode loading | |
| System Agent initialization before microcode loading | |
| PCH initialization before microcode loading | |
| OEM initialization before microcode loading | |
| Microcode loading | |
| AP initialization after microcode loading | |
| System Agent initialization after microcode loading | |
| PCH initialization after microcode loading | |
| OEM initialization after microcode loading | |
| Cache initialization | |
| PEI Core is started | |
| Pre-memory CPU initialization is started | |
| Pre-memory CPU initialization (CPU module specific) | |
| Pre-memory System Agent initialization is started | |
| Pre-memory PCH initialization is started | |
| Memory initialization. SPD data reading | |
| Memory initialization. Memory presence detection | |
| Memory initialization. Programming memory timing | |
| Memory initialization. Configuring memory | |
| Reserved for ASL | |
| Memory Installed | |
| CPU post-memory initialization is started | |
| CPU post-memory initialization. Cache initialization | |
| CPU post-memory initialization. AP initialization | |
| CPU post-memory initialization. BSP selection | |
| CPU post-memory initialization. SMM initialization |
BDS Phase (Boot Device Selection)
BDS Phase는 부팅 장치를 선택하고 OS 로더를 실행합니다.
ACPI Phase
ACPI (Advanced Configuration and Power Interface) 관련 코드:
| Code | Description |
|---|---|
| ACPI tables building | |
| ACPI NVDIMM init | |
| ACPI S3 enable |
SMM Phase (System Management Mode)
SMM은 전원 관리, 열 관리, 하드웨어 모니터링을 담당합니다.
RT Phase (Runtime)
OS가 로드된 후 런타임 단계.
---
Configuration
BIOS POST Code 표시 설정
POST Code Display:
- LED Display: 메인보드 8-segment LED
- PCI POST Card: PCI/PCIe 슬롯에 삽입
- Serial Port: COM 포트로 코드 출력
- UEFI Variable: PostCode 변수 저장
AMI Aptio 설정
BIOS Setup → Boot → POST Delay: 3-5초 권장
BIOS Setup → Advanced → CPU Configuration: Microcode Loading Enabled
BIOS Setup → Advanced → Memory Configuration: XMP/EXPO Profile
---
Examples
Example 1: 서버 부팅 실패 — 코드 0E
Input
POST Code: 0E
Description: Microcode not found
Phase: SEC
Output
원인: CPU 마이크로코드 파일 불일치
해결:
1. BIOS 펌웨어 최신 버전으로 업데이트
2. CPU와 호환되는 마이크로코드 확인
3. BIOS 리셋 (Clear CMOS)
Example 2: 메모리 초기화 실패 — 코드 2C
Input
POST Code: 2C
Description: Memory presence detection
Phase: PEI
Output
원인: 메모리 감지 실패 — 슬롯 문제 또는 메모리 불량
해결:
1. 메모리 재장착
2. 슬롯 변경
3. 메모리 불량 테스트 (memtest86)
Example 3: 정상 부팅 코드 흐름
01 → 02 → 06 → 07 → 10 → 11 → 2B → 2C → 2D → 2E → 31 → 32 → 33 → 34 → BDS
전원 On → AP init → Microcode load → PEI Core → CPU init → Memory → Boot
---
Best Practices
- POST 코드 카드 사용 — 실시간 부팅 진행 상황 모니터링
- BIOS 최신 버전 유지 — 새로운 코드 정의 및 버그 수정
- OEM 코드 문서화 — 1D-2A, 1E-20 등은 OEM별 커스텀 코드
- Clear CMOS — 부팅 실패 시 BIOS 설정 초기화
- 메모리 재장착 — 코드 2C/2D/2E에서 메모리 문제 의심 시
---
Limitations
- OEM 커스텀 코드 (1D-2A, 1E-20 등)는 제조사별로 상이
- 일부 코드는 Reserved로 정의되어 있어 상세 정보 부재
- 메인보드 제조사에 따라 코드 해석이 다를 수 있음
- AMI BIOS 버전(Aptio IV, V, V2 등)에 따라 코드 범위 상이
---
References
- https://www.congatec.com/fileadmin/user_upload/Documents/Others/AMI_Aptio_5.x_Status_Codes_PUB_Rev.2.0_20140410.pdf
- https://www.ami.com
---
Related Pages
---