diff options
author | Steve Passe <fsmp@FreeBSD.org> | 1997-07-19 02:28:30 +0000 |
---|---|---|
committer | Steve Passe <fsmp@FreeBSD.org> | 1997-07-19 02:28:30 +0000 |
commit | bed422e5a3ac527ad6893754367aac4199d1a048 (patch) | |
tree | 8042a0cc3744a321d34e09268181e739ae06b8d2 /sys/i386/isa/apic_ipl.s | |
parent | e743fb99b17d5895af06889b2c71fa035a83f2cc (diff) | |
download | src-bed422e5a3ac527ad6893754367aac4199d1a048.tar.gz src-bed422e5a3ac527ad6893754367aac4199d1a048.zip |
SMP or APIC_IO:
- Increased NIDT to 256.
- Moved IPI vectors up above the linux compat vector.
- Removed runtime setup of RTC vector.
Notes
Notes:
svn path=/head/; revision=27520
Diffstat (limited to 'sys/i386/isa/apic_ipl.s')
-rw-r--r-- | sys/i386/isa/apic_ipl.s | 40 |
1 files changed, 31 insertions, 9 deletions
diff --git a/sys/i386/isa/apic_ipl.s b/sys/i386/isa/apic_ipl.s index 1aec3ce9bad7..c7612c812c27 100644 --- a/sys/i386/isa/apic_ipl.s +++ b/sys/i386/isa/apic_ipl.s @@ -22,7 +22,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: apic_ipl.s,v 1.1 1997/05/24 17:02:04 smp Exp smp $ + * $Id: apic_ipl.s,v 1.1 1997/07/18 22:54:17 smp Exp smp $ */ .data @@ -33,20 +33,23 @@ _Xintr8254: .long _Xintr7 -/* this allows us to change the RTC clock APIC pin# assignment */ - .globl _XintrRTC -_XintrRTC: - .long _Xintr7 - /* used by this file, microtime.s and clock.c */ .globl _mask8254 _mask8254: .long 0 +#ifdef DO_RTC_VEC +/** XXX FIXME: remove me after several weeks of no problems */ +/* this allows us to change the RTC clock APIC pin# assignment */ + .globl _XintrRTC +_XintrRTC: + .long _Xintr7 + /* used by this file and clock.c */ .globl _maskRTC _maskRTC: .long 0 +#endif /* DO_RTC_VEC */ /* */ .globl _vec @@ -91,6 +94,8 @@ _vec8254: * generic vector function for RTC clock */ ALIGN_TEXT +#ifdef DO_RTC_VEC + .globl _vecRTC _vecRTC: popl %eax @@ -100,11 +105,26 @@ _vecRTC: cli movl _maskRTC,%eax /* lazy masking */ notl %eax - andl %eax,iactive + andl %eax, iactive MEXITCOUNT movl _XintrRTC, %eax jmp %eax /* XXX might need _Xfastintr# */ +#else /* DO_RTC_VEC */ + +vec8: + popl %eax + pushfl + pushl $KCSEL + pushl %eax + cli + andl $~IRQ_BIT(8), iactive ; /* lazy masking */ + MEXITCOUNT + jmp _Xintr8 /* XXX might need _Xfastintr8 */ + +#endif /* DO_RTC_VEC */ + + /* * The 'generic' vector stubs. */ @@ -117,7 +137,7 @@ __CONCAT(vec,irq_num): ; \ pushl $KCSEL ; \ pushl %eax ; \ cli ; \ - andl $~IRQ_BIT(irq_num),iactive ; /* lazy masking */ \ + andl $~IRQ_BIT(irq_num), iactive ; /* lazy masking */ \ MEXITCOUNT ; \ jmp __CONCAT(_Xintr,irq_num) @@ -130,7 +150,9 @@ __CONCAT(vec,irq_num): ; \ BUILD_VEC(5) BUILD_VEC(6) BUILD_VEC(7) - BUILD_VEC(8) /* NOT specific in IO APIC hardware */ +#ifdef DO_RTC_VEC + BUILD_VEC(8) +#endif /* DO__RTC_VEC */ BUILD_VEC(9) BUILD_VEC(10) BUILD_VEC(11) |