Access Restricted

This page contains internal documentation that is not publicly available.


DHWCtrl.ListPeripherals

Discover which instances of a given peripheral Category can be brought up with a candidate PinMap. The firmware returns the PeripheralIndex of every instance in that category whose required functions are all present in PinMap and routable to the GPIOs it assigns them. An empty result means the wiring drives no instance of that category. GPIO itself is not enumerated: addressing is SoC-native via DHWCtrlGpioPin (port + pin number) and the caller is expected to know their SoC. The response carries no pin information; since each Activate map is exact, the host already holds every instance's pin set and detects cross-peripheral pin conflicts client-side.

Properties

Parameters (request frame)

Name Type/Size Description
Category Enumeration (8 bits) Peripheral category to enumerate; only instances of this category are returned.
Peripheral category; selects which Activate/transfer commands apply, and is the mandatory filter of ListPeripherals.
Values (4):
  • Eth (0x00)
    Ethernet port; addressed by Eth* commands.
  • UsbHost (0x20)
    USB host controller; addressed by UsbHost* commands.
  • Flash (0x30)
    Flash slot; addressed by Flash* commands.
  • Spi (0x40)
    SPI master; addressed by Spi* commands.
Length of PinMap Integer (8 bits) Number of elements in the PinMap array
PinMap Array Candidate logical-to-physical pin assignments to test. Each returned index is an instance of Category whose required functions are all present here and routable to the assigned GPIOs.
Entry.Name Enumeration (8 bits) Logical peripheral function this pin carries.
Logical pin-function identifier, prefixed by electrical bus/signal family (not by DHWCtrl peripheral category). A signal shared by 2 roles on the same bus reuses a single keyword - e.g. UsbDp / UsbDm serve both a USB host and a (future) USB device role. It is used as the logical side of a DHWCtrlPinMapEntry; a given Activate accepts only the names of the one or more buses its category uses.
Values (24):
  • SpiSck (0x00)
    SPI clock.
  • SpiMosi (0x01)
    SPI master-out/slave-in.
  • SpiMiso (0x02)
    SPI master-in/slave-out.
  • EthTxd0 (0x10)
    RMII transmit data bit 0.
  • EthTxd1 (0x11)
    RMII transmit data bit 1.
  • EthTxEn (0x12)
    RMII transmit enable.
  • EthRxd0 (0x13)
    RMII receive data bit 0.
  • EthRxd1 (0x14)
    RMII receive data bit 1.
  • EthCrsDv (0x15)
    RMII carrier-sense/receive-data-valid.
  • EthRefClk (0x16)
    RMII 50 MHz reference clock.
  • EthMdc (0x17)
    MDIO management clock.
  • EthMdio (0x18)
    MDIO management data.
  • SdmmcClk (0x30)
    SDMMC clock.
  • SdmmcCmd (0x31)
    SDMMC command line.
  • SdmmcDat0 (0x32)
    SDMMC data bit 0.
  • SdmmcDat1 (0x33)
    SDMMC data bit 1.
  • SdmmcDat2 (0x34)
    SDMMC data bit 2.
  • SdmmcDat3 (0x35)
    SDMMC data bit 3.
  • SdmmcDat4 (0x36)
    SDMMC data bit 4.
  • SdmmcDat5 (0x37)
    SDMMC data bit 5.
  • SdmmcDat6 (0x38)
    SDMMC data bit 6.
  • SdmmcDat7 (0x39)
    SDMMC data bit 7.
  • UsbDp (0x40)
    USB D+ data line.
  • UsbDm (0x41)
    USB D- data line.
Entry.Pin.Port Enumeration (8 bits) GPIO bank letter (A..Z).
SoC-native GPIO bank identifier. The keyword letters mirror the bank designators on STM32-style parts; not every part implements the full A..Z range. The firmware rejects banks it doesn't support with ErrInvalidParam.
Values (26):
  • A (0x00)
  • B (0x01)
  • C (0x02)
  • D (0x03)
  • E (0x04)
  • F (0x05)
  • G (0x06)
  • H (0x07)
  • I (0x08)
  • J (0x09)
  • K (0x0A)
  • L (0x0B)
  • M (0x0C)
  • N (0x0D)
  • O (0x0E)
  • P (0x0F)
  • Q (0x10)
  • R (0x11)
  • S (0x12)
  • T (0x13)
  • U (0x14)
  • V (0x15)
  • W (0x16)
  • X (0x17)
  • Y (0x18)
  • Z (0x19)
Entry.Pin.Number Integer (8 bits) Pin number within the bank. Practical range is SoC-specific (typically 0..15 on STM32). Named Number rather than Index to avoid a NameChecker collision with the peripheral-instance Index in ListPeripherals's Pins array (struct parents don't currently participate in field-name namespacing).

Returned values (response frame)

Name Type/Size Description
Length of Indices Integer (8 bits) Number of elements in the Indices array
Indices Array Zero-based instance indices of Category that the supplied PinMap can bring up; each is passable as PeripheralIndex to the category's Activate command.
Index Integer (8 bits) -