{"id":137,"date":"2007-10-10T11:17:54","date_gmt":"2007-10-10T09:17:54","guid":{"rendered":"http:\/\/daniel.haxx.se\/blog\/2007\/10\/10\/rockbox-usb\/"},"modified":"2007-10-10T11:28:54","modified_gmt":"2007-10-10T09:28:54","slug":"rockbox-usb","status":"publish","type":"post","link":"https:\/\/daniel.haxx.se\/blog\/2007\/10\/10\/rockbox-usb\/","title":{"rendered":"Rockbox USB"},"content":{"rendered":"<p><a href=\"http:\/\/en.wikipedia.org\/wiki\/USB\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2007\/10\/250px-type_a_usb_connecter_alt.jpg\" title=\"USB type A plug\" alt=\"USB type A plug\" align=\"right\" border=\"0\" height=\"191\" hspace=\"10\" vspace=\"10\" width=\"250\" \/><\/a>USB in <a href=\"http:\/\/www.rockbox.org\/\">Rockbox<\/a> land was originally a matter of supporting the USB bridge chips in the first targets we supported (the Archos ones, the irivers and the iAudios).<\/p>\n<p>Since the USB stacks moved into pure software in the used soc chips, Rockbox has (unfortunately) relied on the original firmwares (the so called <em>OF<\/em>) to provide USB support so that host computers can access the players.<\/p>\n<p>One of the projects in the <a href=\"http:\/\/www.rockbox.org\/twiki\/bin\/view\/Main\/SummerOfCode2007\">Google Summer of Code 2007 for Rockbox<\/a> was to introduce a <a href=\"http:\/\/www.rockbox.org\/twiki\/bin\/view\/Main\/UsbSoftwareStack\">USB stack<\/a> and offer native USB support for Rockbox, at least on the <a href=\"http:\/\/www.rockbox.org\/twiki\/bin\/view\/Main\/PortalPlayer\">PortalPlayer-based<\/a> targets. These targets were selected because the PortalPlayer chips have been found to have a USB set that is next to identical to the one used in the <a href=\"http:\/\/www.freescale.com\/webapp\/sps\/site\/prod_summary.jsp?code=i.MX31&amp;webpageId=M0ylsZrDR&amp;nodeId=0162468rH311432973ZrDR&amp;fromPage=tax\">Freescale i.MX31<\/a> and that is fully documented online. <a href=\"http:\/\/austriancoder.blogspot.com\/search\/label\/SoC\" target=\"_top\">Christian Gmeiner<\/a> took this project to state where it partially works, but not enough to be actually useful to any Rockbox user. Christian&#8217;s code was largely based on USB code from <a href=\"http:\/\/www.kernel.org\/\">the Linux kernel<\/a>.<\/p>\n<p>Now, long time Rockbox hacker <a href=\"http:\/\/bjorn.haxx.se\/\">Bj\u00c3\u00b6rn Stenberg<\/a> enters the stage. Being one of the (original) core guys, he has a firm believe in <a href=\"http:\/\/en.wikipedia.org\/wiki\/KISS_principle\">KISS<\/a> and as such he has started over on a brand new USB stack implementation that is meant to replace Christian&#8217;s and to be smaller, less complicated and quite possibly end up actually working! Bj\u00c3\u00b6rn once wrote the <a href=\"http:\/\/bjorn.haxx.se\/isd200\/\">ISD200 support<\/a> in the USB stack for Linux, so he has been in this neighborhood before&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>USB in Rockbox land was originally a matter of supporting the USB bridge chips in the first targets we supported (the Archos ones, the irivers and the iAudios). Since the USB stacks moved into pure software in the used soc chips, Rockbox has (unfortunately) relied on the original firmwares (the so called OF) to provide &hellip; <a href=\"https:\/\/daniel.haxx.se\/blog\/2007\/10\/10\/rockbox-usb\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Rockbox USB<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-137","post","type-post","status-publish","format-standard","hentry","category-rockbox"],"_links":{"self":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/comments?post=137"}],"version-history":[{"count":0,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/137\/revisions"}],"wp:attachment":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/media?parent=137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/categories?post=137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/tags?post=137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}