The following DDIs have been changed:
An extended version of the Common Bus DDI is defined (BUS_VERSION_1). Most of the extensions relate to the device driver hardening framework.
An extended version of the PCI Bus DDI is defined (PCI_VERSION_1). Most of the extensions are related to the device driver hardening framework.
The main modifications to this DDI have been made in the device properties.
The NVRAM layout configuration has changed as follows:
It is now described by the node property NVRAM_PROP_LAYOUT. The data associated with this property is an array of NvramPropChunk.
Each chunk in NVRAM now has a specific ID (1..254).
There are also two special IDs, NVRAM_KERNEL and NVRAM_RESERVED. NVRAM_KERNEL describes a section reserved for microkernel data, such as boot information. The NVRAM_RESERVED sections should never be written to or read but can be used to protect sections used by firmware.
In addition, the M48txx driver has been enhanced to include the new property M48TXX_PROP_REG_OFF. This property is used to define device register offset dynamically. The enhancement to the M48txx driver includes support for the m48t37v chip.
The Flash DDI has been redesigned to include generic drivers. (Certain parts of old drivers are board-specific).
While there is no change to the existing Flash DDI, the redesign provides the new Flash Control DDI (see "Flash Control DDI") which allows communication between generic and specific drivers.
Version 5.0 of the ChorusOS operating system provides an extended version of the Ethernet Device DDI (ETHER_VERSION_1 ). The extended DDI enables the driver to avoid making an extra copy of the frame buffer to or from the device DMA buffer. It is therefore possible to send and receive ethernet frames directly to and from the client buffers.
The extended DDI also supports TCP/UDP hardware checksum on reception and transmission.