Add support for Marvell 88F6282.

Sponsored by:	Plat'Home, Co.,Ltd.
This commit is contained in:
Hiroki Sato 2012-07-28 21:56:24 +00:00
parent 5e5c0e7980
commit c8953e1273
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=238873
9 changed files with 27 additions and 5 deletions

View File

@ -251,7 +251,9 @@ cpu_extra_feat(void)
uint32_t ef = 0;
soc_id(&dev, &rev);
if (dev == MV_DEV_88F6281 || dev == MV_DEV_MV78100_Z0 ||
if (dev == MV_DEV_88F6281 ||
dev == MV_DEV_88F6282 ||
dev == MV_DEV_MV78100_Z0 ||
dev == MV_DEV_MV78100)
__asm __volatile("mrc p15, 1, %0, c15, c1, 0" : "=r" (ef));
else if (dev == MV_DEV_88F5182 || dev == MV_DEV_88F5281)
@ -351,6 +353,13 @@ soc_identify(void)
else if (r == 3)
rev = "A1";
break;
case MV_DEV_88F6282:
dev = "Marvell 88F6282";
if (r == 0)
rev = "A0";
else if (r == 1)
rev = "A1";
break;
case MV_DEV_MV78100_Z0:
dev = "Marvell MV78100 Z0";
break;
@ -536,6 +545,7 @@ win_cpu_can_remap(int i)
if ((dev == MV_DEV_88F5182 && i < 2) ||
(dev == MV_DEV_88F5281 && i < 4) ||
(dev == MV_DEV_88F6281 && i < 4) ||
(dev == MV_DEV_88F6282 && i < 4) ||
(dev == MV_DEV_MV78100 && i < 8) ||
(dev == MV_DEV_MV78100_Z0 && i < 8))
return (1);
@ -1320,7 +1330,8 @@ xor_max_eng(void)
uint32_t dev, rev;
soc_id(&dev, &rev);
if (dev == MV_DEV_88F6281)
if (dev == MV_DEV_88F6281 ||
dev == MV_DEV_88F6282)
return (2);
else if ((dev == MV_DEV_MV78100) || (dev == MV_DEV_MV78100_Z0))
return (1);

View File

@ -155,7 +155,8 @@ mv_gpio_attach(device_t dev)
sc->pin_num = 32;
sc->irq_num = 4;
} else if (dev_id == MV_DEV_88F6281) {
} else if (dev_id == MV_DEV_88F6281 ||
dev_id == MV_DEV_88F6282) {
sc->pin_num = 50;
sc->irq_num = 7;

View File

@ -105,7 +105,9 @@ mv_ic_attach(device_t dev)
sc->ic_high_regs = 0;
sc->ic_error_regs = 0;
if (dev_id == MV_DEV_88F6281 || dev_id == MV_DEV_MV78100 ||
if (dev_id == MV_DEV_88F6281 ||
dev_id == MV_DEV_88F6282 ||
dev_id == MV_DEV_MV78100 ||
dev_id == MV_DEV_MV78100_Z0)
sc->ic_high_regs = 1;

View File

@ -74,6 +74,8 @@ get_tclk(void)
soc_id(&dev, &rev);
if (dev == MV_DEV_88F6281 && (rev == 2 || rev == 3))
return (TCLK_200MHZ);
if (dev == MV_DEV_88F6282)
return (TCLK_200MHZ);
return (TCLK_166MHZ);
}

View File

@ -197,6 +197,7 @@ sata_probe(device_t dev)
sc->sc_edma_qlen = 128;
break;
case MV_DEV_88F6281:
case MV_DEV_88F6282:
case MV_DEV_MV78100:
case MV_DEV_MV78100_Z0:
sc->sc_version = 2;

View File

@ -326,6 +326,7 @@
#define MV_DEV_88F5182 0x5182
#define MV_DEV_88F5281 0x5281
#define MV_DEV_88F6281 0x6281
#define MV_DEV_88F6282 0x6282
#define MV_DEV_MV78100_Z0 0x6381
#define MV_DEV_MV78100 0x7810

View File

@ -1005,6 +1005,7 @@ cesa_attach(device_t dev)
switch (d) {
case MV_DEV_88F6281:
case MV_DEV_88F6282:
sc->sc_tperr = 0;
break;
case MV_DEV_MV78100:

View File

@ -258,7 +258,9 @@ mge_ver_params(struct mge_softc *sc)
uint32_t d, r;
soc_id(&d, &r);
if (d == MV_DEV_88F6281 || d == MV_DEV_MV78100 ||
if (d == MV_DEV_88F6281 ||
d == MV_DEV_88F6282 ||
d == MV_DEV_MV78100 ||
d == MV_DEV_MV78100_Z0) {
sc->mge_ver = 2;
sc->mge_mtu = 0x4e8;

View File

@ -63,6 +63,7 @@ static struct {
} mvs_ids[] = {
{MV_DEV_88F5182, 0x00, "Marvell 88F5182", 2, MVS_Q_GENIIE|MVS_Q_SOC},
{MV_DEV_88F6281, 0x00, "Marvell 88F6281", 2, MVS_Q_GENIIE|MVS_Q_SOC},
{MV_DEV_88F6282, 0x00, "Marvell 88F6282", 2, MVS_Q_GENIIE|MVS_Q_SOC},
{MV_DEV_MV78100, 0x00, "Marvell MV78100", 2, MVS_Q_GENIIE|MVS_Q_SOC},
{MV_DEV_MV78100_Z0, 0x00,"Marvell MV78100", 2, MVS_Q_GENIIE|MVS_Q_SOC},
{0, 0x00, NULL, 0, 0}