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 Initialization and Boot (시스템 초기화와 부팅) - SC 펌웨어는 SCU 읽기 전용 메모리(ROM : Read-only memory)에서 첫 번째 컨테이너로 코드/데이터 이미지 로드를 완료한 직후 SCU에서 실행된다. 시스템의 여러 측면을 초기화하는 역할을 한다. 여기에는 추가적으로 전원과 clock 구성, 리소스 격리(isolation) 하드웨어 구성이 포함된다. 기본적으로 SC 펌웨어는 대부분의 리소스를 소유하도록 primary boot core를 구성하여, boot core를 실행한다. 추가 구성은 boot code로 수행할 수 있다.
- System Controller Communication (시스템 컨트롤러 통신) - 시스템에서 다른 소프트웨어 컴포넌트는 노출된 API 라이브러리를 통해서 SC와 통신한다. 이 라이브러리는 기본(underlying) IPC(Inter-Processor Communication) 메커니즘으로 RPC(Remote Procedure Call)를 만들려고 구현된다. IPC는 하드웨어 기반 mailbox 시스템에서 용이하다. i.MX 8용으로 제공되는 소프트웨어 컴포넌트(Linux, QNX, FreeRTOS, MCUXpresso SDK)는 이미 클라이언트 API 포트가 포함되어 있다. 다른 3rd party는 API를 사용하기 전에 API를 자신의 환경에 먼저 포팅해야 한다. 포팅 킷 릴리즈에는 기존 SW용 클라이언트 API 아카이브가 포함된다. 클라이언트 API 포팅을 위한 참조로 사용할 수 있다. 구현해야 하는 모든 것은 메세징 단위(MU : messaging unit)를 사용하여 SCFW와 통신할 IPC 레이어이다.
- Power Management (전원 관리) - 전원 제어, 바이어스 제어, clock 제어, reset 제어, wake-up 이벤트 모니터링을 포함한 전원 관리의 모든 것을 SC Power Management 서비스에서 그룹화된다.
- Power Control (전원 제어) - 전원 제어와 외부 전원 관리 디바이스의 중앙 집중식 관리를 SC 펌웨어가 담당한다. 바이어스 제어와 같은 전력 영역(domain)의 전력 상태와 전압을 관리한다. 또한 전원 상태 변화로 인해 필요에 따라 주변 디바이스를 재설정한다. 이는 개별 리소스에 대한 필요한 전원 상태를 통신에 의해 API에서 구현된다.
- Clock Control (clock 제어) - clock 제어의 중앙 집중식 관리를 SC 펌웨어가 담당한다. 여기에는 oscillators와 clock 분배기, mux, gate와 같은 PLL이 포함된다. 이는 개별 리소스에 대해 필요한 clock을 통신에 의해 API에서 구현된다.
- Reset Control (reset 제어) - SC 펌웨어는 reset 제어를 담장한다. 여기에는 파티션 booting/rebooting, reset 이유 획득, CPU starting/stopping이 포함된다.
- Resource Management - 시스템 리소스에 대한 소유권과 액세스 권한을 SC 펌웨어가 관리한다. SC 펌웨어에서 지원하는 리소스 관리 서비스 기능은 다음과 같다 :
- SoC 주변 디바이스, 메모리 영역, 패드와 같은 시스템 리소스 관리
- 서로 다른 core, TrustZone, hypervisor에서 실행되는 여러 운영 체제를 포함하는 서로 다른 실행 환경과 연결된 서로 다른 소유권 그룹으로 리소스를 분할
- 리소스 파티션 내 messaging unit의 요청과 소유권을 연결
- 메모리를 다른 리소스처럼 관리되는 메모리 영역으로 분리
- 소유자가 리소스에 대한 접근 권한을 구성
- 강제 하드웨어 격리를 제공하여 하드웨어 컴포넌트 구성
- 버스 구조(bus fabric)에서 동작하는 secure/nonsecure 속성을 직접 제어하도록 하드웨어 컴포넌트 구성
- 다른 시스템 컨트롤러 기능에 대한 소유권과 접근 권한 정보 제공(예 : 패드 mux 기능에 대한 패드 소유권 정보)
- 리소스 보호는 두 가지 방법으로 제공된다. 첫 번째, SCFW 자체는 특정 리소스에 영향을 주는 API 호출이 있을 때 리소스 접근 권한을 확인한다. API 호출에 따라 호출자는 소유자, 소유자의 parent나 소유자의 ancestor이여야 할 수 있다. 두 번째, 접근 제어를 시행하는 데 사용할 수 있는 모든 하드웨어는 RM 상태를 기반으로 구성된다. 여기에는 CAAM과 같은 IP 관리 페이지와 마찬가지로 XRDC2, XRDC나 RDC와 같은 IP 구성이 포함된다.
- Pad Configuration - 패드 구성은 SC 펌웨어에서 관리된다. SC 펌웨어에서 지원되는 패드 구성 기능은 다음과 같다 :
- mux, 입/출력 연결, low-power isolation 모드를 구성.
- 드라이브 강도, pullup/pulldown 등과 같은 technology-specific 패드 설정 구성.
- 이중 전압 기능(dual voltage capability)이 있는 패드 그룹에 대한 보상(compensation) 구성.
- Timers - 많은 타이머 지향 서비스가 SC Timer 서비스에서 그룹화된다. 여기에는 watchdog, RTC, 시스템 카운터가 포함된다.
- Watchdog - SC 펌웨어는 모든 실행 환경에 "virtual" watchdog를 제공한다. 기능에는 watchdog timeout 업데이트, watchdog 시작/정지, watchdog 리프레시, 설정할 수 있는 최대 watchdog timeout과 같은 watchdog 상태 반환, watchdog timeout 인터벌, 남은 watchdog timeout 인터벌 등이 있다.
- Real-Time-Clock - SC 펌웨어는 RTC에 대한 액세스를 제공한다. 기능에는 시간 설정, 시간 획득, 알람 설정이 포함된다.
- System Counter - SC 펌웨어는 SYSCTR에 대한 액세스를 제공한다. 기능에는 절대적인 알람이나 상대적, 주기적인 알람 설정이 포함된다. 읽기는 각 CPU에서 사용할 수 있는 로컬 하드웨어 인터페이스를 통해 직접 수행된다.
- Interrupts - System Controller는 비동기 알람 이벤트를 사용자에게 알릴 방법이 필요하다. 이는 인터럽트 서비스를 통해 수행된다. 이 서비스는 사용자에게 인터럽트를 활성화/비활성화하고 보류 중인 인터럽트의 상태를 읽을 수 있는 API를 제공한다. 상태를 읽으면 보류 상태가 자동으로 지워진다.
- Miscellaneous - 이전 i.MX 6과 i.MX 7 디바이스에서는 구성 가능한 하드웨어에 연결된 신호와 함께 IOMUX GPR 레지스터를 사용하여 miscellaneous 기능을 제어했다. 이 기능은 DSC GPR 신호로 대체된다. SC 펌웨어는 이러한 서브 시스템 기능을 구성하기 위해 GPR 신호를 프로그래밍하는 역할을 한다. SC 펌웨어는 다양한 온도, 전압, clock 센서를 감시하는 역할도 한다.
- Controls - SC 펌웨어는 miscellaneous 제어에 대한 액세스를 제공한다. miscellaneous 제어를 설정(쓰기)하기 위한 소프트웨어 요청과 miscellaneous 제어를 가져오기(읽기)하기 위한 소프트웨어 요청이 기능이 포함된다.
- Security - SC 펌웨어는 이미지 로딩과 인증을 포함한 여러 보안 기능에 대한 액세스를 제공한다.
- DMA - SC 펌웨어는 DMA 채널 그룹화와 우선 순위 기능에 대한 액세스를 제공한다.
- Temp - SC 펌웨어는 온도 센서에 대한 액세스를 제공한다.
이런 추상화로 SoC Reference Manual에서 설명된 SCFW에서 사용하는 일부 하드웨어는 다른 코어에 직접 액세스할 수 없다. 여기에는 다음이 포함된다 :
- SCU 서브 시스템의 모든 리소스 (SCU M4, SCU LPUART, SCU LPI2C 등).
- SCU 서브 시스템에서 MSI 링크를 통해 액세스되는 모든 리소스 (pad, DSC, XRDC2, eCSR 포함).
- OCRAM 컨트롤러, CAAM MP, eDMA MP, LPCG
- DB STC와 LPCG, IMG GPR
- GIC/IRQSTR LPCG, IRQSTR.SCU와 IRQSTR.CTI
- 보드에서 SCFW 포트에 의해 예약된 기타 리소스
각 릴리즈와 함께 제공되는 SCFW로 알려진 System Controller 펌웨어는 연관된 i.MX 레퍼런스 보드와 함께 작동하고 새 보드에 맞게 사용자 정의될 수 있는 소스의 하위 집합(subset)을 제공하는 포팅 키트(porting kit)가 제공된다. 이 포팅 키트(porting kit)는 nxp.com에서 사용가능 하며 포팅 가이드가 포함되어 있다.
728x90
반응형
'NXP i.MX SoC Family > i.MX Linux Reference Manual' 카테고리의 다른 글
i.MX Linux Reference Manual - System - Anatop Regulator Driver (0) | 2022.06.10 |
---|---|
i.MX Linux Reference Manual - System - Boot Image (0) | 2022.06.10 |
i.MX Linux Reference Manual - System - Machine-Specific Layer (MSL) (0) | 2022.05.26 |
i.MX Linux Reference Manual - System (0) | 2022.05.25 |
i.MX Linux Reference Manual - Video - JPEG Encoder and Decoder (0) | 2022.05.25 |