Skip to content
Oleksij Rempel edited this page Jul 27, 2013 · 3 revisions

HIF - ??

Comparable with PHY layer of network interface. Responsible for:

  • registering HW interface
  • uploading firmware
  • handle PM - suspend, resume. Reset, eject...
  • complete low level rutine. In this case USB.

HTC - host target communications

Has static Endpoint = 0. Responsible for:

  • Communication between host and target
  • Registering services. For example WMI, RX, TX, Beacon...
  • Routing messages to services
  • credits system.

WMI – Wireless Module Interface Service

Responsible for:

  • any kind of mac access, abstract or direct - register access.

Proposal:

We need method to handle system exceptions and send system message for debuging. It should use shortest path, and have guaranteed existence btw endpoint. On one sight HIF has shortest path, on other sight it is responsable only for PHY level. In this case IMO, HTC is best choice.

Current htc_frame_header accept fallowing flags:

  • HTC_FLAGS_NEED_CREDIT_UPDATE
  • HTC_FLAGS_RECV_TRAILER
  • HTC_FLAGS_CREDIT_REDISTRIBUTION

I suggest to add two more:

  • HTC_FLAGS_EXCEPTION - target firmware filed and can't continue to work... with other words, we have a bug and should fix it.
  • HTC_FLAGS_DMESG - send some debug information to the host.

In case of exception best what we can do is to gather as match as possible debug information. And find some way to rest target:

  • reboot - we need running firmware. won't reinit hardware. (some times we need it)
  • cold reboot - we need running firmware. will force host to send disconnect event (driver will be automatically reloaded)
  • usb reset - not always working?