All of lore.kernel.org
 help / color / mirror / Atom feed
From: Purna Chandra Mandal <purna.mandal@microchip.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 07/13] board: Add Microchip PIC32MZ[DA]-Starter-Kit board.
Date: Wed, 6 Jan 2016 15:21:41 +0530	[thread overview]
Message-ID: <568CE3AD.5080006@microchip.com> (raw)
In-Reply-To: <CACUy__XiPCUh9sdFefDO38FEEHWR6Hynp9GeLakCaw+wzzfrJQ@mail.gmail.com>

On 01/06/2016 02:06 AM, Daniel Schwierzeck wrote:
> 2016-01-04 15:01 GMT+01:00 Purna Chandra Mandal <purna.mandal@microchip.com>:
>> This adds support for Microchip PIC32MZ[DA] Starter Kit board
>> based on a PIC32MZ[DA] family of microcontroller.
>>
>> Signed-off-by: Purna Chandra Mandal <purna.mandal@microchip.com>
>>
>> ---
>>
>> 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          |   7 +++
>>  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         |  21 +++++++
>>  include/configs/pic32mzdask.h         | 100 ++++++++++++++++++++++++++++++++++
>>  10 files changed, 246 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 a394791..f357fc6 100644
>> --- a/arch/mips/mach-pic32/Kconfig
>> +++ b/arch/mips/mach-pic32/Kconfig
>> @@ -26,6 +26,13 @@ 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 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 <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..13760e6
>> --- /dev/null
>> +++ b/configs/pic32mzdask_defconfig
>> @@ -0,0 +1,21 @@
>> +CONFIG_MIPS=y
>> +CONFIG_MACH_PIC32=y
>> +CONFIG_SOC_PIC32MZDA=y
>> +CONFIG_TARGET_PIC32MZDASK=y
>> +CONFIG_SYS_LITTLE_ENDIAN=y
>> +CONFIG_HUSH_PARSER=y
>> +CONFIG_SYS_HUSH_PARSER=y
>> +CONFIG_SYS_PROMPT="dask # "
>> +CONFIG_CMD_TIME=y
>> +# CONFIG_CMD_IMLS is not set
>> +CONFIG_SUPPORT_OF_CONTROL=y
>> +CONFIG_OF_EMBED=y
>> +CONFIG_DEFAULT_DEVICE_TREE="pic32mzda_sk"
>> +CONFIG_DM=y
>> +CONFIG_CMD_DM=y
>> +CONFIG_DM_SERIAL=y
>> +CONFIG_PIC32_SERIAL=y
>> +CONFIG_CLK=y
>> +CONFIG_PINCTRL=y
>> +# CONFIG_PINCTRL_FULL is not set
>> +CONFIG_PIC32_PINCTRL=y
> this looks written by hand. Please create this file with Kconfig:
>
> make savedefconfig
> cp defconfig configs/pic32mzdask_defconfig

Yes it is edited. I'll directly use kconfig generated one.

>> diff --git a/include/configs/pic32mzdask.h b/include/configs/pic32mzdask.h
>> new file mode 100644
>> index 0000000..3624107
>> --- /dev/null
>> +++ b/include/configs/pic32mzdask.h
>> @@ -0,0 +1,100 @@
>> +/*
>> + * (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
>> +#undef CONFIG_SKIP_LOWLEVEL_INIT
> you do not need to add #undef lines to disable config options. All
> options are disabled by default.

ack. Will remove.

>> +
>> +/*----------------------------------------------------------------------
>> + * 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_GBL_DATA_OFFSET     \
>> +       (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
>> +#define CONFIG_SYS_INIT_SP_OFFSET      CONFIG_SYS_GBL_DATA_OFFSET
>> +#define CONFIG_SYS_INIT_SP_ADDR                \
>> +       (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
> you do not need to take care of GENERATED_GBL_DATA_SIZE. This is
> automatically done in start.S. You only need to set:
>
> #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)

Good catch. Will remove.

>> +
>> +/* 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
>> +#define CONFIG_CMD_MEMTEST
>> +#define CONFIG_CMD_MEMINFO
>> +
>> +/*-------------------------------------------------
>> + * FLASH configuration
>> + */
>> +#define CONFIG_SYS_NO_FLASH
>> +
>> +/*------------------------------------------------------------
>> + * Console Configuration
>> + */
>> +#define CONFIG_BAUDRATE                        115200
>> +#define CONFIG_SYS_BAUDRATE_TABLE      {9600, 19200, 38400, 57600, 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 */
>> --
>> 1.8.3.1
>>
>>
>
>

      reply	other threads:[~2016-01-06  9:51 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-04 14:01 [U-Boot] [PATCH v2 07/13] board: Add Microchip PIC32MZ[DA]-Starter-Kit board Purna Chandra Mandal
2016-01-05 20:36 ` Daniel Schwierzeck
2016-01-06  9:51   ` Purna Chandra Mandal [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=568CE3AD.5080006@microchip.com \
    --to=purna.mandal@microchip.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.