تولزبازار
Hyperion و Metis در Brooklands PMU؛ بررسی Cortex-M23، Telemetry Firmware و Secure Firmware
1405/05/11 6 دقیقه مطالعه

Hyperion و Metis در Brooklands PMU؛ بررسی Cortex-M23، Telemetry Firmware و Secure Firmware

مجموعه مقالات تخصصی معماری PMU در دستگاه‌های اپل

Hyperion و Metis در Brooklands PMU؛ بررسی Cortex-M23، Telemetry Firmware و Secure Firmware

در ششمین مقاله مجموعه معماری Brooklands PMU، دو زیرسامانه Arm Cortex-M23 یعنی Hyperion و Metis را بررسی می‌کنیم؛ از Firmware، حافظه و Clock گرفته تا Interrupt، DMA، PMU Bridge، PTMU، Debug، Security و ارتباط آن‌ها با Power FSM، Telemetry و سایر بلوک‌های Brooklands.

دامنه این مقاله

تمرکز اصلی مقاله روی Chapter 10 با عنوان Micro-controllers است. این فصل ابتدا معماری مشترک Hyperion و Metis را تعریف می‌کند و سپس Integration و Subsystem هرکدام را به‌صورت جداگانه بررسی می‌کند.

چرا یک PMIC به دو میکروکنترلر Cortex-M23 نیاز دارد؟

Brooklands تنها مجموعه‌ای از Buck، LDO و State Machine نیست. برخی قابلیت‌ها به پردازش Firmware، مدیریت Buffer، Scheduling، Telemetry پیشرفته و اجرای توالی‌های امن نیاز دارند.

به همین دلیل دو زیرسامانه قابل برنامه‌ریزی مستقل در Digital Core قرار گرفته‌اند؛ هر دو بر پایه Cortex-M23، اما با مأموریت‌ها و سطح دسترسی متفاوت.

Hyperion

زیرسامانه مرتبط با Telemetry Firmware، پردازش ADC، DMA، Measurement Scheduling، Self-Test و قابلیت‌های پردازشی پیشرفته.

Metis

زیرسامانه مرتبط با Secure Firmware و قابلیت‌های حساس مانند Firmware Power Sequencing و ارتباط مستقیم‌تر با Power FSM.

نکته مهم؛ Brooklands بدون M23 هم باید بتواند Bring-Up پایه را انجام دهد

معماری Brooklands طوری طراحی شده که قابلیت‌های ضروری برای Bring-Up اولیه و Platform Recovery به اجرای Firmware روی Hyperion یا Metis وابسته نباشند. برای نمونه، Button Sequenceها مستقل از M23ها کار می‌کنند.

بنابراین وجود Cortex-M23 به معنی جایگزین‌شدن Hardware State Machineها با Software نیست؛ Firmware روی یک معماری سخت‌افزاری مستقل و محافظت‌شده قرار گرفته است.

معماری کلی Hyperion و Metis در Brooklands PMU
Figure 10.1 — جایگاه Hyperion و Metis در معماری کلی Brooklands PMU

مقایسه Hyperion و Metis

هر دو از یک خانواده Processor استفاده می‌کنند، اما Configuration و Peripheralهای آن‌ها متفاوت است.

ویژگی Hyperion Metis
Processor Arm Cortex-M23 Arm Cortex-M23
نقش اصلی Telemetry Firmware Secure Firmware
Core Frequency 48 MHz 24 MHz
SRAM 64 kB 20 kB
Local OTP ندارد 16 kB
IRQ / Event 52 24
Hardware Divider دارد ندارد
DMA دارد ندارد
ETM Instruction Trace ندارد دارد
Trace Buffer ندارد 4 kB
SWD Multi-Drop پشتیبانی می‌شود پشتیبانی می‌شود
PMU Bridge دارد دارد
دیاگرام زیرسامانه Hyperion در Brooklands PMU
Figure 10.3 — ساختار داخلی Hyperion Subsystem و ارتباط بلوک‌های اصلی آن

Cortex-M23؛ هسته مشترک، معماری متفاوت

هر دو زیرسامانه از Cortex-M23 مبتنی بر ARMv8-M استفاده می‌کنند. با این حال همه قابلیت‌های Optional این Core در Brooklands فعال نشده‌اند.

TrustZone Extension: در Configuration فعلی Brooklands غیرفعال است.
MPU: پیاده‌سازی نشده است.
SysTick: پیاده‌سازی نشده است.
User / Privileged Modes: قابلیت Optional مربوطه فعال نیست.
MTB: Micro Trace Buffer استاندارد Cortex-M23 وجود ندارد.
SAU: Security Attribution Unit پیاده‌سازی نشده است.

Hyperion؛ موتور پردازشی Telemetry

Hyperion برای پردازش Featureهای پیشرفته ADC و Telemetry طراحی شده است. این Subsystem تنها یک CPU نیست؛ مجموعه‌ای از Peripheralها و Interfaceهای اختصاصی در اطراف M23 قرار دارد.

Cortex-M23
DMA
PMU Bridge
PTMU
Timers
Watchdog
ADC Interface
Profiling
Hyperion Subsystem Address Fencing در Brooklands PMU
Figure 10.4 — Hyperion Subsystem Address Fencing و محدودسازی دسترسی به نواحی حافظه

Clock در Hyperion؛ دو Domain با 48 و 24MHz

Hyperion از دو Clock Domain اصلی استفاده می‌کند. Clockهای اصلی سپس به Sub-Clockهایی مانند SCLK، HCLK و DCLK Gate می‌شوند.

48 MHz

Domain سریع Hyperion و Core Frequency اصلی.

24 MHz

Clock Domain کندتر برای بخش‌هایی از Subsystem.

Interrupt، Event و WIC

Cortex-M23 از NVIC برای مدیریت Interruptها استفاده می‌کند. Hyperion در Feature Summary دارای 52 IRQ/Event و Metis دارای 24 IRQ/Event است.

WIC یا Wake-up Interrupt Controller به Subsystem اجازه می‌دهد در حالت‌های Deep-Sleep قرار بگیرد و در صورت رخداد Event موردنیاز بیدار شود.

Event / IRQ → NVIC / WIC → Cortex-M23 → Firmware Handler

SRAM و Memory Power Management

هر دو Subsystem دارای SRAM داخلی هستند و برای کاهش Leakage دو سطح Power Saving حافظه تعریف شده است.

Deep-Sleep

Leakage کاهش پیدا می‌کند ولی محتوای SRAM حفظ می‌شود.

Shutdown

مصرف کاهش بیشتری پیدا می‌کند اما محتوای حافظه حفظ نمی‌شود.

Telemetry Firmware چگونه وارد Hyperion می‌شود؟

Hyperion در معماری Brooklands Firmware دائمی محلی در OTP خود ندارد. Firmware آن در جریان Boot توسط Secure Boot / iBoot از Host و از طریق مسیر SPMI در SRAM بارگذاری می‌شود.

iBoot / Secure Boot → SPMI → Hyperion SRAM → Bootloader → Telemetry Firmware
Upload Firmware به Hyperion مانع عملکرد سایر قابلیت‌های PMU مانند Secure Firmware یا DVC نمی‌شود.
Hyperion Operating Mode from RESET در Brooklands PMU
Figure 10.6 — Hyperion Subsystem Operating Mode from RESET و مسیر فعال‌شدن Firmware

چرا Hyperion برای Telemetry مناسب‌تر است؟

Peripheralهای Hyperion نشان می‌دهند طراحی آن برای پردازش داده، Measurement و Automation بهینه شده است.

Generic DMA: انتقال داده بدون درگیرکردن دائمی CPU.
Advanced ADC Functions: Scheduling و مدیریت Result Buffer.
Self-Test / Self-Trim: قابلیت‌های مرتبط با Calibration و Production Test.
Profiling Unit: مانیتور CPU Utilization و Performance.
Custom Instructions: عملیات پردازشی خاص برای Telemetry و محاسبات.
Fast Hardware Divider: Divider سخت‌افزاری 17-Cycle.

PTMU؛ پنجره‌ای میان Host و Firmware

Pointer Management Unit یا PTMU یک فضای Register مجازی ایجاد می‌کند تا Host بتواند به داده‌هایی که Firmware در SRAM مدیریت می‌کند دسترسی ساختاریافته داشته باشد.

Host Register View → PTMU → Dynamic SRAM Location → Firmware Data

در Hyperion این مفهوم برای داده‌هایی مانند Bufferهای Telemetry کاربرد دارد و در Metis نسخه Secure آن می‌تواند Interface مجازی Secure Firmware را برای Host ایجاد کند.

PMU Bridge؛ M23 چگونه Registerهای Brooklands را می‌بیند؟

هر دو M23 از PMU Bridge برخوردارند. این Bridge مسیر بین AHB داخلی 32 بیتی Subsystem و AHB اصلی 8 بیتی PMU را فراهم می‌کند.

Cortex-M23 / DMA / SWD → 32-bit AHB → PMU Bridge → 8-bit PMU AHB → PMU Registers
دسترسی از Bridge بدون محدودیت امنیتی نیست؛ Security Center و Lock/Gateها مشخص می‌کنند هر Subsystem به چه بخش‌هایی دسترسی داشته باشد.

Metis؛ اجرای Secure Firmware در قلب مدیریت State

Metis برای اجرای قابلیت‌های Mission-Critical طراحی شده و مسیرهای اختصاصی برای ارتباط Secure Firmware با Power Control، PFSM و سایر بلوک‌های حساس دارد.

Cortex-M23
Secure PTMU
PMU Bridge
PWRCTRL
OTP
Watchdog
ETM Trace
MCOM
Brooklands Digital Core Top Level Diagram و Metis Integration
Figure 10.8 — Digital Core Top Level Diagram و جایگاه Metis در معماری Brooklands

Clock در Metis؛ یک Domain با 24MHz

برخلاف Hyperion که دو Domain اصلی 48/24MHz دارد، Metis تنها از Clock Domain 24MHz استفاده می‌کند.

Metis Core = 24 MHz

Secure Firmware چگونه در Metis Boot می‌شود؟

۱. Power FSM وارد SEC_FW_BOOT می‌شود و Metis فعال می‌شود.
۲. Bootloader بررسی می‌کند که Firmware معتبر در OTP وجود دارد یا خیر.
۳. Firmware از OTP به SRAM محلی Metis Copy می‌شود.
۴. Integrity Image بررسی می‌شود و در صورت معتبر بودن، Secure Firmware Initialization آغاز می‌شود.
۵. پس از Initialization موفق، Secure Firmware می‌تواند اجازه ورود Power FSM به ACTIVE را صادر کند.
SEC_FW_BOOT → Metis Enable → OTP FW Copy → Integrity Check → FW INIT → FIRMWARE EXEC. → PMU_ACTIVE

اگر Secure Firmware در OTP وجود نداشته باشد چه می‌شود؟

در این حالت Metis می‌تواند خود را غیرفعال کند و Power FSM همچنان به ACTIVE برسد؛ SPMI نیز قابل استفاده باقی می‌ماند.

این رفتار دوباره نشان می‌دهد Hardware پایه PMU عمداً به اجرای Secure Firmware وابستگی مطلق ندارد.

Metis چگونه با Power FSM و Power Sequencer ارتباط دارد؟

Metis برخلاف Hyperion دارای Private AHB Interface به Power Control است. این مسیر برای Firmware Power Sequencing و کنترل Functionهای حساس استفاده می‌شود.

Secure Firmware → Private PWRCTRL Interface → Power FSM / Power Sequencer

TrustZone غیرفعال است؛ پس امنیت چگونه ایجاد می‌شود؟

جداسازی امنیتی Brooklands فقط به قابلیت TrustZone داخل Cortex-M23 متکی نیست. دو Subsystem مستقل، Security Center، Interface Lockها و Gateهای سخت‌افزاری برای محدودکردن Access استفاده می‌شوند.

Security-Center Lockable Interfaces
Security-Center Controlled Gates
Firmware Controlled Gates
SRAM Address Fencing
Bootloader Integrity Check
Watchdog

Debug؛ SWD Multi-Drop در هر دو Subsystem

Hyperion و Metis هر دو از Serial-Wire Debug با Multi-Drop پشتیبانی می‌کنند و می‌توان از طریق PMU Bridge به Registerهای PMU نیز دسترسی داشت.

SWD Master → Hyperion / Metis → PMU Bridge → Brooklands Registers

Metis علاوه بر Debug معمول، ETM Instruction Trace دارد که برای Firmware Code Trace و Code Coverage استفاده می‌شود.

ETM در Metis و Trace Buffer چهار کیلوبایتی

Metis از ETM برای Trace کردن اجرای Secure Firmware استفاده می‌کند. Buffer این Trace برابر 4kB است و از Bankهای Scratchpad SRAM استفاده می‌کند.

در صورت فعال‌بودن Trace، از Scratchpad ده کیلوبایتی مورد استفاده در این ساختار، تنها 6kB برای کاربردهای دیگر باقی می‌ماند.

Metis Trace System Diagram و ETM در Brooklands PMU
Figure 10.10 — ساختار Trace System و ETM در زیرسامانه Metis

Low-Power Modeهای M23

هر دو Subsystem چند سطح Sleep دارند تا Firmware Processor در زمان عدم نیاز مصرف غیرضروری ایجاد نکند.

SLEEP

HCLK خاموش می‌شود.

SLEEPDEEP

SCLK و HCLK خاموش می‌شوند.

SUPER-SLEEPDEEP

تمام Clockها خاموش می‌شوند و Main Oscillator نیز می‌تواند خاموش شود.

تفاوت فلسفه طراحی Hyperion و Metis

Hyperion = Data & Telemetry

ADC Scheduling

DMA

Telemetry Buffer

Self-Test / Trim

Profiling

Advanced Timers

Metis = Secure Power Control

Secure Firmware

Power FSM Interface

Power Sequencing

Secure PTMU

OTP Firmware

ETM Trace

Hyperion و Metis چگونه در معماری کل Brooklands قرار می‌گیرند؟

ADC / Telemetry → Hyperion ↔ PMU AHB ↔ Brooklands Digital Core ↔ Metis → Power FSM / Sequencer

این دو Subsystem الزاماً مستقیماً جای یکدیگر را تکمیل نمی‌کنند؛ هرکدام Domain کاری مستقل دارد و از طریق Fabric، Bridgeها، Eventها، PTMU، SGPIO و Memory Interface با بخش‌های دیگر PMU ارتباط برقرار می‌کند.

MCOM و Mailbox؛ ارتباط Firmware با Firmware

MCOM Mailboxها مسیری برای تبادل پیام میان Firmwareها و Subsystemهای M23 فراهم می‌کنند. Hyperion دو MCOM Mailbox و Metis یک Mailbox دارد.

Secure PTMU نیز می‌تواند برای Mailbox Communication میان PMUهای مجهز به M23 از طریق SGPIO استفاده شود.

از دید تعمیرات، Hyperion و Metis چه چیزی را تغییر می‌دهند؟

در نسل‌های پیچیده PMU، همه رفتارها را نمی‌توان فقط با اندازه‌گیری ولتاژ Coil و Output Rail تحلیل کرد. بخشی از رفتار PMU نتیجه Firmware، State، Security و ارتباط داخلی است.

۱. آیا مشکل مربوط به Power Stage است یا Digital Control؟
۲. آیا Secure Firmware Metis Boot شده است؟
۳. Power FSM به ACTIVE رسیده است؟
۴. Hyperion Firmware Upload کامل شده؟
۵. SPMI و PMU Bridge قابل دسترسی هستند؟
۶. IRQ یا Event موردنیاز Firmware صادر شده؟
۷. Security Lock یا Gate مانع Access شده؟
۸. Firmware Data در PTMU / SRAM وضعیت صحیح دارد؟
۹. Telemetry Failure است یا خود ADC Measurement مشکل دارد؟
۱۰. M23 در Sleep، Reset یا Firmware Execution قرار دارد؟

سناریو ۱؛ PMU به ACTIVE می‌رسد اما Telemetry کامل نیست

رسیدن Power FSM به ACTIVE الزاماً به معنی فعال‌بودن Telemetry Firmware Hyperion نیست. Upload و Enable شدن Hyperion فرآیند جداگانه‌ای دارد.

PMU ACTIVE ≠ Hyperion Telemetry Firmware Running

سناریو ۲؛ Secure Firmware Boot نمی‌شود

مسیر بررسی تنها SRAM نیست. OTP Image، Bootloader، Integrity Check، Security Configuration و Handshake با Power FSM همگی می‌توانند در Startup Metis نقش داشته باشند.

OTP Image → Bootloader → Hash / Integrity → SRAM → Secure FW INIT → PFSM ACTIVE

سناریو ۳؛ SWD کار می‌کند اما Firmware اجرا نمی‌شود

Debug Path و CPU Execution یک مفهوم نیستند. حتی در برخی حالت‌ها که Core در SUPER-SLEEPDEEP قرار دارد، Debug Mode می‌تواند دسترسی Register از طریق SWD را حفظ کند.

Hyperion و Metis دو CPU عمومی داخل PMIC نیستند

هرکدام برای یک Domain مشخص طراحی شده‌اند؛ Hyperion برای پردازش، Measurement و Telemetry، و Metis برای Secure Firmware و کنترل Mission-Critical توان. سخت‌افزار اصلی Brooklands نیز مستقل از آن‌ها باقی می‌ماند تا Bring-Up و Recovery سیستم به Firmware وابستگی مطلق نداشته باشد.

جمع‌بندی

Brooklands دو Subsystem مستقل Arm Cortex-M23 دارد که روی معماری AHB داخلی PMU به‌صورت Co-Processor Integration قرار گرفته‌اند.

Hyperion با Core فرکانس 48MHz، SRAM بیشتر، DMA، ADC Interface، Profiling و Peripheralهای پردازشی، عمدتاً زیرساخت Telemetry Firmware و پردازش Measurement را فراهم می‌کند.

Metis با Core فرکانس 24MHz، OTP محلی، Secure PTMU، Private Power-Control Interface و ETM Trace برای اجرای Secure Firmware و قابلیت‌های حساس مدیریت توان طراحی شده است.

هر دو Subsystem SWD Multi-Drop، PMU Bridge، Watchdog، WIC، SRAM Power Management و Interfaceهای Security-Controlled دارند.

مهم‌تر از همه، معماری Brooklands قابلیت‌های اساسی Bring-Up و Recovery را به اجرای M23 Firmware وابسته نمی‌کند؛ Firmware قابلیت‌های پیشرفته را روی یک پایه سخت‌افزاری مستقل اضافه می‌کند.

ادامه مجموعه

مقاله ۷: ADC و Telemetry در Brooklands PMU

در مقاله بعدی معماری ADC، GPADC، Fast Current Measurement، Telemetry Agentها، MUXها، اندازه‌گیری ولتاژ، جریان و دما، Buck Telemetry، Power Accumulatorها و مسیر انتقال داده‌های Telemetry به Host را بررسی می‌کنیم.

مرجع اصلی مقاله
Apple — Brooklands PMU Top Level Architecture Specification , Revision 2.1.0

دیدگاه‌ها (0)

برای ثبت دیدگاه لازم است

هنوز دیدگاهی برای این مقاله ثبت نشده است.