This tarball is a packaging of all major versions of our original StarMON boot & diagnostic firmware suite for classic PowerPC processors (ones that follow the full PowerPC OEA, i.e., 6xx/7xx/74xx, but not 8xx, 4xx or anything newer). This code has been written by Michael Sokolov of Harhan Engineering Co. in the 2001-2003 time frame, both for our own use at Harhan as well as for some of our past clients. It ran on some PPC750 Single Board Computers from the now-defunct Carlsbad division of SBS Technologies as well as some evaluation / development boards from Galileo/Marvell. Unfortunately this code has never been properly finished and brought to release status. The last CVS commit was made on 2004-01-31, and after the project we were working on at the time got canceled by the client, no further work has been done since then on this code base. The main reason for the effective abandonment of this code is migration to different processors. PPC6xx/7xx/74xx processors are not particularly attractive any more as the chip is nothing more than a bare CPU core; in contrast using any of the newer chips from either Freescale (ex-Motorola) or IBM/AMCC gives one a very useful system-on-a-chip. But the CPU cores inside these newer PowerPC chips are not classic OEA PowerPCs any more, they implement a somewhat different architecture at the privileged level, hence our original highly OEA-centric paradigm no longer applies. Furthermore, the way in which the CPU core is integrated with peripherals at the IC level in the newer chips also calls for a somewhat different system software design. We now have the following successors to this never-finished PowerPC OEA firmware suite: * Book-E-MON for IBM/AMCC PPC44x/46x CPUs with 36-bit physical address spaces, PLB and OPB chip-level buses. These CPUs implement a successor to the classic PowerPC architecture called Book-E, hence our monitor for it is called Book-E-MON. We currently have a reference version for PPC440GX, look for it on our FTP site. * We also plan on writing a StarMON variant for the MPC8xx processor family from Motorola/Freescale as part of our HECGW project, a 5-port modular internetwork gateway/router based on an MPC86x "router on a chip" CPU. Please check www.harhan.com for status updates regarding this project. * Taking a little step backward in technology evolution, we also have a StarMON-based ROM monitor for the m68k architecture (specifically 68302, but easily portable to anything else with a vanilla 68000 core) called MON302. We use it on our SDSL physical layer devices which use MC68302 or MC68LC302 processors. MON302 code can be found in our Hack-o-Rocket and OSDCU source trees: cvs -d :pserver:anoncvs@ifctfvax.Harhan.ORG:/fs1/IFCTF-cvs co hackorocket or cvs -d :pserver:anoncvs@ifctfvax.Harhan.ORG:/fs1/IFCTF-cvs co OSDCU Back to the classic StarMON code in this tarball, here is a brief guide to the large collection of different source trees gathered for this "release": k2-starmon This is the original StarMON for SBS K2 and Adirondack boards: one or two PPC750 processors, CPC710 PowerPC bus bridge (SDRAM + 2 PCI buses), everything PCI-based, nasty "south bridge" chip for the system support functions. The earlier versions (which you can dig out of CVS) used an external assistant program called ETHSUP to load stuff over Ethernet/TFTP, but the final-as-of-project-cancellation version uses StarBOOT described below. This version had almost reached production release status. k2-stbmsm K2/Adirondack version of STBMSM, a component needed by the versions of k2-starmon which use StarBOOT. k2-ucsmgr Another assistant program for k2-starmon. ppcstar-ref-impl This is a port of the original StarMON to Galileo's EV-64260A evaluation board for their GT-64260A system controller chip. As the name says, this version was intended to be a sort of "reference implementation"; that came about because the EV-64260A board was very popular in the Linux/PPC community at the time and seemed more generic than the SBS boards StarMON ran on prior to that. This version uses StarBOOT like k2-starmon and was of similar level of maturity except for the very flaky hardware: the board was very unreliable and the GT-64260A chip itself was full of errata. But that is ancient history now. starboot starboot-drivers StarBOOT is the disk/tape/Ethernet booting support layer for StarMON. It was an ill-fated attempt at making PowerPC embedded boards pretend to be general-purpose computers like DEC/Sun/etc and boot in that manner. StarBOOT is a RAM-based assistant program for StarMON. The intent was for StarBOOT to be completely machine-independent and to support any PPCStar architecture (StarMON-equipped PPC) machine, but again the newer PPC chips have effectively killed the idea: it was machine-independent for as long as the PowerPC CPU implements the classic OEA, and none of the newer ones do. ppcstar-ref-impl2 When the StarMON project was resumed in the fall of 2003 after a hiatus, I got some different ideas on how to structure a few things in the core monitor. This source tree is my never-finished implementation of that restructuring. If my memory serves me right, it never got as far as running StarBOOT or booting an OS by any other mechanism. db64360-750fx-starmon Like ppcstar-ref-impl2, but for the later MV64360 system controller chip and its associated development board. starmon-test-lib All versions of StarMON contain a component called Diagnostic Executive (DE) modeled after the same-named component of DEC MicroVAX boot ROMs on KA6xx CPU boards. DE drives a collection of test routines; in the k2-starmon and ppcstar-ref-impl trees these tests are contained within the source tree, but for ppcstar-ref-impl2 and db64360-750fx-starmon an external library had been created. ppcstar-diags This is a collection of hardware diagnostic utilities for the "PPCStar architecture". Some of them don't strictly depend on StarMON, but they all heavily depend on the PPC processor being of the classic OEA kind, i.e., with BATs. ppc-linux-boot This is how Linux was booted from StarMON, both on the SBS boards and on EV-64260A. starmon-tools Some UNIX host tools for building firmware images and for uploading binary data to StarMON over serial lines. *.CVS Complete CVS revision history for each module.