heads up: i/o mmu related changes
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
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
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_PHYSa 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_sizeor something like that, which will tell us what to setBIO_VMERGE_BOUNDARYto.
Ok, the changes for sn2 look pretty straightforward. FYI, our IOMMU supports 4k and 16k pages.
Thanks,
Jesse