]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
board: stemmy: Add basic Fastboot support
authorStephan Gerhold <stephan@gerhold.net>
Sat, 7 Aug 2021 13:07:22 +0000 (15:07 +0200)
committerTom Rini <trini@konsulko.com>
Wed, 1 Sep 2021 23:25:37 +0000 (19:25 -0400)
Make use of the new drivers for ARM U8500 introduced in the U-Boot
2021.10 merge window by adding basic support for USB Fastboot with
the "stemmy" board. As a first step this will always boot directly
into USB Fastboot for now with the console displayed on the screen
to make that obvious.

Samsung uses quite strange GPT partition labels on these boards,
so also add a bunch of fastboot_partition_alias_* to make this more
easy to use.

Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
arch/arm/dts/ste-ux500-samsung-stemmy.dts
configs/stemmy_defconfig
include/configs/stemmy.h

index 7e7f4c823a9e1df2d9f1f0bff796d155acfb792f..14be86086b225272d9a634fbfa1fe1ac355c4615 100644 (file)
        };
 
        soc {
+               /* eMMC */
+               mmc@80005000 {
+                       status = "okay";
+
+                       arm,primecell-periphid = <0x10480180>;
+                       max-frequency = <100000000>;
+                       bus-width = <8>;
+
+                       non-removable;
+                       cap-mmc-highspeed;
+               };
+
                /* Debugging console UART */
                uart@80007000 {
                        status = "okay";
                };
+
+               mcde@a0350000 {
+                       status = "okay";
+               };
        };
 };
index c0260819067f2b2f0c41ed06a551187bbbcff4d0..77bc5c71dd218b732e22be68992acb92ac44509a 100644 (file)
@@ -6,6 +6,8 @@ CONFIG_NR_DRAM_BANKS=2
 CONFIG_SYS_MALLOC_LEN=0x0200000
 CONFIG_DEFAULT_DEVICE_TREE="ste-ux500-samsung-stemmy"
 CONFIG_SYS_LOAD_ADDR=0x100000
+CONFIG_USE_BOOTCOMMAND=y
+CONFIG_BOOTCOMMAND="run fastbootcmd"
 CONFIG_SYS_CONSOLE_INFO_QUIET=y
 CONFIG_HUSH_PARSER=y
 CONFIG_CMD_CONFIG=y
@@ -17,5 +19,17 @@ CONFIG_CMD_PART=y
 CONFIG_CMD_GETTIME=y
 CONFIG_EFI_PARTITION=y
 # CONFIG_NET is not set
+CONFIG_USB_FUNCTION_FASTBOOT=y
+CONFIG_FASTBOOT_BUF_ADDR=0x18100000
+CONFIG_FASTBOOT_FLASH=y
+CONFIG_FASTBOOT_FLASH_MMC_DEV=0
 # CONFIG_MMC_HW_PARTITIONING is not set
+CONFIG_USB=y
+CONFIG_USB_MUSB_GADGET=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_VENDOR_NUM=0x04e8
+CONFIG_USB_GADGET_PRODUCT_NUM=0x685d
+CONFIG_DM_VIDEO=y
+CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_VIDEO_MCDE_SIMPLE=y
 # CONFIG_EFI_LOADER is not set
index b3a17c5b4fd9be73addb29ea7e01a81639c92e50..b250a53e6028bd9c38f95af2afce406f9fec50a0 100644 (file)
 /* Generate initrd atag for downstream kernel (others are copied in stemmy.c) */
 #define CONFIG_INITRD_TAG
 
+/* Linux does not boot if FDT / initrd is loaded to end of RAM */
+#define BOOT_ENV \
+       "fdt_high=0x6000000\0" \
+       "initrd_high=0x6000000\0"
+
+#define CONSOLE_ENV \
+       "stdin=serial\0" \
+       "stdout=serial,vidconsole\0" \
+       "stderr=serial,vidconsole\0"
+
+#define FASTBOOT_ENV \
+       "fastboot_partition_alias_boot=Kernel\0" \
+       "fastboot_partition_alias_recovery=Kernel2\0" \
+       "fastboot_partition_alias_system=SYSTEM\0" \
+       "fastboot_partition_alias_cache=CACHEFS\0" \
+       "fastboot_partition_alias_hidden=HIDDEN\0" \
+       "fastboot_partition_alias_userdata=DATAFS\0"
+
+#define BOOTCMD_ENV \
+       "fastbootcmd=echo '*** FASTBOOT MODE ***'; fastboot usb 0\0"
+
+#define CONFIG_EXTRA_ENV_SETTINGS \
+       BOOT_ENV \
+       CONSOLE_ENV \
+       FASTBOOT_ENV \
+       BOOTCMD_ENV
+
 #endif