{"id":17,"date":"2008-08-15T16:56:26","date_gmt":"2008-08-15T20:56:26","guid":{"rendered":"http:\/\/www.braindeadprojects.com\/blog\/?p=17"},"modified":"2008-08-15T17:31:46","modified_gmt":"2008-08-15T21:31:46","slug":"embedded-devices-and-jtag","status":"publish","type":"post","link":"http:\/\/www.braindeadprojects.com\/blog\/what\/embedded-devices-and-jtag\/","title":{"rendered":"Embedded Devices and JTAG"},"content":{"rendered":"<p>Take a look at <a href=\"http:\/\/braindeadprojects.com\/video\/elc2008-mike-anderson-jtag-driver-debugging.ogg\">Mike Anderson and JTAGs<\/a>. This is a really enlightening explanation of how to debug embedded linux devices w\/ JTAG support, and it gives some great pointers for writing linux device drivers.<\/p>\n<p>Mike Anderson is the Chief Scientist for The PTR Group, Inc. and really knows embedded linux devices. I didn&#8217;t get to attend the conference, actually I stumbled across this while working with the Linksys WRT54G-TM device.<\/p>\n<p>The 54G-TM is a T-Mobile branded device, that apparently was (or maybe still is) sold by T-Mobile along w\/ their WiFi capable phones. I guess the idea was that if you were within range of your 54G-TM, the call would run ala VOIP, otherwise it would use the actual cell network.<\/p>\n<p>The device is great &#8211; the board layout has pads that male headers can be easily soldered onto. HairyDairyMaid includes schematics for a parallel port based JTAG cable, which can then be used to install DD-WRT, or whatever.<\/p>\n<p><a href=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/uploads\/male_pads.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-19\" title=\"Soldered male headers on pads\" src=\"http:\/\/www.braindeadprojects.com\/blog\/wp-content\/uploads\/male_pads-300x240.jpg\" alt=\"\" width=\"300\" height=\"240\" \/><\/a><\/p>\n<p style=\"text-align: center;\">(If you look at the lower portion of the board you&#8217;ll see where JTAG headers are soldered)<\/p>\n<p style=\"text-align: left;\">As far as I can tell, using JTAG to directly write to flash is the only way to upload the firmware to the device. (TFTP and HTTP both fail). This 54G-TM also has a cpu fan soldered to the board and a heatsink installed on the CPU. (I didn&#8217;t do this myself, I actually bought this one that way. I have added headers to the other 4 I have, and flashing a 7.7M image of DD-WRT took <span class=\"textNOCLog\">25423 seconds to complete on each device.<\/span>)<\/p>\n<p style=\"text-align: left;\">Watch the video, it&#8217;s enlightening and Mike&#8217;s got a good sense of humor.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Take a look at Mike Anderson and JTAGs. This is a really enlightening explanation of how to debug embedded linux devices w\/ JTAG support, and it gives some great pointers for writing linux device drivers. Mike Anderson is the Chief Scientist for The PTR Group, Inc. and really knows embedded linux devices. I didn&#8217;t get &hellip; <a href=\"http:\/\/www.braindeadprojects.com\/blog\/what\/embedded-devices-and-jtag\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Embedded Devices and JTAG<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[5,4,6,7,8],"class_list":["post-17","post","type-post","status-publish","format-standard","hentry","category-what","tag-embedded-devices","tag-jtag","tag-linksys","tag-wrt54g","tag-wrt54g-tm"],"_links":{"self":[{"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/posts\/17"}],"collection":[{"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/comments?post=17"}],"version-history":[{"count":6,"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/posts\/17\/revisions"}],"predecessor-version":[{"id":23,"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/posts\/17\/revisions\/23"}],"wp:attachment":[{"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/media?parent=17"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/categories?post=17"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.braindeadprojects.com\/blog\/wp-json\/wp\/v2\/tags?post=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}