what version of the logibone do you have ? With a eMMC mounted kernel, you need to de-activate the GPMC. The easiest version to do this, is to disable auto-loading of the logi-bone cape by erasing its cape eeprom :
sudo i2cset -y 1 0x24 0x03 0xBF # only for logi-bone R1.1 sudo i2cset -y 1 0x24 0x01 0x00 # only for logi-bone R1.1 cat /dev/null > /sys/bus/i2c/drivers/at24/1-0054/eeprom
this will prevent the loading of the cape and thus the configuration of the GPMC. Second setp is to enable SPI 1.0 and i2C-1. The way to do this depends on your kernel version.
With i2C and SPI activated, the loader should work fine. You just need to make sure that your FPGA design will leav the GPMC pins floating to not interfer with the eMMC.
My question was : do you need the GPMC to communicate with the design inside the FPGA ? If not then there is no problem, you can use the eMMC and use SPI to transfer data to/from the FPGA. If you plan is to have the am3359 + NOR + FPGA, there is no problem either because the NOR will use the GPMC and the FPGA can also use the GPMC if it uses a different chip select. The problem with the eMMC is that it uses a specific controller (not GPMC) whose pins overlaps the GPMC pins.
Yes this should be possible because this how things are handlheld by the Kernel when the dvice tree configuration disable eMMC. On first version (without device tree) the eMMC was put in the reset state directly by the u-Boot bootloader with the line :
I2C and SPI are enough to configure the FPGA. The eeprom is used by device tree when booting linux, so no need to do anything for it. Basically your bare-metal program should only initialize i2c and spi and the apply the FPGA configuration flow.