km/boards: fix typo for MAC address offset config option
[oweals/u-boot.git] / board / raspberrypi / rpi / rpi.c
index 617c892dde0f7df7397129d754225d43be18a9ab..e367ba3092458f7b3bdbb75573999c530cf6b72b 100644 (file)
@@ -6,10 +6,11 @@
 #include <common.h>
 #include <config.h>
 #include <dm.h>
-#include <environment.h>
+#include <env.h>
 #include <efi_loader.h>
 #include <fdt_support.h>
 #include <fdt_simplefb.h>
+#include <init.h>
 #include <lcd.h>
 #include <memalign.h>
 #include <mmc.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
-/* From lowlevel_init.S */
-extern unsigned long fw_dtb_pointer;
+/* Assigned in lowlevel_init.S
+ * Push the variable into the .data section so that it
+ * does not get cleared later.
+ */
+unsigned long __section(".data") fw_dtb_pointer;
 
 /* TODO(sjg@chromium.org): Move these to the msg.c file */
 struct msg_get_arm_mem {
@@ -148,6 +152,11 @@ static const struct rpi_model rpi_models_new_scheme[] = {
                DTB_DIR "bcm2837-rpi-cm3.dtb",
                false,
        },
+       [0x11] = {
+               "4 Model B",
+               DTB_DIR "bcm2711-rpi-4-b.dtb",
+               true,
+       },
 };
 
 static const struct rpi_model rpi_models_old_scheme[] = {
@@ -243,30 +252,6 @@ static uint32_t rev_scheme;
 static uint32_t rev_type;
 static const struct rpi_model *model;
 
-#ifdef CONFIG_ARM64
-static struct mm_region bcm2837_mem_map[] = {
-       {
-               .virt = 0x00000000UL,
-               .phys = 0x00000000UL,
-               .size = 0x3f000000UL,
-               .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
-                        PTE_BLOCK_INNER_SHARE
-       }, {
-               .virt = 0x3f000000UL,
-               .phys = 0x3f000000UL,
-               .size = 0x01000000UL,
-               .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
-                        PTE_BLOCK_NON_SHARE |
-                        PTE_BLOCK_PXN | PTE_BLOCK_UXN
-       }, {
-               /* List terminator */
-               0,
-       }
-};
-
-struct mm_region *mem_map = bcm2837_mem_map;
-#endif
-
 int dram_init(void)
 {
        ALLOC_CACHE_ALIGN_BUFFER(struct msg_get_arm_mem, msg, 1);
@@ -286,6 +271,19 @@ int dram_init(void)
        return 0;
 }
 
+#ifdef CONFIG_OF_BOARD
+int dram_init_banksize(void)
+{
+       int ret;
+
+       ret = fdtdec_setup_memory_banksize();
+       if (ret)
+               return ret;
+
+       return fdtdec_setup_mem_size_base();
+}
+#endif
+
 static void set_fdtfile(void)
 {
        const char *fdtfile;