xmc4xxx: Add XMC4800 support
Tested with EES-AA chip revision on Relax EtherCAT Kit. Change-Id: I457f24d242e0674d1f446c03a329efadff754d6a Signed-off-by: Andreas Färber <afaerber@suse.de> Reviewed-on: http://openocd.zylin.com/3132 Tested-by: jenkins Reviewed-by: Jeff Ciesielski <jeffciesielski@gmail.com> Reviewed-by: Paul Fertser <fercerpav@gmail.com>
This commit is contained in:
parent
e3a81e2e7b
commit
9693316463
|
@ -181,6 +181,7 @@
|
||||||
|
|
||||||
/* Flash controller configuration values */
|
/* Flash controller configuration values */
|
||||||
#define FLASH_ID_XMC4500 0xA2
|
#define FLASH_ID_XMC4500 0xA2
|
||||||
|
#define FLASH_ID_XMC4800 0x92
|
||||||
#define FLASH_ID_XMC4100_4200 0x9C
|
#define FLASH_ID_XMC4100_4200 0x9C
|
||||||
#define FLASH_ID_XMC4400 0x9F
|
#define FLASH_ID_XMC4400 0x9F
|
||||||
|
|
||||||
|
@ -251,6 +252,10 @@ static const unsigned int sector_capacity_12[12] = {
|
||||||
16, 16, 16, 16, 16, 16, 16, 16, 128, 256, 256, 256
|
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,
|
static int xmc4xxx_write_command_sequence(struct flash_bank *bank,
|
||||||
struct xmc4xxx_command_seq *seq,
|
struct xmc4xxx_command_seq *seq,
|
||||||
int seq_len)
|
int seq_len)
|
||||||
|
@ -285,6 +290,9 @@ static int xmc4xxx_load_bank_layout(struct flash_bank *bank)
|
||||||
case 12:
|
case 12:
|
||||||
capacity = sector_capacity_12;
|
capacity = sector_capacity_12;
|
||||||
break;
|
break;
|
||||||
|
case 16:
|
||||||
|
capacity = sector_capacity_16;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
LOG_ERROR("Unexpected number of sectors, %d\n",
|
LOG_ERROR("Unexpected number of sectors, %d\n",
|
||||||
bank->num_sectors);
|
bank->num_sectors);
|
||||||
|
@ -373,6 +381,10 @@ static int xmc4xxx_probe(struct flash_bank *bank)
|
||||||
bank->num_sectors = 12;
|
bank->num_sectors = 12;
|
||||||
LOG_DEBUG("XMC4xxx: XMC4500 detected.");
|
LOG_DEBUG("XMC4xxx: XMC4500 detected.");
|
||||||
break;
|
break;
|
||||||
|
case FLASH_ID_XMC4800:
|
||||||
|
bank->num_sectors = 16;
|
||||||
|
LOG_DEBUG("XMC4xxx: XMC4800 detected.");
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
LOG_ERROR("XMC4xxx: Unexpected flash ID. got %02" PRIx8,
|
LOG_ERROR("XMC4xxx: Unexpected flash ID. got %02" PRIx8,
|
||||||
flash_id);
|
flash_id);
|
||||||
|
@ -971,6 +983,15 @@ static int xmc4xxx_get_info_command(struct flash_bank *bank, char *buf, int buf_
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 0x800:
|
||||||
|
dev_str = "XMC4800";
|
||||||
|
|
||||||
|
switch (rev_id) {
|
||||||
|
case 0x1:
|
||||||
|
rev_str = "EES-AA";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
snprintf(buf, buf_size,
|
snprintf(buf, buf_size,
|
||||||
|
|
Loading…
Reference in New Issue