From mboxrd@z Thu Jan 1 00:00:00 1970 From: Purna Chandra Mandal Date: Mon, 1 Feb 2016 13:47:31 +0530 Subject: [U-Boot] [PATCH v4 08/13] board: Add Microchip PIC32MZ[DA]-Starter-Kit board. In-Reply-To: <56AB814B.6050406@gmail.com> References: <1453975222-11787-1-git-send-email-purna.mandal@microchip.com> <1453975222-11787-9-git-send-email-purna.mandal@microchip.com> <56AB814B.6050406@gmail.com> Message-ID: <56AF149B.8090703@microchip.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 01/29/2016 08:42 PM, Daniel Schwierzeck wrote: > > Am 28.01.2016 um 11:00 schrieb Purna Chandra Mandal: >> This adds support for Microchip PIC32MZ[DA] StarterKit board >> based on a PIC32MZ[DA] family of microcontroller. >> >> Signed-off-by: Purna Chandra Mandal > Reviewed-by: Daniel Schwierzeck Thanks Daniel. Could you please apply these patches in your tree? >> >> --- >> >> Changes in v4: >> - create defconfig by 'make savedefconfig' >> - drop explicit SYS_BAUDRATE_TABLE in favor of default one >> >> Changes in v3: >> - drop SKIP_LOWLEVEL_INIT, GBL_DATA_OFFSET from config header >> - move CMD_MEMTEST, CMD_MEMINFO to defconfig >> - increase SYS_MALLOC_F_LEN to 0x600 >> - use auto-generated defconfig - no hand edit >> >> Changes in v2: >> - move CONFIG_SYS_TEXT_BASE (from board/*/config.mk) to include/configs/.h >> >> arch/mips/dts/Makefile | 2 +- >> arch/mips/dts/pic32mzda_sk.dts | 38 ++++++++++++++ >> arch/mips/mach-pic32/Kconfig | 13 +++++ >> board/microchip/pic32mzda/Kconfig | 13 +++++ >> board/microchip/pic32mzda/MAINTAINERS | 6 +++ >> board/microchip/pic32mzda/Makefile | 7 +++ >> board/microchip/pic32mzda/README | 22 +++++++++ >> board/microchip/pic32mzda/pic32mzda.c | 31 ++++++++++++ >> configs/pic32mzdask_defconfig | 30 +++++++++++ >> include/configs/pic32mzdask.h | 93 +++++++++++++++++++++++++++++++++++ >> 10 files changed, 254 insertions(+), 1 deletion(-) >> create mode 100644 arch/mips/dts/pic32mzda_sk.dts >> create mode 100644 board/microchip/pic32mzda/Kconfig >> create mode 100644 board/microchip/pic32mzda/MAINTAINERS >> create mode 100644 board/microchip/pic32mzda/Makefile >> create mode 100644 board/microchip/pic32mzda/README >> create mode 100644 board/microchip/pic32mzda/pic32mzda.c >> create mode 100644 configs/pic32mzdask_defconfig >> create mode 100644 include/configs/pic32mzdask.h >> >> diff --git a/arch/mips/dts/Makefile b/arch/mips/dts/Makefile >> index 47b6eb5..b513918 100644 >> --- a/arch/mips/dts/Makefile >> +++ b/arch/mips/dts/Makefile >> @@ -2,7 +2,7 @@ >> # SPDX-License-Identifier: GPL-2.0+ >> # >> >> -dtb-y += >> +dtb-$(CONFIG_TARGET_PIC32MZDASK) += pic32mzda_sk.dtb >> >> targets += $(dtb-y) >> >> diff --git a/arch/mips/dts/pic32mzda_sk.dts b/arch/mips/dts/pic32mzda_sk.dts >> new file mode 100644 >> index 0000000..99e7f64 >> --- /dev/null >> +++ b/arch/mips/dts/pic32mzda_sk.dts >> @@ -0,0 +1,38 @@ >> +/* >> + * Copyright (C) 2015 Purna Chandra Mandal, purna.mandal at microchip.com >> + * >> + * SPDX-License-Identifier: GPL-2.0+ >> + */ >> + >> +/dts-v1/; >> + >> +#include "pic32mzda.dtsi" >> + >> +/ { >> + model = "Microchip PIC32MZDASK"; >> + compatible = "microchip,pic32mzdask", "microchip,pic32mzda"; >> + >> + aliases { >> + console = &uart2; >> + serial0 = &uart2; >> + }; >> + >> + chosen { >> + stdout-path = "serial0:115200n8"; >> + }; >> +}; >> + >> +&clock { >> + status = "okay"; >> + u-boot,dm-pre-reloc; >> +}; >> + >> +&pinctrl { >> + status = "okay"; >> + u-boot,dm-pre-reloc; >> +}; >> + >> +&uart2 { >> + status = "okay"; >> + u-boot,dm-pre-reloc; >> +}; >> diff --git a/arch/mips/mach-pic32/Kconfig b/arch/mips/mach-pic32/Kconfig >> index f636266..2e38bb7 100644 >> --- a/arch/mips/mach-pic32/Kconfig >> +++ b/arch/mips/mach-pic32/Kconfig >> @@ -19,4 +19,17 @@ config SOC_PIC32MZDA >> >> endchoice >> >> +choice >> + prompt "Board select" >> + >> +config TARGET_PIC32MZDASK >> + bool "Microchip PIC32MZ[DA] Starter Kit" >> + depends on SOC_PIC32MZDA >> + help >> + This supports Microchip PIC32MZ[DA] Starter Kit. >> + >> +endchoice >> + >> +source "board/microchip/pic32mzda/Kconfig" >> + >> endmenu >> diff --git a/board/microchip/pic32mzda/Kconfig b/board/microchip/pic32mzda/Kconfig >> new file mode 100644 >> index 0000000..8acb393 >> --- /dev/null >> +++ b/board/microchip/pic32mzda/Kconfig >> @@ -0,0 +1,13 @@ >> + >> +if TARGET_PIC32MZDASK >> + >> +config SYS_BOARD >> + default "pic32mzda" >> + >> +config SYS_VENDOR >> + default "microchip" >> + >> +config SYS_CONFIG_NAME >> + default "pic32mzdask" >> + >> +endif >> diff --git a/board/microchip/pic32mzda/MAINTAINERS b/board/microchip/pic32mzda/MAINTAINERS >> new file mode 100644 >> index 0000000..c934f1a >> --- /dev/null >> +++ b/board/microchip/pic32mzda/MAINTAINERS >> @@ -0,0 +1,6 @@ >> +PIC32MZDASK BOARD >> +M: Purna Chandra Mandal >> +S: Maintained >> +F: board/microchip/pic32mzda/ >> +F: include/configs/pic32mzdask.h >> +F: configs/pic32mzdask_defconfig >> diff --git a/board/microchip/pic32mzda/Makefile b/board/microchip/pic32mzda/Makefile >> new file mode 100644 >> index 0000000..3629530 >> --- /dev/null >> +++ b/board/microchip/pic32mzda/Makefile >> @@ -0,0 +1,7 @@ >> +# >> +# (C) Copyright 2015 >> +# Purna Chandra Mandal, purna.mandal at microchip.com. >> +# >> +# SPDX-License-Identifier: GPL-2.0+ >> +# >> +obj-y := pic32mzda.o >> diff --git a/board/microchip/pic32mzda/README b/board/microchip/pic32mzda/README >> new file mode 100644 >> index 0000000..91d16ab >> --- /dev/null >> +++ b/board/microchip/pic32mzda/README >> @@ -0,0 +1,22 @@ >> +/* >> + * (c) 2015 Purna Chandra Mandal >> + */ >> + >> +PIC32MZ[DA] Starter Kit >> +---------------------------------------- >> +PIC32MZ[DA] Starter Kit is based on PIC32MZ[DA] family of micro-controller. >> +This family is powered by MIPS M14KEC 32bit general purpose core and has >> +advanced microcontroller features and peripherals. >> + >> +This processor boots with proprietary stage1 bootloader running from internal >> +boot-flash. Stage1 bootloader inturns locates and jumps to U-Boot programmed >> +on internal program-flash. Finally U-Boot loads OS image (along with other >> +required files for booting) from either uSD card, or ethernet, or from USB >> +storage. >> + >> +To boot Linux following three files are mandatory - uEnv.txt (custom U-Boot >> +environment file), uImage, *.dtb (platform device-tree-blob file). >> + >> +U-Boot jumps to Linux using UHI specification. >> + >> +Visit http://microchip.com for details. >> diff --git a/board/microchip/pic32mzda/pic32mzda.c b/board/microchip/pic32mzda/pic32mzda.c >> new file mode 100644 >> index 0000000..afe2ab8 >> --- /dev/null >> +++ b/board/microchip/pic32mzda/pic32mzda.c >> @@ -0,0 +1,31 @@ >> +/* >> + * Microchip PIC32MZ[DA] Starter Kit board >> + * >> + * Copyright (C) 2015, Microchip Technology Inc. >> + * Purna Chandra Mandal >> + * >> + * SPDX-License-Identifier: GPL-2.0+ >> + * >> + */ >> + >> +#include >> +#include >> +#include >> +#include >> + >> +#ifdef CONFIG_DISPLAY_BOARDINFO >> +int checkboard(void) >> +{ >> + ulong rate = 0; >> + struct udevice *dev; >> + >> + printf("Core: %s\n", get_core_name()); >> + >> + if (!uclass_get_device(UCLASS_CLK, 0, &dev)) { >> + rate = clk_get_rate(dev); >> + printf("CPU Speed: %lu MHz\n", rate / 1000000); >> + } >> + >> + return 0; >> +} >> +#endif >> diff --git a/configs/pic32mzdask_defconfig b/configs/pic32mzdask_defconfig >> new file mode 100644 >> index 0000000..1c968fc >> --- /dev/null >> +++ b/configs/pic32mzdask_defconfig >> @@ -0,0 +1,30 @@ >> +CONFIG_MIPS=y >> +CONFIG_SYS_MALLOC_F_LEN=0x600 >> +CONFIG_DM_SERIAL=y >> +CONFIG_DM_GPIO=y >> +CONFIG_MACH_PIC32=y >> +# CONFIG_MIPS_BOOT_ENV_LEGACY is not set >> +CONFIG_MIPS_BOOT_FDT=y >> +CONFIG_DEFAULT_DEVICE_TREE="pic32mzda_sk" >> +CONFIG_HUSH_PARSER=y >> +CONFIG_SYS_PROMPT="dask # " >> +# CONFIG_CMD_IMLS is not set >> +# CONFIG_CMD_EXPORTENV is not set >> +# CONFIG_CMD_SAVEENV is not set >> +CONFIG_LOOPW=y >> +CONFIG_CMD_MEMTEST=y >> +CONFIG_CMD_MEMINFO=y >> +# CONFIG_CMD_FLASH is not set >> +# CONFIG_CMD_FPGA is not set >> +CONFIG_CMD_GPIO=y >> +# CONFIG_CMD_NET is not set >> +# CONFIG_CMD_NFS is not set >> +CONFIG_CMD_TIME=y >> +CONFIG_OF_EMBED=y >> +CONFIG_CLK=y >> +CONFIG_PINCTRL=y >> +# CONFIG_PINCTRL_FULL is not set >> +CONFIG_SYS_VSNPRINTF=y >> +CONFIG_USE_TINY_PRINTF=y >> +CONFIG_REGEX=y >> +CONFIG_CMD_DHRYSTONE=y >> diff --git a/include/configs/pic32mzdask.h b/include/configs/pic32mzdask.h >> new file mode 100644 >> index 0000000..5ba2a19 >> --- /dev/null >> +++ b/include/configs/pic32mzdask.h >> @@ -0,0 +1,93 @@ >> +/* >> + * (c) 2015 Purna Chandra Mandal >> + * >> + * SPDX-License-Identifier: GPL-2.0+ >> + * >> + * Microchip PIC32MZ[DA] Starter Kit. >> + */ >> + >> +#ifndef __PIC32MZDASK_CONFIG_H >> +#define __PIC32MZDASK_CONFIG_H >> + >> +/* System Configuration */ >> +#define CONFIG_SYS_TEXT_BASE 0x9d004000 /* .text */ >> +#define CONFIG_DISPLAY_BOARDINFO >> + >> +/*-------------------------------------------- >> + * CPU configuration >> + */ >> +/* CPU Timer rate */ >> +#define CONFIG_SYS_MIPS_TIMER_FREQ 100000000 >> + >> +/* Cache Configuration */ >> +#define CONFIG_SYS_MIPS_CACHE_MODE CONF_CM_CACHABLE_NONCOHERENT >> + >> +/*---------------------------------------------------------------------- >> + * Memory Layout >> + */ >> +#define CONFIG_SYS_SRAM_BASE 0x80000000 >> +#define CONFIG_SYS_SRAM_SIZE 0x00080000 /* 512K */ >> + >> +/* Initial RAM for temporary stack, global data */ >> +#define CONFIG_SYS_INIT_RAM_SIZE 0x10000 >> +#define CONFIG_SYS_INIT_RAM_ADDR \ >> + (CONFIG_SYS_SRAM_BASE + CONFIG_SYS_SRAM_SIZE - CONFIG_SYS_INIT_RAM_SIZE) >> +#define CONFIG_SYS_INIT_SP_ADDR \ >> + (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE - 1) >> + >> +/* SDRAM Configuration (for final code, data, stack, heap) */ >> +#define CONFIG_SYS_SDRAM_BASE 0x88000000 >> +#define CONFIG_SYS_MALLOC_LEN (256 << 10) >> +#define CONFIG_SYS_BOOTPARAMS_LEN (4 << 10) >> +#define CONFIG_STACKSIZE (4 << 10) /* regular stack */ >> + >> +#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE >> +#define CONFIG_SYS_MONITOR_LEN (192 << 10) >> + >> +#define CONFIG_SYS_LOAD_ADDR 0x88500000 /* default load address */ >> +#define CONFIG_SYS_ENV_ADDR 0x88300000 >> + >> +/* Memory Test */ >> +#define CONFIG_SYS_MEMTEST_START 0x88000000 >> +#define CONFIG_SYS_MEMTEST_END 0x88080000 >> + >> +/*---------------------------------------------------------------------- >> + * Commands >> + */ >> +#define CONFIG_SYS_LONGHELP /* undef to save memory */ >> +#define CONFIG_CMD_CLK >> + >> +/*------------------------------------------------- >> + * FLASH configuration >> + */ >> +#define CONFIG_SYS_NO_FLASH >> + >> +/*------------------------------------------------------------ >> + * Console Configuration >> + */ >> +#define CONFIG_BAUDRATE 115200 >> +#define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buffer Size */ >> +#define CONFIG_SYS_MAXARGS 16 /* max number of command args*/ >> +#define CONFIG_SYS_PBSIZE \ >> + (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16) >> +#define CONFIG_CMDLINE_EDITING 1 >> + >> +/* >> + * Handover flattened device tree (dtb file) to Linux kernel >> + */ >> +#define CONFIG_OF_LIBFDT 1 >> + >> +/* ------------------------------------------------- >> + * Environment >> + */ >> +#define CONFIG_ENV_IS_NOWHERE 1 >> +#define CONFIG_ENV_SIZE 0x4000 >> + >> +/* --------------------------------------------------------------------- >> + * Board boot configuration >> + */ >> +#define CONFIG_TIMESTAMP /* Print image info with timestamp */ >> +#define CONFIG_BOOTDELAY 5 /* autoboot after X seconds */ >> +#undef CONFIG_BOOTARGS >> + >> +#endif /* __PIC32MZDASK_CONFIG_H */ >>