我正在尝试构建一个可从 Workbench 进行 PXE 引导的 VxWorks 引导加载程序,但没有任何成功。这是我的环境的一个破败:
- VxWorks 6.6 + 最新补丁
- Workbench 3.0 + 最新补丁
- 蒙特维纳 BSP 版本 2.0/1
目标是戴尔 Precision M4400 笔记本电脑。这是我一直在做的事情,但没有成功:
VxWorks Image Project
使用配置文件在基于 Montevina BSP 的 Workbench 中创建一个新的PROFILE_BOOTAPP
。- 将以下组件添加到内核配置(否则构建失败):
-INCLUDE_TIMER_SYS
-INCLUDE_PCI_BUS
-INCLUDE_PCI_OLD_CONFIG_ROUTINES
-INCLUDE_PENTIUM_PCI
- 将
INCLUDE_PC_CONSOLE
组件添加到内核配置中以进行控制台显示(目标上没有任何串行端口) - 将构建规范设置为
default_romCompress
并添加一个名为的新构建目标vxWorks_romCompress.bin
- 构建
vxWorks_romCompress.bin
目标,这将创建相应的文件。 - 将 PXE 填充添加到文件中:
cat $WIND_BASE/vxworks-6.6/target/config/montevina/pxeBoot.bin vxWorks_romCompress.bin > vxWorks_romCompress.pxe
- 复制
vxWorks_romCompress.pxe
到我的 TFTP 服务器的适当位置,然后从我的目标执行 PXE 引导。
此时,目标成功地从 TFTP 服务器下载文件,但停在那里没有输出。控制台上没有显示任何内容。
和似乎在 Workbench 项目中设置正确(它们分别与旧 config.h 文件的设置匹配和RAM_HIGH_ADRS
)。RAM_LOW_ADRS
0x00108000
0x003080000
(请注意,Montevina BSP 确实附带了一个预构建的bootrom.pxe
引导加载程序,我已经能够成功地进行 PXE 引导。不过,我需要向引导加载程序添加几个组件,并且真的更喜欢通过Workbench 环境,而不是旧的 config.h 方法。)
我还尝试镜像 Workbench 项目的内核配置中包含的组件,以尽可能接近地匹配旧版 config.h 设置,但没有成功。这些是添加的组件(除了这些组件的任何依赖项):
INCLUDE_PLB_BUS
DRV_NVRAM_FILE
INCLUDE_GENERICPHY
DRV_INTCTLR_IOAPIC
INCLUDE_GEI825XX_VXB_END
DRV_TIMER_IA_TIMESTAMP
INCLUDE_MII_BUS
DRV_INTCTLR_MPAPIC
DRV_SIO_NS16550
INCLUDE_FEI8255X_VXB_END
DRV_TIMER_LOAPIC
INCLUDE_SIO_UTILS
VXBUS_TABLE_CONFIG
INCLUDE_INTCTLR_LIB
INCLUDE_DMA_SYS
INCLUDE_PARAM_SYS
INCLUDE_SW_FPP
所以,这就是我现在的位置。我猜问题出在上面的步骤 4-6 中,但我在文档中没有看到任何关于从 Workbench 中使引导加载程序 PXE 可引导的正确方法。