1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-15 10:17:20 +00:00

changes to smp_init_secondary_glue():

- use the unique value to save the per-cpu globalp struct like the
  comment says

- don't lower the ipl to ALPHA_PSL_IPL_HIGH: we may have a pending machine
  check to take and we're not prepared for that yet, as we haven't setup
  our interrupt entry points. (this may only happen on sable/lynx)

- indicate the fact that the working version of smp_init_secondary() doesn't
  return (this is tied up in other changes and hasn't yet been committed).
This commit is contained in:
Andrew Gallatin 2001-04-17 14:15:12 +00:00
parent 2766dc31da
commit ed4835b64d
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=75599

View File

@ -147,34 +147,26 @@
* be executing on their private idle stack.
*/
NESTED(smp_init_secondary_glue, 1, 0, ra, 0, 0)
mov pv, globalp
ldiq a0, ALPHA_PSL_IPL_HIGH /* disable all interrupts */
call_pal PAL_OSF1_swpipl
br pv, 1f
1: LDGP(pv)
mov gp, a0
call_pal PAL_OSF1_wrkgp /* clobbers a0, t0, t8-t11 */
ldiq a0, -2 /* TBIA */
call_pal PAL_OSF1_tbi
call_pal PAL_imb
call_pal PAL_rdunique /* initialise globalp */
mov v0, globalp
ldq a0, GD_IDLEPCBPHYS(globalp) /* switch to idle ctx */
call_pal PAL_OSF1_swpctx
CALL(smp_init_secondary) /* initialise the rest */
/*
* After initialising, we start idling for real.
* We have the kernel lock at this point.
*/
CALL(cpu_switch) /* never returns */
/* Load KGP with current GP. */
or gp,zero,a0
call_pal PAL_OSF1_wrkgp /* clobbers a0, t0, t8-t11 */
CALL(smp_init_secondary) /* never returns */
/* NOTREACHED */
call_pal PAL_halt
END(smp_init_secondary_glue)
#endif