I have a technical problem with an application running on the zynq processor.
We are u2018playingu2019 with the zynq, using a zedboard and SDK14.6. I wanted to demonstrate, in principle, the monitoring and control of external hardware via a web server.
I downloaded the xapp1026 reference project for the Xilinx evaluation board and modified the project to work with the zedboard and PS only. This means that I can control 1 led and monitor 2 switches on the board u2013 good enough for my purposes.
I enabled the echo, TFTP and web servers. I ran the socket app from SDK with image.mfs loaded in memory as described in the PDF that comes with the download. All functionality worked as expected.
I now want to make a bootable application with the image.mfs file stored in flash and read into DDR at start up.
I created a boot image with fsbl.elf, socket_apps.elf and image.mfs ensuring that the offset for the image,mfs file in the boot image and library settings were the same. The file system image is programmed into flash at offset 0x300000.
In function init_platform_fs() the following calls read the image from flash to DDR memory and initialize the file system:
XQspiPs_LqspiRead(&Qspi, (u8*)MFS_BASE_ADDRESS, 0x300000, MFS_NUMBYTES);
mfs_init_genimage(MFS_NUMBYTES, (char*)MFS_BASE_ADDRESS, MFS_INIT_TYPE);
If the call to mfs_exists_file() in init_platform_fs() does not find the file index.html, program execution is terminated.
When the application is run via JTAG from SDK the web server works correctly.
When the same application is programmed into flash (boot image containing fsbl.elf, socket_apps.elf, image.mfs) the web server gives a page not found error.
The fact that program execution does not terminate on initialization indicates that the file system was successfully initialized at start up. The fact that the web server gives a page not found error indicates that the call to mfs_exists_file() in function do_http_get() does not find the file index.html.