- Identify more devices for OMAP4 SoC (up to OMAP4470)

- Whitespace fixes
This commit is contained in:
Oleksandr Tymoshenko 2013-01-07 23:30:53 +00:00
parent 43e35466de
commit 5c79e1dd7d
2 changed files with 94 additions and 34 deletions

View File

@ -129,27 +129,75 @@ omap4_get_revision(void)
switch (hawkeye) {
case 0xB852:
if (revision == 0)
switch (revision) {
case 0:
chip_revision = OMAP4430_REV_ES1_0;
else
chip_revision = OMAP4430_REV_ES2_0;
break;
case 0xB95C:
if (revision == 3)
break;
case 1:
chip_revision = OMAP4430_REV_ES2_1;
else if (revision == 4)
chip_revision = OMAP4430_REV_ES2_2;
else
chip_revision = OMAP4430_REV_ES2_3;
break;
default:
chip_revision = OMAP4430_REV_UNKNOWN;
break;
}
break;
case 0xB95C:
switch (revision) {
case 3:
chip_revision = OMAP4430_REV_ES2_1;
break;
case 4:
chip_revision = OMAP4430_REV_ES2_2;
break;
case 6:
chip_revision = OMAP4430_REV_ES2_3;
break;
default:
chip_revision = OMAP4430_REV_UNKNOWN;
break;
}
break;
case 0xB94E:
switch (revision) {
case 0:
chip_revision = OMAP4460_REV_ES1_0;
break;
case 2:
chip_revision = OMAP4460_REV_ES1_1;
break;
default:
chip_revision = OMAP4460_REV_UNKNOWN;
break;
}
break;
case 0xB975:
switch (revision) {
case 0:
chip_revision = OMAP4470_REV_ES1_0;
break;
default:
chip_revision = OMAP4470_REV_UNKNOWN;
break;
}
break;
default:
/* Default to the latest revision if we can't determine type */
chip_revision = OMAP4430_REV_ES2_3;
chip_revision = OMAP_UNKNOWN_DEV;
break;
}
printf("Texas Instruments OMAP%04x Processor, Revision ES%u.%u\n",
OMAP_REV_DEVICE(chip_revision), OMAP_REV_MAJOR(chip_revision),
OMAP_REV_MINOR(chip_revision));
if (chip_revision != OMAP_UNKNOWN_DEV) {
printf("Texas Instruments OMAP%04x Processor, Revision ES%u.%u\n",
OMAP_REV_DEVICE(chip_revision), OMAP_REV_MAJOR(chip_revision),
OMAP_REV_MINOR(chip_revision));
}
else {
printf("Texas Instruments unknown OMAP chip: %04x, rev %d\n",
hawkeye, revision);
}
}
/**

View File

@ -30,34 +30,46 @@
#ifndef _TI_CPUID_H_
#define _TI_CPUID_H_
#define OMAP_MAKEREV(d, a, b, c) \
#define OMAP_MAKEREV(d, a, b, c) \
(uint32_t)(((d) << 16) | (((a) & 0xf) << 8) | (((b) & 0xf) << 4) | ((c) & 0xf))
#define OMAP_REV_DEVICE(x) (((x) >> 16) & 0xffff)
#define OMAP_REV_MAJOR(x) (((x) >> 8) & 0xf)
#define OMAP_REV_MINOR(x) (((x) >> 4) & 0xf)
#define OMAP_REV_MINOR_MINOR(x) (((x) >> 0) & 0xf)
#define OMAP_REV_DEVICE(x) (((x) >> 16) & 0xffff)
#define OMAP_REV_MAJOR(x) (((x) >> 8) & 0xf)
#define OMAP_REV_MINOR(x) (((x) >> 4) & 0xf)
#define OMAP_REV_MINOR_MINOR(x) (((x) >> 0) & 0xf)
#define OMAP3350_DEV 0x3530
#define OMAP3350_REV_ES1_0 OMAP_MAKEREV(OMAP3350_DEV, 1, 0, 0)
#define OMAP3530_REV_ES2_0 OMAP_MAKEREV(OMAP3350_DEV, 2, 0, 0)
#define OMAP3530_REV_ES2_1 OMAP_MAKEREV(OMAP3350_DEV, 2, 1, 0)
#define OMAP3530_REV_ES3_0 OMAP_MAKEREV(OMAP3350_DEV, 3, 0, 0)
#define OMAP3530_REV_ES3_1 OMAP_MAKEREV(OMAP3350_DEV, 3, 1, 0)
#define OMAP3530_REV_ES3_1_2 OMAP_MAKEREV(OMAP3350_DEV, 3, 1, 2)
#define OMAP3350_REV_ES1_0 OMAP_MAKEREV(OMAP3350_DEV, 1, 0, 0)
#define OMAP3530_REV_ES2_0 OMAP_MAKEREV(OMAP3350_DEV, 2, 0, 0)
#define OMAP3530_REV_ES2_1 OMAP_MAKEREV(OMAP3350_DEV, 2, 1, 0)
#define OMAP3530_REV_ES3_0 OMAP_MAKEREV(OMAP3350_DEV, 3, 0, 0)
#define OMAP3530_REV_ES3_1 OMAP_MAKEREV(OMAP3350_DEV, 3, 1, 0)
#define OMAP3530_REV_ES3_1_2 OMAP_MAKEREV(OMAP3350_DEV, 3, 1, 2)
#define OMAP4430_DEV 0x4430
#define OMAP4430_REV_ES1_0 OMAP_MAKEREV(OMAP4430_DEV, 1, 0, 0)
#define OMAP4430_REV_ES2_0 OMAP_MAKEREV(OMAP4430_DEV, 2, 0, 0)
#define OMAP4430_REV_ES2_1 OMAP_MAKEREV(OMAP4430_DEV, 2, 1, 0)
#define OMAP4430_REV_ES2_2 OMAP_MAKEREV(OMAP4430_DEV, 2, 2, 0)
#define OMAP4430_REV_ES2_3 OMAP_MAKEREV(OMAP4430_DEV, 2, 3, 0)
#define OMAP4430_REV_ES1_0 OMAP_MAKEREV(OMAP4430_DEV, 1, 0, 0)
#define OMAP4430_REV_ES2_0 OMAP_MAKEREV(OMAP4430_DEV, 2, 0, 0)
#define OMAP4430_REV_ES2_1 OMAP_MAKEREV(OMAP4430_DEV, 2, 1, 0)
#define OMAP4430_REV_ES2_2 OMAP_MAKEREV(OMAP4430_DEV, 2, 2, 0)
#define OMAP4430_REV_ES2_3 OMAP_MAKEREV(OMAP4430_DEV, 2, 3, 0)
#define OMAP4430_REV_UNKNOWN OMAP_MAKEREV(OMAP4430_DEV, 9, 9, 9)
#define AM335X_DEVREV(x) ((x) >> 28)
#define OMAP4460_DEV 0x4460
#define OMAP4460_REV_ES1_0 OMAP_MAKEREV(OMAP4460_DEV, 1, 0, 0)
#define OMAP4460_REV_ES1_1 OMAP_MAKEREV(OMAP4460_DEV, 1, 1, 0)
#define OMAP4460_REV_UNKNOWN OMAP_MAKEREV(OMAP4460_DEV, 9, 9, 9)
#define CHIP_OMAP_3 0
#define CHIP_OMAP_4 1
#define CHIP_AM335X 2
#define OMAP4470_DEV 0x4470
#define OMAP4470_REV_ES1_0 OMAP_MAKEREV(OMAP4470_DEV, 1, 0, 0)
#define OMAP4470_REV_UNKNOWN OMAP_MAKEREV(OMAP4470_DEV, 9, 9, 9)
#define OMAP_UNKNOWN_DEV OMAP_MAKEREV(0x9999, 9, 9, 9)
#define AM335X_DEVREV(x) ((x) >> 28)
#define CHIP_OMAP_3 0
#define CHIP_OMAP_4 1
#define CHIP_AM335X 2
static __inline int ti_chip(void)
{