powerpc/aim: Update timebase directly on resume instead of through platform

This only works on single-CPU G4 systems, and more work is needed for
dual-CPU systems.  That said, platform sleep does not work, and this is
currently only used for PMU-based CPU speed change.

The elimination of the platform_smp_timebase_sync() call is so that the
timebase sync rendezvous can be enhanced to perform better
synchronization, which requires a full rendezvous.  This would be
impossible to do on this single-threaded run.
This commit is contained in:
Justin Hibbits 2021-03-31 11:54:27 -05:00
parent b6d8f3b517
commit 921716186f
2 changed files with 2 additions and 4 deletions

View File

@ -768,7 +768,8 @@ mpc745x_sleep()
while (1)
mtmsr(msr);
}
platform_smp_timebase_sync(timebase, 0);
/* XXX: The mttb() means this *only* works on single-CPU systems. */
mttb(timebase);
PCPU_SET(curthread, curthread);
PCPU_SET(curpcb, curthread->td_pcb);
pmap_activate(curthread);

View File

@ -311,9 +311,6 @@ cpudep_ap_setup()
vers = mfpvr() >> 16;
/* The following is needed for restoring from sleep. */
platform_smp_timebase_sync(0, 1);
switch(vers) {
case IBM970:
case IBM970FX: