]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
board: Add Microchip PIC32MZ[DA]-Starter-Kit board.
authorPurna Chandra Mandal <purna.mandal@microchip.com>
Thu, 28 Jan 2016 10:00:17 +0000 (15:30 +0530)
committerDaniel Schwierzeck <daniel.schwierzeck@gmail.com>
Mon, 1 Feb 2016 21:14:01 +0000 (22:14 +0100)
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>
arch/mips/dts/Makefile
arch/mips/dts/pic32mzda_sk.dts [new file with mode: 0644]
arch/mips/mach-pic32/Kconfig
board/microchip/pic32mzda/Kconfig [new file with mode: 0644]
board/microchip/pic32mzda/MAINTAINERS [new file with mode: 0644]
board/microchip/pic32mzda/Makefile [new file with mode: 0644]
board/microchip/pic32mzda/README [new file with mode: 0644]
board/microchip/pic32mzda/pic32mzda.c [new file with mode: 0644]
configs/pic32mzdask_defconfig [new file with mode: 0644]
include/configs/pic32mzdask.h [new file with mode: 0644]

index 47b6eb50c35a5574f20162ca524540b4dc4c8ebe..b5139187c2068bb9905d68a8be07da24a4fddfb2 100644 (file)
@@ -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 (file)
index 0000000..99e7f64
--- /dev/null
@@ -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;
+};
index f636266adbe6d66ab6f3db20ea231112b7d7116e..2e38bb7ecafa84cdd1659f73c28e99d1ddee21cf 100644 (file)
@@ -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 (file)
index 0000000..8acb393
--- /dev/null
@@ -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 (file)
index 0000000..c934f1a
--- /dev/null
@@ -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 (file)
index 0000000..3629530
--- /dev/null
@@ -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 (file)
index 0000000..91d16ab
--- /dev/null
@@ -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 (file)
index 0000000..afe2ab8
--- /dev/null
@@ -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 (file)
index 0000000..1c968fc
--- /dev/null
@@ -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 (file)
index 0000000..5ba2a19
--- /dev/null
@@ -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 */