This document serves as a comprehensive guide for system designers on how to port the Common Console firmware to new Alpha AXP hardware platforms. It outlines an iterative porting strategy that begins with an existing "reference platform" to develop a minimal functional image, followed by incremental additions of features and debugging.
Key areas covered include:
- Porting Strategy: Details the process of selecting a suitable reference platform, cloning and modifying existing firmware files, and building either minimal or full console images. It emphasizes tailoring the approach based on the target hardware's state (under development or functional) and its architectural similarities to the reference platform.
- Console Architecture: Provides an overview of the console image's structure, comprising a decompression program, PALcode, and the console kernel. It describes the console's interfaces (user, operating system, hardware) and the class, port, and bus driver model. The console's command-line interface (CLI) supports system configuration, testing, and operating system bootstrapping, with PALcode handling low-level hardware functions and initialization.
- Development Environment and Build Process: Explains how to set up the necessary development environment, including logical directory structures and the three-phase build process. It guides on cloning and modifying platform-specific source and build files, adjusting conditional statements, and using various build tools.
- Developing a Minimal Image: Focuses on creating a skeletal console image by defining memory configurations, modifying PALcode (e.g., disabling interrupts and machine checks), adapting kernel and driver files (initially for polled mode and diagnostic tracing), and configuring NVRAM settings.
- Debugging: Covers techniques for initial hardware debugging using the SROM mini-console for basic memory and I/O register access. It also details the use of the XDELTA debugger, including its standard and extended features, and how to integrate it into the build process.
- Adding Functionality: Describes the incremental steps to evolve the minimal image into a fully functional console. This involves configuring the primary console device (VGA or serial), adding and sequencing device drivers, creating and encapsulating command scripts, implementing ARC (Advanced RISC Computing) support, customizing console commands, and programming diagnostic routines using a set of provided service routines and data structures.
- Reference Information: Appendices offer valuable reference material, including logical search string definitions, guidance on using the Code Management System (CMS), lists of common modified files, details on kernel routines, and summaries of SROM mini-console, XDELTA, and diagnostic environment variables.