board: stemmy: Add basic Fastboot support

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>
This commit is contained in:
Stephan Gerhold 2021-08-07 15:07:22 +02:00 committed by Tom Rini
parent fc9d4b123d
commit f64011e11e
3 changed files with 57 additions and 0 deletions

View File

@ -12,9 +12,25 @@
};
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";
};
};
};

View 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

View File

@ -22,4 +22,31 @@
/* 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