Apple Desktop Computer manual Why Make This Change?

Page 56

C H A P T E R 5

Software

The Apple iMac computer is different from previous Macintosh computers in that it has no single, large ROM that contains the toolbox software, the 68K emulator, hardware initialization, and the nanokernel. A small ROM provides hardware initialization functions and provides a mechanism to load the Mac OS Toolbox ROM image into RAM. The new software architecture that is centered around ROM-in-RAM and its ramifications has the code name NewWorld.

Why Make This Change?

Historically, the Macintosh ROM has been structured as one monolithic ROM, known as the ToolBox ROM, that contains both low level and high level software. That is, the ROM contains the hardware-specific code needed by the computer at power-up time as well as higher level Mac OS ToolBox software. Examples of hardware-specific code are drivers, feature tables, diagnostics, and hardware initialization code. Examples of higher level software are high-level ToolBox managers, QuickDraw, SCSI Manager, and so on.

As features have been added to the Mac OS software, some of the higher level code expanded beyond the practical limits provided by ROMs, so the ROM has been augmented and modified by system software such as the System file and the Enabler. In this way the functionality of the ROM has been spread out among the ROM, the Enabler, and disk-based system software. This intertwining of low-level and high-level code spread out from ROM to disk has made it difficult and time consuming to release new computers.

One way to address this problem is to separate the system software into two logically distinct pieces. One piece holds most of the hardware-specific components needed to boot the computer, while the other contains boot-time ToolBox routines and components that are common to many Macs. With this scheme, much of the hardware-specific code is isolated in the Boot ROM, and the ToolBox and system software code can be made abstract and generic. This approach has several benefits.

When hardware changes are needed, only the hardware-specific code in the Boot ROM has to be modified, greatly decreasing turnaround time for new product releases, and reducing testing time and expenses.

The high-level ToolBox and system software does not need to change often. When making a new build as a result of changing hardware-dependent code, there is high confidence that the high-level software has not been changed.

56Why Make This Change?

Image 56
Contents Apple iMac Computer Page Contents Devices and Ports RAM ExpansionSoftware RtasAppendix Abbreviations Index Rtas NV-RAMFigures and Tables Page Contents of This Note About This Developer NotePowerPC G3 Microprocessor Supplemental Reference DocumentsMac OS ATA DevicesUSB Devices Open FirmwareE F a C E Introduction Features Case and External Features Shows a front view of the computerFront view 2Side view showing I/O bay Compatibility Issues System SoftwareUSB Ports and Devices Main RAM Expansion ModulesVideo RAM Expansion Modules Page Architecture Architecture Backside Cache Processor moduleG3 Microprocessor Controller IC Main Logic BoardMemory Controller and PCI Bridge Built-in Modem USB ControllerVideo Display Subsystem Infrared Link Module Devices and Ports USB Connectors USB PortsTransfer Types Supported GNDUSB Compatibility Issues ADB CompatibilitySerial Port Compatibility Macintosh-To-Macintosh ConnectionsUSB Storage Devices USB ControllerKeyboard Keyboard LayoutMouse Keyboard and USBHard Disk Drive Video DisplayInfrared Communication Link Sound SystemSound Inputs Sound OutputsBuilt-in Microphone External Sound InputHeadphone Jacks Sound SpecificationsExternal Sound Output Total harmonic distortion Ethernet Port Internal ModemPage RAM Expansion Placing the Computer Face Down Removing the Logic Board AssemblyExpansion Slots Removing the bottom cover Unfastening the CablesRAM Expansion 3Logic board assembly handle and retaining screws Removing the Retaining ScrewsRemoving the Logic Board Assembly Removing the EMI ShieldLocations of the Expansion Slots Main RAM Expansion 6Locations of the RAM expansion slotsMechanical Design of RAM SO-DIMMs Electrical Design of RAM SO-DIMMsSdram Devices Configuration of RAM SO-DIMMs RAM SO-DIMM Electrical Limits Address MultiplexingVideo RAM Expansion Page Software Why Make This Change? What Has Changed Features of the New Approach Performance RAM FootprintUser Experience Data Structures and FilesBoot ROM Contents Mac OS ndrv Drivers RtasToolbox Image File Contents ToolBox ROM Image NewWorld Boot ProcessTrampoline Code What Is Different Interrupt HandlingOutmoded Resources RAM FootprintNanoKernel Startup Disk Control PanelMachine Identification Open Firmware and the Device TreeInterrupt Layout Software Abbreviations Chrp NMI Page Index Nvram X, Y, Z Allen Watson