Forum Discussion
Altera_Forum
Honored Contributor
16 years agoThanks to MSchmitt I made a bit of progress with his suggestion.
I can now do alt_flash_open_dev(CFI_FLASH_NAME). But I still can't access the QUERY bytes. Here's a simplified version of my code ...# define FLASH_CMD_BUFFERED_PROGRAM_SETUP 0xE8# define FLASH_CMD_BUFFERED_PROGRAM_CONFIRM 0xD0# define FLASH_CMD_BLOCK_ERASE_SETUP 0x20# define FLASH_CMD_BLOCK_ERASE_CONFIRM 0xD0# define FLASH_CMD_BLOCK_LOCK_SETUP 0x60# define FLASH_CMD_BLOCK_LOCK 0x01# define FLASH_CMD_BLOCK_UNLOCK 0xD0# define FLASH_CMD_CLEAR_STATUS 0x50# define FLASH_CMD_READ_DEVICE_ID 0x90# define FLASH_CMD_RESTORE_READ_MODE 0xFF# define FLASH_CMD_READ_STATUS 0x70# define FLASH_CMD_READ_QUERY 0x98 int main() { int i; alt_putstr("Nios II welcomes you to Spyder Q module !\n"); alt_putstr("\n"); IOWR_16DIRECT(CFI_FLASH_BASE, 0x55, FLASH_CMD_READ_QUERY); for (i=0x00; i<=0x1f; i+=2) { alt_printf("QRY=x%x ", IORD_16DIRECT(CFI_FLASH_BASE, i)); } alt_putstr("\n==\n"); IOWR_16DIRECT(CFI_FLASH_BASE, 0x0, FLASH_CMD_READ_DEVICE_ID); for (i=0x0; i<=0x1F; i+=2) { alt_printf("DEV=x%x ", IORD_16DIRECT(CFI_FLASH_BASE, i)); } } Where i expect the Query data to be printed, I get exactly the same data as for the FLASH_CMD_READ_DEVICE_ID. The FLASH_CMD_READ_DEVICE_ID data agrees with the spec for my device. ideas?