728x90
반응형
2.2 System Controller
2.2.1 Introduction
System Controller는 i.MX 8와 i.MX 8X 제품군에서 제공되며, 하드웨어의 많은 기본(underlying) 기능에 대한 추상화를 제공하고 SC 펌웨어(SCFW)를 실행하는 Cortex-M 프로세서에서 실행된다. 이 개요는 다른 소프트웨어 컴포넌트에 노출되는 SCFW와 API 기능에 대해 설명한다.
System Controller 기능은 다음과 같다:
- System Intiialization and Boot(시스템 초기화와 부트) - SC 펌웨어는 SCU ROM(Read-only-memory)의 첫 번째 컨테이너에서 코드/데이터 이미지 로드를 완료한 직후 SCU에서 실행된다. 시스템의 여러 측면을 초기화하는 역할을 한다. 여기에는 추가 전원 및 클럭 구성과 리소스 격리 하드웨어 구성이 포함된다. 기본적으로 SC 펌웨어는 대부분의 리소스를 소유하도록 기본(primary) 부트 코어를 구성하고 부트 코어를 시작한다. 추가 구성은 부트 코드로 수행할 수 있다.
- System Controller Communication(시스템 컨트롤러 통신) - 시스템의 다른 소프트웨어 컴포넌트는 노출된 API 라이브러리를 통해 SC와 통신한다. 이 라이브러리는 기본(underlying) IPC(Inter-Processor Communication) 메커니즘을 통해 RPC(Remote Procedure Calls)를 수행하도록 구현되어 있다. IPC는 하드웨어 기반의 mailbox 시스템에 의해 용이하게 되어 있다. i.MX8용으로 제공되는 소프트웨어 컴포넌트(Linux, QNX, FreeRTOS, MCUXpresso SDK)에는 포팅된 클라이언트 API 이미 포함되어 있다. 다른 서드 파티는 API를 사용하기 전에 먼저 API를 자신의 환경에 포팅해야 한다. "porting kit release"에는 기존 SW에 대한 클라이언트 API 아카이브가 포함된다. 이것들은 클라이언트 API 포팅을 위한 레퍼런스로 사용할 수 있다. 구현해야 하는 모든 것은 메세지 단위(MU: messaging units)를 사용하여 SCFW와 통신하는 IPC 레이어이다.
- Power Management(전원 관리) - 전원 컨트롤, 바이어스 컨트롤, 클럭 컨트롤, 리셋 컨트롤 그리고 wake-up 이벤트 모니터링을 포함한 전원 관리의 모든 측면은 SC Power Management 서비스에서 그룹화되어 있다.
- Power Control - SC 펌웨어는 전원 컨트롤과 외부 전원 관리 디바이스의 중앙 집중식 관리를 담당한다. 바이어스 컨트롤뿐만 아니라 전원 도메인의 전원 상태와 전압을 관리한다. 또한 전원 상태 전환으로 인해 필요에 따라 주변 디바이스를 재설정한다. 이는 개별 리소스에 대한 전원 상태 요구 사항을 전달하여 API로 구현된다.
- Clock Control - SC 펌웨어는 클럭 컨트롤의 중앙 집중식 관리를 담당한다. 여기에는 발진기와 PLL 같은 클럭 소스와 클럭 분배기, 먹스와 게이트가 포함된다. 이는 개별 리소스에 대한 클럭 요구 사항을 전달하여 API로 구현된다.
- Reset Control - SC 펌웨어는 리셋 컨트롤을 담당한다. 여기에는 파티션 booting/rebooting, 리셋 이유 얻기 그리고 CPU starting/stopping가 포함된다.
- Resource Management(리소스 관리) - SC 펌웨어는 시스템 리소스에 대한 소유권과 액세스 권한을 관리한다. SC 펌웨어에서 지원하는 리소스 관리 서비스의 기능은 다음과 같다:
- SoC 주변 디바이스, 메모리 영역, 그리고 패드와 같은 시스템 리소스 관리
- 서로 다른 코어, TrustZone과 하이퍼바이저에서 실행되는 다양한 운영 체제를 포함하여, 서로 다른 실행 환경과 연결된 서로 다른 소유권 그룹으로 리소스를 분할할 수 있다.
- 리소스 파티션 내 메시징 유닛에서의 요청과 소유권을 연결한다.
- 다른 리소스처럼 관리되는 메모리 영역으로 메모리를 분할할 수 있다.
- 리소스에 대한 액세스 권한을 소유자가 구성할 수 있다.
- 하드웨어 강제 격리를 제공하도록 하드웨어 구성 컴포넌트를 구성한다.
- 버스 구조(fabric)에서 구동되는 보안/비보안 속성을 직접 컨트롤하도록 하드웨어 컴포넌트를 구성한다.
- 다른 시스템 컨트롤러 기능(예: 패드 다중화 기능에 대한 패드 소유권 정보)에 대한 소유권과 액세스 권한 정보를 제공한다.
- 리소스 보호는 두 가지 방식으로 제공되고 있다. 첫 번재, SCFW 자체는 특정 리소스에 영향을 주는 API 호출이 있을 때 리소스 액세스 권한을 확인한다. API 호출에 따라 호출자는 소유자, 소유자의 부모나 소유자의 조상이여야 할 수 있다. 두 번째, 액세스 컨트롤을 시행하는 데 사용할 수 있는 모든 하드웨어는 RM 상태를 기반으로 구성된다. 여기에는 XRDC2, XRDC나 RDC와 같은 IP 구성과 CAAM과 같은 IP 관리 페이지가 포함된다.
- Pad Configuration(패드 구성) - 패드 구성은 SC 펌웨어에 의해 관리된다. SC 펌웨어에서 지원하는 구성 기능은 다음과 같다:
- 다중화, 입력/출력 연결과 저전력 절연 모드 구성
- 드라이브 강도, 풀업/풀다운 등과 같은 기술별 패드 설정 구성
- 이중 전압 기능이 있는 패드 그룹에 대한 보정 구성
- Timers(타이머) - 타이머를 지향하는 많은 서비스가 SC Timer 서비스 내에서 그룹화된다. 여기에는 와치독, RTC와 시스템 카운터가 포함된다.
- Watchdog(와치독) - SC 펌웨어는 모든 실행 환경에 대해 "virtual(가상)" 와치독을 제공한다. 기능에는 와치독 타임아웃 업데이트, 와치독 시작/중지, 와치독 리프레시, 설정할 수 있는 최대 와치독 타임아웃과 같은 와치독 상태 반환, 와치독 타임아웃 간격과 남아 있는 와치독 타임아웃 간격등이 포함된다.
- Real-Time-Clock(RTC) - SC 펌웨어는 RTC에 대한 액세스를 제공한다. 기능에는 시간 설정, 시간 가져오기와 알람 설정이 포함된다.
- System Counter(시스템 카운터) - SC 펌웨어는 SYSCTR에 대한 액세스를 제공한다. 기능에는 절대 알람이나 상대, 주기적인 알람 설정이 포함된다. 읽기는 각 CPU에서 사용할 수 있는 로컬 하드웨어 인터페이스로 직접 수행된다.
- Interrupts(인터럽트) - System Controller는 비동기 알림 이벤트에 대하여 사용자에게 알리는 방법이 필요하다. 이것은 인터럽트 서비스로 수행된다. 이 서비스는 사용자에게 인터럽트를 활성화/비활성화하고 보류 중인 인터럽트의 상태를 읽을 수 있는 API를 제공한다. 상태를 읽으면 보류 상태가 자동으로 지워진다.
- Miscellaneous(기타) - 이전 i.MX 6와 7 디바이스에서는, 구성 가능한 하드웨어에 신호가 연결된 IOMUX GPR 레지스터를 사용하여 기타 기능을 컨트롤했다. 이 기능은 DSC GPR 신호로 대체된다. SC 펌웨어는 이러한 서브시스템 기능을 구성하기 위해 GPR 신호를 프로그래밍하는 역할을 한다. SC 펌웨어는 다양한 온도, 전압과 클럭 센서를 모티터링하는 역할도 한다.
- Controls - SC 펌웨어는 기타 컨트롤에 대한 액세스를 제공한다. 기능에는 기타 컨트롤 설정(쓰기)을 위한 소프트웨어 요청과 기타 컨트롤 가져오기(읽기)를 위한 소프트웨어 요청이 포함된다.
- Security - SC 펌웨어는 이미지 로딩과 인증을 포함한 여러 보안 기능에 대한 액세스를 제공한다.
- DMA - SC 펌웨어는 DMA 채널 그룹화와 우선 순위 기능에 대한 액세스를 제공한다.
- Temp - SC 펌웨어는 온도 센서에 대한 액세스를 제공한다.
SCFW를 사용하는 SoC Reference Manual에 설명된 일부 하드웨어는 이 추상화를 통해 다른 코어에 직접 액세스할 수 없다. 여기에는 다음이 포함된다:
- SCU 서브시스템의 모든 리소스(SCU M4, SCU LPUART, SCU LPI2C 등)
- SCU 서브시스템에서 MSI 링크로 액세스하는 모든 리소스(패드, DSC, XRDC2, eCSR 포함)
- OCRAM 컨트롤러, CAAM MP, eDMA MP 그리고 LPCG
- DB STC 그리고 LPCG, IMG GPR
- GIC/IRQSTR LPCG, IRQSTR.SCU 그리고 IRQSTR.CTI
- 보드에서 SCFW의 포트로 예약된 기타 리소스
각 릴리스와 함께 제공되는 SCFW로 알려진 System Controll 펌웨어는 연관된 i.MX 레퍼런스 보드와 함께 작동하고 새 보드에 맞게 사용자 정의할 수 있는 소스의 하위 집합을 제공하는 포팅 키트가 제공된다. 이 포팅 가이드는 nxp.com에서 사용할 수 있으며 포팅 가이드가 포함되어 있다.
728x90
반응형