diff --git a/bus/pci.c b/bus/pci.c index 2fe9d764e..3fec44fc2 100644 --- a/bus/pci.c +++ b/bus/pci.c @@ -36,7 +36,7 @@ grub_dma_free (struct grub_pci_dma_chunk *ch) #endif #ifdef GRUB_MACHINE_MIPS_YEELOONG -void * +volatile void * grub_dma_get_virt (struct grub_pci_dma_chunk *ch) { return (void *) ((((grub_uint32_t) ch) & 0x1fffffff) | 0xa0000000); @@ -45,7 +45,7 @@ grub_dma_get_virt (struct grub_pci_dma_chunk *ch) grub_uint32_t grub_dma_get_phys (struct grub_pci_dma_chunk *ch) { - return ((grub_uint32_t) ch) & 0x1fffffff; + return (((grub_uint32_t) ch) & 0x1fffffff) | 0x80000000; } #else diff --git a/include/grub/pci.h b/include/grub/pci.h index fff4d3e3a..51adf9377 100644 --- a/include/grub/pci.h +++ b/include/grub/pci.h @@ -115,7 +115,7 @@ struct grub_pci_dma_chunk; struct grub_pci_dma_chunk *EXPORT_FUNC(grub_memalign_dma32) (grub_size_t align, grub_size_t size); void EXPORT_FUNC(grub_dma_free) (struct grub_pci_dma_chunk *ch); -void *EXPORT_FUNC(grub_dma_get_virt) (struct grub_pci_dma_chunk *ch); +volatile void *EXPORT_FUNC(grub_dma_get_virt) (struct grub_pci_dma_chunk *ch); grub_uint32_t EXPORT_FUNC(grub_dma_get_phys) (struct grub_pci_dma_chunk *ch); #endif