Freescale Support

About a week ago, I found out that vmelilo doesn't compile, currently, with an error in a file which provides linkage between C and assembly code. This appears to be an issue related to the gcc transition; but I don't know much about assembly, so had a rather hard time finding out what the solution was.

Eventually, looking at all this assembly code got me curious, so I started looking for m68k assembly tutorials. The only other assembly that I'd ever done was that of the Commodore 64 (which isn't very up-to-date these days, it being an 8-bit processor IIRC), so finding out a starting point was rather hard. In the end, I just wrote some simple C programs, compiled them with gcc -save-temps, and had a look at the resulting .s file, comparing the instructions against this m68k programmers' reference manual that I've found in PDF on the Freescale semiconductor website (Freescale is what was created after Motorola split off its processor business; so they're now the principal manufacturer of m68k processors).

That was rather enlightening.

One thing that isn't quite clear yet is how to call a function with some variables, rather than pointers, as arguments. But I'm sure I'll find out eventually.

Playing with all this assembly also made me remember that there's something else I wanted to look into: the differences between ColdFire and "plain" m68k CPUs. ColdFire processors are supposedly m68k compatible, but there are slight differences. As the wording on wikipedia suggested to me that there might also be incompatibilities, I wanted to be sure. So I compared the m68k programmers' manual against the coldfire one. Or, at least, I tried to—they're both rather large, haing some hundreds of pages; and comparing instruction sets isn't exactly what I call exciting. So I decided to just ask. Freescale has a support medium where you can ask questions; I just put my m68k porters' hat on, and asked them, both because I wanted to know and for the sake of it, just to see whether they'd help me as a Free Software developer working on their hardware—though I'm sure other people could've told me (such as, e.g., the gcc maintainers).

They did. Which is nice. Pointed me to both those manuals that I'd already found, which unfortunately wasn't very helpful. Also pointed me to other documentation, though, containing the differences the m68k hardware has against CF hardware. That one pointed me to an appendix in the users' manual of a specific CF chip, if I wanted to 'port software'. Wording of those three pages are such that the CF instruction set is just a subset of the m68k one. Which is great, considering how there's now a CF processor with MMU, which is the only thing CF processors did not have and which they required to be able to run Linux...