From: Beth Kon <eak@us.ibm.com>
To: qemu-devel@nongnu.org
Cc: bochs-developers@lists.sourceforge.net
Subject: Re: [Qemu-devel] Re: [PATCH] Fix non-ACPI Timer Interrupt Routing - v2
Date: Mon, 20 Apr 2009 13:57:13 -0400 [thread overview]
Message-ID: <49ECB779.4090902@us.ibm.com> (raw)
In-Reply-To: <8A3986ABEBAA4AD7B47A72F93C05F9AC@FSCPC>
Sebastian Herbszt wrote:
> Beth Kon wrote:
>> Replicate ACPI irq0->inti2 override in mp table for non-acpi case.
>>
>> v1 -> v2 adds comment suggested by Ryan.
>>
>> Signed-off-by: Beth Kon <eak@us.ibm.com>
>>
>> diff --git a/bios/BIOS-bochs-latest b/bios/BIOS-bochs-latest
>> index ebec71b..82d7792 100644
>> Binary files a/bios/BIOS-bochs-latest and b/bios/BIOS-bochs-latest
>> differ
>> diff --git a/bios/rombios32.c b/bios/rombios32.c
>> index 7be4216..dc7b5f3 100644
>> --- a/bios/rombios32.c
>> +++ b/bios/rombios32.c
>> @@ -1168,6 +1168,12 @@ static void mptable_init(void)
>>
>> /* irqs */
>> for(i = 0; i < 16; i++) {
>> +#ifdef BX_QEMU
>> + /* One entry per ioapic input. Input 2 is covered by
>> + irq0->inti2 override (i == 0). irq 2 is unused */
>
> Isn't the input 0 or destination 2 covered by the override?
> We connect irq0 (input) to intin2 (destination).
In the comment I was using the terminology in the MP Specification,
section 4.3.4. "Destination" 2 is the input to IOAPIC pin 2. If you
find it very confusing I can clarify.
>
>> + if (i == 2)
>> + continue;
>
> This changes the entry count. Currently it's
>
> putle16(&q, smp_cpus + 18); /* entry count */
>
> which is smp_cpus processor entries + (bus entry + i/o apic entry + 16
> irq entries).
> This changes the number of irq entries to 15.
Yes, this was an oversight. Thanks!
>> +#endif putb(&q, 3); /* entry type = I/O interrupt */
>> putb(&q, 0); /* interrupt type = vectored interrupt */
>> putb(&q, 0); /* flags: po=0, el=0 */
>> @@ -1175,7 +1181,11 @@ static void mptable_init(void)
>> putb(&q, 0); /* source bus ID = ISA */
>> putb(&q, i); /* source bus IRQ */
>> putb(&q, ioapic_id); /* dest I/O APIC ID */
>> +#ifdef BX_QEMU
>> + putb(&q, i == 0 ? 2 : i); /* dest I/O APIC interrupt in */
>> +#else
>> putb(&q, i); /* dest I/O APIC interrupt in */
>> +#endif }
>> /* patch length */
>> len = q - mp_config_table;
>
> - Sebastian
>
>
>
prev parent reply other threads:[~2009-04-20 17:57 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-14 14:16 [Qemu-devel] [PATCH] Fix non-ACPI Timer Interrupt Routing - v2 Beth Kon
2009-04-17 21:20 ` Anthony Liguori
2009-04-19 21:49 ` [Qemu-devel] " Sebastian Herbszt
2009-04-20 17:57 ` Beth Kon [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=49ECB779.4090902@us.ibm.com \
--to=eak@us.ibm.com \
--cc=bochs-developers@lists.sourceforge.net \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.