diff options
author | jhb <jhb@FreeBSD.org> | 2014-03-06 18:30:56 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2014-03-06 18:30:56 +0000 |
commit | 59b6242e909c7e020d7903a27847e2a465486a45 (patch) | |
tree | 2c015c503188a6a75426ca67e8433237f3533f97 /sys/sparc64 | |
parent | fe643776c1c5732c2d5d8354a64b520b7007e15c (diff) | |
download | FreeBSD-src-59b6242e909c7e020d7903a27847e2a465486a45.zip FreeBSD-src-59b6242e909c7e020d7903a27847e2a465486a45.tar.gz |
MFC 259016,259019,259049,259071,259102,259110,259129,259130,259178,259179,
259203,259221,259261,259532,259615,259650,259651,259667,259680,259727,
259761,259772,259776,259777,259830,259882,259915,260160,260449,260450,
260688,260888,260953,261269,261547,261551,261552,261553,261585:
Merge the vt(4) driver (newcons) to stable/10.
Approved by: ray
Diffstat (limited to 'sys/sparc64')
-rw-r--r-- | sys/sparc64/sparc64/machdep.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/sys/sparc64/sparc64/machdep.c b/sys/sparc64/sparc64/machdep.c index de645da..9c0042e 100644 --- a/sys/sparc64/sparc64/machdep.c +++ b/sys/sparc64/sparc64/machdep.c @@ -553,17 +553,15 @@ sparc64_init(caddr_t mdp, u_long o1, u_long o2, u_long o3, ofw_vec_t *vec) * trigger a fatal reset error or worse things further down the road. * XXX it should be possible to use this solely instead of writing * %tba in cpu_setregs(). Doing so causes a hang however. - */ - sun4u_set_traptable(tl0_base); - - /* - * Initialize the console. + * * NB: the low-level console drivers require a working DELAY() and * some compiler optimizations may cause the curthread accesses of * mutex(9) to be factored out even if the latter aren't actually - * called, both requiring PCPU_REG to be set. + * called. Both of these require PCPU_REG to be set. However, we + * can't set PCPU_REG without also taking over the trap table or the + * firmware will overwrite it. */ - cninit(); + sun4u_set_traptable(tl0_base); /* * Initialize the dynamic per-CPU area for the BSP and the message @@ -578,6 +576,12 @@ sparc64_init(caddr_t mdp, u_long o1, u_long o2, u_long o3, ofw_vec_t *vec) mutex_init(); /* + * Initialize console now that we have a reasonable set of system + * services. + */ + cninit(); + + /* * Finish the interrupt initialization now that mutexes work and * enable them. */ |