sub     x6, x6, #1                      // inclusive range
        create_block_map x0, x7, x3, x5, x6
  1:
 -#ifdef CONFIG_EARLY_PRINTK
        /*
 -       * Create the pgd entry for the UART mapping. The full mapping is done
 -       * later based earlyprintk kernel parameter.
 +       * Create the pgd entry for the fixed mappings.
         */
 -      ldr     x5, =EARLYCON_IOBASE            // UART virtual address
 +      ldr     x5, =FIXADDR_TOP                // Fixed mapping virtual address
        add     x0, x26, #2 * PAGE_SIZE         // section table address
        create_pgd_entry x26, x0, x5, x6, x7
 -#endif
+ 
+       /*
+        * Since the page tables have been populated with non-cacheable
+        * accesses (MMU disabled), invalidate the idmap and swapper page
+        * tables again to remove any speculatively loaded cache lines.
+        */
+       mov     x0, x25
+       add     x1, x26, #SWAPPER_DIR_SIZE
+       bl      __inval_cache_range
+ 
+       mov     lr, x27
        ret
  ENDPROC(__create_page_tables)
        .ltorg