diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 480c6f0..1d4b6e0 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -207,7 +207,7 @@ select CPU_V6 select GENERIC_GPIO -config ARCH_STM32MP1 +config ARCH_STM32MP bool "ST stm32mp1xx" select CPU_V7 select HAVE_PBL_MULTI_IMAGES @@ -304,7 +304,7 @@ source "arch/arm/mach-rockchip/Kconfig" source "arch/arm/mach-samsung/Kconfig" source "arch/arm/mach-socfpga/Kconfig" -source "arch/arm/mach-stm32mp1/Kconfig" +source "arch/arm/mach-stm32mp/Kconfig" source "arch/arm/mach-versatile/Kconfig" source "arch/arm/mach-vexpress/Kconfig" source "arch/arm/mach-tegra/Kconfig" diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 4d54f33..5cb46f6 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -98,7 +98,7 @@ machine-$(CONFIG_ARCH_ROCKCHIP) := rockchip machine-$(CONFIG_ARCH_SAMSUNG) := samsung machine-$(CONFIG_ARCH_SOCFPGA) := socfpga -machine-$(CONFIG_ARCH_STM32MP1) := stm32mp1 +machine-$(CONFIG_ARCH_STM32MP) := stm32mp machine-$(CONFIG_ARCH_VERSATILE) := versatile machine-$(CONFIG_ARCH_VEXPRESS) := vexpress machine-$(CONFIG_ARCH_TEGRA) := tegra diff --git a/arch/arm/configs/stm32mp1_defconfig b/arch/arm/configs/stm32mp1_defconfig deleted file mode 100644 index 2922ce3..0000000 --- a/arch/arm/configs/stm32mp1_defconfig +++ /dev/null @@ -1,98 +0,0 @@ -CONFIG_ARCH_STM32MP1=y -CONFIG_MACH_STM32MP157C_DK2=y -CONFIG_THUMB2_BAREBOX=y -CONFIG_ARM_BOARD_APPEND_ATAG=y -CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y -CONFIG_ARM_UNWIND=y -CONFIG_ARM_PSCI=y -CONFIG_MMU=y -CONFIG_MALLOC_SIZE=0x0 -CONFIG_MALLOC_TLSF=y -CONFIG_KALLSYMS=y -CONFIG_RELOCATABLE=y -CONFIG_HUSH_FANCY_PROMPT=y -CONFIG_CMDLINE_EDITING=y -CONFIG_AUTO_COMPLETE=y -CONFIG_MENU=y -CONFIG_BOOTM_SHOW_TYPE=y -CONFIG_BOOTM_VERBOSE=y -CONFIG_BOOTM_INITRD=y -CONFIG_BOOTM_OFTREE=y -CONFIG_BOOTM_OFTREE_UIMAGE=y -CONFIG_BLSPEC=y -CONFIG_CONSOLE_ACTIVATE_NONE=y -CONFIG_CONSOLE_ALLOW_COLOR=y -CONFIG_PBL_CONSOLE=y -CONFIG_PARTITION=y -CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW=y -CONFIG_POLLER=y -CONFIG_RESET_SOURCE=y -CONFIG_DEBUG_INITCALLS=y -CONFIG_CMD_DMESG=y -CONFIG_LONGHELP=y -CONFIG_CMD_IOMEM=y -CONFIG_CMD_IMD=y -CONFIG_CMD_MEMINFO=y -CONFIG_CMD_ARM_MMUINFO=y -# CONFIG_CMD_BOOTU is not set -CONFIG_CMD_GO=y -CONFIG_CMD_RESET=y -CONFIG_CMD_UIMAGE=y -CONFIG_CMD_PARTITION=y -CONFIG_CMD_EXPORT=y -CONFIG_CMD_LOADENV=y -CONFIG_CMD_PRINTENV=y -CONFIG_CMD_MAGICVAR=y -CONFIG_CMD_MAGICVAR_HELP=y -CONFIG_CMD_SAVEENV=y -CONFIG_CMD_FILETYPE=y -CONFIG_CMD_LN=y -CONFIG_CMD_MD5SUM=y -CONFIG_CMD_UNCOMPRESS=y -CONFIG_CMD_LET=y -CONFIG_CMD_MSLEEP=y -CONFIG_CMD_READF=y -CONFIG_CMD_SLEEP=y -CONFIG_CMD_DHCP=y -CONFIG_CMD_MIITOOL=y -CONFIG_CMD_PING=y -CONFIG_CMD_TFTP=y -CONFIG_CMD_ECHO_E=y -CONFIG_CMD_EDIT=y -CONFIG_CMD_MENU=y -CONFIG_CMD_MENU_MANAGEMENT=y -CONFIG_CMD_MENUTREE=y -CONFIG_CMD_READLINE=y -CONFIG_CMD_TIMEOUT=y -CONFIG_CMD_CRC=y -CONFIG_CMD_CRC_CMP=y -CONFIG_CMD_MEMTEST=y -CONFIG_CMD_MM=y -CONFIG_CMD_CLK=y -CONFIG_CMD_DETECT=y -CONFIG_CMD_FLASH=y -CONFIG_CMD_BAREBOX_UPDATE=y -CONFIG_CMD_OF_NODE=y -CONFIG_CMD_OF_PROPERTY=y -CONFIG_CMD_OFTREE=y -CONFIG_CMD_TIME=y -CONFIG_NET=y -CONFIG_NET_NETCONSOLE=y -CONFIG_OFDEVICE=y -CONFIG_OF_BAREBOX_DRIVERS=y -CONFIG_DRIVER_SERIAL_STM32=y -CONFIG_DRIVER_NET_DESIGNWARE=y -CONFIG_DRIVER_NET_DESIGNWARE_GENERIC=y -CONFIG_AT803X_PHY=y -CONFIG_MICREL_PHY=y -# CONFIG_SPI is not set -# CONFIG_PINCTRL is not set -CONFIG_FS_EXT4=y -CONFIG_FS_TFTP=y -CONFIG_FS_NFS=y -CONFIG_FS_FAT=y -CONFIG_FS_FAT_WRITE=y -CONFIG_FS_FAT_LFN=y -CONFIG_ZLIB=y -CONFIG_LZO_DECOMPRESS=y -CONFIG_CRC8=y diff --git a/arch/arm/configs/stm32mp_defconfig b/arch/arm/configs/stm32mp_defconfig new file mode 100644 index 0000000..657b2ed --- /dev/null +++ b/arch/arm/configs/stm32mp_defconfig @@ -0,0 +1,98 @@ +CONFIG_ARCH_STM32MP=y +CONFIG_MACH_STM32MP157C_DK2=y +CONFIG_THUMB2_BAREBOX=y +CONFIG_ARM_BOARD_APPEND_ATAG=y +CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y +CONFIG_ARM_UNWIND=y +CONFIG_ARM_PSCI=y +CONFIG_MMU=y +CONFIG_MALLOC_SIZE=0x0 +CONFIG_MALLOC_TLSF=y +CONFIG_KALLSYMS=y +CONFIG_RELOCATABLE=y +CONFIG_HUSH_FANCY_PROMPT=y +CONFIG_CMDLINE_EDITING=y +CONFIG_AUTO_COMPLETE=y +CONFIG_MENU=y +CONFIG_BOOTM_SHOW_TYPE=y +CONFIG_BOOTM_VERBOSE=y +CONFIG_BOOTM_INITRD=y +CONFIG_BOOTM_OFTREE=y +CONFIG_BOOTM_OFTREE_UIMAGE=y +CONFIG_BLSPEC=y +CONFIG_CONSOLE_ACTIVATE_NONE=y +CONFIG_CONSOLE_ALLOW_COLOR=y +CONFIG_PBL_CONSOLE=y +CONFIG_PARTITION=y +CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW=y +CONFIG_POLLER=y +CONFIG_RESET_SOURCE=y +CONFIG_DEBUG_INITCALLS=y +CONFIG_CMD_DMESG=y +CONFIG_LONGHELP=y +CONFIG_CMD_IOMEM=y +CONFIG_CMD_IMD=y +CONFIG_CMD_MEMINFO=y +CONFIG_CMD_ARM_MMUINFO=y +# CONFIG_CMD_BOOTU is not set +CONFIG_CMD_GO=y +CONFIG_CMD_RESET=y +CONFIG_CMD_UIMAGE=y +CONFIG_CMD_PARTITION=y +CONFIG_CMD_EXPORT=y +CONFIG_CMD_LOADENV=y +CONFIG_CMD_PRINTENV=y +CONFIG_CMD_MAGICVAR=y +CONFIG_CMD_MAGICVAR_HELP=y +CONFIG_CMD_SAVEENV=y +CONFIG_CMD_FILETYPE=y +CONFIG_CMD_LN=y +CONFIG_CMD_MD5SUM=y +CONFIG_CMD_UNCOMPRESS=y +CONFIG_CMD_LET=y +CONFIG_CMD_MSLEEP=y +CONFIG_CMD_READF=y +CONFIG_CMD_SLEEP=y +CONFIG_CMD_DHCP=y +CONFIG_CMD_MIITOOL=y +CONFIG_CMD_PING=y +CONFIG_CMD_TFTP=y +CONFIG_CMD_ECHO_E=y +CONFIG_CMD_EDIT=y +CONFIG_CMD_MENU=y +CONFIG_CMD_MENU_MANAGEMENT=y +CONFIG_CMD_MENUTREE=y +CONFIG_CMD_READLINE=y +CONFIG_CMD_TIMEOUT=y +CONFIG_CMD_CRC=y +CONFIG_CMD_CRC_CMP=y +CONFIG_CMD_MEMTEST=y +CONFIG_CMD_MM=y +CONFIG_CMD_CLK=y +CONFIG_CMD_DETECT=y +CONFIG_CMD_FLASH=y +CONFIG_CMD_BAREBOX_UPDATE=y +CONFIG_CMD_OF_NODE=y +CONFIG_CMD_OF_PROPERTY=y +CONFIG_CMD_OFTREE=y +CONFIG_CMD_TIME=y +CONFIG_NET=y +CONFIG_NET_NETCONSOLE=y +CONFIG_OFDEVICE=y +CONFIG_OF_BAREBOX_DRIVERS=y +CONFIG_DRIVER_SERIAL_STM32=y +CONFIG_DRIVER_NET_DESIGNWARE=y +CONFIG_DRIVER_NET_DESIGNWARE_GENERIC=y +CONFIG_AT803X_PHY=y +CONFIG_MICREL_PHY=y +# CONFIG_SPI is not set +# CONFIG_PINCTRL is not set +CONFIG_FS_EXT4=y +CONFIG_FS_TFTP=y +CONFIG_FS_NFS=y +CONFIG_FS_FAT=y +CONFIG_FS_FAT_WRITE=y +CONFIG_FS_FAT_LFN=y +CONFIG_ZLIB=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_CRC8=y diff --git a/arch/arm/mach-stm32mp/Kconfig b/arch/arm/mach-stm32mp/Kconfig new file mode 100644 index 0000000..bcf7293 --- /dev/null +++ b/arch/arm/mach-stm32mp/Kconfig @@ -0,0 +1,10 @@ +if ARCH_STM32MP + +config ARCH_STM32MP1157 + bool + +config MACH_STM32MP157C_DK2 + select ARCH_STM32MP1157 + bool "STM32MP157C-DK2 board" + +endif diff --git a/arch/arm/mach-stm32mp/Makefile b/arch/arm/mach-stm32mp/Makefile new file mode 100644 index 0000000..16a2186 --- /dev/null +++ b/arch/arm/mach-stm32mp/Makefile @@ -0,0 +1 @@ +obj- := __dummy__.o diff --git a/arch/arm/mach-stm32mp/include/mach/debug_ll.h b/arch/arm/mach-stm32mp/include/mach/debug_ll.h new file mode 100644 index 0000000..99fedb9 --- /dev/null +++ b/arch/arm/mach-stm32mp/include/mach/debug_ll.h @@ -0,0 +1,28 @@ +#ifndef __MACH_STM32MP1_DEBUG_LL_H +#define __MACH_STM32MP1_DEBUG_LL_H + +#include +#include + +#define DEBUG_LL_UART_ADDR STM32_UART4_BASE + +#define CR1_OFFSET 0x00 +#define CR3_OFFSET 0x08 +#define BRR_OFFSET 0x0c +#define ISR_OFFSET 0x1c +#define ICR_OFFSET 0x20 +#define RDR_OFFSET 0x24 +#define TDR_OFFSET 0x28 + +#define USART_ISR_TXE BIT(7) + +static inline void PUTC_LL(int c) +{ + void __iomem *base = IOMEM(DEBUG_LL_UART_ADDR); + + writel(c, base + TDR_OFFSET); + + while ((readl(base + ISR_OFFSET) & USART_ISR_TXE) == 0); +} + +#endif /* __MACH_STM32MP1_DEBUG_LL_H */ diff --git a/arch/arm/mach-stm32mp/include/mach/stm32.h b/arch/arm/mach-stm32mp/include/mach/stm32.h new file mode 100644 index 0000000..f9bdb78 --- /dev/null +++ b/arch/arm/mach-stm32mp/include/mach/stm32.h @@ -0,0 +1,35 @@ +/* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause */ +/* + * Copyright (C) 2018, STMicroelectronics - All Rights Reserved + */ + +#ifndef _MACH_STM32_H_ +#define _MACH_STM32_H_ + +/* + * Peripheral memory map + */ +#define STM32_RCC_BASE 0x50000000 +#define STM32_PWR_BASE 0x50001000 +#define STM32_DBGMCU_BASE 0x50081000 +#define STM32_BSEC_BASE 0x5C005000 +#define STM32_TZC_BASE 0x5C006000 +#define STM32_ETZPC_BASE 0x5C007000 +#define STM32_TAMP_BASE 0x5C00A000 + +#define STM32_USART1_BASE 0x5C000000 +#define STM32_USART2_BASE 0x4000E000 +#define STM32_USART3_BASE 0x4000F000 +#define STM32_UART4_BASE 0x40010000 +#define STM32_UART5_BASE 0x40011000 +#define STM32_USART6_BASE 0x44003000 +#define STM32_UART7_BASE 0x40018000 +#define STM32_UART8_BASE 0x40019000 + +#define STM32_SYSRAM_BASE 0x2FFC0000 +#define STM32_SYSRAM_SIZE SZ_256K + +#define STM32_DDR_BASE 0xC0000000 +#define STM32_DDR_SIZE SZ_1G + +#endif /* _MACH_STM32_H_ */ diff --git a/arch/arm/mach-stm32mp1/Kconfig b/arch/arm/mach-stm32mp1/Kconfig deleted file mode 100644 index cc7cf23..0000000 --- a/arch/arm/mach-stm32mp1/Kconfig +++ /dev/null @@ -1,10 +0,0 @@ -if ARCH_STM32MP1 - -config ARCH_STM32MP1157 - bool - -config MACH_STM32MP157C_DK2 - select ARCH_STM32MP1157 - bool "STM32MP157C-DK2 board" - -endif diff --git a/arch/arm/mach-stm32mp1/Makefile b/arch/arm/mach-stm32mp1/Makefile deleted file mode 100644 index 16a2186..0000000 --- a/arch/arm/mach-stm32mp1/Makefile +++ /dev/null @@ -1 +0,0 @@ -obj- := __dummy__.o diff --git a/arch/arm/mach-stm32mp1/include/mach/debug_ll.h b/arch/arm/mach-stm32mp1/include/mach/debug_ll.h deleted file mode 100644 index 99fedb9..0000000 --- a/arch/arm/mach-stm32mp1/include/mach/debug_ll.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef __MACH_STM32MP1_DEBUG_LL_H -#define __MACH_STM32MP1_DEBUG_LL_H - -#include -#include - -#define DEBUG_LL_UART_ADDR STM32_UART4_BASE - -#define CR1_OFFSET 0x00 -#define CR3_OFFSET 0x08 -#define BRR_OFFSET 0x0c -#define ISR_OFFSET 0x1c -#define ICR_OFFSET 0x20 -#define RDR_OFFSET 0x24 -#define TDR_OFFSET 0x28 - -#define USART_ISR_TXE BIT(7) - -static inline void PUTC_LL(int c) -{ - void __iomem *base = IOMEM(DEBUG_LL_UART_ADDR); - - writel(c, base + TDR_OFFSET); - - while ((readl(base + ISR_OFFSET) & USART_ISR_TXE) == 0); -} - -#endif /* __MACH_STM32MP1_DEBUG_LL_H */ diff --git a/arch/arm/mach-stm32mp1/include/mach/stm32.h b/arch/arm/mach-stm32mp1/include/mach/stm32.h deleted file mode 100644 index f9bdb78..0000000 --- a/arch/arm/mach-stm32mp1/include/mach/stm32.h +++ /dev/null @@ -1,35 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause */ -/* - * Copyright (C) 2018, STMicroelectronics - All Rights Reserved - */ - -#ifndef _MACH_STM32_H_ -#define _MACH_STM32_H_ - -/* - * Peripheral memory map - */ -#define STM32_RCC_BASE 0x50000000 -#define STM32_PWR_BASE 0x50001000 -#define STM32_DBGMCU_BASE 0x50081000 -#define STM32_BSEC_BASE 0x5C005000 -#define STM32_TZC_BASE 0x5C006000 -#define STM32_ETZPC_BASE 0x5C007000 -#define STM32_TAMP_BASE 0x5C00A000 - -#define STM32_USART1_BASE 0x5C000000 -#define STM32_USART2_BASE 0x4000E000 -#define STM32_USART3_BASE 0x4000F000 -#define STM32_UART4_BASE 0x40010000 -#define STM32_UART5_BASE 0x40011000 -#define STM32_USART6_BASE 0x44003000 -#define STM32_UART7_BASE 0x40018000 -#define STM32_UART8_BASE 0x40019000 - -#define STM32_SYSRAM_BASE 0x2FFC0000 -#define STM32_SYSRAM_SIZE SZ_256K - -#define STM32_DDR_BASE 0xC0000000 -#define STM32_DDR_SIZE SZ_1G - -#endif /* _MACH_STM32_H_ */ diff --git a/images/Makefile b/images/Makefile index 479647a..293e644 100644 --- a/images/Makefile +++ b/images/Makefile @@ -140,7 +140,7 @@ include $(srctree)/images/Makefile.omap3 include $(srctree)/images/Makefile.rockchip include $(srctree)/images/Makefile.socfpga -include $(srctree)/images/Makefile.stm32mp1 +include $(srctree)/images/Makefile.stm32mp include $(srctree)/images/Makefile.tegra include $(srctree)/images/Makefile.vexpress include $(srctree)/images/Makefile.xburst diff --git a/images/Makefile.stm32mp b/images/Makefile.stm32mp new file mode 100644 index 0000000..d26231c --- /dev/null +++ b/images/Makefile.stm32mp @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: GPL-2.0-or-later +# +# barebox image generation Makefile for STMicroelectronics MP1 +# + +pblb-$(CONFIG_MACH_STM32MP157C_DK2) += start_stm32mp157c_dk2.pblb +FILE_barebox-stm32mp157c-dk2.img = start_stm32mp157c_dk2.pblb +image-$(CONFIG_MACH_STM32MP157C_DK2) += barebox-stm32mp157c-dk2.img diff --git a/images/Makefile.stm32mp1 b/images/Makefile.stm32mp1 deleted file mode 100644 index d26231c..0000000 --- a/images/Makefile.stm32mp1 +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-or-later -# -# barebox image generation Makefile for STMicroelectronics MP1 -# - -pblb-$(CONFIG_MACH_STM32MP157C_DK2) += start_stm32mp157c_dk2.pblb -FILE_barebox-stm32mp157c-dk2.img = start_stm32mp157c_dk2.pblb -image-$(CONFIG_MACH_STM32MP157C_DK2) += barebox-stm32mp157c-dk2.img