Embedded Devices and JTAG

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’t get to attend the conference, actually I stumbled across this while working with the Linksys WRT54G-TM device.

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.

The device is great – 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.

(If you look at the lower portion of the board you’ll see where JTAG headers are soldered)

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’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 25423 seconds to complete on each device.)

Watch the video, it’s enlightening and Mike’s got a good sense of humor.

Magic isn’t real.

So, I’m in the process of moving – again.

I found it rather amusing the other day to see my current apartment listed on Craigslist as being “cozy”. A quick google search to define “cozy” returns an appropriate definition of “oversized dog house”.

Yeah, it’s small. Really small. So small that when I bought a small love-seat, it took forever to squeeze it through the entryway and up the flight of stairs to the ONE ROOM abode. And that room was basically the size of a large walk-in closet.

Ok, whine, whine, whine… what does this have to do with software or hardware projects? Well, getting the love-seat OUT of the apartment turned into a hard project. A REALLY HARD PROJECT. Here’s what happened:

I paid the guy that helped me move it in $40.00 to help me get it out. “If we got it in, we can get it out.” But after 45+ minutes of trying to get the P.O.S. back to the stairway, it became evident that this was a task that required some serious mathematics.

I’m not like John Nash in “A Beautiful Mind”. I’m more like Son in “Shotgun Stories”. (“I can divide up to 4 decimal spaces”.) So when the suggestion “Well, I’ve got a circular saw in the truck” came up, I knew we only had 1 solution.

Before:

Before...

After:

After...

And so now I’ve got to pay another $40.00 to have the carcass disposed of. (BTW, I love how it appears that Dylan is sadly walking thru some sort of furniture holocaust)

UML Block Device Issues

I spent about half an hour the other day trying to figure out why a new Usermode Linux 2.6 kernel wouldn’t boot. Most of the time I focus on the 2.4 kernels, since adding “TTY Logging” to that kernel is really easy. (Yes, I’m watching your every keystroke)

For some reason, every time I’d boot the kernel, I’d get:

Kernel Panic – VFS: Cannot open root device “98:0” or unknown-block

The obvious problem would have been misspelling the flag “ubd” “udb”… but that wasn’t it. After scouring the Internet for any help I could find (and coming up empty), it turns out I missed a really simple but necessary config option when compiling the kernel:

“CONFIG_BLK_DEV_UBD” – Don’t leave home without it.

It’s practically an antique computer museum…

Being the nostalgic person I am, over the past 10 years I’ve accumulated a large number of old computers – everything from the Timex Sinclair 1000, TRS-80 COCO’s, and of course a Commodore 64 or 128…

The Commodore was interesting – I remember playing Exodus Ultima III, and BC’s Quest for Tires/Grogs revenge – and using this amazing “Turtle Graphics”(?) animation tool. Years before my last long-distance move, I got my hands on 5+ boxes of Commodore software from an old collector.

There’s a lot of stuff there, A LOT. A lot of games, but one of the more interesting items was the entire COMAL suite, with full documentation.

I’m using the past-tense because I found a new home for the C128 this weekend. I also offloaded an Amiga 2000. I’m tired of moving around and lugging all kinds of stuff I never use. So… anyone interested in a PowerMac 7215 running Yellow Dog Linux – it’s in need of a new home as well – AND SOON.