-----Original Message-----
From: Ernest L. Williams Jr. [mailto:[email protected]]
Sent: Wednesday, September 07, 2011 3:06 PM
To: Kim, Kukhee
Cc: Williams Jr., Ernest L.; Jeff Hill; 'Andrew Johnson'
Subject: EPICS and SMP: target board ==> ivme7210 ==> OS ==> vxWorks
Hi Kukhee,
Again, excellent work at the codeathon. :)
The INTEL board is currently booting just a Uniprocessor (UP) vxWorks
Kernel
Located here:
[ernesto@lcls-dev2 ioc]$ cd
/nfs/slac/g/lcls/build/vxWorks/ioc/vxWorks6.8-ivme7210-kernel
I have tested the above kernel with Andrew's regression tests for EPICS
BASE R3-14-12
Some notes and status on vxWorks-smp
I have created a new project:
[ernesto@lcls-dev2 ioc]$ eval
`/afs/slac/package/vxworks/devel/6.8/wrenv.sh -p vxworks-6.8 -o
print_env -f sh`
[ernesto@lcls-dev2 ioc]$ cd /nfs/slac/g/lcls/build/vxWorks/ioc
[ernesto@lcls-dev2 ioc]$ vxprj create -smp ivme7210 gnu
vxWorks6.8-ivme7210-kernel-smp
Looks like we need an OSI layer for spinlocks.
Jeff, will it be quick for you to give us an implementation?
Then we would test on vxWorks as well as linux.
Some vxWorks related notes:
**************************************************************************
**********************
CAUTION: VxWorks kernel applications must be built specifically for the
type of
system on which they will run. Applications built for uniprocessor (UP)
VxWorks,
for symmetric multiprocessor (SMP) VxWorks, or for VxWorks systems based
on
variant libraries created with a VxWorks source build (VSB) project
(either UP or
SMP), are not binary compatible. Note that the loader rejects a kernel
module if it
is not compatible with the system into which it is loaded, prints an
error message
to the console, and sets errno to S_loadLib_INCOMPATIBLE_MODULE
**************************************************************************
************************
**************************************************************************
***********************
To build a kernel application for use with a VxWorks SMP kernel using
default
libraries, use the following command syntax or add the variable
assignments to the
application’s makefile:
make CPU=cpuType TOOL= toolchain VXBUILD=SMP
The VXBUILD=SMP ensures that the application will be linked against the
default
SMP libraries.
**************************************************************************
**************************
The above note required me to create a new EPICS CROSS target:
So, in "base-R3-14-12/configure/os"
CONFIG.Common.vxWorks-pentium4-smp
CONFIG.Common.vxWorks-pentium4-smp-debug
===== CONFIG.Common.vxWorks-pentium4-smp ==========
# CONFIG.Common.vxWorks-pentium4-smp
#
# Revision-Id:
# This file is maintained by the build community.
#
# Definitions for vxWorks-pentium4-smp target archs
# Sites may override these definitions in
CONFIG_SITE.Common.vxWorks-pentium4
#-------------------------------------------------------
# Include definitions common to all vxWorks target archs
include $(CONFIG)/os/CONFIG.Common.vxWorksCommon
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = pentium
ARCH_CLASS = pentium
# Add vxWorks build type to link/use smp libraries.
ARCH_DEP_CPPFLAGS = -DCPU=PENTIUM4 -D_X86_ -DVXBUILD=SMP
ARCH_DEP_CFLAGS += -mtune=pentium4 -march=pentium4
ARCH_DEP_CXXFLAGS += -x 'c++'
ARCH_DEP_CFLAGS += -fno-defer-pop
==============================================
Kukhee, EPICS BASE is sitting here in the teststand area:
/afs/slac/g/lcls/epics/TestStand/base/base-R3-14-12
The application is sitting here:
/afs/slac/g/lcls/epics/TestStand/iocTop/R3-14-12/pentium4/MAIN_TRUNK
Cheers,
Ernest