blob: 08a72483bfc2c5dc75e1b5983a1203e36907fb5c [file] [log] [blame]
Tom Rini8b0c8a12018-05-06 18:27:01 -04001/* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause */
Patrick Delaunay8eb3b1e2018-03-12 10:46:18 +01002/*
3 * Copyright (C) 2018, STMicroelectronics - All Rights Reserved
4 *
5 * Configuration settings for the STM32MP15x CPU
Patrick Delaunay8eb3b1e2018-03-12 10:46:18 +01006 */
7
Patrick Delaunayf9484bc2021-10-22 10:19:25 +02008#ifndef __CONFIG_STM32MP15_COMMMON_H
9#define __CONFIG_STM32MP15_COMMMON_H
Patrick Delaunay8eb3b1e2018-03-12 10:46:18 +010010#include <linux/sizes.h>
11#include <asm/arch/stm32.h>
12
Patrick Delaunay8eb3b1e2018-03-12 10:46:18 +010013/*
Patrick Delaunay8eb3b1e2018-03-12 10:46:18 +010014 * Configuration of the external SRAM memory used by U-Boot
15 */
16#define CONFIG_SYS_SDRAM_BASE STM32_DDR_BASE
Patrick Delaunay8eb3b1e2018-03-12 10:46:18 +010017
Patrick Delaunay8eb3b1e2018-03-12 10:46:18 +010018/*
19 * Console I/O buffer size
20 */
Patrick Delaunay8eb3b1e2018-03-12 10:46:18 +010021
Patrick Delaunaya5bf69e2020-02-10 11:54:11 +010022/*
23 * For booting Linux, use the first 256 MB of memory, since this is
24 * the maximum mapped by the Linux kernel during initialization.
25 */
26#define CONFIG_SYS_BOOTMAPSZ SZ_256M
27
Patrick Delaunay80e17eb2019-02-27 17:01:21 +010028/* Extend size of kernel image for uncompression */
Patrick Delaunaya5bf69e2020-02-10 11:54:11 +010029#define CONFIG_SYS_BOOTM_LEN SZ_32M
Patrick Delaunay80e17eb2019-02-27 17:01:21 +010030
Patrick Delaunay8eb3b1e2018-03-12 10:46:18 +010031/* SPL support */
32#ifdef CONFIG_SPL
Patrick Delaunay8eb3b1e2018-03-12 10:46:18 +010033/* SPL use DDR */
Patrick Delaunay8eb3b1e2018-03-12 10:46:18 +010034
Alexandru Gagniuc8762dce2021-03-22 08:20:01 -050035/* Restrict SPL to fit within SYSRAM */
36#define STM32_SYSRAM_END (STM32_SYSRAM_BASE + STM32_SYSRAM_SIZE)
Patrick Delaunay8eb3b1e2018-03-12 10:46:18 +010037#endif /* #ifdef CONFIG_SPL */
Patrick Delaunay8eb3b1e2018-03-12 10:46:18 +010038/*MMC SD*/
39#define CONFIG_SYS_MMC_MAX_DEVICE 3
Patrick Delaunay8eb3b1e2018-03-12 10:46:18 +010040
Patrick Delaunay67865262019-07-02 13:26:05 +020041/* NAND support */
Patrick Delaunay67865262019-07-02 13:26:05 +020042#define CONFIG_SYS_MAX_NAND_DEVICE 1
43
Christophe Roullier515ff1b2019-05-17 15:08:46 +020044/* Ethernet need */
45#ifdef CONFIG_DWC_ETH_QOS
Christophe Roullier515ff1b2019-05-17 15:08:46 +020046#define CONFIG_SERVERIP 192.168.1.1
Christophe Roullier515ff1b2019-05-17 15:08:46 +020047#define CONFIG_SYS_AUTOLOAD "no"
48#endif
49
Patrick Delaunayf2a7b872019-02-27 17:01:18 +010050/*****************************************************************************/
51#ifdef CONFIG_DISTRO_DEFAULTS
52/*****************************************************************************/
53
54#if !defined(CONFIG_SPL_BUILD)
Patrick Delaunay8eb3b1e2018-03-12 10:46:18 +010055
Marek Vasut5fe232d2020-01-10 01:26:54 +010056#ifdef CONFIG_CMD_MMC
57#define BOOT_TARGET_MMC0(func) func(MMC, mmc, 0)
58#define BOOT_TARGET_MMC1(func) func(MMC, mmc, 1)
59#define BOOT_TARGET_MMC2(func) func(MMC, mmc, 2)
60#else
61#define BOOT_TARGET_MMC0(func)
62#define BOOT_TARGET_MMC1(func)
63#define BOOT_TARGET_MMC2(func)
64#endif
65
66#ifdef CONFIG_NET
67#define BOOT_TARGET_PXE(func) func(PXE, pxe, na)
68#else
69#define BOOT_TARGET_PXE(func)
70#endif
71
72#ifdef CONFIG_CMD_UBIFS
73#define BOOT_TARGET_UBIFS(func) func(UBIFS, ubifs, 0)
74#else
75#define BOOT_TARGET_UBIFS(func)
76#endif
77
Tom Rini8a091622021-07-09 10:11:55 -040078#ifdef CONFIG_CMD_USB
Marek Vasutf2c47202021-02-12 13:50:52 +010079#define BOOT_TARGET_USB(func) func(USB, usb, 0)
80#else
81#define BOOT_TARGET_USB(func)
82#endif
83
Marek Vasut5fe232d2020-01-10 01:26:54 +010084#define BOOT_TARGET_DEVICES(func) \
85 BOOT_TARGET_MMC1(func) \
86 BOOT_TARGET_UBIFS(func) \
87 BOOT_TARGET_MMC0(func) \
88 BOOT_TARGET_MMC2(func) \
Marek Vasutf2c47202021-02-12 13:50:52 +010089 BOOT_TARGET_USB(func) \
Marek Vasut5fe232d2020-01-10 01:26:54 +010090 BOOT_TARGET_PXE(func)
Christophe Roullier515ff1b2019-05-17 15:08:46 +020091
Patrick Delaunayf2a7b872019-02-27 17:01:18 +010092/*
Patrick Delaunay123687c2022-05-20 18:24:46 +020093 * default bootcmd for stm32mp15:
Patrick Delaunayf2a7b872019-02-27 17:01:18 +010094 * for serial/usb: execute the stm32prog command
Patrick Delaunayf9484bc2021-10-22 10:19:25 +020095 * for mmc boot (eMMC, SD card), distro boot on the same mmc device
96 * for nand or spi-nand boot, distro boot with ubifs on UBI partition
97 * for nor boot, use the default distro order in ${boot_targets}
Patrick Delaunayf2a7b872019-02-27 17:01:18 +010098 */
Patrick Delaunayf2a7b872019-02-27 17:01:18 +010099#define STM32MP_BOOTCMD "bootcmd_stm32mp=" \
100 "echo \"Boot over ${boot_device}${boot_instance}!\";" \
101 "if test ${boot_device} = serial || test ${boot_device} = usb;" \
102 "then stm32prog ${boot_device} ${boot_instance}; " \
103 "else " \
Patrick Delaunayd695d892019-07-05 17:20:21 +0200104 "run env_check;" \
Patrick Delaunayf2a7b872019-02-27 17:01:18 +0100105 "if test ${boot_device} = mmc;" \
106 "then env set boot_targets \"mmc${boot_instance}\"; fi;" \
Patrick Delaunayb5a7ca22020-03-18 09:22:52 +0100107 "if test ${boot_device} = nand ||" \
108 " test ${boot_device} = spi-nand ;" \
Patrick Delaunayf2a7b872019-02-27 17:01:18 +0100109 "then env set boot_targets ubifs0; fi;" \
110 "run distro_bootcmd;" \
111 "fi;\0"
Patrick Delaunay8eb3b1e2018-03-12 10:46:18 +0100112
Jean-Philippe ROMAIN40103852020-09-09 15:24:33 +0200113#ifdef CONFIG_FASTBOOT_CMD_OEM_FORMAT
114/* eMMC default partitions for fastboot command: oem format */
Patrick Delaunayf9484bc2021-10-22 10:19:25 +0200115#define STM32MP_PARTS_DEFAULT \
Jean-Philippe ROMAIN40103852020-09-09 15:24:33 +0200116 "partitions=" \
117 "name=ssbl,size=2M;" \
118 "name=bootfs,size=64MB,bootable;" \
119 "name=vendorfs,size=16M;" \
120 "name=rootfs,size=746M;" \
121 "name=userfs,size=-\0"
122#else
Patrick Delaunayf9484bc2021-10-22 10:19:25 +0200123#define STM32MP_PARTS_DEFAULT
Jean-Philippe ROMAIN40103852020-09-09 15:24:33 +0200124#endif
125
Patrick Delaunayf9484bc2021-10-22 10:19:25 +0200126#define STM32MP_EXTRA \
Patrick Delaunayf9484bc2021-10-22 10:19:25 +0200127 "env_check=if env info -p -d -q; then env save; fi\0" \
128 "boot_net_usb_start=true\0"
129
Marek Vasute43ec1f2021-11-13 03:24:44 +0100130#ifndef STM32MP_BOARD_EXTRA_ENV
131#define STM32MP_BOARD_EXTRA_ENV
132#endif
133
Patrick Delaunayf2a7b872019-02-27 17:01:18 +0100134#include <config_distro_bootcmd.h>
Patrick Delaunayfc69c682018-03-20 10:54:54 +0100135
Patrick Delaunay80e17eb2019-02-27 17:01:21 +0100136/*
137 * memory layout for 32M uncompressed/compressed kernel,
Patrick Delaunay9d576762021-06-28 14:42:08 +0200138 * 1M fdt, 1M script, 1M pxe and 1M for overlay
Patrick Delaunay80e17eb2019-02-27 17:01:21 +0100139 * and the ramdisk at the end.
140 */
Patrick Delaunayf9484bc2021-10-22 10:19:25 +0200141#define __KERNEL_ADDR_R __stringify(0xc2000000)
142#define __FDT_ADDR_R __stringify(0xc4000000)
143#define __SCRIPT_ADDR_R __stringify(0xc4100000)
144#define __PXEFILE_ADDR_R __stringify(0xc4200000)
145#define __FDTOVERLAY_ADDR_R __stringify(0xc4300000)
146#define __RAMDISK_ADDR_R __stringify(0xc4400000)
147
148#define STM32MP_MEM_LAYOUT \
149 "kernel_addr_r=" __KERNEL_ADDR_R "\0" \
150 "fdt_addr_r=" __FDT_ADDR_R "\0" \
151 "scriptaddr=" __SCRIPT_ADDR_R "\0" \
152 "pxefile_addr_r=" __PXEFILE_ADDR_R "\0" \
153 "fdtoverlay_addr_r=" __FDTOVERLAY_ADDR_R "\0" \
154 "ramdisk_addr_r=" __RAMDISK_ADDR_R "\0"
155
Patrick Delaunay8eb3b1e2018-03-12 10:46:18 +0100156#define CONFIG_EXTRA_ENV_SETTINGS \
Patrick Delaunayf9484bc2021-10-22 10:19:25 +0200157 STM32MP_MEM_LAYOUT \
Patrick Delaunayf2a7b872019-02-27 17:01:18 +0100158 STM32MP_BOOTCMD \
Patrick Delaunayf9484bc2021-10-22 10:19:25 +0200159 STM32MP_PARTS_DEFAULT \
Patrick Delaunay6703cec2019-07-05 17:20:22 +0200160 BOOTENV \
Marek Vasute43ec1f2021-11-13 03:24:44 +0100161 STM32MP_EXTRA \
162 STM32MP_BOARD_EXTRA_ENV
Patrick Delaunay8eb3b1e2018-03-12 10:46:18 +0100163
164#endif /* ifndef CONFIG_SPL_BUILD */
Patrick Delaunayf2a7b872019-02-27 17:01:18 +0100165#endif /* ifdef CONFIG_DISTRO_DEFAULTS*/
Patrick Delaunay8eb3b1e2018-03-12 10:46:18 +0100166
Patrick Delaunayf9484bc2021-10-22 10:19:25 +0200167#endif /* __CONFIG_STM32MP15_COMMMON_H */