board: Add Microchip PIC32MZ[DA]-Starter-Kit board.

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>
This commit is contained in:
Purna Chandra Mandal 2016-01-28 15:30:17 +05:30 committed by Daniel Schwierzeck
parent be961fa15b
commit 44da3a176c
10 changed files with 254 additions and 1 deletions

View file

@ -2,7 +2,7 @@
# SPDX-License-Identifier: GPL-2.0+
#
dtb-y +=
dtb-$(CONFIG_TARGET_PIC32MZDASK) += pic32mzda_sk.dtb
targets += $(dtb-y)

View file

@ -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;
};

View 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

View file

@ -0,0 +1,13 @@
if TARGET_PIC32MZDASK
config SYS_BOARD
default "pic32mzda"
config SYS_VENDOR
default "microchip"
config SYS_CONFIG_NAME
default "pic32mzdask"
endif

View file

@ -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

View file

@ -0,0 +1,7 @@
#
# (C) Copyright 2015
# Purna Chandra Mandal, purna.mandal@microchip.com.
#
# SPDX-License-Identifier: GPL-2.0+
#
obj-y := pic32mzda.o

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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 */