summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgber <gber@FreeBSD.org>2012-09-14 09:45:13 +0000
committergber <gber@FreeBSD.org>2012-09-14 09:45:13 +0000
commit7a7457567dad55be14246ccc38cc07e8f83e70cd (patch)
tree489cf327dc79bc392ffcea144e50bd7ea6d68bdc
parente13838f3e090e352fa4b87246e2a770e9ebf6742 (diff)
downloadFreeBSD-src-7a7457567dad55be14246ccc38cc07e8f83e70cd.zip
FreeBSD-src-7a7457567dad55be14246ccc38cc07e8f83e70cd.tar.gz
If virtual addresses are not set use one to one mapping.
Do not map memory and IO space at address 0. Obtained from: Semihalf
-rw-r--r--sys/dev/fdt/fdt_pci.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/fdt/fdt_pci.c b/sys/dev/fdt/fdt_pci.c
index 68cf898..40f12cb 100644
--- a/sys/dev/fdt/fdt_pci.c
+++ b/sys/dev/fdt/fdt_pci.c
@@ -341,14 +341,14 @@ fdt_pci_devmap(phandle_t node, struct pmap_devmap *devmap, vm_offset_t io_va,
if ((error = fdt_pci_ranges_decode(node, &io_space, &mem_space)) != 0)
return (error);
- devmap->pd_va = io_va;
+ devmap->pd_va = (io_va ? io_va : io_space.base_parent);
devmap->pd_pa = io_space.base_parent;
devmap->pd_size = io_space.len;
devmap->pd_prot = VM_PROT_READ | VM_PROT_WRITE;
devmap->pd_cache = PTE_NOCACHE;
devmap++;
- devmap->pd_va = mem_va;
+ devmap->pd_va = (mem_va ? mem_va : mem_space.base_parent);
devmap->pd_pa = mem_space.base_parent;
devmap->pd_size = mem_space.len;
devmap->pd_prot = VM_PROT_READ | VM_PROT_WRITE;
OpenPOWER on IntegriCloud