{"id":90,"date":"2006-03-25T18:05:40","date_gmt":"2006-03-25T18:05:40","guid":{"rendered":"http:\/\/www.reactivated.net\/weblog\/archives\/2006\/03\/zd1211-tx-operational\/"},"modified":"2007-06-17T00:19:17","modified_gmt":"2007-06-17T00:19:17","slug":"zd1211-tx-operational","status":"publish","type":"post","link":"https:\/\/www.reactivated.net\/weblog\/archives\/2006\/03\/zd1211-tx-operational\/","title":{"rendered":"ZD1211 TX operational"},"content":{"rendered":"<p>After a couple of weeks of head-scratching, I managed to get the rewritten USB-wireless <a href=\"http:\/\/www.reactivated.net\/weblog\/archives\/2006\/02\/zd1211-wireless-hacking\/\">ZD1211 driver<\/a> transmitting data.<\/p>\n<p>The code has been written for a while, and although it seems to work (the device doesn&#8217;t indicate any form of failure), the frames simply weren&#8217;t &#8220;hitting the air&#8221;.<\/p>\n<p>The problem originates from the huge number of <a href=\"http:\/\/zd1211.ath.cx\/browser\/trunk\/src\/zdhw.h#L18\">undocumented physical registers<\/a> in the vendor driver. Rather than list all 200 of them in our driver source in the ugly manner which ZyDAS do so, we devised a quick one-line macro to perform the same task:<\/p>\n<blockquote>\n<pre>#define CR(reg)                CTL_REG((reg)*4)<\/pre>\n<\/blockquote>\n<p>However, it appears that ZyDAS have some trouble counting. A snippet from the vendor driver:<\/p>\n<blockquote>\n<pre>#define        ZD_CR1            0x0004\r\n#define        ZD_CR2            0x0008\r\n#define        ZD_CR3            0x000C\r\n#define        ZD_CR5            0x0010\r\n#define        ZD_CR6            0x0014\r\n#define        ZD_CR7            0x0018\r\n#define        ZD_CR8            0x001C\r\n#define        ZD_CR4            0x0020\r\n#define        ZD_CR9            0x0024<\/pre>\n<\/blockquote>\n<p>1,2,3,5,6,7,8,4,9&#8230; Our macro obviously doesn&#8217;t match the unordered nature of those low CR addresses.<br \/>\nAfter inserting the appropriate hacks into our driver, packets start flying, as confirmed by another wireless card in monitor mode.<\/p>\n<p>Be warned: although we have transmit and receive working to some degree, the driver isn&#8217;t ready for users wanting to connect to networks yet.<\/p>\n<p>I&#8217;m attending the OSDL Wireless Developer Summit in the first week of April, and I&#8217;m hoping that we&#8217;ll have a partially usable driver in time for that.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>After a couple of weeks of head-scratching, I managed to get the rewritten USB-wireless ZD1211 driver transmitting data. The code has been written for a while, and although it seems to work (the device doesn&#8217;t indicate any form of failure), the frames simply weren&#8217;t &#8220;hitting the air&#8221;. The problem originates from the huge number of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,12],"tags":[],"class_list":["post-90","post","type-post","status-publish","format-standard","hentry","category-gentoo","category-linux"],"_links":{"self":[{"href":"https:\/\/www.reactivated.net\/weblog\/wp-json\/wp\/v2\/posts\/90","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.reactivated.net\/weblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.reactivated.net\/weblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.reactivated.net\/weblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.reactivated.net\/weblog\/wp-json\/wp\/v2\/comments?post=90"}],"version-history":[{"count":0,"href":"https:\/\/www.reactivated.net\/weblog\/wp-json\/wp\/v2\/posts\/90\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.reactivated.net\/weblog\/wp-json\/wp\/v2\/media?parent=90"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.reactivated.net\/weblog\/wp-json\/wp\/v2\/categories?post=90"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.reactivated.net\/weblog\/wp-json\/wp\/v2\/tags?post=90"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}