From: Roland Hieber <r.hieber@pengutronix.de>
To: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Barebox List <barebox@lists.infradead.org>,
Ahmad Fatoum <a.fatoum@pengutronix.de>
Subject: Re: [PATCH] Add initial support for the EVB-KSZ9477 eval board
Date: Wed, 7 Nov 2018 14:37:45 +0100 [thread overview]
Message-ID: <20181107133745.3fl7r7iqd6v3k47o@pengutronix.de> (raw)
In-Reply-To: <20181102090743.25128-1-s.hauer@pengutronix.de>
On Fri, Nov 02, 2018 at 10:07:43AM +0100, Sascha Hauer wrote:
> From: Ahmad Fatoum <a.fatoum@pengutronix.de>
>
> The EVB-KSZ9477 is an evaluation board for the KSZ9477 ethernet switch.
> This board is equipped with a atsama5d3 SoC with 256MiB of SDRAM, 256MiB
> of NAND flash and a SD card slot.
>
> For now only second stage booting is supported with AT91bootstrap as
> first stage loader.
I think this fact should probably also documented in an additional
Documentation/boards/…, no?
- Roland
>
> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> ---
> arch/arm/boards/Makefile | 1 +
> .../arm/boards/microchip-ksz9477-evb/Makefile | 1 +
> .../boards/microchip-ksz9477-evb/lowlevel.c | 28 ++++
> .../configs/microchip_ksz9477_evb_defconfig | 74 +++++++++
> arch/arm/dts/Makefile | 1 +
> arch/arm/dts/at91-microchip-ksz9477-evb.dts | 153 ++++++++++++++++++
> arch/arm/mach-at91/Kconfig | 7 +
> arch/arm/mach-at91/Makefile | 2 +-
> images/Makefile.at91 | 4 +
> 9 files changed, 270 insertions(+), 1 deletion(-)
> create mode 100644 arch/arm/boards/microchip-ksz9477-evb/Makefile
> create mode 100644 arch/arm/boards/microchip-ksz9477-evb/lowlevel.c
> create mode 100644 arch/arm/configs/microchip_ksz9477_evb_defconfig
> create mode 100644 arch/arm/dts/at91-microchip-ksz9477-evb.dts
>
> diff --git a/arch/arm/boards/Makefile b/arch/arm/boards/Makefile
> index c737cf3413..c183b89051 100644
> --- a/arch/arm/boards/Makefile
> +++ b/arch/arm/boards/Makefile
> @@ -110,6 +110,7 @@ obj-$(CONFIG_MACH_SABRESD) += freescale-mx6-sabresd/
> obj-$(CONFIG_MACH_FREESCALE_IMX6SX_SABRESDB) += freescale-mx6sx-sabresdb/
> obj-$(CONFIG_MACH_SAMA5D3XEK) += sama5d3xek/
> obj-$(CONFIG_MACH_SAMA5D3_XPLAINED) += sama5d3_xplained/
> +obj-$(CONFIG_MACH_MICROCHIP_KSZ9477_EVB) += microchip-ksz9477-evb/
> obj-$(CONFIG_MACH_SAMA5D4_XPLAINED) += sama5d4_xplained/
> obj-$(CONFIG_MACH_SAMA5D4EK) += sama5d4ek/
> obj-$(CONFIG_MACH_SCB9328) += scb9328/
> diff --git a/arch/arm/boards/microchip-ksz9477-evb/Makefile b/arch/arm/boards/microchip-ksz9477-evb/Makefile
> new file mode 100644
> index 0000000000..b08c4a93ca
> --- /dev/null
> +++ b/arch/arm/boards/microchip-ksz9477-evb/Makefile
> @@ -0,0 +1 @@
> +lwl-y += lowlevel.o
> diff --git a/arch/arm/boards/microchip-ksz9477-evb/lowlevel.c b/arch/arm/boards/microchip-ksz9477-evb/lowlevel.c
> new file mode 100644
> index 0000000000..639958a459
> --- /dev/null
> +++ b/arch/arm/boards/microchip-ksz9477-evb/lowlevel.c
> @@ -0,0 +1,28 @@
> +/*
> + * Copyright (C) 2018 Ahmad Fatoum, Pengutronix
> + *
> + * Under GPLv2
> + */
> +
> +#include <common.h>
> +#include <init.h>
> +
> +#include <asm/barebox-arm-head.h>
> +#include <asm/barebox-arm.h>
> +
> +#include <mach/hardware.h>
> +
> +extern char __dtb_at91_microchip_ksz9477_evb_start[];
> +
> +ENTRY_FUNCTION(start_sama5d3_xplained_ung8071, r0, r1, r2)
> +{
> + void *fdt;
> +
> + arm_cpu_lowlevel_init();
> +
> + arm_setup_stack(SAMA5D3_SRAM_BASE + SAMA5D3_SRAM_SIZE - 16);
> +
> + fdt = __dtb_at91_microchip_ksz9477_evb_start + get_runtime_offset();
> +
> + barebox_arm_entry(SAMA5_DDRCS, SZ_256M, fdt);
> +}
> diff --git a/arch/arm/configs/microchip_ksz9477_evb_defconfig b/arch/arm/configs/microchip_ksz9477_evb_defconfig
> new file mode 100644
> index 0000000000..e7d05bd13b
> --- /dev/null
> +++ b/arch/arm/configs/microchip_ksz9477_evb_defconfig
> @@ -0,0 +1,74 @@
> +CONFIG_ARCH_SAMA5D3=y
> +CONFIG_AT91_MULTI_BOARDS=y
> +CONFIG_MACH_MICROCHIP_KSZ9477_EVB=y
> +CONFIG_AEABI=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_OFTREE=y
> +CONFIG_BOOTM_OFTREE_UIMAGE=y
> +CONFIG_CONSOLE_ALLOW_COLOR=y
> +CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW=y
> +CONFIG_DEBUG_INFO=y
> +CONFIG_CMD_DMESG=y
> +CONFIG_LONGHELP=y
> +CONFIG_CMD_IOMEM=y
> +CONFIG_CMD_MEMINFO=y
> +CONFIG_CMD_AT91_BOOT_TEST=y
> +# CONFIG_CMD_BOOTU is not set
> +CONFIG_CMD_GO=y
> +CONFIG_CMD_RESET=y
> +CONFIG_CMD_UIMAGE=y
> +CONFIG_CMD_EXPORT=y
> +CONFIG_CMD_DEFAULTENV=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_LET=y
> +CONFIG_CMD_MSLEEP=y
> +CONFIG_CMD_READF=y
> +CONFIG_CMD_SLEEP=y
> +CONFIG_CMD_DHCP=y
> +CONFIG_CMD_PING=y
> +CONFIG_CMD_ECHO_E=y
> +CONFIG_CMD_EDIT=y
> +CONFIG_CMD_TIMEOUT=y
> +CONFIG_CMD_CRC=y
> +CONFIG_CMD_CRC_CMP=y
> +CONFIG_CMD_MM=y
> +CONFIG_CMD_CLK=y
> +CONFIG_CMD_DETECT=y
> +CONFIG_CMD_FLASH=y
> +CONFIG_CMD_GPIO=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_NFS=y
> +CONFIG_OF_BAREBOX_DRIVERS=y
> +CONFIG_OF_BAREBOX_ENV_IN_FS=y
> +CONFIG_DRIVER_NET_MACB=y
> +CONFIG_DRIVER_NET_MICREL=y
> +CONFIG_MCI=y
> +CONFIG_MCI_STARTUP=y
> +CONFIG_MCI_MMC_BOOT_PARTITIONS=y
> +CONFIG_MCI_ATMEL=y
> +CONFIG_FS_TFTP=y
> +CONFIG_FS_NFS=y
> +CONFIG_FS_FAT=y
> +CONFIG_FS_FAT_WRITE=y
> +CONFIG_FS_FAT_LFN=y
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index 1caeca35b4..809ecf67b9 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -115,6 +115,7 @@ pbl-dtb-$(CONFIG_MACH_ZII_VF610_DEV) += \
> vf610-zii-ssmb-spu3.dtb.o \
> vf610-zii-scu4-aib-rev-c.dtb.o
> pbl-dtb-$(CONFIG_MACH_AT91SAM9263EK_DT) += at91sam9263ek.dtb.o
> +pbl-dtb-$(CONFIG_MACH_MICROCHIP_KSZ9477_EVB) += at91-microchip-ksz9477-evb.dtb.o
> pbl-dtb-$(CONFIG_MACH_AT91SAM9X5EK) += at91sam9x5ek.dtb.o
>
> pbl-dtb-$(CONFIG_MACH_ZII_IMX7D_RPU2) += imx7d-zii-rpu2.dtb.o
> diff --git a/arch/arm/dts/at91-microchip-ksz9477-evb.dts b/arch/arm/dts/at91-microchip-ksz9477-evb.dts
> new file mode 100644
> index 0000000000..075cdcd088
> --- /dev/null
> +++ b/arch/arm/dts/at91-microchip-ksz9477-evb.dts
> @@ -0,0 +1,153 @@
> +/*
> + * at91-microchip-ksz9477-evb.dts - Device Tree file for the EVB-KSZ9477 board
> + *
> + * Copyright (C) 2014 Atmel,
> + * 2014 Nicolas Ferre <nicolas.ferre@atmel.com>
> + * 2018 Ahmad Fatoum <a.fatoum@pengutronix.de>
> + *
> + * Licensed under GPLv2 or later.
> + */
> +/dts-v1/;
> +#include <arm/sama5d36.dtsi>
> +
> +/ {
> + model = "Microchip EVB-KSZ9477";
> + compatible = "atmel,sama5d3-ksz9477-evb", "atmel,sama5d3", "atmel,sama5";
> +
> + aliases {
> + mmc0 = &mmc0;
> + };
> +
> + chosen {
> + stdout-path = &dbgu;
> +
> + environment {
> + compatible = "barebox,environment";
> + device-path = &mmc0, "partname:0";
> + file-path = "barebox.env";
> + };
> + };
> +
> + memory {
> + reg = <0x20000000 0x10000000>;
> + };
> +};
> +
> +&pinctrl {
> + board {
> + pinctrl_mmc0_cd: mmc0_cd {
> + atmel,pins =
> + <AT91_PIOE 0 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
> + };
> +
> + pinctrl_spi_ksz: spi_ksz {
> + atmel,pins =
> + <
> + AT91_PIOB 28 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH
> + AT91_PIOC 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH
> + >;
> + };
> + };
> +};
> +
> +&slow_xtal {
> + clock-frequency = <32768>;
> +};
> +
> +&main_xtal {
> + clock-frequency = <12000000>;
> +};
> +
> +&dbgu {
> + status = "okay";
> +};
> +
> +&macb0 {
> + phy-mode = "rgmii";
> + gpios = <&pioB 28 GPIO_ACTIVE_LOW>;
> + status = "okay";
> +
> + fixed-link {
> + speed = <1000>;
> + full-duplex;
> + };
> +};
> +
> +&mmc0 {
> + pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_dat4_7 &pinctrl_mmc0_cd>;
> + status = "okay";
> + slot@0 {
> + reg = <0>;
> + bus-width = <8>;
> + cd-gpios = <&pioE 0 GPIO_ACTIVE_LOW>;
> + };
> +};
> +
> +&pmc {
> + main: mainck {
> + clock-frequency = <12000000>;
> + };
> +};
> +
> +&spi1 {
> + pinctrl-0 = <&pinctrl_spi_ksz>;
> + cs-gpios = <&pioC 25 0>;
> + id = <1>;
> + status = "okay";
> +
> + ksz9477: ksz9477@0 {
> + compatible = "microchip,ksz9477", "microchip,ksz9893";
> + reg = <0>;
> +
> + /* Bus clock is 132 MHz. */
> + spi-max-frequency = <44000000>;
> + spi-cpha;
> + spi-cpol;
> + gpios = <&pioB 28 GPIO_ACTIVE_LOW>;
> + status = "okay";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> + label = "lan0";
> + };
> +
> + port@1 {
> + reg = <1>;
> + label = "lan1";
> + };
> +
> + port@2 {
> + reg = <2>;
> + label = "lan2";
> + };
> +
> + port@3 {
> + reg = <3>;
> + label = "lan3";
> + };
> +
> + port@4 {
> + reg = <4>;
> + label = "lan4";
> + };
> +
> + port@5 {
> + reg = <5>;
> + label = "cpu";
> + ethernet = <&macb0>;
> + phy-mode = "rgmii-id";
> +
> + fixed-link {
> + speed = <1000>;
> + full-duplex;
> + };
> + };
> +
> + /* port 6 is connected to eth0 */
> + };
> + };
> +};
> diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
> index 0a9cf3ad13..2c949098f0 100644
> --- a/arch/arm/mach-at91/Kconfig
> +++ b/arch/arm/mach-at91/Kconfig
> @@ -550,6 +550,13 @@ config MACH_AT91SAM9X5EK
> Select this if you re using Atmel's AT91SAM9x5-EK Evaluation Kit.
> Supported chips are sam9g15, sam9g25, sam9x25, sam9g35 and sam9x35.
>
> +config MACH_MICROCHIP_KSZ9477_EVB
> + bool "Microchip EVB-KSZ9477 Evaluation Kit"
> + select OFDEVICE
> + select COMMON_CLK_OF_PROVIDER
> + help
> + Select this if you are using Microchip's EVB-KSZ9477 Evaluation Kit.
> +
> endif
>
> comment "AT91 Board Options"
> diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
> index 664201ceb6..afbc896eea 100644
> --- a/arch/arm/mach-at91/Makefile
> +++ b/arch/arm/mach-at91/Makefile
> @@ -20,10 +20,10 @@ obj-$(CONFIG_ARCH_AT91SAM9261) += at91sam9261.o at91sam9261_devices.o
> obj-$(CONFIG_ARCH_AT91SAM9G10) += at91sam9261.o at91sam9261_devices.o
> ifeq ($(CONFIG_OFDEVICE),)
> obj-$(CONFIG_ARCH_AT91SAM9263) += at91sam9263.o at91sam9263_devices.o
> +obj-$(CONFIG_ARCH_SAMA5D3) += sama5d3.o sama5d3_devices.o
> endif
> obj-$(CONFIG_ARCH_AT91SAM9G20) += at91sam9260.o at91sam9260_devices.o
> obj-$(CONFIG_ARCH_AT91SAM9G45) += at91sam9g45.o at91sam9g45_devices.o
> obj-$(CONFIG_ARCH_AT91SAM9X5) += at91sam9x5_devices.o
> obj-$(CONFIG_ARCH_AT91SAM9N12) += at91sam9n12.o at91sam9n12_devices.o
> -obj-$(CONFIG_ARCH_SAMA5D3) += sama5d3.o sama5d3_devices.o
> obj-$(CONFIG_ARCH_SAMA5D4) += sama5d4.o sama5d4_devices.o
> diff --git a/images/Makefile.at91 b/images/Makefile.at91
> index c7d86563a7..90860fcc15 100644
> --- a/images/Makefile.at91
> +++ b/images/Makefile.at91
> @@ -9,3 +9,7 @@ image-$(CONFIG_MACH_AT91SAM9X5EK) += barebox-at91sam9x5ek.img
> pblx-$(CONFIG_MACH_AT91SAM9263EK) += start_at91sam9263ek
> FILE_barebox-at91sam9263ek.img = start_at91sam9263ek.pblx
> image-$(CONFIG_MACH_AT91SAM9263EK) += barebox-at91sam9263ek.img
> +
> +pblx-$(CONFIG_MACH_MICROCHIP_KSZ9477_EVB) += start_sama5d3_xplained_ung8071
> +FILE_barebox-microchip-ksz9477-evb.img = start_sama5d3_xplained_ung8071.pblx
> +image-$(CONFIG_MACH_MICROCHIP_KSZ9477_EVB) += barebox-microchip-ksz9477-evb.img
> --
> 2.19.1
>
>
> _______________________________________________
> barebox mailing list
> barebox@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
>
--
Roland Hieber | r.hieber@pengutronix.de |
Pengutronix e.K. | https://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim | Phone: +49-5121-206917-5086 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
next prev parent reply other threads:[~2018-11-07 13:38 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-02 9:07 Sascha Hauer
2018-11-02 23:31 ` Sam Ravnborg
2018-11-05 7:32 ` Sascha Hauer
2018-11-05 13:56 ` Sam Ravnborg
2018-11-07 13:37 ` Roland Hieber [this message]
2018-11-07 20:57 ` Sam Ravnborg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181107133745.3fl7r7iqd6v3k47o@pengutronix.de \
--to=r.hieber@pengutronix.de \
--cc=a.fatoum@pengutronix.de \
--cc=barebox@lists.infradead.org \
--cc=s.hauer@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox