If I attempt to compile FS-Boot for MicroBlaze-based PetaLinux projects, the compilation fails with a message similar to the following:
../src/fs-boot.h:23:25: fatal error: auto-config.h: No such file or directory
make: *** [src/fs-boot.o] Error 1
This error occurs because SDK is not automatically configuring the application to use a PetaLinux-based BSP. The PetaLinux BSP provides knowledge to the application about PetaLinux-specific details of the system.
The easiest way to get started rectifying this scenario is to delete the existing instance of FS-Boot (and its existing BSP) since it is not compiling anyway. Make sure to check the box to delete the files on disk.
Next, use File -> New -> Application Project as is normal for the new application flow. On the first panel of the Application Project wizard, change the OS platform to "petalinux" for FS-Boot instead of the default value of standalone. This change brings in things like the auto-config.h (as well as some other resources).
Once the application is created, there may still be some errors about BSP options not having proper mapping to the underlying hardware. For example, there may be messages, such as ERROR:EDK petalinux No timer is specified. The message may vary depending on the mix of peripherals in the system, but the resolution is the same. Open the BSP settings by right-clicking the BSP application and choosing Board Support Package Settings, then click on petalinux under the Overview section.
In the value column, make sure to select the appropriate peripheral for the needed options in the name column. Ensure that hardware is described for the following options: stdout, stdin, main_memory, flash_memory, and timer. If Ethernet is used in the system, specify the hardware for this as well.
Note: This screenshot is for reference only; the specific hardware can vary based on your system.
After the BSP is updated, there may also be messages about portions of the design not fitting in their specified regions (e.g., "section .stack will not fit in region"). This can be resolved by right-clicking on the fs-boot application and choosing Generate Linker Script.
In the linker script GUI, look in the upper-right of the GUI and make sure that Code, Data, Heap, and Stack are located in an appropriate storage medium. If using block RAM as a storage medium, it may be necessary to modify the XPS hardware definition to increase the size of the block RAM to accommodate the size of the section in question.