The new-generation UEFI firmware architecture offers an integrated environment to accelerate firmware development. Its functions not only cover legacy BIOS, but also improve boot-up performance, system security, cloud connection and intelligent technology support. The modularized firmware architecture and the up-to-date codes can greatly save the time for developing firmware to meet system developers' demand for multiple products in small volumes and diverse specifications.
During the Digitimes Embedded Technology Forum in February, US-based Phoenix Technologies senior director of engineering, Terry Chen, stressed that Phoenix's competitive edge lies in the fact that it offers excellent firmware architectures and perfect development environments. Phoenix's UEFI firmware product, Phoenix SecureCore Technology (SCT) supports multiple embedded computing platforms, including embedded modules, motherboards, graphics cards and systems for vertically-integrated markets of industrial, networking, retail, medical, energy, military and gambling applications. For firmware development tools, Phoenix offers integrated development environment, development tool kits and professional debugging devices that form the best total solutions for clients' firmware development.
A look at Phoenix's SCT firmware architecture chart reveals that the Foundation (Green H) is formed by the EFI-developed EDK1 with patches and EDK2. Above it is the Phoenix-architected Kernel. The next is the Executive layer where Phoenix adopts a clear modularized design. Different combinations of processors, chipsets and operating systems, as well as different system makers' firmware specifications, can be accommodated by modularized changes and partial upgrades.
The System layer (UEFI protocols) at the top covers Common PEIM (Common Pre-EFI Initialization Modules) and DXE (Driver eXecution Environment). For the UEFI user interface and applications, it offers: Quick Book Technology, Leading Boot Manager Technology and Parametric Build for Maximum Configurability.
Phoenix's technological strengths come from more than 30 years of experience in the BIOS field. Its Phoenix SCT meets the latest UEFI standards. Its modularized architecture and clear code tree can increase the reusability of the firmware's kernel, as well as accelerating the development of firmware projects to allow products to hit market shelves sooner.
New features from Phoenix SCT 2.2
Chen noted the major features of Phoenix SCT 2.2: support for the Windows 8 operating system; improvements to boot performance; better system integration; optimized user interface; wider support for peripherals; enhanced server management; compliance with the NIST SP800-147 BIOS Protection Guidelines; and support for common industry specifications such as UEFI 2.3.1, TCG 1.2/2.0, ACPI 4.0/5.0 and SMBIOS 2.7.
He further pointed out its new features. First, the hardware IRQ (interrupt request) replaces the SMI (system management interrupt) of the legacy USB simulation function. Because there is no need to define the SMI, it will be easy for transplantation and offer wider support for USB devices already available on the market. Second, it supports a wide range of USB 3.0 xHCI controller chips. Third, it features Crisis Recovery for USB2/USB3.0 peripherals. Fourth, it improves compatibility with peripheral drivers through USB driver simulation and recognition of the SCSI instruction set.
Phoenix SCT adds new boot devices/run-levels: first, UEFI boot driving the SCSI device directly from the legacy One-time PROM (OPROM), with maximum capacity of each boot partition reaching 2.2 TeraBytes; second, embedded system boot for the SD card, SD I/O interface port and CF ATA memory card; third, UEFI LAN boot from the network interface card; and fourth, legacy SA OPROM from the motherboard; and fifth, OPROM boot from additional interface cards.
For other support, it redesigns the entire firmware code, clearing all confusing and clumsy platform codes to offer a simplified architecture for platform transplantation. It automatically indicates CMOS information and generates related codes during the building process.
Phoenix SCT 2.2 also supports WinHost64 to execute 64-bit applications under the 64-bit Windows environment. And the design of the kernel simplifies the code, with capability of supporting prototypes of new versions of architecture. As for debugging, it features SBCS (single-byte character set) or DBCS (double-byte character set) Port 80 Enhanced PostCode output during driver input.
Finally, the enhanced Milestone Task will easily achieve modularized customization without any previous versions being overwritten or fallen into disuse. In terms of embedded functions, it offers ATX power supply simulation to simulate legacy AT power supply hardware switch functions. It also supports multiple Serial I/O chips, two-phase password input, headless function without video, and recoverable errors.
Planning for next-generation Phoenix SCT 3
Chen pointed out that the ultimate aim of the next-generation Phoenix SCT3 is to have EDKII continue the performance and stability of Phoenix SCT2 products, with compatibility with x86 and ARM platforms to satisfy the needs of the cross-platform generation. At the same time, through the Hybrid Build System it will support both SCT 2.x and EDK2 architectures, as well as hybrid development environments to assist clients' smooth transition from SCT 2.x to SCT 3.0.
He said that SCT 3 will be designed to meet the needs of the ARM, server, storage, embedded and tablet markets to optimize the boot-up time, ROM space and UEFI firmware functions.
An integrated toolkit supporting burn, edit, R&D, debug and manufacturing
Chen introduced Phoenix's Tool Development Kits (TDK), which allows for fast cross-platform BIOS development. It gathers Flash Tools, BIOS Edit, RD Utility, QA Tool and MFG Tool into one single user interface to enable easier learning and customization. With it, unique firmware tools can be developed according to specific manufacturing and debugging needs.
TDK adopts standard C language and open source API. It can also accommodate customized codes independently developed by OEM firms. For API, it offers binary-code operations, fast memory burns, read and write of files and disks, Control Panel input/output, BIOS communication, hardware access, milestones, debugging, BIOS library services, SVN access, security programming, and a C language library. It supports DOS, Windows, EFI Shell and Linux operating systems. TDK provides a single- interface development environment based on an open source, which facilitates the development of native execution, quick implementation, easy customization and fast debugging to reduce the R&D cost.
Fifth-generation firmware kernel architecture offers accelerated project-base development
Chen concluded by noting that Phoenix CoreArchitect 5 (PAC5) works with all versions of Microsoft Visual Studio. One single toolkit can take control of the entire development process, making use of an interface design of intuitive icons to provide an easy and comprehensive firmware development and debugging environment. With a mouse-over pull-down menu, one can examine each and every module and development guideline for the entire project, and can also customize the setup in line with one's specific needs to accelerate the firmware development.
PCA5 also supports EDK 2.3.1, BLDK (Intel Boot Loader Development Kit) and Phoenix SCT BIOS, offering a comprehensive firmware development debugging environment for the entire process, from Edit, Configure, Build, Flash, to Debug.
Phoenix Technologies senior director of engineering, Terry Chen
Phoenix demonstrates its SecureCore Technology at the DTF 2012 embedded technology forum