]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
board: sama5d3_xplained: add Falcon boot support
authorMichael Opdenacker <michael.opdenacker@bootlin.com>
Mon, 31 May 2021 21:23:48 +0000 (23:23 +0200)
committerEugen Hristev <eugen.hristev@microchip.com>
Mon, 14 Jun 2021 09:28:03 +0000 (12:28 +0300)
This supports Falcon boot support for Microchip SAMA5D3 Xplained,
tested on raw MMC, and on raw NAND.

spl_start_uboot() is has the simplest possible implementation.
It doesn't test the environment because enabling environment support
currently causes the SPL to exceed its maximum size (64 KiB).
It doesn't check the serial for incoming characters either because
this functionality currently doesn't seem to work from the SPL
on this board.

Settings for Falcon boot from at FAT partition are also added to
avoid compile failures when CONFIG_SPL_OS_BOOT is enabled, but this
particular case is currently not functional as adding FAT and
partition support cause the SPL to be too big again.

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
board/atmel/sama5d3_xplained/sama5d3_xplained.c
include/configs/sama5d3_xplained.h

index db9603f584774d4604ae38ea2627ca1ff7295ef7..c25bf42e0af28c05d193af5f6adbd637063dd957 100644 (file)
@@ -132,6 +132,13 @@ void spl_board_init(void)
 #endif
 }
 
+#ifdef CONFIG_SPL_OS_BOOT
+int spl_start_uboot(void)
+{
+       return 0;
+}
+#endif
+
 static void ddr2_conf(struct atmel_mpddrc_config *ddr2)
 {
        ddr2->md = (ATMEL_MPDDRC_MD_DBW_32_BITS | ATMEL_MPDDRC_MD_DDR2_SDRAM);
index 1113214bcff5d3cfc82ccda57020b911c7c2ccdc..4c25964b43a586f1c9c3768222bbe4b1483fd813 100644 (file)
 #define CONFIG_SYS_NAND_BLOCK_SIZE     0x20000
 #define CONFIG_SYS_NAND_BAD_BLOCK_POS  0x0
 
+/* Falcon boot support on raw MMC */
+#define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR  0x100  /* 128 KiB */
+#define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS (CONFIG_CMD_SPL_WRITE_SIZE / 512)
+/* U-Boot proper stored by default at 0x200 (256 KiB) */
+#define CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR        0x1000 /* 2MB */
+#define CONFIG_SYS_SPL_ARGS_ADDR               0x22000000
+
+/* Falcon boot support on FAT on MMC */
+#define CONFIG_SPL_FS_LOAD_ARGS_NAME           "args"
+#define CONFIG_SPL_FS_LOAD_KERNEL_NAME         "uImage"
+
+/* Falcon boot support on raw NAND */
+#define CONFIG_SYS_NAND_SPL_KERNEL_OFFS                0x1a0000
+
 #endif