Embedded Design with the MZ104
What is an embedded solution and why would you build your ``better mouse trap'' using x86 technology to run your application on a Linux platform?
Embedded computer solutions are many things, but they all seem to have one thing in common: they are not desktop computers. They tend to be small, low power and able to operate in hostile environments. Embedded devices operate in both fixed and mobile locations; often facing extremes of temperature, vibration or other environmentally challenging conditions.
In the not too distant past, embedded devices were designed around the least expensive microprocessor that would be reasonable, reliable and able to accomplish the task at hand. Commonly, these solutions where known as ``black boxes''. Black box devices did and still do provide effective solutions to meet the needs of various real-world problems. But, in essence, all embedded solutions have a number of things in common: the handling of repetitious tasks based on monitoring and/or collection of data, the storage of this data for future analysis, and simple to very complex control functions based on software algorithms which compare the data stream to pre-defined set-points.
It is estimated that the world-wide market for embedded solutions will top 20 to 30 times the total dollars spent to date on the desktop computer market (see Figure 2). It is not a coincidence that this pending explosion of an estimated three billion dollar per year industry directly coincides with higher yields from the chip manufacturers, much higher gate densities on silicon wafers, and more and more functionality being placed into single chips. The result is an incredible reduction in the cost of CPU horsepower. Add inexpensive x86 processing horsepower to the now ubiquitous deployment of the world-wide data communication pipeline called the Internet, factor in the foreseeable convergence in the near future of affordable high-bandwidth wireless data networks, and you have all the makings for endless opportunities for those with vision, technical skills and entrepreneurial desire.
High numbers of these embedded solutions will use an Intel x86-based core as the foundation hardware layer. Many of you may ask why use the x86 with all it's inherent limitations. The answer is simple: with the introduction of devices such as the MachZ 586 133MHz CPU/FPU, which integrates almost all the needed functionality of a complete computer system in a single chip package, yesterday's ``project stopper'', the cost delta between MPU and CPU, is no longer relevant. Add to this a fantastic reservoir of x86 development tools. Add an equally amazing Linux operating system which is stable, reliable, supportable and cost effective. Add again a very wide and deep river of skilled, knowledgeable people, and you have the recipe and ingredients to bring new solutions successfully and quickly to market (see Figure 3).

Figure 3. Embedded Software Market
This is the first of a series of three articles in Linux Journal which illustrate how the MachZ (see Figure 4) chip used on the MZ104 board may be used to design embedded Linux applications. In this first article, we discuss the hardware aspects, introducing you to the MachZ Chip, the Tri-M MZ104 PC/104 MachZ board(s), and the PC/104 family of solutions.

Figure 4. The MachZ Chip
In the second article we will look at issues surrounding the creation and debugging of a small Linux kernel using a standard desktop host computer. The kernel will be targeted to run on the MZ104 single board computer. The second article will detail how to install and debug (via the host) an embedded version of a bootable Blue Cat Linux kernel and associated applications. The kernel may load off the MZ104's IDE hard drive port, an M-Systems DiskOnChip solid state flash disk, or directly off the Flash ROM.
In the third article, we look at the benefits and illustrate how to use many features of the MachZ. These include ZF Logic and FailSafe, a patented concept included in every MachZ chip which allows the solution provider to recover BIOS, O/S and application software and reestablish full operation after an un-imagined catastrophic failure occurs.
In conjunction with these articles, Linux Journal is running a design contest based on the MachZ chip, the PC/104 MZ104 board, the M-systems DiskOnChip and the BlueCat Linux operating system. One hundred complete kits of these products will be awarded to the ideas judged best. Out of these winners, additional prizes will be given to those who can successfully develop a working proof of concept for each category entered. The free kits will include:
BlueCat Linux Development Kit
Tri-M Systems MZ104 PC/104 Board
On Board ZF Linux Devices' MachZ Chip and Phoenix BIOS in Flash
M-Systems 4 Megabyte DiskOnChip Millennium (Flash Disk)
MZ104 Cable Kit for connecting to peripherals
32MB SO DIMM (DRAM)
In June of this year, ZF Linux Devices Inc., released their single device PC-on-a-chip, the MachZ. This device heralds a new era in ultra-low power consumption utilizing standard x86 technology. Designed for embedded applications, the MachZ comes bundled with a Phoenix BIOS license and lists for $60.00 (US). In larger volumes, the price drops significantly to the mid-$30s.
The MachZ chip uses 0.25-micron technology and is packaged in a 388 pin Ball Grid Array (BGA) measuring 35mm x 35mm. Operating at 133MHz it consumes less than 0.5 Watts. The objective of this device is to shatter the price barrier, allowing developers to create very low cost Internet appliances and other embedded devices.
The MachZ chip combines full x86 PC functionality with its patented fail-safe technology into a single chip. MachZ is the only chip with a built-in FailSafe mechanism for restoring operation after a system failure. The MachZ chip runs all PC software without modification and it boots by simply applying power.
The MachZ is essentially an enhanced 586 CPU which will run at speeds of 33 to 133 MHz. It has a full 32-bit processor core including a math co-processor (FPU), and an 8kB L1 write back cache. It incorporates power management to further lower power consumption and allows the CPU be put to sleep and then awakened as needed.
In addition to the CPU, the MachZ incorporates many additional logic systems (see Figure 5). The North and South Bridge cores inside the MachZ generate full ISA bus and full PCI bus signals which allow standard devices to talk to the MachZ 586 CPU. The North Bridge controls and manages a fast (bursting) SDRAM interface. Not only is SDRAM the modern interface, but the MachZ has a significant cost advantage over the competition as it can use either 16-bit or 32-bit wide SDRAM chips.
In addition to implementing the PCI bus, the South Bridge core also provides DMA and IRQ services, together with I/O controllers for the floppy, parallel, two serial, IrDA, AT Keyboard, PS2 mouse and I2C bus ports. As a bonus, memory chip selects, I/O chip selects, and general purpose I/O pins are brought out to further reduce the need for off chip glue logic.
The South Bridge core provides PCI Bus arbitration, allowing many devices to assume control of the bus. The chip supports up to three external bus masters.
The ZF Linux engineers designed many other useful features. The FailSafe Boot Up ROM (BUR) contains Z-Tag logic which uses a ZF proprietary 1.5MB 2-wire serial input. When the chip powers up, depending on the bootstrap jumpers, it will either start in the Flash or start in the on-chip BUR. The BUR will read and execute commands through the Z-Tag interface or the first serial port. A significant set of commands is understood by the BUR, allowing reprogramming of the Flash or FailSafe Recovery of a downed system.
The BUR has an interesting debug capability. Even with no external DRAM or SRAM connected to the MachZ, you can boot up the BUR and then download small test programs into the MachZ on chip RAM to verify the hardware components of your MachZ system. This debug capability and the FailSafe capability will be discussed in the second and third articles in the series.
But a chip, even one as sophisticated as the MachZ, needs some board real estate to sit on and bring out the many necessary signals and input lines. PC/104 has, over the last 10 years, been widely adopted by the embedded market due to its small size and rugged and reliable characteristics. An IEEE standard, PC/104 is an electrical and physical standard for the 8/16-bit ISA bus signals, using a pass-through header connector system on a printed circuit board of fixed dimensions. Also included in the specification are well defined locations for connectors. PC/104+ is a new addition to this original stand and, which maintains the physical size but incorporates, in addition, board to board routing of PCI bus signals.
There are hundreds of companies making PC/104 compliant boards. The companies range in size based on number of cards manufactured from one or two highly specialized offerings, to upwards of 100 different products. Unless you are looking for some truly esoteric plug-on card, you can pretty much buy off the shelf anything your specifications require. The MZ104 board (see Figure 6) manufactured by Tri-M is one such product competing for the attention and business of OEM application developers and embedded solution providers.
The connectors around the outside edge of the MZ104 allow for the hook-up of all the I/O cables. A cable kit comes with the contest boards. The hook-up includes up to 4 IDE devices (hard disk drive and/or CDs), a single USB, a keyboard, a PS/2 mouse, two serial ports, one parallel port, one floppy disk and power. The sockets shown on the bottom of the picture are the PC/104 8/16-bit ISA headers. These headers allow the boards to be connected together in a stack, with bus routing from card to card.
Where are all the components to deal with these devices and busses? They are inside the chip!
The MZ104 can be powered by hooking up a single +5VDC supply directly to the card or through the PC/104 bus connector from another board in the stack.
With all the different options available as a platform to build your better ``mouse trap'', why choose PC/104? Design criteria, which includes one or more of the following, are:
x86 based O/S and application
small space
low power consumption
a single +5VDC power source
operates in high vibration
operation reliably in high g-force
doesn't look like desktop, meaning that you can set your own price
fast development time
easy to roll out production product
risk of hardware failure reduced
risk of software failure reduced
multiple vendor sources for similar product
board life and stability much longer than mother boards
relatively easy development for custom boards
if volumes get really big, relatively easy to reduce cost with roll your own custom board.
One of the very first companies to get working samples of the MachZ chip and to begin designing solutions based around this revolutionary device was Tri-M Engineering in British Columbia, Canada. Tri-M, an 18-year-old company, earns its living selling and supporting embedded x86 equipment to OEM and in-house solution providers all over the world. Tri-M would never have considered designing their own line of x86 single board computers until the ZF Linux MachZ came along. This gave Tri-M an opportunity to play at the table, which until the arrival of the MachZ was reserved for the big guys. Tri-M is now able to offer three different commercial off the shelf (COTS) CPU boards to its clients; in addition Tri-M has contracts to design two custom boards based around the same technology. Not a bad position to be in for a company basing it's future success on the success or failure of its client's products.
The MZ104 board is a fully PC/104 specification-compliant board, using the MachZ on a 6 layer circuit board. The MZ104 brings out most of the chip's internal features and supports a 2 or 4MB Flash ROM, the M-Systems DiskOnChip, and a 144 pin SO_DIMM connector supporting either 32 or 64MB of fast SDRAM. The MZ104 is the first and least complex member of a family of three PC/104 boards designed around the MachZ. This first board is the board which will be used in the design contest. Features of the board are shown in Figure 7.
The MachZ chip internally generates both the ISA and PCI bus. PCI is much faster than ISA, and the MachZ supports PCI bus mastering. The PC/104 standard does not allow interconnect of the PCI bus from one board to another, but devices on the CPU board may use the PCI bus. For example, the ICC104MZ uses on-board PCI for the 10/100Mb Ethernet chips.
Although there are few PC/104+ boards built, these ``new standard'' boards have an additional header allowing the PCI (as well as the ISA) bus to be routed between boards.
The MZ104 has a large white U-Shaped Connector which holds the SO_DIMM memory module (see Figure 8). The majority of the remaining circuitry on the board is for clock control. This very high integration of the MachZ chip provides higher reliability and greater MTBF. Failure rates for all electronics can be directly related to the number of discrete components. Less means more in terms of infant mortality and expectation for long life.
The MZ104 has not brought out all of the MachZ chip PCI bus signals. This was intentional so as to produce a minimum-cost board, free up board real estate for other components and to match market demands for embedded solutions which, for the vast majority of applications, don't usually require the high bandwidth of the PCI bus. To further save cost, all the components are placed on the top side of the board, reducing manufacturing cost and time.
A typical PC/104 stack of cards would include some of the components listed in Figure 9. Prices are given for small quantities.

















This week 5 lucky Members will receive a Root Superhero T-shirt, as modeled by
Hack Editor Kyle Rankin. No entry necessary. Check back here early next week
to find out who the lucky Online Members are.




Comments
Post new comment