diff options
author | marcel <marcel@FreeBSD.org> | 2011-05-29 00:27:42 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2011-05-29 00:27:42 +0000 |
commit | af9d68cf3f91b6de6ebb9809b9ee7dad76ba3bd9 (patch) | |
tree | f2a47b93f605065dfbbed9aaaf96d7f4c621c7be | |
parent | 123be71bc417a49fbb7081cf7c4e17deca04e95d (diff) | |
download | FreeBSD-src-af9d68cf3f91b6de6ebb9809b9ee7dad76ba3bd9.zip FreeBSD-src-af9d68cf3f91b6de6ebb9809b9ee7dad76ba3bd9.tar.gz |
o Add system versions for the P4040(E) and P4080(E).
o In bare_probe(), change the logic that determines the maximum
number of processors/cores into a switch statement and take
advantage of the fact that bit 3 of the SVR value indicates
whether we're running on a security enabled version. Since we
don't care about that here, mask the bit. All -E versions
are taken care of automatically.
-rw-r--r-- | sys/powerpc/booke/platform_bare.c | 19 | ||||
-rw-r--r-- | sys/powerpc/include/spr.h | 4 |
2 files changed, 18 insertions, 5 deletions
diff --git a/sys/powerpc/booke/platform_bare.c b/sys/powerpc/booke/platform_bare.c index ddf99bb..90c73e0 100644 --- a/sys/powerpc/booke/platform_bare.c +++ b/sys/powerpc/booke/platform_bare.c @@ -104,13 +104,22 @@ bare_probe(platform_t plat) int i, law_max, tgt; ver = SVR_VER(mfspr(SPR_SVR)); - - if (ver == SVR_MPC8572E || ver == SVR_MPC8572 || - ver == SVR_P1020E || ver == SVR_P1020 || - ver == SVR_P2020E || ver == SVR_P2020) + switch (ver & ~0x0008) { /* Mask Security Enabled bit */ + case SVR_P4080: + maxcpu = 8; + break; + case SVR_P4040: + maxcpu = 4; + break; + case SVR_MPC8572: + case SVR_P1020: + case SVR_P2020: maxcpu = 2; - else + break; + default: maxcpu = 1; + break; + } /* * Clear local access windows. Skip DRAM entries, so we don't shoot diff --git a/sys/powerpc/include/spr.h b/sys/powerpc/include/spr.h index f08f614..4f675c3 100644 --- a/sys/powerpc/include/spr.h +++ b/sys/powerpc/include/spr.h @@ -662,6 +662,10 @@ #define SVR_P2010E 0x80eb #define SVR_P2020 0x80e2 #define SVR_P2020E 0x80ea +#define SVR_P4040 0x8200 +#define SVR_P4040E 0x8208 +#define SVR_P4080 0x8201 +#define SVR_P4080E 0x8209 #define SVR_VER(svr) (((svr) >> 16) & 0xffff) #define SPR_PID0 0x030 /* ..8 Process ID Register 0 */ |