resource_list_for_each_entry(entry, &bridge->windows) {
                if (resource_type(entry->res) == IORESOURCE_MEM) {
                        writel(entry->res->start >> 28, PCI_IMAP(mem));
-                       writel(PHYS_OFFSET >> 28, PCI_SMAP(mem));
+                       writel(__pa(PAGE_OFFSET) >> 28, PCI_SMAP(mem));
                        mem++;
                }
        }
        /*
         * Configure the PCI inbound memory windows to be 1:1 mapped to SDRAM
         */
-       writel(PHYS_OFFSET, local_pci_cfg_base + PCI_BASE_ADDRESS_0);
-       writel(PHYS_OFFSET, local_pci_cfg_base + PCI_BASE_ADDRESS_1);
-       writel(PHYS_OFFSET, local_pci_cfg_base + PCI_BASE_ADDRESS_2);
+       writel(__pa(PAGE_OFFSET), local_pci_cfg_base + PCI_BASE_ADDRESS_0);
+       writel(__pa(PAGE_OFFSET), local_pci_cfg_base + PCI_BASE_ADDRESS_1);
+       writel(__pa(PAGE_OFFSET), local_pci_cfg_base + PCI_BASE_ADDRESS_2);
 
        /*
         * For many years the kernel and QEMU were symbiotically buggy