diff mbox series

[1/1] Port to new board "VoCore2"

Message ID 20191219114053.20811-2-mc5686@mclink.it
State Superseded
Headers show
Series Small patch series to add support for VoCore2 board. | expand

Commit Message

Mauro Condarelli Dec. 19, 2019, 11:40 a.m. UTC
modified:   arch/mips/dts/Makefile
	Add support for creation of vocore2.dtb
	move creation of gardena-smart-gateway-mt7688.dtb and
		linkit-smart-7688.dtb to more specific setting.

new file:   arch/mips/dts/vocore2.dts
modified:   arch/mips/mach-mtmips/Kconfig
new file:   board/vonger/vocore2/Kconfig
	KConfig support for board VoCore2.

new file:   board/vonger/vocore2/Makefile
new file:   board/vonger/vocore2/board.c
	Board initialization (largely copied from existing).

new file:   configs/vocore2_defconfig
new file:   include/configs/vocore2.h
	Board settings (WIP).

Signed-off-by: MCon <mc5686@mclink.it>
---

 arch/mips/dts/Makefile        |  6 ++--
 arch/mips/dts/vocore2.dts     | 62 +++++++++++++++++++++++++++++++++++
 arch/mips/mach-mtmips/Kconfig |  9 +++++
 board/vonger/vocore2/Kconfig  | 11 +++++++
 board/vonger/vocore2/Makefile |  2 ++
 board/vonger/vocore2/board.c  | 35 ++++++++++++++++++++
 configs/vocore2_defconfig     | 61 ++++++++++++++++++++++++++++++++++
 include/configs/vocore2.h     | 57 ++++++++++++++++++++++++++++++++
 8 files changed, 240 insertions(+), 3 deletions(-)
 create mode 100644 arch/mips/dts/vocore2.dts
 create mode 100644 board/vonger/vocore2/Kconfig
 create mode 100644 board/vonger/vocore2/Makefile
 create mode 100644 board/vonger/vocore2/board.c
 create mode 100644 configs/vocore2_defconfig
 create mode 100644 include/configs/vocore2.h

Comments

Stefan Roese Dec. 19, 2019, 3:08 p.m. UTC | #1
Hi Mauro,

On 19.12.19 12:40, MCon wrote:
> modified:   arch/mips/dts/Makefile
> 	Add support for creation of vocore2.dtb
> 	move creation of gardena-smart-gateway-mt7688.dtb and
> 		linkit-smart-7688.dtb to more specific setting.
> 
> new file:   arch/mips/dts/vocore2.dts
> modified:   arch/mips/mach-mtmips/Kconfig
> new file:   board/vonger/vocore2/Kconfig
> 	KConfig support for board VoCore2.
> 
> new file:   board/vonger/vocore2/Makefile
> new file:   board/vonger/vocore2/board.c
> 	Board initialization (largely copied from existing).
> 
> new file:   configs/vocore2_defconfig
> new file:   include/configs/vocore2.h
> 	Board settings (WIP).

This is a pretty uncommon commit text for a new board port. Please
don't add just a summary of which files are changed or added. Better
describe the newly added board with its supported (and perhaps not
yet supported) features. As an example, here the commit text for the
GARDENA board:

     The Gardena Smart-Gateway boards have a MT7688 SoC with 128 MiB of RAM
     and 8 MiB of flash (SPI NOR) and additional 128MiB SPI NAND storage.
     
     This patch also includes 2 targets. One is the target that can be
     programmed into the SPI NOR flash and a 2nd target "xxx-ram" is
     added to support loading and booting via an already running U-Boot
     version. This allows easy development and testing without the
     need to flash the image each time.

Just an example of course.

Please find some further review comments below inline.

> Signed-off-by: MCon <mc5686@mclink.it>

Please use your name with the email address:

Signed-off-by: Mauro Condarelli <mc5686@mclink.it>

> ---
> 
>   arch/mips/dts/Makefile        |  6 ++--
>   arch/mips/dts/vocore2.dts     | 62 +++++++++++++++++++++++++++++++++++
>   arch/mips/mach-mtmips/Kconfig |  9 +++++
>   board/vonger/vocore2/Kconfig  | 11 +++++++
>   board/vonger/vocore2/Makefile |  2 ++
>   board/vonger/vocore2/board.c  | 35 ++++++++++++++++++++
>   configs/vocore2_defconfig     | 61 ++++++++++++++++++++++++++++++++++
>   include/configs/vocore2.h     | 57 ++++++++++++++++++++++++++++++++
>   8 files changed, 240 insertions(+), 3 deletions(-)
>   create mode 100644 arch/mips/dts/vocore2.dts
>   create mode 100644 board/vonger/vocore2/Kconfig
>   create mode 100644 board/vonger/vocore2/Makefile
>   create mode 100644 board/vonger/vocore2/board.c
>   create mode 100644 configs/vocore2_defconfig
>   create mode 100644 include/configs/vocore2.h
> 
> diff --git a/arch/mips/dts/Makefile b/arch/mips/dts/Makefile
> index c9d75596f2..664505ee00 100644
> --- a/arch/mips/dts/Makefile
> +++ b/arch/mips/dts/Makefile
> @@ -1,8 +1,5 @@
>   # SPDX-License-Identifier: GPL-2.0+
>   
> -dtb-$(CONFIG_ARCH_MTMIPS) += \
> -	gardena-smart-gateway-mt7688.dtb \
> -	linkit-smart-7688.dtb
>   dtb-$(CONFIG_TARGET_AP121) += ap121.dtb
>   dtb-$(CONFIG_TARGET_AP143) += ap143.dtb
>   dtb-$(CONFIG_TARGET_AP152) += ap152.dtb
> @@ -16,12 +13,15 @@ dtb-$(CONFIG_BOARD_COMTREND_AR5387UN) += comtrend,ar-5387un.dtb
>   dtb-$(CONFIG_BOARD_COMTREND_CT5361) += comtrend,ct-5361.dtb
>   dtb-$(CONFIG_BOARD_COMTREND_VR3032U) += comtrend,vr-3032u.dtb
>   dtb-$(CONFIG_BOARD_COMTREND_WAP5813N) += comtrend,wap-5813n.dtb
> +dtb-$(CONFIG_BOARD_GARDENA_SMART_GATEWAY_MT7688) += gardena-smart-gateway-mt7688.dtb
>   dtb-$(CONFIG_BOARD_HUAWEI_HG556A) += huawei,hg556a.dtb
> +dtb-$(CONFIG_BOARD_LINKIT._SMART_7688) += linkit-smart-7688.dtb
>   dtb-$(CONFIG_BOARD_NETGEAR_CG3100D) += netgear,cg3100d.dtb
>   dtb-$(CONFIG_BOARD_NETGEAR_DGND3700V2) += netgear,dgnd3700v2.dtb
>   dtb-$(CONFIG_BOARD_SAGEM_FAST1704) += sagem,f@st1704.dtb
>   dtb-$(CONFIG_BOARD_SFR_NB4_SER) += sfr,nb4-ser.dtb
>   dtb-$(CONFIG_BOARD_TPLINK_WDR4300) += tplink_wdr4300.dtb
> +dtb-$(CONFIG_BOARD_VOCORE2) += vocore2.dtb
>   dtb-$(CONFIG_TARGET_JZ4780_CI20) += ci20.dtb
>   dtb-$(CONFIG_SOC_LUTON) += luton_pcb090.dtb luton_pcb091.dtb
>   dtb-$(CONFIG_SOC_OCELOT) += ocelot_pcb120.dtb ocelot_pcb123.dtb
> diff --git a/arch/mips/dts/vocore2.dts b/arch/mips/dts/vocore2.dts
> new file mode 100644
> index 0000000000..cdcd9b4e1d
> --- /dev/null
> +++ b/arch/mips/dts/vocore2.dts
> @@ -0,0 +1,62 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2019 Mauro Condarelli <mc5686@mclink.it>
> + */
> +
> +/dts-v1/;
> +#include "mt7628a.dtsi"
> +
> +/ {
> +	compatible = "vocore,vocore2", "ralink,mt7628a-soc";
> +	model = "VoCore2";
> +
> +	aliases {
> +		serial0 = &uart2;
> +		spi0 = &spi0;
> +	};
> +
> +	memory@0 {
> +		device_type = "memory";
> +		reg = <0x0 0x08000000>;
> +	};
> +
> +	chosen {
> +		bootargs = "console=ttyS2,115200";
> +		stdout-path = &uart2;
> +	};
> +};
> +
> +&pinctrl {
> +	state_default: pin_state {
> +		p0led {
> +			groups = "p0led_a";
> +			function = "led";
> +		};
> +	};
> +};
> +
> +&uart2 {
> +	status = "okay";
> +};
> +
> +&spi0 {
> +	status = "okay";
> +	nor0: m25p80@0 {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		compatible = "m25p80";
> +		spi-max-frequency = <10000000>;
> +		reg = <0x0>;
> +		m25p,chunked-io = <32>;
> +	};
> +};
> +
> +&eth {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&ephy_iot_mode>;
> +	mediatek,poll-link-phy = <0>;
> +};
> +
> +&mmc {
> +	status = "okay";
> +};
> diff --git a/arch/mips/mach-mtmips/Kconfig b/arch/mips/mach-mtmips/Kconfig
> index c8dcf19c0d..5ea260232f 100644
> --- a/arch/mips/mach-mtmips/Kconfig
> +++ b/arch/mips/mach-mtmips/Kconfig
> @@ -43,6 +43,14 @@ config BOARD_LINKIT_SMART_7688
>   	  ethernet ports, 1 USB port, 1 UART, GPIO buttons and LEDs, and
>   	  a MT7688 (PCIe).
>   
> +config BOARD_VOCORE2
> +	bool "VoCore2"
> +	depends on SOC_MT7628
> +	select SUPPORTS_BOOT_RAM
> +	help
> +	  Vonger VoCore2 board has a MT7628 SoC with 128 MiB of RAM
> +	  and 16 MiB of flash (SPI).
> +

Is "Vonger" the name of the vendor / manufacturer of this board? I'm
just checking - I don't really know.

>   endchoice
>   
>   choice
> @@ -134,5 +142,6 @@ config SUPPORTS_BOOT_RAM
>   
>   source "board/gardena/smart-gateway-mt7688/Kconfig"
>   source "board/seeed/linkit-smart-7688/Kconfig"
> +source "board/vonger/vocore2/Kconfig"
>   
>   endmenu
> diff --git a/board/vonger/vocore2/Kconfig b/board/vonger/vocore2/Kconfig
> new file mode 100644
> index 0000000000..4067973e70
> --- /dev/null
> +++ b/board/vonger/vocore2/Kconfig
> @@ -0,0 +1,11 @@
> +if BOARD_VOCORE2
> +config SYS_BOARD
> +	default "vocore2"
> +
> +config SYS_VENDOR
> +	default "vonger"
> +
> +config SYS_CONFIG_NAME
> +	default "vocore2"
> +
> +endif
> diff --git a/board/vonger/vocore2/Makefile b/board/vonger/vocore2/Makefile
> new file mode 100644
> index 0000000000..4b162318c2
> --- /dev/null
> +++ b/board/vonger/vocore2/Makefile
> @@ -0,0 +1,2 @@
> +
> +obj-y := board.o
> diff --git a/board/vonger/vocore2/board.c b/board/vonger/vocore2/board.c
> new file mode 100644
> index 0000000000..1ab430247b
> --- /dev/null
> +++ b/board/vonger/vocore2/board.c
> @@ -0,0 +1,35 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright (C) 2019 Mauro Condarelli <mc5686@mclink.it>
> + *
> + * Note: this is largely copied from:
> + *       board/seeed/linkit_smart_7688/board.c
> + *       Copyright (C) 2018 Stefan Roese <sr@denx.de>
> + */
> +
> +#include <common.h>
> +#include <asm/io.h>
> +
> +#define MT76XX_GPIO1_MODE   0x10000060
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +void board_debug_uart_init(void)
> +{
> +	void __iomem *gpio_mode;
> +
> +	/* Select UART2 mode instead of GPIO mode (default) */
> +	gpio_mode = ioremap_nocache(MT76XX_GPIO1_MODE, 0x100);
> +	clrbits_le32(gpio_mode, GENMASK(27, 26));
> +}
> +
> +int board_early_init_f(void)
> +{
> +	/*
> +	 * The pin muxing of UART2 also needs to be done, if debug uart
> +	 * is not enabled. So we need to call this function here as well.
> +	 */
> +	board_debug_uart_init();
> +
> +	return 0;
> +}
> diff --git a/configs/vocore2_defconfig b/configs/vocore2_defconfig
> new file mode 100644
> index 0000000000..7b09a16fa4
> --- /dev/null
> +++ b/configs/vocore2_defconfig
> @@ -0,0 +1,61 @@
> +CONFIG_MIPS=y
> +CONFIG_SYS_TEXT_BASE=0x80010000
> +CONFIG_ENV_SIZE=0x00001000
> +CONFIG_ENV_OFFSET=0x00FFE000
> +CONFIG_ENV_SECT_SIZE=0x00001000
> +CONFIG_ARCH_MTMIPS=y
> +CONFIG_BOARD_VOCORE2=y
> +CONFIG_MIPS_BOOT_FDT=y
> +CONFIG_ENV_VARS_UBOOT_CONFIG=y
> +CONFIG_SYS_BOOT_GET_CMDLINE=y
> +CONFIG_SYS_BOOT_GET_KBD=y
> +# CONFIG_LEGACY_IMAGE_FORMAT is not set
> +# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
> +CONFIG_LOGLEVEL=8
> +CONFIG_VERSION_VARIABLE=y
> +CONFIG_DISPLAY_BOARDINFO_LATE=y
> +# CONFIG_AUTOBOOT is not set
> +# CONFIG_BOOTM_NETBSD is not set
> +# CONFIG_BOOTM_PLAN9 is not set
> +# CONFIG_BOOTM_RTEMS is not set
> +# CONFIG_BOOTM_VXWORKS is not set
> +# CONFIG_CMD_XIMG is not set
> +# CONFIG_CMD_LOADB is not set
> +# CONFIG_CMD_LOADS is not set
> +CONFIG_CMD_MTD=y
> +CONFIG_CMD_PART=y
> +CONFIG_CMD_SPI=y
> +CONFIG_CMD_USB=y
> +CONFIG_CMD_FAT=y
> +CONFIG_CMD_FS_GENERIC=y
> +CONFIG_CMD_MTDPARTS=y
> +CONFIG_MTDIDS_DEFAULT="nor0=spi0.0"
> +CONFIG_MTDPARTS_DEFAULT="spi0.0:320k(u-boot),2752k(kernel),13304k(filesystem),4k(env),-(factory)"
> +# CONFIG_ISO_PARTITION is not set
> +CONFIG_DEFAULT_DEVICE_TREE="vocore2"
> +CONFIG_ENV_IS_IN_SPI_FLASH=y
> +CONFIG_ENV_ADDR=0x00FFE000
> +# CONFIG_NET is not set
> +# CONFIG_DM_DEVICE_REMOVE is not set
> +CONFIG_BLK=y
> +# CONFIG_INPUT is not set
> +CONFIG_LED=y
> +CONFIG_LED_BLINK=y
> +CONFIG_LED_GPIO=y
> +CONFIG_MTD=y
> +CONFIG_SPI_FLASH_SFDP_SUPPORT=y
> +CONFIG_SPI_FLASH_GIGADEVICE=y
> +CONFIG_SPI_FLASH_MTD=y
> +# CONFIG_DM_ETH is not set
> +# CONFIG_RAM_ROCKCHIP_DEBUG is not set
> +CONFIG_SPECIFY_CONSOLE_INDEX=y
> +CONFIG_CONS_INDEX=3
> +CONFIG_SPI=y
> +CONFIG_MT7621_SPI=y
> +CONFIG_USB=y
> +CONFIG_DM_USB=y
> +CONFIG_USB_EHCI_HCD=y
> +CONFIG_USB_EHCI_GENERIC=y
> +CONFIG_USB_STORAGE=y
> +CONFIG_LZMA=y
> +CONFIG_LZO=y
> diff --git a/include/configs/vocore2.h b/include/configs/vocore2.h
> new file mode 100644
> index 0000000000..9ee32329f2
> --- /dev/null
> +++ b/include/configs/vocore2.h
> @@ -0,0 +1,57 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Copyright (C) 2019 Mauro Condarelli <mc5686@mclink.it>
> + */
> +
> +#ifndef __VOCORE2_CONFIG_H__
> +#define __VOCORE2_CONFIG_H__
> +
> +/* CPU */
> +#define CONFIG_SYS_MIPS_TIMER_FREQ      290000000
> +
> +/* RAM */
> +#define CONFIG_SYS_SDRAM_BASE          0x80000000
> +
> +#define CONFIG_SYS_LOAD_ADDR        CONFIG_SYS_SDRAM_BASE + 0x100000
> +
> +#define CONFIG_SYS_INIT_SP_OFFSET        0x400000
> +
> +#ifdef CONFIG_BOOT_RAM
> +#define CONFIG_SKIP_LOWLEVEL_INIT
> +#endif
> +
> +/* UART */
> +#define CONFIG_SYS_BAUDRATE_TABLE   { 9600, 19200, 38400, 57600, \
> +					115200, 230400, 460800, 921600 }
> +#define CONFIG_BAUDRATE			115200
> +
> +/* RAM */
> +#define CONFIG_SYS_MEMTEST_START       0x80100000
> +#define CONFIG_SYS_MEMTEST_END         0x80400000
> +
> +/* Memory usage */
> +#define CONFIG_SYS_MAXARGS                     64
> +#define CONFIG_SYS_MALLOC_LEN       (1024 * 1024)
> +#define CONFIG_SYS_BOOTPARAMS_LEN    (128 * 1024)
> +#define CONFIG_SYS_CBSIZE                     512
> +
> +/* U-Boot */
> +#define CONFIG_SYS_MONITOR_BASE     CONFIG_SYS_TEXT_BASE
> +
> +/* Environment settings */
> +#if defined(CONFIG_MTDIDS_DEFAULT) && defined(CONFIG_MTDPARTS_DEFAULT)
> +#define CONFIG_EXTRA_ENV_SETTINGS			\
> +	"mtdids="   CONFIG_MTDIDS_DEFAULT	"\0"	\
> +	"mtdparts=" CONFIG_MTDPARTS_DEFAULT	"\0"
> +#endif

Is this needed here? Doesn't it work witout this in this header?

> +/*
> + * Environment is right behind U-Boot in flash. Make sure U-Boot
> + * doesn't grow into the environment area.
> + */
> +//MCon: serve? #define CONFIG_BOARD_SIZE_LIMIT     CONFIG_ENV_OFFSET

???

Please don't add dead code.

> +
> +#define CONFIG_ENV_IS_IN_SPI_FLASH              1
> +//#define CONFIG_ENV_OFFSET               0x0FFF000
> +//#define CONFIG_ENV_SIZE                 0x0001000

Same here, please don't add dead code.

> +
> +#endif//__VOCORE2_CONFIG_H__

Hmm, I'm pretty sure, that checkpatch will complain about this missing
space here. Please run checkpatch over your patch(es) before submitting.

Thanks,
Stefan
Daniel Schwierzeck Dec. 20, 2019, 3:35 a.m. UTC | #2
Am 19.12.19 um 16:08 schrieb Stefan Roese:
> Hi Mauro,
> 
> On 19.12.19 12:40, MCon wrote:
>> modified:   arch/mips/dts/Makefile
>>     Add support for creation of vocore2.dtb
>>     move creation of gardena-smart-gateway-mt7688.dtb and
>>         linkit-smart-7688.dtb to more specific setting.
>>
>> new file:   arch/mips/dts/vocore2.dts
>> modified:   arch/mips/mach-mtmips/Kconfig
>> new file:   board/vonger/vocore2/Kconfig
>>     KConfig support for board VoCore2.
>>
>> new file:   board/vonger/vocore2/Makefile
>> new file:   board/vonger/vocore2/board.c
>>     Board initialization (largely copied from existing).
>>
>> new file:   configs/vocore2_defconfig
>> new file:   include/configs/vocore2.h
>>     Board settings (WIP).
> 
> This is a pretty uncommon commit text for a new board port. Please
> don't add just a summary of which files are changed or added. Better
> describe the newly added board with its supported (and perhaps not
> yet supported) features. As an example, here the commit text for the
> GARDENA board:
> 
>     The Gardena Smart-Gateway boards have a MT7688 SoC with 128 MiB of RAM
>     and 8 MiB of flash (SPI NOR) and additional 128MiB SPI NAND storage.
>         This patch also includes 2 targets. One is the target that can be
>     programmed into the SPI NOR flash and a 2nd target "xxx-ram" is
>     added to support loading and booting via an already running U-Boot
>     version. This allows easy development and testing without the
>     need to flash the image each time.
> 
> Just an example of course.
> 
> Please find some further review comments below inline.
> 
>> Signed-off-by: MCon <mc5686@mclink.it>
> 
> Please use your name with the email address:
> 
> Signed-off-by: Mauro Condarelli <mc5686@mclink.it>

yes, please also fix your Git config accordingly (git config [--global]
user.email "Mauro Condarelli <mc5686@mclink.it>").

> 
>> ---
>>
>>   arch/mips/dts/Makefile        |  6 ++--
>>   arch/mips/dts/vocore2.dts     | 62 +++++++++++++++++++++++++++++++++++
>>   arch/mips/mach-mtmips/Kconfig |  9 +++++
>>   board/vonger/vocore2/Kconfig  | 11 +++++++
>>   board/vonger/vocore2/Makefile |  2 ++
>>   board/vonger/vocore2/board.c  | 35 ++++++++++++++++++++
>>   configs/vocore2_defconfig     | 61 ++++++++++++++++++++++++++++++++++
>>   include/configs/vocore2.h     | 57 ++++++++++++++++++++++++++++++++
>>   8 files changed, 240 insertions(+), 3 deletions(-)
>>   create mode 100644 arch/mips/dts/vocore2.dts
>>   create mode 100644 board/vonger/vocore2/Kconfig
>>   create mode 100644 board/vonger/vocore2/Makefile
>>   create mode 100644 board/vonger/vocore2/board.c
>>   create mode 100644 configs/vocore2_defconfig
>>   create mode 100644 include/configs/vocore2.h
>>
>> diff --git a/arch/mips/dts/Makefile b/arch/mips/dts/Makefile
>> index c9d75596f2..664505ee00 100644
>> --- a/arch/mips/dts/Makefile
>> +++ b/arch/mips/dts/Makefile
>> @@ -1,8 +1,5 @@
>>   # SPDX-License-Identifier: GPL-2.0+
>>   -dtb-$(CONFIG_ARCH_MTMIPS) += \
>> -    gardena-smart-gateway-mt7688.dtb \
>> -    linkit-smart-7688.dtb
>>   dtb-$(CONFIG_TARGET_AP121) += ap121.dtb
>>   dtb-$(CONFIG_TARGET_AP143) += ap143.dtb
>>   dtb-$(CONFIG_TARGET_AP152) += ap152.dtb
>> @@ -16,12 +13,15 @@ dtb-$(CONFIG_BOARD_COMTREND_AR5387UN) +=
>> comtrend,ar-5387un.dtb
>>   dtb-$(CONFIG_BOARD_COMTREND_CT5361) += comtrend,ct-5361.dtb
>>   dtb-$(CONFIG_BOARD_COMTREND_VR3032U) += comtrend,vr-3032u.dtb
>>   dtb-$(CONFIG_BOARD_COMTREND_WAP5813N) += comtrend,wap-5813n.dtb
>> +dtb-$(CONFIG_BOARD_GARDENA_SMART_GATEWAY_MT7688) +=
>> gardena-smart-gateway-mt7688.dtb
>>   dtb-$(CONFIG_BOARD_HUAWEI_HG556A) += huawei,hg556a.dtb
>> +dtb-$(CONFIG_BOARD_LINKIT._SMART_7688) += linkit-smart-7688.dtb

this is an unrelated change and should be removed. I guess this was
intentional by Stefan. If not, please submit a separate patch for that.

>>   dtb-$(CONFIG_BOARD_NETGEAR_CG3100D) += netgear,cg3100d.dtb
>>   dtb-$(CONFIG_BOARD_NETGEAR_DGND3700V2) += netgear,dgnd3700v2.dtb
>>   dtb-$(CONFIG_BOARD_SAGEM_FAST1704) += sagem,f@st1704.dtb
>>   dtb-$(CONFIG_BOARD_SFR_NB4_SER) += sfr,nb4-ser.dtb
>>   dtb-$(CONFIG_BOARD_TPLINK_WDR4300) += tplink_wdr4300.dtb
>> +dtb-$(CONFIG_BOARD_VOCORE2) += vocore2.dtb

you should add the vendor name, e.g.

dtb-$(CONFIG_BOARD_VONGER_VOCORE2) += vonger_vocore2.dtb

>>   dtb-$(CONFIG_TARGET_JZ4780_CI20) += ci20.dtb
>>   dtb-$(CONFIG_SOC_LUTON) += luton_pcb090.dtb luton_pcb091.dtb
>>   dtb-$(CONFIG_SOC_OCELOT) += ocelot_pcb120.dtb ocelot_pcb123.dtb
>> diff --git a/arch/mips/dts/vocore2.dts b/arch/mips/dts/vocore2.dts
>> new file mode 100644
>> index 0000000000..cdcd9b4e1d
>> --- /dev/null
>> +++ b/arch/mips/dts/vocore2.dts
>> @@ -0,0 +1,62 @@
>> +// SPDX-License-Identifier: GPL-2.0+
>> +/*
>> + * Copyright (C) 2019 Mauro Condarelli <mc5686@mclink.it>
>> + */
>> +
>> +/dts-v1/;
>> +#include "mt7628a.dtsi"
>> +
>> +/ {
>> +    compatible = "vocore,vocore2", "ralink,mt7628a-soc";
>> +    model = "VoCore2";
>> +
>> +    aliases {
>> +        serial0 = &uart2;
>> +        spi0 = &spi0;
>> +    };
>> +
>> +    memory@0 {
>> +        device_type = "memory";
>> +        reg = <0x0 0x08000000>;
>> +    };
>> +
>> +    chosen {
>> +        bootargs = "console=ttyS2,115200";
>> +        stdout-path = &uart2;
>> +    };
>> +};
>> +
>> +&pinctrl {
>> +    state_default: pin_state {
>> +        p0led {
>> +            groups = "p0led_a";
>> +            function = "led";
>> +        };
>> +    };
>> +};
>> +
>> +&uart2 {
>> +    status = "okay";
>> +};
>> +
>> +&spi0 {
>> +    status = "okay";
>> +    nor0: m25p80@0 {
>> +        #address-cells = <1>;
>> +        #size-cells = <1>;
>> +        compatible = "m25p80";
>> +        spi-max-frequency = <10000000>;
>> +        reg = <0x0>;
>> +        m25p,chunked-io = <32>;
>> +    };
>> +};
>> +
>> +&eth {
>> +    pinctrl-names = "default";
>> +    pinctrl-0 = <&ephy_iot_mode>;
>> +    mediatek,poll-link-phy = <0>;
>> +};
>> +
>> +&mmc {
>> +    status = "okay";
>> +};
>> diff --git a/arch/mips/mach-mtmips/Kconfig
>> b/arch/mips/mach-mtmips/Kconfig
>> index c8dcf19c0d..5ea260232f 100644
>> --- a/arch/mips/mach-mtmips/Kconfig
>> +++ b/arch/mips/mach-mtmips/Kconfig
>> @@ -43,6 +43,14 @@ config BOARD_LINKIT_SMART_7688
>>         ethernet ports, 1 USB port, 1 UART, GPIO buttons and LEDs, and
>>         a MT7688 (PCIe).
>>   +config BOARD_VOCORE2
>> +    bool "VoCore2"
>> +    depends on SOC_MT7628
>> +    select SUPPORTS_BOOT_RAM
>> +    help
>> +      Vonger VoCore2 board has a MT7628 SoC with 128 MiB of RAM
>> +      and 16 MiB of flash (SPI).
>> +
> 
> Is "Vonger" the name of the vendor / manufacturer of this board? I'm
> just checking - I don't really know.
> 
>>   endchoice
>>     choice
>> @@ -134,5 +142,6 @@ config SUPPORTS_BOOT_RAM
>>     source "board/gardena/smart-gateway-mt7688/Kconfig"
>>   source "board/seeed/linkit-smart-7688/Kconfig"
>> +source "board/vonger/vocore2/Kconfig"
>>     endmenu
>> diff --git a/board/vonger/vocore2/Kconfig b/board/vonger/vocore2/Kconfig
>> new file mode 100644
>> index 0000000000..4067973e70
>> --- /dev/null
>> +++ b/board/vonger/vocore2/Kconfig
>> @@ -0,0 +1,11 @@
>> +if BOARD_VOCORE2
>> +config SYS_BOARD
>> +    default "vocore2"
>> +
>> +config SYS_VENDOR
>> +    default "vonger"
>> +
>> +config SYS_CONFIG_NAME
>> +    default "vocore2"
>> +
>> +endif
>> diff --git a/board/vonger/vocore2/Makefile
>> b/board/vonger/vocore2/Makefile
>> new file mode 100644
>> index 0000000000..4b162318c2
>> --- /dev/null
>> +++ b/board/vonger/vocore2/Makefile
>> @@ -0,0 +1,2 @@
>> +
>> +obj-y := board.o
>> diff --git a/board/vonger/vocore2/board.c b/board/vonger/vocore2/board.c
>> new file mode 100644
>> index 0000000000..1ab430247b
>> --- /dev/null
>> +++ b/board/vonger/vocore2/board.c
>> @@ -0,0 +1,35 @@
>> +// SPDX-License-Identifier: GPL-2.0+
>> +/*
>> + * Copyright (C) 2019 Mauro Condarelli <mc5686@mclink.it>
>> + *
>> + * Note: this is largely copied from:
>> + *       board/seeed/linkit_smart_7688/board.c
>> + *       Copyright (C) 2018 Stefan Roese <sr@denx.de>
>> + */
>> +
>> +#include <common.h>
>> +#include <asm/io.h>
>> +
>> +#define MT76XX_GPIO1_MODE   0x10000060
>> +
>> +DECLARE_GLOBAL_DATA_PTR;
>> +
>> +void board_debug_uart_init(void)
>> +{
>> +    void __iomem *gpio_mode;
>> +
>> +    /* Select UART2 mode instead of GPIO mode (default) */
>> +    gpio_mode = ioremap_nocache(MT76XX_GPIO1_MODE, 0x100);
>> +    clrbits_le32(gpio_mode, GENMASK(27, 26));
>> +}
>> +
>> +int board_early_init_f(void)
>> +{
>> +    /*
>> +     * The pin muxing of UART2 also needs to be done, if debug uart
>> +     * is not enabled. So we need to call this function here as well.
>> +     */
>> +    board_debug_uart_init();
>> +
>> +    return 0;
>> +}
>> diff --git a/configs/vocore2_defconfig b/configs/vocore2_defconfig
>> new file mode 100644
>> index 0000000000..7b09a16fa4
>> --- /dev/null
>> +++ b/configs/vocore2_defconfig
>> @@ -0,0 +1,61 @@
>> +CONFIG_MIPS=y
>> +CONFIG_SYS_TEXT_BASE=0x80010000
>> +CONFIG_ENV_SIZE=0x00001000
>> +CONFIG_ENV_OFFSET=0x00FFE000
>> +CONFIG_ENV_SECT_SIZE=0x00001000
>> +CONFIG_ARCH_MTMIPS=y
>> +CONFIG_BOARD_VOCORE2=y
>> +CONFIG_MIPS_BOOT_FDT=y
>> +CONFIG_ENV_VARS_UBOOT_CONFIG=y
>> +CONFIG_SYS_BOOT_GET_CMDLINE=y
>> +CONFIG_SYS_BOOT_GET_KBD=y
>> +# CONFIG_LEGACY_IMAGE_FORMAT is not set
>> +# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
>> +CONFIG_LOGLEVEL=8
>> +CONFIG_VERSION_VARIABLE=y
>> +CONFIG_DISPLAY_BOARDINFO_LATE=y
>> +# CONFIG_AUTOBOOT is not set
>> +# CONFIG_BOOTM_NETBSD is not set
>> +# CONFIG_BOOTM_PLAN9 is not set
>> +# CONFIG_BOOTM_RTEMS is not set
>> +# CONFIG_BOOTM_VXWORKS is not set
>> +# CONFIG_CMD_XIMG is not set
>> +# CONFIG_CMD_LOADB is not set
>> +# CONFIG_CMD_LOADS is not set

a lot of "is not set" entries. Did you generate this config with "make
savedefconfig"?

>> +CONFIG_CMD_MTD=y
>> +CONFIG_CMD_PART=y
>> +CONFIG_CMD_SPI=y
>> +CONFIG_CMD_USB=y
>> +CONFIG_CMD_FAT=y
>> +CONFIG_CMD_FS_GENERIC=y

you should not enable features which the patch set don't support yet. I
don't know about USB because you didn't mentioned it anywhere. But FAT
or block devices are obviously left-overs from your MMC/SD experiments ;)

>> +CONFIG_CMD_MTDPARTS=y
>> +CONFIG_MTDIDS_DEFAULT="nor0=spi0.0"
>> +CONFIG_MTDPARTS_DEFAULT="spi0.0:320k(u-boot),2752k(kernel),13304k(filesystem),4k(env),-(factory)"
>>
>> +# CONFIG_ISO_PARTITION is not set
>> +CONFIG_DEFAULT_DEVICE_TREE="vocore2"
>> +CONFIG_ENV_IS_IN_SPI_FLASH=y
>> +CONFIG_ENV_ADDR=0x00FFE000
>> +# CONFIG_NET is not set
>> +# CONFIG_DM_DEVICE_REMOVE is not set
>> +CONFIG_BLK=y
>> +# CONFIG_INPUT is not set
>> +CONFIG_LED=y
>> +CONFIG_LED_BLINK=y
>> +CONFIG_LED_GPIO=y
>> +CONFIG_MTD=y
>> +CONFIG_SPI_FLASH_SFDP_SUPPORT=y
>> +CONFIG_SPI_FLASH_GIGADEVICE=y
>> +CONFIG_SPI_FLASH_MTD=y
>> +# CONFIG_DM_ETH is not set
>> +# CONFIG_RAM_ROCKCHIP_DEBUG is not set
>> +CONFIG_SPECIFY_CONSOLE_INDEX=y
>> +CONFIG_CONS_INDEX=3
>> +CONFIG_SPI=y
>> +CONFIG_MT7621_SPI=y
>> +CONFIG_USB=y
>> +CONFIG_DM_USB=y
>> +CONFIG_USB_EHCI_HCD=y
>> +CONFIG_USB_EHCI_GENERIC=y
>> +CONFIG_USB_STORAGE=y
>> +CONFIG_LZMA=y
>> +CONFIG_LZO=y
>> diff --git a/include/configs/vocore2.h b/include/configs/vocore2.h
>> new file mode 100644
>> index 0000000000..9ee32329f2
>> --- /dev/null
>> +++ b/include/configs/vocore2.h
>> @@ -0,0 +1,57 @@
>> +/* SPDX-License-Identifier: GPL-2.0+ */
>> +/*
>> + * Copyright (C) 2019 Mauro Condarelli <mc5686@mclink.it>
>> + */
>> +
>> +#ifndef __VOCORE2_CONFIG_H__
>> +#define __VOCORE2_CONFIG_H__
>> +
>> +/* CPU */
>> +#define CONFIG_SYS_MIPS_TIMER_FREQ      290000000
>> +
>> +/* RAM */
>> +#define CONFIG_SYS_SDRAM_BASE          0x80000000
>> +
>> +#define CONFIG_SYS_LOAD_ADDR        CONFIG_SYS_SDRAM_BASE + 0x100000
>> +
>> +#define CONFIG_SYS_INIT_SP_OFFSET        0x400000
>> +
>> +#ifdef CONFIG_BOOT_RAM
>> +#define CONFIG_SKIP_LOWLEVEL_INIT
>> +#endif
>> +
>> +/* UART */
>> +#define CONFIG_SYS_BAUDRATE_TABLE   { 9600, 19200, 38400, 57600, \
>> +                    115200, 230400, 460800, 921600 }
>> +#define CONFIG_BAUDRATE            115200
>> +
>> +/* RAM */
>> +#define CONFIG_SYS_MEMTEST_START       0x80100000
>> +#define CONFIG_SYS_MEMTEST_END         0x80400000
>> +
>> +/* Memory usage */
>> +#define CONFIG_SYS_MAXARGS                     64
>> +#define CONFIG_SYS_MALLOC_LEN       (1024 * 1024)
>> +#define CONFIG_SYS_BOOTPARAMS_LEN    (128 * 1024)
>> +#define CONFIG_SYS_CBSIZE                     512
>> +
>> +/* U-Boot */
>> +#define CONFIG_SYS_MONITOR_BASE     CONFIG_SYS_TEXT_BASE
>> +
>> +/* Environment settings */
>> +#if defined(CONFIG_MTDIDS_DEFAULT) && defined(CONFIG_MTDPARTS_DEFAULT)
>> +#define CONFIG_EXTRA_ENV_SETTINGS            \
>> +    "mtdids="   CONFIG_MTDIDS_DEFAULT    "\0"    \
>> +    "mtdparts=" CONFIG_MTDPARTS_DEFAULT    "\0"
>> +#endif
> 
> Is this needed here? Doesn't it work witout this in this header?
> 
>> +/*
>> + * Environment is right behind U-Boot in flash. Make sure U-Boot
>> + * doesn't grow into the environment area.
>> + */
>> +//MCon: serve? #define CONFIG_BOARD_SIZE_LIMIT     CONFIG_ENV_OFFSET
> 
> ???
> 
> Please don't add dead code.
> 
>> +
>> +#define CONFIG_ENV_IS_IN_SPI_FLASH              1
>> +//#define CONFIG_ENV_OFFSET               0x0FFF000
>> +//#define CONFIG_ENV_SIZE                 0x0001000
> 
> Same here, please don't add dead code.
> 
>> +
>> +#endif//__VOCORE2_CONFIG_H__
> 
> Hmm, I'm pretty sure, that checkpatch will complain about this missing
> space here. Please run checkpatch over your patch(es) before submitting.
> 
> Thanks,
> Stefan
Mauro Condarelli Dec. 20, 2019, 8:17 a.m. UTC | #3
On 12/20/19 4:35 AM, Daniel Schwierzeck wrote:
>
> Am 19.12.19 um 16:08 schrieb Stefan Roese:
>> Hi Mauro,
>>
>> On 19.12.19 12:40, MCon wrote:
>>> modified:   arch/mips/dts/Makefile
>>>     Add support for creation of vocore2.dtb
>>>     move creation of gardena-smart-gateway-mt7688.dtb and
>>>         linkit-smart-7688.dtb to more specific setting.
>>>
>>> new file:   arch/mips/dts/vocore2.dts
>>> modified:   arch/mips/mach-mtmips/Kconfig
>>> new file:   board/vonger/vocore2/Kconfig
>>>     KConfig support for board VoCore2.
>>>
>>> new file:   board/vonger/vocore2/Makefile
>>> new file:   board/vonger/vocore2/board.c
>>>     Board initialization (largely copied from existing).
>>>
>>> new file:   configs/vocore2_defconfig
>>> new file:   include/configs/vocore2.h
>>>     Board settings (WIP).
>> This is a pretty uncommon commit text for a new board port. Please
>> don't add just a summary of which files are changed or added. Better
>> describe the newly added board with its supported (and perhaps not
>> yet supported) features. As an example, here the commit text for the
>> GARDENA board:
>>
>>     The Gardena Smart-Gateway boards have a MT7688 SoC with 128 MiB of RAM
>>     and 8 MiB of flash (SPI NOR) and additional 128MiB SPI NAND storage.
>>         This patch also includes 2 targets. One is the target that can be
>>     programmed into the SPI NOR flash and a 2nd target "xxx-ram" is
>>     added to support loading and booting via an already running U-Boot
>>     version. This allows easy development and testing without the
>>     need to flash the image each time.
>>
>> Just an example of course.
>>
>> Please find some further review comments below inline.
>>
>>> Signed-off-by: MCon <mc5686@mclink.it>
>> Please use your name with the email address:
>>
>> Signed-off-by: Mauro Condarelli <mc5686@mclink.it>
> yes, please also fix your Git config accordingly (git config [--global]
> user.email "Mauro Condarelli <mc5686@mclink.it>").
Will do ASAP (probably right after Christmas).
Last thing is strange, though, because git should already be setup right.
I'll check.

>>> ---
>>>
>>>   arch/mips/dts/Makefile        |  6 ++--
>>>   arch/mips/dts/vocore2.dts     | 62 +++++++++++++++++++++++++++++++++++
>>>   arch/mips/mach-mtmips/Kconfig |  9 +++++
>>>   board/vonger/vocore2/Kconfig  | 11 +++++++
>>>   board/vonger/vocore2/Makefile |  2 ++
>>>   board/vonger/vocore2/board.c  | 35 ++++++++++++++++++++
>>>   configs/vocore2_defconfig     | 61 ++++++++++++++++++++++++++++++++++
>>>   include/configs/vocore2.h     | 57 ++++++++++++++++++++++++++++++++
>>>   8 files changed, 240 insertions(+), 3 deletions(-)
>>>   create mode 100644 arch/mips/dts/vocore2.dts
>>>   create mode 100644 board/vonger/vocore2/Kconfig
>>>   create mode 100644 board/vonger/vocore2/Makefile
>>>   create mode 100644 board/vonger/vocore2/board.c
>>>   create mode 100644 configs/vocore2_defconfig
>>>   create mode 100644 include/configs/vocore2.h
>>>
>>> diff --git a/arch/mips/dts/Makefile b/arch/mips/dts/Makefile
>>> index c9d75596f2..664505ee00 100644
>>> --- a/arch/mips/dts/Makefile
>>> +++ b/arch/mips/dts/Makefile
>>> @@ -1,8 +1,5 @@
>>>   # SPDX-License-Identifier: GPL-2.0+
>>>   -dtb-$(CONFIG_ARCH_MTMIPS) += \
>>> -    gardena-smart-gateway-mt7688.dtb \
>>> -    linkit-smart-7688.dtb
>>>   dtb-$(CONFIG_TARGET_AP121) += ap121.dtb
>>>   dtb-$(CONFIG_TARGET_AP143) += ap143.dtb
>>>   dtb-$(CONFIG_TARGET_AP152) += ap152.dtb
>>> @@ -16,12 +13,15 @@ dtb-$(CONFIG_BOARD_COMTREND_AR5387UN) +=
>>> comtrend,ar-5387un.dtb
>>>   dtb-$(CONFIG_BOARD_COMTREND_CT5361) += comtrend,ct-5361.dtb
>>>   dtb-$(CONFIG_BOARD_COMTREND_VR3032U) += comtrend,vr-3032u.dtb
>>>   dtb-$(CONFIG_BOARD_COMTREND_WAP5813N) += comtrend,wap-5813n.dtb
>>> +dtb-$(CONFIG_BOARD_GARDENA_SMART_GATEWAY_MT7688) +=
>>> gardena-smart-gateway-mt7688.dtb
>>>   dtb-$(CONFIG_BOARD_HUAWEI_HG556A) += huawei,hg556a.dtb
>>> +dtb-$(CONFIG_BOARD_LINKIT._SMART_7688) += linkit-smart-7688.dtb
> this is an unrelated change and should be removed. I guess this was
> intentional by Stefan. If not, please submit a separate patch for that.
Right.
@Stefan: please, could You explain the rationale behind building
all DTBs? I failed to understand.

>>>   dtb-$(CONFIG_BOARD_NETGEAR_CG3100D) += netgear,cg3100d.dtb
>>>   dtb-$(CONFIG_BOARD_NETGEAR_DGND3700V2) += netgear,dgnd3700v2.dtb
>>>   dtb-$(CONFIG_BOARD_SAGEM_FAST1704) += sagem,f@st1704.dtb
>>>   dtb-$(CONFIG_BOARD_SFR_NB4_SER) += sfr,nb4-ser.dtb
>>>   dtb-$(CONFIG_BOARD_TPLINK_WDR4300) += tplink_wdr4300.dtb
>>> +dtb-$(CONFIG_BOARD_VOCORE2) += vocore2.dtb
> you should add the vendor name, e.g.
>
> dtb-$(CONFIG_BOARD_VONGER_VOCORE2) += vonger_vocore2.dtb
Will do.

>>>   dtb-$(CONFIG_TARGET_JZ4780_CI20) += ci20.dtb
>>>   dtb-$(CONFIG_SOC_LUTON) += luton_pcb090.dtb luton_pcb091.dtb
>>>   dtb-$(CONFIG_SOC_OCELOT) += ocelot_pcb120.dtb ocelot_pcb123.dtb
>>> diff --git a/arch/mips/dts/vocore2.dts b/arch/mips/dts/vocore2.dts
>>> new file mode 100644
>>> index 0000000000..cdcd9b4e1d
>>> --- /dev/null
>>> +++ b/arch/mips/dts/vocore2.dts
>>> @@ -0,0 +1,62 @@
>>> +// SPDX-License-Identifier: GPL-2.0+
>>> +/*
>>> + * Copyright (C) 2019 Mauro Condarelli <mc5686@mclink.it>
>>> + */
>>> +
>>> +/dts-v1/;
>>> +#include "mt7628a.dtsi"
>>> +
>>> +/ {
>>> +    compatible = "vocore,vocore2", "ralink,mt7628a-soc";
>>> +    model = "VoCore2";
>>> +
>>> +    aliases {
>>> +        serial0 = &uart2;
>>> +        spi0 = &spi0;
>>> +    };
>>> +
>>> +    memory@0 {
>>> +        device_type = "memory";
>>> +        reg = <0x0 0x08000000>;
>>> +    };
>>> +
>>> +    chosen {
>>> +        bootargs = "console=ttyS2,115200";
>>> +        stdout-path = &uart2;
>>> +    };
>>> +};
>>> +
>>> +&pinctrl {
>>> +    state_default: pin_state {
>>> +        p0led {
>>> +            groups = "p0led_a";
>>> +            function = "led";
>>> +        };
>>> +    };
>>> +};
>>> +
>>> +&uart2 {
>>> +    status = "okay";
>>> +};
>>> +
>>> +&spi0 {
>>> +    status = "okay";
>>> +    nor0: m25p80@0 {
>>> +        #address-cells = <1>;
>>> +        #size-cells = <1>;
>>> +        compatible = "m25p80";
>>> +        spi-max-frequency = <10000000>;
>>> +        reg = <0x0>;
>>> +        m25p,chunked-io = <32>;
>>> +    };
>>> +};
>>> +
>>> +&eth {
>>> +    pinctrl-names = "default";
>>> +    pinctrl-0 = <&ephy_iot_mode>;
>>> +    mediatek,poll-link-phy = <0>;
>>> +};
>>> +
>>> +&mmc {
>>> +    status = "okay";
>>> +};
>>> diff --git a/arch/mips/mach-mtmips/Kconfig
>>> b/arch/mips/mach-mtmips/Kconfig
>>> index c8dcf19c0d..5ea260232f 100644
>>> --- a/arch/mips/mach-mtmips/Kconfig
>>> +++ b/arch/mips/mach-mtmips/Kconfig
>>> @@ -43,6 +43,14 @@ config BOARD_LINKIT_SMART_7688
>>>         ethernet ports, 1 USB port, 1 UART, GPIO buttons and LEDs, and
>>>         a MT7688 (PCIe).
>>>   +config BOARD_VOCORE2
>>> +    bool "VoCore2"
>>> +    depends on SOC_MT7628
>>> +    select SUPPORTS_BOOT_RAM
>>> +    help
>>> +      Vonger VoCore2 board has a MT7628 SoC with 128 MiB of RAM
>>> +      and 16 MiB of flash (SPI).
>>> +
>> Is "Vonger" the name of the vendor / manufacturer of this board? I'm
>> just checking - I don't really know.
I will cross-check.
It was called "Vonger" at the beginning, but now the name disappeared in
favour of "vocore".
I'll inquire how they want to be called (it's a very small company).


>>>   endchoice
>>>     choice
>>> @@ -134,5 +142,6 @@ config SUPPORTS_BOOT_RAM
>>>     source "board/gardena/smart-gateway-mt7688/Kconfig"
>>>   source "board/seeed/linkit-smart-7688/Kconfig"
>>> +source "board/vonger/vocore2/Kconfig"
>>>     endmenu
>>> diff --git a/board/vonger/vocore2/Kconfig b/board/vonger/vocore2/Kconfig
>>> new file mode 100644
>>> index 0000000000..4067973e70
>>> --- /dev/null
>>> +++ b/board/vonger/vocore2/Kconfig
>>> @@ -0,0 +1,11 @@
>>> +if BOARD_VOCORE2
>>> +config SYS_BOARD
>>> +    default "vocore2"
>>> +
>>> +config SYS_VENDOR
>>> +    default "vonger"
>>> +
>>> +config SYS_CONFIG_NAME
>>> +    default "vocore2"
>>> +
>>> +endif
>>> diff --git a/board/vonger/vocore2/Makefile
>>> b/board/vonger/vocore2/Makefile
>>> new file mode 100644
>>> index 0000000000..4b162318c2
>>> --- /dev/null
>>> +++ b/board/vonger/vocore2/Makefile
>>> @@ -0,0 +1,2 @@
>>> +
>>> +obj-y := board.o
>>> diff --git a/board/vonger/vocore2/board.c b/board/vonger/vocore2/board.c
>>> new file mode 100644
>>> index 0000000000..1ab430247b
>>> --- /dev/null
>>> +++ b/board/vonger/vocore2/board.c
>>> @@ -0,0 +1,35 @@
>>> +// SPDX-License-Identifier: GPL-2.0+
>>> +/*
>>> + * Copyright (C) 2019 Mauro Condarelli <mc5686@mclink.it>
>>> + *
>>> + * Note: this is largely copied from:
>>> + *       board/seeed/linkit_smart_7688/board.c
>>> + *       Copyright (C) 2018 Stefan Roese <sr@denx.de>
>>> + */
>>> +
>>> +#include <common.h>
>>> +#include <asm/io.h>
>>> +
>>> +#define MT76XX_GPIO1_MODE   0x10000060
>>> +
>>> +DECLARE_GLOBAL_DATA_PTR;
>>> +
>>> +void board_debug_uart_init(void)
>>> +{
>>> +    void __iomem *gpio_mode;
>>> +
>>> +    /* Select UART2 mode instead of GPIO mode (default) */
>>> +    gpio_mode = ioremap_nocache(MT76XX_GPIO1_MODE, 0x100);
>>> +    clrbits_le32(gpio_mode, GENMASK(27, 26));
>>> +}
>>> +
>>> +int board_early_init_f(void)
>>> +{
>>> +    /*
>>> +     * The pin muxing of UART2 also needs to be done, if debug uart
>>> +     * is not enabled. So we need to call this function here as well.
>>> +     */
>>> +    board_debug_uart_init();
>>> +
>>> +    return 0;
>>> +}
>>> diff --git a/configs/vocore2_defconfig b/configs/vocore2_defconfig
>>> new file mode 100644
>>> index 0000000000..7b09a16fa4
>>> --- /dev/null
>>> +++ b/configs/vocore2_defconfig
>>> @@ -0,0 +1,61 @@
>>> +CONFIG_MIPS=y
>>> +CONFIG_SYS_TEXT_BASE=0x80010000
>>> +CONFIG_ENV_SIZE=0x00001000
>>> +CONFIG_ENV_OFFSET=0x00FFE000
>>> +CONFIG_ENV_SECT_SIZE=0x00001000
>>> +CONFIG_ARCH_MTMIPS=y
>>> +CONFIG_BOARD_VOCORE2=y
>>> +CONFIG_MIPS_BOOT_FDT=y
>>> +CONFIG_ENV_VARS_UBOOT_CONFIG=y
>>> +CONFIG_SYS_BOOT_GET_CMDLINE=y
>>> +CONFIG_SYS_BOOT_GET_KBD=y
>>> +# CONFIG_LEGACY_IMAGE_FORMAT is not set
>>> +# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
>>> +CONFIG_LOGLEVEL=8
>>> +CONFIG_VERSION_VARIABLE=y
>>> +CONFIG_DISPLAY_BOARDINFO_LATE=y
>>> +# CONFIG_AUTOBOOT is not set
>>> +# CONFIG_BOOTM_NETBSD is not set
>>> +# CONFIG_BOOTM_PLAN9 is not set
>>> +# CONFIG_BOOTM_RTEMS is not set
>>> +# CONFIG_BOOTM_VXWORKS is not set
>>> +# CONFIG_CMD_XIMG is not set
>>> +# CONFIG_CMD_LOADB is not set
>>> +# CONFIG_CMD_LOADS is not set
> a lot of "is not set" entries. Did you generate this config with "make
> savedefconfig"?
Yes, this is generated by "make savedefconfig".
I will cross-check in next iteration.

>>> +CONFIG_CMD_MTD=y
>>> +CONFIG_CMD_PART=y
>>> +CONFIG_CMD_SPI=y
>>> +CONFIG_CMD_USB=y
>>> +CONFIG_CMD_FAT=y
>>> +CONFIG_CMD_FS_GENERIC=y
> you should not enable features which the patch set don't support yet. I
> don't know about USB because you didn't mentioned it anywhere. But FAT
> or block devices are obviously left-overs from your MMC/SD experiments ;)
No, they are functional.
I am currently testing (mainly) by loading U-Boot from USB (FAT partition).
This is to avoid re-flashing each iteration; while I'm trying new things
I load
from previous U-Boot with:
    usb start; fatload usb 0 80010000 u-boot.bin; go 80010000

Should I remove this?

>>> +CONFIG_CMD_MTDPARTS=y
>>> +CONFIG_MTDIDS_DEFAULT="nor0=spi0.0"
>>> +CONFIG_MTDPARTS_DEFAULT="spi0.0:320k(u-boot),2752k(kernel),13304k(filesystem),4k(env),-(factory)"
>>>
>>> +# CONFIG_ISO_PARTITION is not set
>>> +CONFIG_DEFAULT_DEVICE_TREE="vocore2"
>>> +CONFIG_ENV_IS_IN_SPI_FLASH=y
>>> +CONFIG_ENV_ADDR=0x00FFE000
>>> +# CONFIG_NET is not set
>>> +# CONFIG_DM_DEVICE_REMOVE is not set
>>> +CONFIG_BLK=y
>>> +# CONFIG_INPUT is not set
>>> +CONFIG_LED=y
>>> +CONFIG_LED_BLINK=y
>>> +CONFIG_LED_GPIO=y
>>> +CONFIG_MTD=y
>>> +CONFIG_SPI_FLASH_SFDP_SUPPORT=y
>>> +CONFIG_SPI_FLASH_GIGADEVICE=y
>>> +CONFIG_SPI_FLASH_MTD=y
>>> +# CONFIG_DM_ETH is not set
>>> +# CONFIG_RAM_ROCKCHIP_DEBUG is not set
>>> +CONFIG_SPECIFY_CONSOLE_INDEX=y
>>> +CONFIG_CONS_INDEX=3
>>> +CONFIG_SPI=y
>>> +CONFIG_MT7621_SPI=y
>>> +CONFIG_USB=y
>>> +CONFIG_DM_USB=y
>>> +CONFIG_USB_EHCI_HCD=y
>>> +CONFIG_USB_EHCI_GENERIC=y
>>> +CONFIG_USB_STORAGE=y
>>> +CONFIG_LZMA=y
>>> +CONFIG_LZO=y
>>> diff --git a/include/configs/vocore2.h b/include/configs/vocore2.h
>>> new file mode 100644
>>> index 0000000000..9ee32329f2
>>> --- /dev/null
>>> +++ b/include/configs/vocore2.h
>>> @@ -0,0 +1,57 @@
>>> +/* SPDX-License-Identifier: GPL-2.0+ */
>>> +/*
>>> + * Copyright (C) 2019 Mauro Condarelli <mc5686@mclink.it>
>>> + */
>>> +
>>> +#ifndef __VOCORE2_CONFIG_H__
>>> +#define __VOCORE2_CONFIG_H__
>>> +
>>> +/* CPU */
>>> +#define CONFIG_SYS_MIPS_TIMER_FREQ      290000000
>>> +
>>> +/* RAM */
>>> +#define CONFIG_SYS_SDRAM_BASE          0x80000000
>>> +
>>> +#define CONFIG_SYS_LOAD_ADDR        CONFIG_SYS_SDRAM_BASE + 0x100000
>>> +
>>> +#define CONFIG_SYS_INIT_SP_OFFSET        0x400000
>>> +
>>> +#ifdef CONFIG_BOOT_RAM
>>> +#define CONFIG_SKIP_LOWLEVEL_INIT
>>> +#endif
>>> +
>>> +/* UART */
>>> +#define CONFIG_SYS_BAUDRATE_TABLE   { 9600, 19200, 38400, 57600, \
>>> +                    115200, 230400, 460800, 921600 }
>>> +#define CONFIG_BAUDRATE            115200
>>> +
>>> +/* RAM */
>>> +#define CONFIG_SYS_MEMTEST_START       0x80100000
>>> +#define CONFIG_SYS_MEMTEST_END         0x80400000
>>> +
>>> +/* Memory usage */
>>> +#define CONFIG_SYS_MAXARGS                     64
>>> +#define CONFIG_SYS_MALLOC_LEN       (1024 * 1024)
>>> +#define CONFIG_SYS_BOOTPARAMS_LEN    (128 * 1024)
>>> +#define CONFIG_SYS_CBSIZE                     512
>>> +
>>> +/* U-Boot */
>>> +#define CONFIG_SYS_MONITOR_BASE     CONFIG_SYS_TEXT_BASE
>>> +
>>> +/* Environment settings */
>>> +#if defined(CONFIG_MTDIDS_DEFAULT) && defined(CONFIG_MTDPARTS_DEFAULT)
>>> +#define CONFIG_EXTRA_ENV_SETTINGS            \
>>> +    "mtdids="   CONFIG_MTDIDS_DEFAULT    "\0"    \
>>> +    "mtdparts=" CONFIG_MTDPARTS_DEFAULT    "\0"
>>> +#endif
>> Is this needed here? Doesn't it work witout this in this header?
I am (currently) loading Environment from a Flash at a fixed
address, but I would like to switch to partition name (if I manage
to understand how it is done).
In general I would like to switch to ENV in MMC/SD (to support
boot counting without too much wear on Flash), but that needs
MMC/SD working, which is another can of worms.

>>> +/*
>>> + * Environment is right behind U-Boot in flash. Make sure U-Boot
>>> + * doesn't grow into the environment area.
>>> + */
>>> +//MCon: serve? #define CONFIG_BOARD_SIZE_LIMIT     CONFIG_ENV_OFFSET
>> ???
>>
>> Please don't add dead code.
This is a leftover.
Removed.

>>> +
>>> +#define CONFIG_ENV_IS_IN_SPI_FLASH              1
>>> +//#define CONFIG_ENV_OFFSET               0x0FFF000
>>> +//#define CONFIG_ENV_SIZE                 0x0001000
>> Same here, please don't add dead code.
Ditto.

>>> +
>>> +#endif//__VOCORE2_CONFIG_H__
>> Hmm, I'm pretty sure, that checkpatch will complain about this missing
>> space here. Please run checkpatch over your patch(es) before submitting.
Apparently it didn't.
I submitted patches via "patman" which (AFAIK) calls checkpatch internally.

Note: patman complained about:
    <unknown>:0: warning: added, moved or deleted file(s), does
MAINTAINERS need updating?

I didn't know how to fix this (I fixed all other complains) so I forced
sending with "-i".
What should I do, instead?


>> Thanks,
>> Stefan
Regards
Mauro
diff mbox series

Patch

diff --git a/arch/mips/dts/Makefile b/arch/mips/dts/Makefile
index c9d75596f2..664505ee00 100644
--- a/arch/mips/dts/Makefile
+++ b/arch/mips/dts/Makefile
@@ -1,8 +1,5 @@ 
 # SPDX-License-Identifier: GPL-2.0+
 
-dtb-$(CONFIG_ARCH_MTMIPS) += \
-	gardena-smart-gateway-mt7688.dtb \
-	linkit-smart-7688.dtb
 dtb-$(CONFIG_TARGET_AP121) += ap121.dtb
 dtb-$(CONFIG_TARGET_AP143) += ap143.dtb
 dtb-$(CONFIG_TARGET_AP152) += ap152.dtb
@@ -16,12 +13,15 @@  dtb-$(CONFIG_BOARD_COMTREND_AR5387UN) += comtrend,ar-5387un.dtb
 dtb-$(CONFIG_BOARD_COMTREND_CT5361) += comtrend,ct-5361.dtb
 dtb-$(CONFIG_BOARD_COMTREND_VR3032U) += comtrend,vr-3032u.dtb
 dtb-$(CONFIG_BOARD_COMTREND_WAP5813N) += comtrend,wap-5813n.dtb
+dtb-$(CONFIG_BOARD_GARDENA_SMART_GATEWAY_MT7688) += gardena-smart-gateway-mt7688.dtb
 dtb-$(CONFIG_BOARD_HUAWEI_HG556A) += huawei,hg556a.dtb
+dtb-$(CONFIG_BOARD_LINKIT._SMART_7688) += linkit-smart-7688.dtb
 dtb-$(CONFIG_BOARD_NETGEAR_CG3100D) += netgear,cg3100d.dtb
 dtb-$(CONFIG_BOARD_NETGEAR_DGND3700V2) += netgear,dgnd3700v2.dtb
 dtb-$(CONFIG_BOARD_SAGEM_FAST1704) += sagem,f@st1704.dtb
 dtb-$(CONFIG_BOARD_SFR_NB4_SER) += sfr,nb4-ser.dtb
 dtb-$(CONFIG_BOARD_TPLINK_WDR4300) += tplink_wdr4300.dtb
+dtb-$(CONFIG_BOARD_VOCORE2) += vocore2.dtb
 dtb-$(CONFIG_TARGET_JZ4780_CI20) += ci20.dtb
 dtb-$(CONFIG_SOC_LUTON) += luton_pcb090.dtb luton_pcb091.dtb
 dtb-$(CONFIG_SOC_OCELOT) += ocelot_pcb120.dtb ocelot_pcb123.dtb
diff --git a/arch/mips/dts/vocore2.dts b/arch/mips/dts/vocore2.dts
new file mode 100644
index 0000000000..cdcd9b4e1d
--- /dev/null
+++ b/arch/mips/dts/vocore2.dts
@@ -0,0 +1,62 @@ 
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2019 Mauro Condarelli <mc5686@mclink.it>
+ */
+
+/dts-v1/;
+#include "mt7628a.dtsi"
+
+/ {
+	compatible = "vocore,vocore2", "ralink,mt7628a-soc";
+	model = "VoCore2";
+
+	aliases {
+		serial0 = &uart2;
+		spi0 = &spi0;
+	};
+
+	memory@0 {
+		device_type = "memory";
+		reg = <0x0 0x08000000>;
+	};
+
+	chosen {
+		bootargs = "console=ttyS2,115200";
+		stdout-path = &uart2;
+	};
+};
+
+&pinctrl {
+	state_default: pin_state {
+		p0led {
+			groups = "p0led_a";
+			function = "led";
+		};
+	};
+};
+
+&uart2 {
+	status = "okay";
+};
+
+&spi0 {
+	status = "okay";
+	nor0: m25p80@0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "m25p80";
+		spi-max-frequency = <10000000>;
+		reg = <0x0>;
+		m25p,chunked-io = <32>;
+	};
+};
+
+&eth {
+	pinctrl-names = "default";
+	pinctrl-0 = <&ephy_iot_mode>;
+	mediatek,poll-link-phy = <0>;
+};
+
+&mmc {
+	status = "okay";
+};
diff --git a/arch/mips/mach-mtmips/Kconfig b/arch/mips/mach-mtmips/Kconfig
index c8dcf19c0d..5ea260232f 100644
--- a/arch/mips/mach-mtmips/Kconfig
+++ b/arch/mips/mach-mtmips/Kconfig
@@ -43,6 +43,14 @@  config BOARD_LINKIT_SMART_7688
 	  ethernet ports, 1 USB port, 1 UART, GPIO buttons and LEDs, and
 	  a MT7688 (PCIe).
 
+config BOARD_VOCORE2
+	bool "VoCore2"
+	depends on SOC_MT7628
+	select SUPPORTS_BOOT_RAM
+	help
+	  Vonger VoCore2 board has a MT7628 SoC with 128 MiB of RAM
+	  and 16 MiB of flash (SPI).
+
 endchoice
 
 choice
@@ -134,5 +142,6 @@  config SUPPORTS_BOOT_RAM
 
 source "board/gardena/smart-gateway-mt7688/Kconfig"
 source "board/seeed/linkit-smart-7688/Kconfig"
+source "board/vonger/vocore2/Kconfig"
 
 endmenu
diff --git a/board/vonger/vocore2/Kconfig b/board/vonger/vocore2/Kconfig
new file mode 100644
index 0000000000..4067973e70
--- /dev/null
+++ b/board/vonger/vocore2/Kconfig
@@ -0,0 +1,11 @@ 
+if BOARD_VOCORE2
+config SYS_BOARD
+	default "vocore2"
+
+config SYS_VENDOR
+	default "vonger"
+
+config SYS_CONFIG_NAME
+	default "vocore2"
+
+endif
diff --git a/board/vonger/vocore2/Makefile b/board/vonger/vocore2/Makefile
new file mode 100644
index 0000000000..4b162318c2
--- /dev/null
+++ b/board/vonger/vocore2/Makefile
@@ -0,0 +1,2 @@ 
+
+obj-y := board.o
diff --git a/board/vonger/vocore2/board.c b/board/vonger/vocore2/board.c
new file mode 100644
index 0000000000..1ab430247b
--- /dev/null
+++ b/board/vonger/vocore2/board.c
@@ -0,0 +1,35 @@ 
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2019 Mauro Condarelli <mc5686@mclink.it>
+ *
+ * Note: this is largely copied from:
+ *       board/seeed/linkit_smart_7688/board.c
+ *       Copyright (C) 2018 Stefan Roese <sr@denx.de>
+ */
+
+#include <common.h>
+#include <asm/io.h>
+
+#define MT76XX_GPIO1_MODE   0x10000060
+
+DECLARE_GLOBAL_DATA_PTR;
+
+void board_debug_uart_init(void)
+{
+	void __iomem *gpio_mode;
+
+	/* Select UART2 mode instead of GPIO mode (default) */
+	gpio_mode = ioremap_nocache(MT76XX_GPIO1_MODE, 0x100);
+	clrbits_le32(gpio_mode, GENMASK(27, 26));
+}
+
+int board_early_init_f(void)
+{
+	/*
+	 * The pin muxing of UART2 also needs to be done, if debug uart
+	 * is not enabled. So we need to call this function here as well.
+	 */
+	board_debug_uart_init();
+
+	return 0;
+}
diff --git a/configs/vocore2_defconfig b/configs/vocore2_defconfig
new file mode 100644
index 0000000000..7b09a16fa4
--- /dev/null
+++ b/configs/vocore2_defconfig
@@ -0,0 +1,61 @@ 
+CONFIG_MIPS=y
+CONFIG_SYS_TEXT_BASE=0x80010000
+CONFIG_ENV_SIZE=0x00001000
+CONFIG_ENV_OFFSET=0x00FFE000
+CONFIG_ENV_SECT_SIZE=0x00001000
+CONFIG_ARCH_MTMIPS=y
+CONFIG_BOARD_VOCORE2=y
+CONFIG_MIPS_BOOT_FDT=y
+CONFIG_ENV_VARS_UBOOT_CONFIG=y
+CONFIG_SYS_BOOT_GET_CMDLINE=y
+CONFIG_SYS_BOOT_GET_KBD=y
+# CONFIG_LEGACY_IMAGE_FORMAT is not set
+# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
+CONFIG_LOGLEVEL=8
+CONFIG_VERSION_VARIABLE=y
+CONFIG_DISPLAY_BOARDINFO_LATE=y
+# CONFIG_AUTOBOOT is not set
+# CONFIG_BOOTM_NETBSD is not set
+# CONFIG_BOOTM_PLAN9 is not set
+# CONFIG_BOOTM_RTEMS is not set
+# CONFIG_BOOTM_VXWORKS is not set
+# CONFIG_CMD_XIMG is not set
+# CONFIG_CMD_LOADB is not set
+# CONFIG_CMD_LOADS is not set
+CONFIG_CMD_MTD=y
+CONFIG_CMD_PART=y
+CONFIG_CMD_SPI=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_FAT=y
+CONFIG_CMD_FS_GENERIC=y
+CONFIG_CMD_MTDPARTS=y
+CONFIG_MTDIDS_DEFAULT="nor0=spi0.0"
+CONFIG_MTDPARTS_DEFAULT="spi0.0:320k(u-boot),2752k(kernel),13304k(filesystem),4k(env),-(factory)"
+# CONFIG_ISO_PARTITION is not set
+CONFIG_DEFAULT_DEVICE_TREE="vocore2"
+CONFIG_ENV_IS_IN_SPI_FLASH=y
+CONFIG_ENV_ADDR=0x00FFE000
+# CONFIG_NET is not set
+# CONFIG_DM_DEVICE_REMOVE is not set
+CONFIG_BLK=y
+# CONFIG_INPUT is not set
+CONFIG_LED=y
+CONFIG_LED_BLINK=y
+CONFIG_LED_GPIO=y
+CONFIG_MTD=y
+CONFIG_SPI_FLASH_SFDP_SUPPORT=y
+CONFIG_SPI_FLASH_GIGADEVICE=y
+CONFIG_SPI_FLASH_MTD=y
+# CONFIG_DM_ETH is not set
+# CONFIG_RAM_ROCKCHIP_DEBUG is not set
+CONFIG_SPECIFY_CONSOLE_INDEX=y
+CONFIG_CONS_INDEX=3
+CONFIG_SPI=y
+CONFIG_MT7621_SPI=y
+CONFIG_USB=y
+CONFIG_DM_USB=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_GENERIC=y
+CONFIG_USB_STORAGE=y
+CONFIG_LZMA=y
+CONFIG_LZO=y
diff --git a/include/configs/vocore2.h b/include/configs/vocore2.h
new file mode 100644
index 0000000000..9ee32329f2
--- /dev/null
+++ b/include/configs/vocore2.h
@@ -0,0 +1,57 @@ 
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (C) 2019 Mauro Condarelli <mc5686@mclink.it>
+ */
+
+#ifndef __VOCORE2_CONFIG_H__
+#define __VOCORE2_CONFIG_H__
+
+/* CPU */
+#define CONFIG_SYS_MIPS_TIMER_FREQ      290000000
+
+/* RAM */
+#define CONFIG_SYS_SDRAM_BASE          0x80000000
+
+#define CONFIG_SYS_LOAD_ADDR        CONFIG_SYS_SDRAM_BASE + 0x100000
+
+#define CONFIG_SYS_INIT_SP_OFFSET        0x400000
+
+#ifdef CONFIG_BOOT_RAM
+#define CONFIG_SKIP_LOWLEVEL_INIT
+#endif
+
+/* UART */
+#define CONFIG_SYS_BAUDRATE_TABLE   { 9600, 19200, 38400, 57600, \
+					115200, 230400, 460800, 921600 }
+#define CONFIG_BAUDRATE			115200
+
+/* RAM */
+#define CONFIG_SYS_MEMTEST_START       0x80100000
+#define CONFIG_SYS_MEMTEST_END         0x80400000
+
+/* Memory usage */
+#define CONFIG_SYS_MAXARGS                     64
+#define CONFIG_SYS_MALLOC_LEN       (1024 * 1024)
+#define CONFIG_SYS_BOOTPARAMS_LEN    (128 * 1024)
+#define CONFIG_SYS_CBSIZE                     512
+
+/* U-Boot */
+#define CONFIG_SYS_MONITOR_BASE     CONFIG_SYS_TEXT_BASE
+
+/* Environment settings */
+#if defined(CONFIG_MTDIDS_DEFAULT) && defined(CONFIG_MTDPARTS_DEFAULT)
+#define CONFIG_EXTRA_ENV_SETTINGS			\
+	"mtdids="   CONFIG_MTDIDS_DEFAULT	"\0"	\
+	"mtdparts=" CONFIG_MTDPARTS_DEFAULT	"\0"
+#endif
+/*
+ * Environment is right behind U-Boot in flash. Make sure U-Boot
+ * doesn't grow into the environment area.
+ */
+//MCon: serve? #define CONFIG_BOARD_SIZE_LIMIT     CONFIG_ENV_OFFSET
+
+#define CONFIG_ENV_IS_IN_SPI_FLASH              1
+//#define CONFIG_ENV_OFFSET               0x0FFF000
+//#define CONFIG_ENV_SIZE                 0x0001000
+
+#endif//__VOCORE2_CONFIG_H__