- bug fix from Peter Tattam that he describes as follows:

> This is the bug fix to make the reset button work properly when the cpu
  > is in the halt state.  There is another patch in init.cc as well to clear
  > async_event.  If you don't do this, if a cpu goes into HLT, the only thing
  > which will fix it is another interrupt.  The reset button won't work.
This commit is contained in:
Bryce Denney 2002-09-12 06:29:13 +00:00
parent ec2c21823d
commit f4818e6fa3
2 changed files with 9 additions and 3 deletions

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: cpu.cc,v 1.38 2002-09-08 04:08:14 kevinlawton Exp $
// $Id: cpu.cc,v 1.39 2002-09-12 06:29:12 bdenney Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 MandrakeSoft S.A.
@ -474,6 +474,10 @@ handle_async_event:
if (BX_CPU_THIS_PTR INTR && GetEFlagsIFLogical()) {
break;
}
if (BX_CPU_THIS_PTR async_event == 0) {
BX_INFO(("decode: reset detected in halt state"));
break;
}
BX_TICK1();
}
#else /* BX_SMP_PROCESSORS != 1 */

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: init.cc,v 1.21 2002-09-11 03:55:22 bdenney Exp $
// $Id: init.cc,v 1.22 2002-09-12 06:29:13 bdenney Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 MandrakeSoft S.A.
@ -156,7 +156,7 @@ cpu_param_handler (bx_param_c *param, int set, Bit32s val)
void BX_CPU_C::init(BX_MEM_C *addrspace)
{
BX_DEBUG(( "Init $Id: init.cc,v 1.21 2002-09-11 03:55:22 bdenney Exp $"));
BX_DEBUG(( "Init $Id: init.cc,v 1.22 2002-09-12 06:29:13 bdenney Exp $"));
// BX_CPU_C constructor
BX_CPU_THIS_PTR set_INTR (0);
#if BX_SUPPORT_APIC
@ -805,6 +805,8 @@ BX_CPU_C::reset(unsigned source)
debug_trap |= 0x80000000;
async_event = 1;
}
#else
BX_CPU_THIS_PTR async_event = 0;
#endif
}