libpayload: allow nonblocking delay and more than one delay

Extend the local APIC timer delay so that it can be started,
and waited for, independently.

Add an EOI so that more than one APIC timer interrupt is possible.
Previous to this, because there was no EOI, the first timer
interrupt the CPU took was also the last it would take --
apic_delay would only work one time.

Change-Id: Ib11aeee5b7da81287166ac68fc327e7ae62d1b84
Signed-off-by: Ronald G Minnich <rminnich@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/43323
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: David Hendricks <david.hendricks@gmail.com>
Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com>
This commit is contained in:
Ronald G Minnich
2020-07-09 08:23:58 -07:00
committed by ron minnich
parent bf6541d876
commit a92a07d9c0
2 changed files with 33 additions and 3 deletions

View File

@@ -40,5 +40,7 @@ uint8_t apic_id(void);
void apic_eoi(uint8_t vector);
void apic_delay(unsigned int usec);
void apic_start_delay(unsigned int usec);
void apic_wait_delay(void);
#endif /* __ARCH_X86_INCLUDES_ARCH_APIC_H__ */