
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 purna.mandal@microchip.com
Reviewed-by: Daniel Schwierzeck daniel.schwierzeck@gmail.com
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/<board>.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@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 purna.mandal@microchip.com +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@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 purna.mandal@microchip.com
- */
+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 purna.mandal@microchip.com
- SPDX-License-Identifier: GPL-2.0+
- */
+#include <common.h> +#include <dm.h> +#include <clk.h> +#include <mach/pic32.h>
+#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 purna.mandal@microchip.com
- 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 */