Subject: SigmaTel-UIRDA work in progress report
To: None <>
From: Ignatios Souvatzis <>
List: tech-kern
Date: 02/01/2007 17:11:43
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable


Christian H. showed me his USB-IrDA-Bridge, which is (contains) a SigmaTel=
product that needs some firmware patching, and then behaves nearly (but
not totally) as an UIRDA device (contrary to the SigmaTel 4200, which=20
behaves completely different and has its own driver).

We did some hacking, and I did some more, and for the current state
of affairs read on, or look at the diff file mentioned below.

Supperted devices should be STIr4210/4220/4116; Christian's is the 4210.

Open issues:

1. I need to firmload(9) at attach time. This can be before root is
   there; I patched firmload(9) to not crash, but it would be better
   if I knew how to delay attachment to later.

   A suitable workaround would be to a) detach ourselves, and b)
   make USB rescan, but USB doesn't yet support rescan via drvctl.

   I don't think moving firmware download to open time is possible
   in this case. SigmaTels official documentation (their Linux
   driver) seems to imply that you have to re-read the UIRDA
   descriptor after patching, and we need that to attach irframe.

   Current workaround: remove, and reinsert, after booting.

2. The handling of EBOFs is strange. ircomm / irobex from the pkg
   "birda" fail to open until I changed the code to be less picky
   about matching. This is in the common code path - people with
   formerly working uirda devices should test with my patch and=20
   tell me whether it still works.

2a. does anybody have the UIRDA specification?

3. I wrote a "get class descriptor" function similar to the one
   the Linux people use. People with an formerly working UIRDA
   device:  please show me the debug messages from attachment.

3a. see 2a.

The diff is at:


seal your e-mail:

Content-Type: application/pgp-signature
Content-Disposition: inline

Version: GnuPG v1.4.5 (NetBSD)