Sdílet prostřednictvím


Objekty oboru názvů správy zařízení

Specifikace ACPI 5.0 definuje několik typů objektů oboru názvů, které lze použít ke správě zařízení. Například identifikační objekty zařízení obsahují identifikační informace pro zařízení, která se připojují k sběrnicím, jako je I2C, které nepodporují detekci hardwaru podřízených zařízení. Jiné typy objektů oboru názvů mohou určovat systémové prostředky, popisovat závislosti zařízení a indikovat, která zařízení je možné zakázat.

Identifikace zařízení ve Windows

Systém Windows Plug and Play vyhledá a načte ovladače zařízení na základě identifikátoru zařízení poskytnutého enumerátorem zařízení. Enumerátory jsou ovladače sběrnice, které dokážou extrahovat identifikační údaje ze zařízení. Některé sběrnice (například PCI, SD a USB) mají hardwarově definované mechanismy pro tuto extrakci. Pro sběrnice, které nemají identifikační objekty (například sběrnici procesoru nebo jednoduchou periferní sběrnici), definuje ACPI identifikační objekty v oboru názvů.

Ovladač ACPI systému Windows, Acpi.sys, sestaví hodnoty nalezené v těchto objektech do různých řetězců identifikátorů zařízení, které mohou identifikovat zařízení konkrétně, nebo obecně, v závislosti na potřebách ovladače. Mezi řetězcové vzory vytvořené k identifikaci zařízení s výčtem ACPI patří:

ACPI\VEN_vvv[v]&DEV_dddd&SUBSYS_sss[s]nnnn&REV_rrrr
ACPI\VEN_vvv[v]&DEV_dddd&SUBSYS_sss[s]nnnn
ACPI\VEN_vvv[v]&DEV_dddd&REV_rrrr
ACPI\VEN_vvv[v]&DEV_dddd
ACPI\vvv[v]dddd

Identifikátory zařízení, které systém Windows pro vaše zařízení vytvoří, můžete zobrazit tak, že otevřete Správce zařízení a zkontrolujete vlastnosti ID hardwaru a kompatibilních ID výčtu zařízení. Každý z těchto řetězců je v souboru INF k dispozici pro zadání za účelem identifikace ovladače, který se má načíst pro zařízení. Pořadí porovnávání INF je od nejtypičtějšího hardwarového identifikátoru (nejvíce upřednostňovaného ovladače) po nejméně konkrétní identifikátor (nejméně upřednostňovaný ovladač), aby ovladače, které vědí více o konkrétních funkcích zařízení, mohly nahradit ty, které jsou méně specifické (a proto podporují pouze podmnožinu funkcí zařízení).

Identifikátory zařízení by měly být použity pouze pro párování INF a nikdy by neměly být analyzovány nebo zpracovávány ovladačem zařízení. Pokud ovladač zařízení potřebuje identifikovat konkrétní hardware, pro který byl načten, doporučuje se, aby soubor INF nastavil odpovídající klíče registru při instalaci. Ovladač pak může získat přístup k těmto klíčům během inicializace, aby získal požadované informace.

Identifikace zařízení v ACPI

ID hardwaru (_HID)

Minimální požadavek na identifikaci zařízení v ACPI je objekt ID hardwaru (_HID). _HID vrátí řetězec s formátem "ABC[D]xxxx", kde "ABC[D] je 3mísícový nebo 4znakový řetězec, který identifikuje výrobce zařízení (ID dodavatele) a xxxx je šestnáctkové číslo, které identifikuje konkrétní zařízení vyrobené tímto dodavatelem (ID zařízení). ID dodavatelů musí být v celém odvětví jedinečná. Microsoft přiděluje tyto řetězce, aby zajistil jejich jedinečnost. ID prodejce lze získat z ID Plug and Play – žádost PNPID.

ACPI 5.0 také podporuje použití ID dodavatelů přiřazených pci v _HID a dalších identifikačních objektech, takže možná nebudete muset získat ID dodavatele od Microsoftu. Další informace o požadavcích na identifikaci hardwaru naleznete v části 6.1.5 " _HID (ID hardwaru)" specifikace ACPI 5.0.

Kompatibilní ID (_CID)

Společnost Microsoft si rezervovala ID dodavatele "PNP" pro zařízení kompatibilní s vestavěnými ovladači dodávanými s Windows. Systém Windows definuje řadu ID zařízení pro použití s tímto ID dodavatele, které lze použít k načtení ovladače poskytovaného systémem Windows pro zařízení. K vrácení těchto identifikátorů se používá samostatný objekt Kompatibilní ID (_CID). Systém Windows vždy dává přednost hardwareovým ID (vráceným _HID) před kompatibilními ID (vrácenými _CID) při určení odpovídajících souborů INF a ovladačů. Tato předvolba umožňuje, aby ovladač poskytnutý systémem Windows byl považován za výchozí ovladač, pokud není k dispozici ovladač specifický pro konkrétní zařízení od dodavatele. Kompatibilní ID v následující tabulce se nově vytvoří pro použití s platformami SoC.

Kompatibilní ID Popis
PNP0C40 Pole tlačítek kompatibilní s Windows
PNP0C50 Zařízení kompatibilní s technologií HID-over-I2C
PNP0C60 Snímač displeje pro konvertibilní notebook
PNP0C70 Dokovací senzorové zařízení
PNP0D10 Kontroler USB kompatibilní s XHCI se standardním laděním
PNP0D15 Kontroler USB kompatibilní s XHCI bez standardního ladění
PNP0D20 Usb kontroler kompatibilní s EHCI bez standardního ladění
PNP0D25 Kontroler USB kompatibilní s EHCI se standardním laděním
PNP0D40 Kontroler hostitele SD kompatibilní se standardem SDA
PNP0D80 Kontroler řízení spotřeby kompatibilní se systémem Windows

ID subsystému (_SUB), revize hardwaru (_HRV) a třída (_CLS)

ACPI 5.0 definuje objekty _SUB, _HRV a _CLS, které lze použít spolu s _HID k vytvoření identifikátorů, jež jednoznačněji identifikují konkrétní verzi, integraci nebo revizi hardwaru zařízení, nebo k označení členství ve třídě zařízení definované PCI. Tyto objekty jsou obecně volitelné, ale mohou být vyžadovány určitými třídami zařízení ve Windows. Další informace o těchto objektech naleznete v části 6.1"Objekty identifikace zařízení" specifikace ACPI 5.0.

Pro servisovatelnost je zde požadavek sady Windows Hardware Certification Kit (HCK), aby ID zařízení na systémech OEM byla "čtyřdílná" ID. Čtyři části jsou ID dodavatele, ID zařízení, ID dodavatele subsystému (OEM) a ID zařízení subsystému (OEM). Proto je pro platformy OEM vyžadován objekt ID subsystému (_SUB).

Device-Specific Metoda (_DSM)

Metoda _DSM je definována v části 9.14.1 "_DSM (metoda specifická pro zařízení)" specifikace ACPI 5.0. Tato metoda poskytuje individuální datové a řídicí funkce specifické pro zařízení, které lze volat ovladačem zařízení bez konfliktu s jinými metodami specifickými pro zařízení. _DSM pro konkrétní zařízení nebo třídu zařízení definuje identifikátor UUID (GUID), který zaručuje, že nebude kolidovat s jinými identifikátory UUID. Pro každý UUID existuje sada definovaných funkcí, které může metoda _DSM implementovat, aby poskytovala data nebo prováděla řídicí funkce pro ovladač. Data a formáty dat specifické pro třídy jsou poskytovány v samostatných specifikacích pro zařízení a jsou také popsány v ACPI Device-Specific Metodách.

Adresa (_ADR) a jedinečné ID (_UID)

Existují tři další požadavky na identifikaci zařízení:

  • U zařízení, která se připojují k hardwarové výčtové nadřazené sběrnici (například SDIO, USB HSIC), ale mají funkce nebo ovládací prvky specifické pro platformu (například bočného napájení nebo přerušení probuzení), se _HID nepoužívá. Místo toho je identifikátor zařízení vytvořen nadřazeným ovladačem sběrnice (jak je popsáno dříve). V tomto případě je však nutné, aby se objekt Address Object (_ADR) nacházel v oboru názvů ACPI pro zařízení. Tento objekt umožňuje operačnímu systému přidružit zařízení s výčtem sběrnice k jeho funkcím nebo ovládacím prvkům popsaným v ACPI.
  • Na platformách, kde se používá více instancí určitého bloku IP adres, takže každý blok má stejné identifikační objekty zařízení, je objekt Unique Identifier (_UID) nezbytný k tomu, aby operační systém mohl rozlišovat mezi bloky.
  • Stejný název nesmí mít žádná dvě zařízení v konkrétním oboru názvů.

Objekty konfigurace zařízení

Pro každé zařízení identifikované v oboru názvů musí být systémové prostředky (adresy paměti, přerušení atd.) spotřebované zařízením také hlášeny objektem Aktuální nastavení prostředků (_CRS). Zprávy o několika možných konfiguracích prostředků (_PRS) a kontroly změny konfigurace prostředků zařízení (_SRS) jsou podporovány, ale volitelné.

Platformy SoC nyní zahrnují nové prostředky, jako jsou GPIO a jednoduchá periferní sběrnice (SPB), které může zařízení využívat. Další informace najdete v tématech GPIO (General Purpose I/O) a Simple Peripheral Bus (SPB).

Novinkou pro platformy SoC je také pevný popisovač DMA pro obecné účely. Popisovač FixedDMA podporuje sdílení hardwaru řadiče DMA řadou systémových zařízení. Prostředky DMA (řádek požadavku a registr kanálu) staticky přidělené konkrétnímu systémovému zařízení jsou uvedeny v popisovači FixedDMA. Další informace najdete v části 19.5.49 „Fixní DMA (makro popisovače prostředků DMA)“ specifikace ACPI 5.0.

Změny stavu zařízení

Zařízení pod správou ACPI je možné zakázat nebo odebrat z různých důvodů. Objekt Status (_STA) je k dispozici, aby bylo možné tyto změny stavu sdělit operačnímu systému. Popis _STA naleznete v části 6.3.7 specifikace ACPI 5.0. Systém Windows používá _STA k určení, jestli má být zařízení vyčíslováno, zobrazeno jako zakázané, nebo není viditelné pro uživatele. Tento ovládací prvek ve firmwaru je užitečný pro mnoho aplikací, včetně ukotvení a přepínání USB OTG mezi režimem hostitele a funkcí.

Kromě toho rozhraní ACPI poskytuje mechanismus oznámení, pomocí kterého může ASL informovat ovladače o událostech na platformě, jako je například odebrání zařízení jako součásti dokovací stanice. Obecně platí, že když se stav zařízení ACPI změní, musí firmware provést oznámení o kontrole zařízení nebo kontrole sběrnice, aby systém Windows znovu vyčíslil a znovu vyhodnotil jeho _STA. Informace o oznámeních ACPI naleznete v části 5.6.6"Oznámení o objektech zařízení" specifikace ACPI 5.0.

Povolení nebo zakázání

V rámci technologie Windows Plug and Play musí být ovladače schopné být dynamicky povoleny nebo zakázány uživatelem nebo systémem (například pro aktualizaci ovladače).

Zařízení na SoC jsou integrovaná do čipu SoC a nelze je odebrat. Ovladače většiny zařízení SoC můžou být vyloučené z požadavků na povolení a zakázání. Pro ty ovladače, které nejsou vyloučené, existují rozhraní ovladačů, která označují, že ovladač podporuje seřazené odebrání. Další informace naleznete v dokumentu s názvem "Snížení požadavků PNP pro ovladače SoC" na webu Microsoft Connect.

Pokud ovladač podporuje seřazené odebrání a hardware zařízení je možné zakázat (to znamená, že zařízení může být nakonfigurováno tak, aby přestalo přistupovat k přiřazeným prostředkům), může uzel oboru názvů ACPI pro zařízení obsahovat objekt Disable (_DIS). Tato metoda bude vyhodnocena operačním systémem při každém odebrání ovladače. Použití _DIS má následující další požadavky:

  • _STA musí vymazat bit "povolené a dekódované prostředky" při každém zakázání zařízení.
  • Zařízení musí poskytnout objekt Set Resource Settings (_SRS) pro opětovné povolení hardwaru zařízení a nastavení výše uvedeného bitu v _STA.

Další informace najdete v částech 6.2.3 (_DIS), 6.2.15 (_SRS) a 6.3.7 (_STA) specifikace ACPI 5.0.

Závislosti zařízení

Obvykle existují hardwarové závislosti mezi zařízeními na konkrétní platformě. Systém Windows vyžaduje, aby všechny takové závislosti byly popsány, aby bylo možné zajistit, aby všechna zařízení fungovala správně při dynamické změně v systému (napájení zařízení se odebere, ovladače se zastaví a spustí atd.). V rozhraní ACPI jsou závislosti mezi zařízeními popsány následujícími způsoby:

  1. Hierarchie jmenného prostoru Jakékoli zařízení, které je podřízeným zařízením (uvedeno jako zařízení v rámci názvového prostoru jiného zařízení), závisí na svém nadřazeném zařízení. Například zařízení USB HSIC je závislé na portu (nadřazený) a kontroleru (prarodič) připojeném. Podobně je zařízení GPU uvedené v oboru názvů systémové jednotky pro správu paměti (MMU) závislé na zařízení MMU.

  2. Připojení prostředků. Zařízení připojená k řadičům GPIO nebo SPB jsou na těchto řadičích závislá. Tento typ závislosti je popsán zahrnutím prostředků připojení do _CRS zařízení.

  3. Závislosti OpRegion. U metod řízení ASL, které k provádění vstupně-výstupních operací používají opRegions, nejsou závislosti implicitně známé operačním systémem, protože jsou určeny pouze při vyhodnocování metody řízení. Tento problém platí pro GeneralPurposeIO a GenericSerialBus OpRegions, ve kterých ovladače Plug and Play poskytují přístup k dané oblasti. Aby se tento problém zmírnil, ACPI definuje objekt OpRegion Dependency (_DEP). _DEP by se měl použít v libovolném oboru názvů zařízení, ve kterém se opRegion (prostředek HW) odkazuje metodou řízení, a ani 1 nebo 2 výše neplatí pro odkazovaný prostředek připojení OpRegion. Další informace najdete ve specifikaci ACPI 5.0 v části 6.5.8 "_DEP (Závislosti v oblasti operací)".

Mezi ovladači zařízení můžou existovat také softwarové závislosti. Tyto závislosti musí být také popsány.

Další informace najdete v následujících zdrojích informací: