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:
- Create a new
VxWorks Image Projectin Workbench based on the Montevina BSP using thePROFILE_BOOTAPPprofile. - 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 - Add the
INCLUDE_PC_CONSOLEcomponent to the kernel configuration for console display (there aren't any serial ports on the target) - Set the build spec to
default_romCompressand add a new build target namedvxWorks_romCompress.bin - Build the
vxWorks_romCompress.bintarget, which creates the corresponding file. - Add the PXE padding to the file:
cat $WIND_BASE/vxworks-6.6/target/config/montevina/pxeBoot.bin vxWorks_romCompress.bin > vxWorks_romCompress.pxe - Copy
vxWorks_romCompress.pxeto 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_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
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.