ChorusOS 4.0 Migration Guide

Chapter 4 ChorusOS 4.0 Kernel Changes

This chapter lists the changes and new features to the ChorusOS 4.0 kernel.

4.1 Boot Framework

The boot framework has been reimplemented in the ChorusOS 4.0 operating system. See the ChorusOS 4.0 Porting Guide for detailed information.

4.2 Boot Process

The ChorusOS 3.2 netboot utility, to load and boot ChorusOS system images, has been replaced by bootMonitor in the ChorusOS 4.0 operating system. Whereas netboot is only available for Intel platforms, and designed to be run from diskette, bootMonitor is available on all platforms and can be run from diskette or flash memory.

The file format of system images has changed from SVR5 in the ChorusOS 3.2 operating system to ELF in the ChorusOS 4.0 operating system. System images created in the ChorusOS 3.2 operating system are not designed to boot in the ChorusOS 4.0 operating system.

See the bootMonitor(1CC) man page, and the appropriate book in the ChorusOS 4.0 Target Family Documentation Collection for further information.

4.3 Processor Family Specific I/O

Processor family specific I/O routines, previously located in a CPU library in the ChorusOS 3.2 operating system, are now part of the kernel DKI module and bus drivers in the ChorusOS 4.0 operating system. Device drivers must not communicate directly with the hardware, but must communicate through the DKI and appropriate bus DDI interface using the *busIoOps.load_8(), *busIoOps.store_8() calls.

See the ChorusOS 4.0 Device Driver Framework Guide for detailed information.

4.4 System Calls

The following system calls have been removed from the ChorusOS 4.0 operating system:

Table 4-1 Obsolete System Calls

Obsolete ChorusOS 3.2 System Call 

Reason for removal 

Equivalent ChorusOS 4.0 System Call 

actorPersistency(), actorPersistCap(), actorRestartCapability()

The revised hot restart interface no longer relies on persistent actor support at kernel level. 

None. 

rgnPhysMap()

The ChorusOS 4.0 operating system does not support device memory on demand mapping in the user address space. 

None. 

sysBench()

Superseded. 

This call has been superseded by the sysTimerStartFreerun(2K) and sysTimerReadCounter(2K)system calls.

svProfHandler()

Superseded. 

This call has been superseded by the sysTimerStartPeriodic(2K) system call.

svMaskAll(), svUnmask(), svUnmaskAll()

Superseded. 

The supervisor calls have been superseded by the imsIntrMask_f(9DKI) and imsIntrUnmask_f(9DKI) system calls.

svSysIo()

The system console driver is implemented by the external dbgBsp component.

None. 

4.5 KBIM Replacement

The KBIM kernel module has been removed in the ChorusOS 4.0 operating system, taking with it the following services:

svDeferInt()
svIntrGetCurHdl()
svIntrSetMngt()
svIntrGetMngt()
svPicMaskAll()
svPicUnmask()
svPicTestIntr()
svUnDeferIntr()
svReleaseIntr()

Interrupt management is now handled by the kernel DKI module and the bus drivers. Device drivers must not communicate directly with the hardware, but must communicate through the DKI and appropriate bus DDI interface.

Table 4-2 lists ChorusOS 4.0 equivalent DKI and bus DDI interfaces for ChorusOS 3.2 KBIM services.

Table 4-2 Replacement DKI and bus DDI interfaces for KBIM services

ChorusOS 3.2 KBIM Service  

ChorusOS 4.0 DKI 

ChorusOS 4.0 Bus DDI Interface 

svIntrConnect()

svIntrAttach()

*BusOps.intr_attach()

svIntrDisconnect()

svIntrDetach()

*BusOps.intr_detach()

svPicMaskIntr()

N/A 

*BusIntrOps.mask()

svPicUnmaskIntr()

N/A 

*BusIntrOps.unmask()

See "Driver Kernel Interface Overview" in ChorusOS 4.0 Device Driver Framework Guide for more information.

4.6 PowerPC Board Configuration

There are differences in the way the PowerPC MVMExxxx board family is configured in the ChorusOS 4.0 and ChorusOS 3.2 operating system.

Here are the original settings for the ChorusOS 3.2 operating system:

Here are the settings you will need for the ChorusOS 4.0 operating system:

See the ChorusOS 4.0 PowerPC 60x/750 Target Family Guide for more information.