Specifications

Remote Control and Receiver-Transceiver Specifications and Requirements
for Windows Media Center in Windows Operating Systems
114
7. Test validates that the device does respond.
Bootloader Implementation
To support wake programming, Version 2 emulator devices must have a bootloader. While in
bootloader mode, all normal device operation is suspended. The bootloader is entered when a
CMD_RESET command is received and exited when a CMD_BOOT_EXIT is received. The set of
commands that work in the bootloader are separate and distinct from the set of commands that
work in normal operating mode. There is no overlap between bootloader commands and normal
operation commands.
Enabling Bootloader Functionality
To enable the bootloader, the device must set the DEVDETAILS_HASBOOTLOADER bit in its
RSP_EQDEVDETAILS response. If the device does not set this bit, the host assumes that the
device does not have a bootloader and does not attempt to enter the bootloader.
The purpose of the bootloader is to support wake programming. All devices must set the
WAKE_SUPPORTED and WAKE_PROGRAMMABLE bits to communicate to the host that they
support wake programming. Supporting for wake programming is required.
Entering the Bootloader
The device should enter the bootloader when it receives the CMD_RESET command from the
host.
Exiting the Bootloader
The device should exit the bootloader when it receives the CMD_BOOT_EXIT command. After
exiting the bootloader, the device should re-initialize itself. It is possible that the host will issue a
CMD_RESET command followed immediately by a CMD_BOOT_EXIT command to reset the
device.
Wake Programming: CMD_BOOT_SETWAKEPATTERN
All devices that have a bootloader and support wake programming will receive
CMD_BOOT_SETWAKEPATTERN commands from the host. This command sends the protocol,
the payload, and the remote control address to the device. The device should use this
information as necessary to program its wake algorithm.
When designing your device, you have the following options for wake programming:
Single pattern. In this case, the device does not set WAKE_MULTIPLE. When the host sets the
wake pattern using the CMD_BOOT_SETWAKEPATTERN command, the devices wakes on that
protocol, payload, and address only. This option is for devices that need to conserve power in a
low power state.
For example, a single-pattern device that receives CMD_BOOT_SETWAKEPATTERN with
protocol=RC6, Payload=0x0c, and Address=0x02 wakes on the RC6 Sleep toggle button from a
remote with address 2, but does not wake on any other Sleep signature.
Multiple pattern. In this case, the device sets WAKE_MULTIPLE. When the host sets the wake
pattern using the CMD_BOOT_SETWAKEPATTERN, the device wakes on all Sleep buttons with
that address.