/* Flash controller configuration values */
#define FLASH_ID_XMC4500 0xA2
+#define FLASH_ID_XMC4800 0x92
#define FLASH_ID_XMC4100_4200 0x9C
#define FLASH_ID_XMC4400 0x9F
16, 16, 16, 16, 16, 16, 16, 16, 128, 256, 256, 256
};
+static const unsigned int sector_capacity_16[16] = {
+ 16, 16, 16, 16, 16, 16, 16, 16, 128, 256, 256, 256, 256, 256, 256, 256
+};
+
static int xmc4xxx_write_command_sequence(struct flash_bank *bank,
struct xmc4xxx_command_seq *seq,
int seq_len)
case 12:
capacity = sector_capacity_12;
break;
+ case 16:
+ capacity = sector_capacity_16;
+ break;
default:
LOG_ERROR("Unexpected number of sectors, %d\n",
bank->num_sectors);
bank->num_sectors = 12;
LOG_DEBUG("XMC4xxx: XMC4500 detected.");
break;
+ case FLASH_ID_XMC4800:
+ bank->num_sectors = 16;
+ LOG_DEBUG("XMC4xxx: XMC4800 detected.");
+ break;
default:
LOG_ERROR("XMC4xxx: Unexpected flash ID. got %02" PRIx8,
flash_id);
break;
}
break;
+ case 0x800:
+ dev_str = "XMC4800";
+
+ switch (rev_id) {
+ case 0x1:
+ rev_str = "EES-AA";
+ break;
+ }
+ break;
default:
snprintf(buf, buf_size,