select GENERIC_CMOS_UPDATE
        select GENERIC_CPU_AUTOPROBE
        select GENERIC_CPU_VULNERABILITIES      if PPC_BARRIER_NOSPEC
+       select GENERIC_EARLY_IOREMAP
        select GENERIC_IRQ_SHOW
        select GENERIC_IRQ_SHOW_LEVEL
        select GENERIC_PCI_IOMAP                if PCI
 
 #define _ASM_FIXMAP_H
 
 #ifndef __ASSEMBLY__
+#include <linux/sizes.h>
 #include <asm/page.h>
 #include <asm/pgtable.h>
 #ifdef CONFIG_HIGHMEM
                       FIX_IMMR_SIZE,
 #endif
        /* FIX_PCIE_MCFG, */
+       __end_of_permanent_fixed_addresses,
+
+#define NR_FIX_BTMAPS          (SZ_256K / PAGE_SIZE)
+#define FIX_BTMAPS_SLOTS       16
+#define TOTAL_FIX_BTMAPS       (NR_FIX_BTMAPS * FIX_BTMAPS_SLOTS)
+
+       FIX_BTMAP_END = __end_of_permanent_fixed_addresses,
+       FIX_BTMAP_BEGIN = FIX_BTMAP_END + TOTAL_FIX_BTMAPS - 1,
        __end_of_fixed_addresses
 };
 
 #define FIXADDR_START          (FIXADDR_TOP - __FIXADDR_SIZE)
 
 #define FIXMAP_PAGE_NOCACHE PAGE_KERNEL_NCG
+#define FIXMAP_PAGE_IO PAGE_KERNEL_NCG
 
 #include <asm-generic/fixmap.h>
 
        map_kernel_page(__fix_to_virt(idx), phys, flags);
 }
 
+#define __early_set_fixmap     __set_fixmap
+
 #endif /* !__ASSEMBLY__ */
 #endif
 
 #include <asm/asm-prototypes.h>
 #include <asm/kdump.h>
 #include <asm/feature-fixups.h>
+#include <asm/early_ioremap.h>
 
 #include "setup.h"
 
        /* Configure static keys first, now that we're relocated. */
        setup_feature_keys();
 
+       early_ioremap_setup();
+
        /* Enable early debugging if any specified (see udbg.h) */
        udbg_early_init();