如何从 Workbench 构建 PXE 可启动引导加载程序?

发布于 2024-07-15 04:10:25 字数 2361 浏览 13 评论 0原文

我正在尝试构建一个可从 Workbench 进行 PXE 引导的 VxWorks 引导加载程序,但没有取得任何成功。 以下是我的环境的概要:

  • VxWorks 6.6 + 最新补丁
  • Workbench 3.0 + 最新补丁
  • Montevina BSP 版本 2.0/1

目标是 Dell Precision M4400 笔记本电脑。 以下是我一直在做的事情,但没有成功:

  1. 使用 PROFILE_BOOTAPP 配置文件在 Workbench 中基于 Montevina BSP 创建一个新的 VxWorks 图像项目
  2. 将以下组件添加到内核配置中(否则构建失败):
    - INCLUDE_TIMER_SYS
    - INCLUDE_PCI_BUS
    - INCLUDE_PCI_OLD_CONFIG_ROUTINES >
    - INCLUDE_PENTIUM_PCI
  3. INCLUDE_PC_CONSOLE 组件添加到内核配置中以进行控制台显示(目标上没有任何串行端口)
  4. 将构建规范设置为 default_romCompress 并添加名为 vxWorks_romCompress.bin 的新构建目标
  5. 构建 vxWorks_romCompress.bin 目标,这将创建相应的文件。
  6. 将 PXE 填充添加到文件中:
    cat $WIND_BASE/vxworks-6.6/target/config/montevina/pxeBoot.bin vxWorks_romCompress.bin > vxWorks_romCompress.pxe
  7. vxWorks_romCompress.pxe 复制到我的 TFTP 服务器的适当位置,并从我的目标执行 PXE 引导。

此时,目标已成功从 TFTP 服务器下载文件,但停滞在那里且没有任何输出。 控制台上没有任何显示。

RAM_HIGH_ADRSRAM_LOW_ADRS 在 Workbench 项目中似乎设置正确(它们与位于 0x00108000 的旧版 config.h 文件的设置相匹配,并且分别为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< /code>

所以,这就是我现在所处的位置。 我猜问题出在上面的步骤 4-6 中,但我在文档中没有看到任何有关 Workbench 中使引导加载程序可 PXE 引导的正确方法的内容。

I'm trying to build a VxWorks boot loader that is PXE-bootable from Workbench, but not having any success. Here is a run-down of my environment:

  • VxWorks 6.6 + latest patches
  • Workbench 3.0 + latest patches
  • Montevina BSP release 2.0/1

The target is a Dell Precision M4400 laptop. Here's what I've been doing, without success:

  1. Create a new VxWorks Image Project in Workbench based on the Montevina BSP using the PROFILE_BOOTAPP profile.
  2. Add the following components to the kernel configuration (the build fails otherwise):
    - INCLUDE_TIMER_SYS
    - INCLUDE_PCI_BUS
    - INCLUDE_PCI_OLD_CONFIG_ROUTINES
    - INCLUDE_PENTIUM_PCI
  3. Add the INCLUDE_PC_CONSOLE component to the kernel configuration for console display (there aren't any serial ports on the target)
  4. Set the build spec to default_romCompress and add a new build target named vxWorks_romCompress.bin
  5. Build the vxWorks_romCompress.bin target, which creates the corresponding file.
  6. Add the PXE padding to the file:
    cat $WIND_BASE/vxworks-6.6/target/config/montevina/pxeBoot.bin vxWorks_romCompress.bin > vxWorks_romCompress.pxe
  7. Copy vxWorks_romCompress.pxe to the appropriate location for my TFTP server, and do a PXE boot from my target.

At this point the target successfully downloads the file from the TFTP server, but stalls there with no output. There is nothing displayed on the console.

The RAM_HIGH_ADRS and RAM_LOW_ADRS do appear to be set correctly in the Workbench project (they match the settings of the legacy config.h file at 0x00108000 and 0x003080000, respectively).

(Note that the Montevina BSP does ship with a pre-built bootrom.pxe boot loader, which I have been able to PXE-boot successfully. I'm needing to add several components to the boot loader, though, and would really prefer to do this via the Workbench environment, rather than the legacy config.h method.)

I've also tried mirroring the components included in the Workbench project's kernel configuration to match the legacy config.h settings as closely as possibly, without success. These are the components that were added (in addition to any dependencies of these):

  • 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

So, that's where I am right now. I'm guessing the problem is in steps 4-6 above, but I don't see anything in the docs as to the proper way from within Workbench to make the boot loader PXE-bootable.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

地狱即天堂 2024-07-22 04:10:25

Wind River联系我说目前不支持这个。

Wind River got in touch with me and said this is not supported at present.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文