Why Intel Used Linux for Itanium Qual
Dec 26, 1999 — by Rick Lehrbaum — from the LinuxDevices Archive — 1 viewsIntel reports, in the 4th quarter '99 edition of Intel Technology Journal, that they employed the Linux 2.2.0 kernel as one of two vehicles for pre-silicon validation and post-silicon debug of the Intel Itanium processor. According to the journal article, Intel ported two operating system kernels to the IA-64 architecture. The Mach3 microkernel was ported first, followed by the Linux 2.2.0 kernel.
The Intel article states that “these have helped track the overall health of the Itanium RTL model for the last two years. These operating system (OS) kernels also helped pre-silicon performance analysis and compiler-generated code analysis.”
“To provide additional vehicles for pre-silicon validation and post-silicon debug of the Intel Itanium processor, we ported two operating system kernels to the IA-64 architecture. The Mach3 microkernel was ported first, followed by the Linux 2.2.0 kernel, and these have helped track the overall health of the Itanium RTL model for the last two years. These operating system (OS) kernels also helped pre-silicon performance analysis and compiler-generated code analysis.”
“The Mach3 kernel (the IA-64 port was called Munster internally) was ported because it contained features similar to Microsoft Windows NT, such as tasks, threads, interprocess communication (IPC), and symmetric multiprocessing (SMP). Mach3 allowed us to exercise parts of the Itanium model in a similar way to Microsoft Windows NT, but at a reduced scale and without device support.”
“Linux (the IA-64 port was called IPD-Linux internally) was ported because its source is readily available and 64-bit clean, it is highly configurable, and it would exercise the model in a different way than Mach3 [the other kernel ported for Itanium qualification testing]. We started with a released 2.2.0 version of the source and ported the kernel using a non-GNU C Compiler (GCC). The difficulty of porting the Linux kernel without GCC made the task more challenging.”
“Besides porting the architecture-specific portions of the kernels, modifications were necessary to both kernels to remove certain dependencies on external devices and BIOS initialization. Also, the OS initialization paths executed prior to user-level programs had to be shortened to accommodate the simulation speed of the RTL environment. The kernels had to be extremely configurable in order to run in diverse simulation environments.”
“Both kernels were tested from processor reset to user-mode code execution to validate the significant parts of the RTL that an operating system would exercise during the boot process. Kernel initialization, virtual memory management, context switching, trap handling, system call interfaces, and user-mode context paths were all exercised on the actual RTL model. This effort uncovered several errata in the RTL model and in the IA-64 tools (such as the compiler and linker). It also provided us a model regression sanity check for each new RTL release.”
In this paper, the Intel team discusses the porting of kernels to the IA-64 architecture for pre-silicon operating system validation.
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.