我正在尝试构建一个可从 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_ADRS0x001080000x003080000
(请注意,Montevina BSP 确实附带了一个预构建的bootrom.pxe引导加载程序,我已经能够成功地进行 PXE 引导。不过,我需要向引导加载程序添加几个组件,并且真的更喜欢通过Workbench 环境,而不是旧的 config.h 方法。)
我还尝试镜像 Workbench 项目的内核配置中包含的组件,以尽可能接近地匹配旧版 config.h 设置,但没有成功。这些是添加的组件(除了这些组件的任何依赖项):
INCLUDE_PLB_BUSDRV_NVRAM_FILEINCLUDE_GENERICPHYDRV_INTCTLR_IOAPICINCLUDE_GEI825XX_VXB_ENDDRV_TIMER_IA_TIMESTAMPINCLUDE_MII_BUSDRV_INTCTLR_MPAPICDRV_SIO_NS16550INCLUDE_FEI8255X_VXB_ENDDRV_TIMER_LOAPICINCLUDE_SIO_UTILSVXBUS_TABLE_CONFIGINCLUDE_INTCTLR_LIBINCLUDE_DMA_SYSINCLUDE_PARAM_SYSINCLUDE_SW_FPP
所以,这就是我现在的位置。我猜问题出在上面的步骤 4-6 中,但我在文档中没有看到任何关于从 Workbench 中使引导加载程序 PXE 可引导的正确方法。