Skip to main content

jTagging along

Background story:
I wanted to create an appliance that simply allows one to listen to web radio and allows S/PDIF output. My idea was that using my old Dreambox DM500-T would be perfect for this - so I started hacking away.

I began with trying to customize and compile my own kernel using tuxbox as a base and mimicking one step after another until I finally had my own cross-compiler and Linux kernel that I could hack as much as I wanted.

Worth noting is that the built in bootloader in DM500 is accessed by pressing Enter a second after power-on. The bootloader allows transfer of the kernel to RAM from TFTP which means I don't actually needed to modify the flash in order to load a new kernel. As a final note, the bootloader is located in the same flash as everything else (uh-oh). A few hacks later and the built-in bootloader printed an error message and nothing else :-(.

Googling, googling and googling did not really produce anything of value except that when people had even more serious issues (no output at all) they resorted to JTAGing. I never had the pleasure of JTAGing and quite frankly I did not possess any knowledge worth nothing about the inner workings of JTAG either. Status: One bricked device and a opportunity to learn something I wanted to learn for a long time - excellent!


The DM500 board exposes 2x8 pads which needs to be soldered to wires in order to access the JTAG signals. JTAGing DM500 is not uncommon and there are quite a number of programs available to do so, but they are all ad-hoc and requires a DB25 to LPT-port. I did not like that solution very much, I wanted to use a real JTAG in order to learn how to do it "the right way".

Schematics of the the ad-hoc DB25 to JTAG was readily available which offered pin positions on the DM500 board of almost all JTAG signals - only lacking TRST and VCC reference.

I tried connecting the available JTAG signals to my ARM-USB-OSD but without luck, I wasn't really surprised since my adapter needs a Vref in order to know what voltage to output (nice feature, it makes burning things up so much harder).

Today during breakfast I discovered a czech forum post listing what I hope is the correct pinout for the whole 2x8 PAD, which means it should only be a matter of soldering the last two signals. If it works, I will upload complete schematics, BSDL (if needed), scripts and how-tos - that is a promise.

For reference, DM500 consists of an IBM STB02500 SoC with an Intel flash.

Comments

Popular posts from this blog

Buying an IBM Mainframe

I bought an IBM mainframe for personal use. I am doing this for learning and figuring out how it works. If you are curious about what goes into this process, I hope this post will interest you. I am not the first one by far to do something like this. There are some people on the internet that I know have their own personal mainframes, and I have drawn inspiration from each and every one of them. You should follow them if you are interested in these things: @connorkrukosky @sebastian_wind @faultywarrior @kevinbowling1 This post is about buying an IBM z114 mainframe (picture 1) but should translate well to any of the IBM mainframes from z9 to z14. Picture 1: An IBM z114 mainframe in all its glory Source: IBM What to expect of the process Buying a mainframe takes time. I never spent so much time on a purchase before. In fact - I purchased my first apartment with probably less planning and research. Compared to buying an apartment you have no guard rails. You are left

System z on contemporary zLinux

IBM System z supports a handful of operating systems; z/VM, z/VSE, z/OS, z/TPF, and finally zLinux. All the earlier mentioned OSes are proprietary except for zLinux which is simply Linux with a fancy z in the name. zLinux is the term used to describe a Linux distribution compiled for S390 (31 bit) or S390X (64 bit). As we are talking about modern mainframes I will not be discussing S390, only S390X. There is a comfortable amount of distributions that support S390X - more or less all of the popular distributions do. In this  list  we find distributions like Debian, Ubuntu, Gentoo, Fedora, and RHEL. Noticeably Arch is missing but then again they only have an official port for x86-64. This is great - this means that we could download the latest Ubuntu, boot the DVD, and be up and running in no time, right? Well, sadly no. The devil is, as always, in the details. When compiling high level code like C/C++/Go the compiler needs to select an instruction set to use for the compiled binar

Brocade Fabric OS downloads

Fabric OS is what runs on the SAN switches I will be using for the mainframe. It has a bit of annoying upgrade path as the guldmyr blog can attest to. TL;DR is that you need to do minor upgrades (6.3 -> 6.4 -> 7.0 -> ... > 7.4) which requires you to get all  Fabric OS images for those versions. Not always easy. So, let's make it a bit easier. Hopefully this will not end up with the links being taken down, but at least it helped somebody I hope. These downloads worked for me and are hash-verified when I could find a hash to verify against. Use at your own risk etc. The URLs are: ftp://ftp.hp.com/pub/softlib/software13/COL59674/co-168954-1/v7.3.2a.zip ftp://ftp.hp.com/pub/softlib/software13/COL59674/co-157071-1/v7.2.1g.zip ftp://ftp.hp.com/pub/softlib/software13/COL59674/co-150357-1/v7.1.2b.zip ftp://ftp.hp.com/pub/softlib/software12/COL38684/co-133135-1/v7.0.2e.zip ftp://ftp.hp.com/pub/softlib/software13/COL22074/co-155018-1/v6.4.3h.zip ftp://ftp.hp.c