Well I think we were going to wait till Dan finishes the ACPI stuff, cause
the DMAR_BASE_REG is hardcoded for now. I wouldn't want to break master.

Anyway I think there's a little more rework to be done in the future. If I
remember correctly, there's a write to the LDR happening somewhere which is
just getting ignored by apicrput as the logical ID register is no longer
writable with the X2APIC. Ideally we should remove the source of the write
in the first place, but I haven't looked to see what the write is
attempting to do. Simply not writing it is not causing any problems, which
probably means we're not using it for anything critical.

Of course, it's been awhile so I don't actually remember if there is a
write to that location. I'll have to check it out and see.

On Wed, Dec 9, 2015 at 1:22 PM ron minnich <[email protected]> wrote:

> Keep the check and panic. It's a bug. But let's get this in and do another
> pass I think. This current commit is known to work, and if we're going to
> break it when we clean it up (that never fails, right?) it's nice to have a
> working version to bisect against ...
>
> ron
>
> On Wed, Dec 9, 2015 at 1:20 PM Gan Shun <[email protected]> wrote:
>
>> Oh they don't technically need that, but i left the cases there with a
>> monitor command to check if we ever have any other leftover code that might
>> try to use it the old way. I can remove it and place a panic or something.
>> I just think that it would be nice to keep the check there.
>>
>> On Wed, Dec 9, 2015 at 1:15 PM ron minnich <[email protected]> wrote:
>>
>>> do apicrget and apicrput still need the special case for the 31/30
>>> registers? Isn't that all in apicipi?
>>>
>>> I'm ok with this as an intermediate commit, but I think we have another
>>> pass or so to do on it.
>>>
>>> Nice job getting it all working. IOMMU is just a real jungle.
>>>
>>> LGTM
>>>
>>> ron
>>>
>>> On Wed, Dec 9, 2015 at 9:41 AM Gan Shun <[email protected]> wrote:
>>>
>>>> My newly rebased changes. There is no actual difference in the code
>>>> since Davide's changes did not affect me.
>>>>
>>>> The following changes since commit
>>>> 495a723da7db40d18c933c0d9b979058b0d8ffa4:
>>>>
>>>>   Use core_id_early() in kprof trace buffer print code (2015-12-08
>>>> 16:32:42 -0500)
>>>>
>>>> are available in the git repository at:
>>>>
>>>>   [email protected]:GanShun/akaros.git
>>>> c0c444f9646147a530672546d5cdbaf28e357e70
>>>>
>>>> for you to fetch changes up to c0c444f9646147a530672546d5cdbaf28e357e70:
>>>>
>>>>   Swapped IPI sending to a full 64-bit write and APIC writes to msr
>>>> regs. (2015-12-08 14:33:02 -0800)
>>>>
>>>> ----------------------------------------------------------------
>>>> GanShun (5):
>>>>       Switched from APIC to X2APIC mode
>>>>       Initialized IOMMU and modified IOAPIC to send remappable
>>>> interrupts.
>>>>       ExtINT mode for IOMMU is working and remaps IOAPIC IRQ 4 to
>>>> vector 39
>>>>       IOMMU Rerouting of Interrupt 4 is now working. Busybox is
>>>> receiving intrs
>>>>       Swapped IPI sending to a full 64-bit write and APIC writes to msr
>>>> regs.
>>>>
>>>>  kern/arch/x86/Kbuild          |   1 +
>>>>  kern/arch/x86/apic.c          |  34 +++++++++-------
>>>>  kern/arch/x86/apic.h          | 105
>>>> +++++++++++++++++++++++------------------------
>>>>  kern/arch/x86/apic9.c         | 174
>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------
>>>>  kern/arch/x86/ioapic.c        |  34 +++++++++++++---
>>>>  kern/arch/x86/ioapic.h        |   3 +-
>>>>  kern/arch/x86/iommu.c         | 178
>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>>  kern/arch/x86/iommu.h         | 105
>>>> +++++++++++++++++++++++++++++++++++++++++++++++
>>>>  kern/arch/x86/mp.c            |   4 +-
>>>>  kern/arch/x86/pmap64.c        |   7 +++-
>>>>  kern/arch/x86/ros/mmu64.h     |   7 ++--
>>>>  kern/arch/x86/smp_boot.c      |   6 ++-
>>>>  kern/arch/x86/time.c          |   4 +-
>>>>  kern/arch/x86/trap.c          |  30 ++++++++++++++
>>>>  kern/arch/x86/trapentry64.S   |   3 +-
>>>>  kern/arch/x86/vmm/intel/vmx.c |   9 +++-
>>>>  tests/vmm/vmrunkernel.c       |  43 +++++++++++++-------
>>>>  17 files changed, 611 insertions(+), 136 deletions(-)
>>>>  create mode 100644 kern/arch/x86/iommu.c
>>>>  create mode 100644 kern/arch/x86/iommu.h
>>>>
>>>>
>>>> https://github.com/GanShun/akaros/compare/495a723da7db40d18c933c0d9b979058b0d8ffa4...c0c444f9646147a530672546d5cdbaf28e357e70
>>>>
>>>>
>>>> On Sat, Dec 5, 2015 at 11:02 AM Gan Shun <[email protected]> wrote:
>>>>
>>>>> No rush. I just realized yesterday that rebasing onto master made this
>>>>> break silently. Will fix it next week
>>>>>
>>>>> On Sat, Dec 5, 2015, 11:00 Dan Cross <[email protected]> wrote:
>>>>>
>>>>>> FYI, ACPI will be done early next week (I think).
>>>>>>
>>>>>> On Fri, Dec 4, 2015 at 2:43 PM, <[email protected]> wrote:
>>>>>>
>>>>>>> Please note that currently, the IOMMU is hardcoded currently at a
>>>>>>> specific physical address that requires the ACPI stuff to find out
>>>>>>> dynamically.
>>>>>>>
>>>>>>> *THIS WILL NOT WORK OUT OF THE BOX FOR A DIFFERENT MACHINE
>>>>>>> CONFIGURATION OTHER THAN THE ONES WE BUILT IN MTV*
>>>>>>>
>>>>>>> If you're looking to try it out on another machine, you'll need to
>>>>>>> find out the IOMMU's register bases in the VHRD, and find out which 
>>>>>>> IOMMU
>>>>>>> maps
>>>>>>> to the IOAPIC you want. Then you can change the DMAR_REG_PADDR value
>>>>>>> in kern/arch/x86/iommu.h to whatever the VHRD tells you.
>>>>>>>
>>>>>>> The following changes since commit
>>>>>>> 0b10f30b9b9b18f0e45390231dbdaf7b045fbd5b:
>>>>>>>
>>>>>>>   Print ${remote}:${head} in link for code review (2015-12-03
>>>>>>> 12:38:20 -0500)
>>>>>>>
>>>>>>> are available in the git repository at:
>>>>>>>
>>>>>>>   [email protected]:GanShun/akaros.git
>>>>>>>
>>>>>>> for you to fetch changes up to
>>>>>>> dbdd541935111c8d418c77f83ddb885528768b89:
>>>>>>>
>>>>>>>   Swapped IPI sending to a full 64-bit write and APIC writes to msr
>>>>>>> regs. (2015-12-04 11:18:48 -0800)
>>>>>>>
>>>>>>> ----------------------------------------------------------------
>>>>>>> GanShun (5):
>>>>>>>       Switched from APIC to X2APIC mode
>>>>>>>       Initialized IOMMU and modified IOAPIC to send remappable
>>>>>>> interrupts.
>>>>>>>       ExtINT mode for IOMMU is working and remaps IOAPIC IRQ 4 to
>>>>>>> vector 39
>>>>>>>       IOMMU Rerouting of Interrupt 4 is now working. Busybox is
>>>>>>> receiving intrs
>>>>>>>       Swapped IPI sending to a full 64-bit write and APIC writes to
>>>>>>> msr regs.
>>>>>>>
>>>>>>>  kern/arch/x86/Kbuild          |   1 +
>>>>>>>  kern/arch/x86/apic.c          |  34 ++++++++-------
>>>>>>>  kern/arch/x86/apic.h          | 105
>>>>>>> ++++++++++++++++++++++++-----------------------
>>>>>>>  kern/arch/x86/apic9.c         | 174
>>>>>>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------
>>>>>>>  kern/arch/x86/ioapic.c        |  34 ++++++++++++---
>>>>>>>  kern/arch/x86/ioapic.h        |   3 +-
>>>>>>>  kern/arch/x86/iommu.c         | 178
>>>>>>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>>>>>  kern/arch/x86/iommu.h         | 105
>>>>>>> +++++++++++++++++++++++++++++++++++++++++++++++
>>>>>>>  kern/arch/x86/mp.c            |   4 +-
>>>>>>>  kern/arch/x86/pmap64.c        |   7 +++-
>>>>>>>  kern/arch/x86/ros/mmu64.h     |   7 ++--
>>>>>>>  kern/arch/x86/smp_boot.c      |   6 ++-
>>>>>>>  kern/arch/x86/time.c          |   4 +-
>>>>>>>  kern/arch/x86/trap.c          |  30 ++++++++++++++
>>>>>>>  kern/arch/x86/trapentry64.S   |   3 +-
>>>>>>>  kern/arch/x86/vmm/intel/vmx.c |   9 +++-
>>>>>>>  tests/vmm/vmrunkernel.c       |  43 ++++++++++++-------
>>>>>>>  17 files changed, 611 insertions(+), 136 deletions(-)
>>>>>>>  create mode 100644 kern/arch/x86/iommu.c
>>>>>>>  create mode 100644 kern/arch/x86/iommu.h
>>>>>>>
>>>>>>>
>>>>>>> https://github.com/GanShun/akaros/compare/0b10f30b9b9b18f0e45390231dbdaf7b045fbd5b...dbdd541935111c8d418c77f83ddb885528768b89
>>>>>>>
>>>>>>> --
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "Akaros" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to [email protected].
>>>>>>> To post to this group, send email to [email protected].
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "Akaros" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to [email protected].
>>>>>> To post to this group, send email to [email protected].
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Akaros" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Akaros" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Akaros" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> For more options, visit https://groups.google.com/d/optout.
>>
> --
> You received this message because you are subscribed to the Google Groups
> "Akaros" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Akaros" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to