Here there is my initialization, but is not different than your...
fd_epcs = alt_flash_open_dev(EPCS_FLASH_CONTROLLER_NAME);
if (fd_epcs > 0)
{
alt_epcs_flash_get_info(fd_epcs, &flashInfo_epcs, &number_of_regions);
if (number_of_regions && (flashInfo_epcs->offset == 0))
{
printf("EPCS_FLASH block_size=%d region_size=%d\n", flashInfo_epcs->block_size, flashInfo_epcs->region_size);
}
alt_flash_close_dev(fd_epcs);
}
I suggest you to debug your device at startup placing some breakpoints within alt_epcs_flash_init function called within altera_sys_init by means of ALTERA_AVALON_EPCS_FLASH_CONTROLLER_INIT macro. I took a brief look to alt_epcs_flash_query function and I suppose that there shouldn't be any different behaviour between my EPCS flash device and yours. Within that function is only retrieved the size of memory device and corresponding region_size, number_of_blocks, and block_size.
My doubt is only that the kind of you memory (page erasable PE) is not fully supported by that drivers (is only a supposition because I didn't verified it).
Ciao