VxWorks6.9 arm体系架构支持
从vxworks_architecture_supplement_6.9.pdf 2.1描述来看,vxWorks6.9只能支持到armv7a 4核,而且仅仅支持一个cluster里面4个核,核ID从0-3.
飞腾CPU核的组织结构
以D2000 CPU为例,CPU有四个Cluster,每个Cluster2个核,而且是ARMV.8架构。
vxWorks6.9代码实现
为了在vxWorks6.9这个只支持ARMv7A的体系架构下支持飞腾CPU,我们有两个重要的工作要做:
1.在启动代码做64位EL2模式32位EL1的切换,当然这部分工作也可以通过UBOOT来实现,uboot提供了bootvx32的命令
2. 操作系统用到的CPU逻辑ID和MPIDR的关系
主要是 _ARM_CPU_INDEX_GET
3.如果启动核不是0核,比如E2000,从0x200核启动还要做其他的修改
参考代码
具体代码实现可以参考https://gitee.com/vxworks-phy相应BSP仓库的BSP代码的sysAlib.s和target下相关头文件和源码文件的修改