summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author项小羽 <[email protected]>2022-07-20 09:07:01 +0000
committer项小羽 <[email protected]>2022-07-20 09:07:01 +0000
commitc54215b07299f28d5c2414bce9aa63d6a566c369 (patch)
tree425d7b00e56f1d7fb081057586e7c6c6ece39908
parentf2d3ab90569a070a37860635d4d460d339560859 (diff)
for debug uring
-rw-r--r--hw/intc/apic.c2
-rw-r--r--target/i386/tcg/misc_helper.c5
-rw-r--r--target/i386/tcg/seg_helper.c2
3 files changed, 6 insertions, 3 deletions
diff --git a/hw/intc/apic.c b/hw/intc/apic.c
index 4a0545d8cb..c8435a88b2 100644
--- a/hw/intc/apic.c
+++ b/hw/intc/apic.c
@@ -958,7 +958,7 @@ static void apic_deliver2(uint8_t dest, uint8_t dest_mode,
uint32_t deliver_bitmask[MAX_APIC_WORDS];
int dest_shorthand = (s->icr[0] >> 18) & 3;
APICCommonState *apic_iter;
-
+ qemu_log("dest_shorthand:%d\n", dest_shorthand);
switch (dest_shorthand) {
case 0:
apic_get_delivery_bitmask(deliver_bitmask, dest, dest_mode);
diff --git a/target/i386/tcg/misc_helper.c b/target/i386/tcg/misc_helper.c
index 3a216b0a59..663a3b8086 100644
--- a/target/i386/tcg/misc_helper.c
+++ b/target/i386/tcg/misc_helper.c
@@ -92,7 +92,6 @@ void helper_senduipi(CPUX86State *env ,int reg_index){
raise_exception_ra(env, EXCP0D_GPF, GETPC());
}
- qemu_log("senduipi core: %d uitte index:%d\n", get_apic_id(cpu_get_current_apic()), uitte_index);
CPUState *cs = env_cpu(env);
// read tempUITTE from 16 bytes at UITTADDR+ (reg « 4);
@@ -121,12 +120,14 @@ void helper_senduipi(CPUX86State *env ,int reg_index){
cpu_physical_memory_rw(upid_phyaddress, &upid, 16, true);
qemu_mutex_unlock_iothread();
+ qemu_log("senduipi core: %d uitte index:%d dist core: %d ifsend: %d, nv: %d\n", get_apic_id(cpu_get_current_apic()), uitte_index, upid.nc.ndst >> 8, sendNotify,upid.nc.nv);
if(sendNotify){
uint8_t realdst = upid.nc.ndst >> 8;
- send_ipi(realdst, upid.nc.nv);
+ send_ipi(realdst, 0xec);
}
+
}
diff --git a/target/i386/tcg/seg_helper.c b/target/i386/tcg/seg_helper.c
index 46ee9cca5e..d79f1caa07 100644
--- a/target/i386/tcg/seg_helper.c
+++ b/target/i386/tcg/seg_helper.c
@@ -969,6 +969,7 @@ static void do_interrupt64(CPUX86State *env, int intno, int is_int,
}
bool send = false;
if(intno == UINTR_UINV ){
+ qemu_log("receive, cur core:%d\n",get_apic_id(cpu_get_current_apic()));
recognized = true;
cpl = env->hflags & HF_CPL_MASK;
if(!uif_enable(env)){
@@ -1005,6 +1006,7 @@ static void do_interrupt64(CPUX86State *env, int intno, int is_int,
cpu_physical_memory_rw(upid_phyaddress, &upid, 16, true); // write back
helper_clear_eoi(env);
if(send)helper_rrnzero(env);
+ else qemu_log("do not go to handler\n");
return;
}