diff options
Diffstat (limited to 'configs/platform-v7a_noneon/patches/barebox-2023.07.1/0002-ARM-at91-add-support-for-SAMA5D3-Ethernet-Developmen.patch')
-rw-r--r-- | configs/platform-v7a_noneon/patches/barebox-2023.07.1/0002-ARM-at91-add-support-for-SAMA5D3-Ethernet-Developmen.patch | 219 |
1 files changed, 219 insertions, 0 deletions
diff --git a/configs/platform-v7a_noneon/patches/barebox-2023.07.1/0002-ARM-at91-add-support-for-SAMA5D3-Ethernet-Developmen.patch b/configs/platform-v7a_noneon/patches/barebox-2023.07.1/0002-ARM-at91-add-support-for-SAMA5D3-Ethernet-Developmen.patch new file mode 100644 index 0000000..7aeec24 --- /dev/null +++ b/configs/platform-v7a_noneon/patches/barebox-2023.07.1/0002-ARM-at91-add-support-for-SAMA5D3-Ethernet-Developmen.patch @@ -0,0 +1,219 @@ +From: Oleksij Rempel <o.rempel@pengutronix.de> +Date: Tue, 4 Jul 2023 06:35:09 +0200 +Subject: [PATCH] ARM: at91: add support for SAMA5D3 - Ethernet Development + System Board + +Microchip Technology SAMA5D3 Ethernet Development System (EDS) Board +(DM320114) is an MPU-based platform for evaluating Ethernet Switch and +PHY products. Compatible Ethernet Switch and PHY Evaluation Boards +connect to the SAMA5D3 EDS Board via either an RGMII or RMII connector. +The Microchip Technology SAMA5D3 EDS Board is not intended for +stand-alone use and has no Ethernet capabilities when no daughter board +or an USB Ethernet adapter is connected. + +For more information see: +https://www.microchip.com/en-us/development-tool/DM320114 + +Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> +--- + Documentation/boards/at91.rst | 2 + + arch/arm/boards/Makefile | 1 + + arch/arm/boards/microchip-sama5d3-eds/Makefile | 3 ++ + arch/arm/boards/microchip-sama5d3-eds/lowlevel.c | 62 ++++++++++++++++++++++++ + arch/arm/configs/at91_multi_defconfig | 1 + + arch/arm/dts/Makefile | 1 + + arch/arm/dts/at91-microchip-sama5d3-eds.dts | 14 ++++++ + arch/arm/mach-at91/Kconfig | 10 ++++ + images/Makefile.at91 | 9 ++++ + 9 files changed, 103 insertions(+) + create mode 100644 arch/arm/boards/microchip-sama5d3-eds/Makefile + create mode 100644 arch/arm/boards/microchip-sama5d3-eds/lowlevel.c + create mode 100644 arch/arm/dts/at91-microchip-sama5d3-eds.dts + +diff --git a/Documentation/boards/at91.rst b/Documentation/boards/at91.rst +index f502979df6eb..961ef58d84ac 100644 +--- a/Documentation/boards/at91.rst ++++ b/Documentation/boards/at91.rst +@@ -35,6 +35,8 @@ The resulting images will be placed under ``images/``: + barebox-at91sam9263ek.img + barebox-microchip-ksz9477-evb.img + barebox-microchip-ksz9477-evb-xload-mmc.img ++ barebox-microchip-sama5d3-eds.img ++ barebox-microchip-sama5d3-eds-xload-mmc.img + barebox-sama5d3-xplained.img + barebox-sama5d3-xplained-xload-mmc.img + barebox-sama5d27-som1-ek.img +diff --git a/arch/arm/boards/Makefile b/arch/arm/boards/Makefile +index 2877debad535..382e649fce62 100644 +--- a/arch/arm/boards/Makefile ++++ b/arch/arm/boards/Makefile +@@ -121,6 +121,7 @@ obj-$(CONFIG_MACH_SAMA5D27_SOM1) += sama5d27-som1/ + obj-$(CONFIG_MACH_SAMA5D3XEK) += sama5d3xek/ + obj-$(CONFIG_MACH_SAMA5D3_XPLAINED) += sama5d3_xplained/ + obj-$(CONFIG_MACH_MICROCHIP_KSZ9477_EVB) += microchip-ksz9477-evb/ ++obj-$(CONFIG_MACH_MICROCHIP_SAMA5D3_EDS) += microchip-sama5d3-eds/ + obj-$(CONFIG_MACH_SAMA5D4_XPLAINED) += sama5d4_xplained/ + obj-$(CONFIG_MACH_SAMA5D4_WIFX) += sama5d4_wifx/ + obj-$(CONFIG_MACH_SAMA5D4EK) += sama5d4ek/ +diff --git a/arch/arm/boards/microchip-sama5d3-eds/Makefile b/arch/arm/boards/microchip-sama5d3-eds/Makefile +new file mode 100644 +index 000000000000..458f5209008d +--- /dev/null ++++ b/arch/arm/boards/microchip-sama5d3-eds/Makefile +@@ -0,0 +1,3 @@ ++# SPDX-License-Identifier: GPL-2.0-only ++ ++lwl-y += lowlevel.o +diff --git a/arch/arm/boards/microchip-sama5d3-eds/lowlevel.c b/arch/arm/boards/microchip-sama5d3-eds/lowlevel.c +new file mode 100644 +index 000000000000..79346a9b6ac1 +--- /dev/null ++++ b/arch/arm/boards/microchip-sama5d3-eds/lowlevel.c +@@ -0,0 +1,62 @@ ++// SPDX-License-Identifier: GPL-2.0-only AND BSD-1-Clause ++/* ++ * Copyright (C) 2014, Atmel Corporation ++ * Copyright (C) 2018 Ahmad Fatoum, Pengutronix ++ */ ++ ++#include <common.h> ++#include <init.h> ++ ++#include <asm/barebox-arm-head.h> ++#include <debug_ll.h> ++#include <mach/at91/barebox-arm.h> ++#include <mach/at91/iomux.h> ++#include <mach/at91/sama5d3.h> ++#include <mach/at91/sama5d3-xplained-ddramc.h> ++#include <mach/at91/xload.h> ++ ++/* PCK = 528MHz, MCK = 132MHz */ ++#define MASTER_CLOCK 132000000 ++ ++static void dbgu_init(void) ++{ ++ void __iomem *pio = IOMEM(SAMA5D3_BASE_PIOB); ++ ++ sama5d3_pmc_enable_periph_clock(SAMA5D3_ID_PIOB); ++ ++ at91_mux_pio3_pin(pio, pin_to_mask(AT91_PIN_PB31), AT91_MUX_PERIPH_A, 0); ++ ++ sama5d3_pmc_enable_periph_clock(SAMA5D3_ID_DBGU); ++ at91_dbgu_setup_ll(IOMEM(AT91_BASE_DBGU1), MASTER_CLOCK, 115200); ++ ++ putc_ll('>'); ++} ++ ++SAMA5D3_ENTRY_FUNCTION(start_microchip_sama5d3_eds_xload_mmc, r4) ++{ ++ sama5d3_lowlevel_init(); ++ ++ relocate_to_current_adr(); ++ setup_c(); ++ ++ sama5d3_udelay_init(MASTER_CLOCK); ++ sama5d3_xplained_ddrconf(); ++ if (IS_ENABLED(CONFIG_DEBUG_LL)) ++ dbgu_init(); ++ ++ sama5d3_atmci_start_image(0, MASTER_CLOCK, 0); ++} ++ ++extern char __dtb_z_at91_microchip_sama5d3_eds_start[]; ++ ++SAMA5D3_ENTRY_FUNCTION(start_microchip_sama5d3_eds, r4) ++{ ++ void *fdt; ++ ++ if (IS_ENABLED(CONFIG_DEBUG_LL)) ++ dbgu_init(); ++ ++ fdt = __dtb_z_at91_microchip_sama5d3_eds_start + get_runtime_offset(); ++ ++ sama5d3_barebox_entry(r4, fdt); ++} +diff --git a/arch/arm/configs/at91_multi_defconfig b/arch/arm/configs/at91_multi_defconfig +index c93c2f578609..de47af3bd0a6 100644 +--- a/arch/arm/configs/at91_multi_defconfig ++++ b/arch/arm/configs/at91_multi_defconfig +@@ -4,6 +4,7 @@ CONFIG_MACH_SKOV_ARM9CPU=y + CONFIG_MACH_AT91SAM9263EK=y + CONFIG_MACH_AT91SAM9X5EK=y + CONFIG_MACH_MICROCHIP_KSZ9477_EVB=y ++CONFIG_MACH_MICROCHIP_SAMA5D3_EDS=y + CONFIG_MACH_SAMA5D3_XPLAINED=y + CONFIG_MACH_SAMA5D27_SOM1=y + CONFIG_MACH_SAMA5D27_GIANTBOARD=y +diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile +index 98f4c4e0194b..eb9e0e062adf 100644 +--- a/arch/arm/dts/Makefile ++++ b/arch/arm/dts/Makefile +@@ -193,6 +193,7 @@ lwl-$(CONFIG_MACH_AC_SXB) += ac-sxb.dtb.o + lwl-$(CONFIG_MACH_AT91SAM9263EK_DT) += at91sam9263ek.dtb.o + lwl-$(CONFIG_MACH_SAMA5D3_XPLAINED) += at91-sama5d3_xplained.dtb.o + lwl-$(CONFIG_MACH_MICROCHIP_KSZ9477_EVB) += at91-microchip-ksz9477-evb.dtb.o ++lwl-$(CONFIG_MACH_MICROCHIP_SAMA5D3_EDS) += at91-microchip-sama5d3-eds.dtb.o + lwl-$(CONFIG_MACH_SAMA5D27_SOM1) += at91-sama5d27_som1_ek.dtb.o + lwl-$(CONFIG_MACH_SAMA5D27_GIANTBOARD) += at91-sama5d27_giantboard.dtb.o + lwl-$(CONFIG_MACH_SAMA5D4_WIFX) += at91-sama5d4_wifx_l1.dtb.o +diff --git a/arch/arm/dts/at91-microchip-sama5d3-eds.dts b/arch/arm/dts/at91-microchip-sama5d3-eds.dts +new file mode 100644 +index 000000000000..ad75fc882c63 +--- /dev/null ++++ b/arch/arm/dts/at91-microchip-sama5d3-eds.dts +@@ -0,0 +1,14 @@ ++/* SPDX-License-Identifier: GPL-2.0 */ ++/dts-v1/; ++#include <arm/at91-sama5d3_eds.dts> ++#include "sama5d3.dtsi" ++ ++/ { ++ chosen { ++ environment { ++ compatible = "barebox,environment"; ++ device-path = &mmc0, "partname:0"; ++ file-path = "barebox.env"; ++ }; ++ }; ++}; +diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig +index 349586b68339..d2499747252d 100644 +--- a/arch/arm/mach-at91/Kconfig ++++ b/arch/arm/mach-at91/Kconfig +@@ -606,6 +606,16 @@ config MACH_MICROCHIP_KSZ9477_EVB + help + Select this if you are using Microchip's EVB-KSZ9477 Evaluation Kit. + ++config MACH_MICROCHIP_SAMA5D3_EDS ++ bool "Microchip SAMA5D3 Ethernet Development System" ++ select SOC_SAMA5D3 ++ select OFDEVICE ++ select MCI_ATMEL_PBL ++ select COMMON_CLK_OF_PROVIDER ++ help ++ Select this if you are using Microchip's SAMA5D3 Ethernet Development ++ System. ++ + config MACH_SAMA5D3_XPLAINED + bool "Atmel SAMA5D3_XPLAINED Evaluation Kit" + select SOC_SAMA5D3 +diff --git a/images/Makefile.at91 b/images/Makefile.at91 +index 19a81e2e9a3c..36f725940639 100644 +--- a/images/Makefile.at91 ++++ b/images/Makefile.at91 +@@ -20,6 +20,15 @@ MAX_PBL_IMAGE_SIZE_start_sama5d3_xplained_ung8071_xload_mmc = 0xffff + FILE_barebox-microchip-ksz9477-evb-xload-mmc.img = start_sama5d3_xplained_ung8071_xload_mmc.pblb + image-$(CONFIG_MACH_MICROCHIP_KSZ9477_EVB) += barebox-microchip-ksz9477-evb-xload-mmc.img + ++pblb-$(CONFIG_MACH_MICROCHIP_SAMA5D3_EDS) += start_microchip_sama5d3_eds ++FILE_barebox-microchip-sama5d3-eds.img = start_microchip_sama5d3_eds.pblb ++image-$(CONFIG_MACH_MICROCHIP_SAMA5D3_EDS) += barebox-microchip-sama5d3-eds.img ++ ++pblb-$(CONFIG_MACH_MICROCHIP_SAMA5D3_EDS) += start_microchip_sama5d3_eds_xload_mmc ++MAX_PBL_IMAGE_SIZE_start_microchip_sama5d3_eds_xload_mmc = 0xffff ++FILE_barebox-microchip-sama5d3-eds-xload-mmc.img = start_microchip_sama5d3_eds_xload_mmc.pblb ++image-$(CONFIG_MACH_MICROCHIP_SAMA5D3_EDS) += barebox-microchip-sama5d3-eds-xload-mmc.img ++ + pblb-$(CONFIG_MACH_SAMA5D3_XPLAINED) += start_sama5d3_xplained + FILE_barebox-sama5d3-xplained.img = start_sama5d3_xplained.pblb + image-$(CONFIG_MACH_SAMA5D3_XPLAINED) += barebox-sama5d3-xplained.img |