Skip to contentSkip to conversation

heads up: i/o mmu related changes

Linux-ia64 David Mosberger 2 participants 3 messages Jun 10, 2003

lore
Share & tools
lore
#0 lore raw

I justed checked in a changeset ([email protected]|ChangeSet|20030610070955|57077) to make the kernel work better for machines with I/O MMU. This should fix the long-standing bug where IDE disks on machines with memory above 4GB would MCA if the machine has an I/O MMU.

The trick was to make PCI_DMA_BUS_IS_PHYS a variable which is set at runtime. Machines with I/O MMUs or machines with PCI buses which live in separate address spaces MUST clear this variable. I updated the code for the zx1 I/O MMU. I didn't touch the SGI I/O MMU code, though, as I wouldn't be able to test it. Also, it would be good if someone could test whether IDE disks work fine on machines with Intel-chipsets and memory above 4GB.

	--david
#1 lore raw
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line · David Mosberger

David> I justed checked in a changeset
David> ([email protected]|ChangeSet|20030610070955|57077) to David> make the kernel work better for machines with I/O MMU. This David> should fix the long-standing bug where IDE disks on machines David> with memory above 4GB would MCA if the machine has an I/O David> MMU.

David> The trick was to make PCI_DMA_BUS_IS_PHYS a variable which is David> set at runtime. Machines with I/O MMUs or machines with PCI David> buses which live in separate address spaces MUST clear this David> variable. I updated the code for the zx1 I/O MMU. I didn't David> touch the SGI I/O MMU code, though, as I wouldn't be able to David> test it.

Actually, you may want to hold off on this one. I think I'll need to fine-tune this a bit more. My current thinking is that we need a variable ia64_max_iommu_page_size or something like that, which will tell us what to set BIO_VMERGE_BOUNDARY to.

	--david
#2 lore raw
In reply to David Mosberger
Quoted 16 lines · David Mosberger
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line · David Mosberger

David> I justed checked in a changeset
David> ([email protected]|ChangeSet|20030610070955|57077) to David> make the kernel work better for machines with I/O MMU. This David> should fix the long-standing bug where IDE disks on machines David> with memory above 4GB would MCA if the machine has an I/O David> MMU.

David> The trick was to make PCI_DMA_BUS_IS_PHYS a variable which is David> set at runtime. Machines with I/O MMUs or machines with PCI David> buses which live in separate address spaces MUST clear this David> variable. I updated the code for the zx1 I/O MMU. I didn't David> touch the SGI I/O MMU code, though, as I wouldn't be able to David> test it.

Quoted 4 lines

Actually, you may want to hold off on this one. I think I'll need to fine-tune this a bit more. My current thinking is that we need a variable ia64_max_iommu_page_size or something like that, which will tell us what to set BIO_VMERGE_BOUNDARY to.

Ok, the changes for sn2 look pretty straightforward. FYI, our IOMMU supports 4k and 16k pages.

Thanks,
Jesse