public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
From: Paul Burton <paul.burton-1AXoQHu6uovQT0dZR+AlfA@public.gmane.org>
To: Nathan Sullivan <nathan.sullivan-acOepvfBmUk@public.gmane.org>
Cc: linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org,
	ralf-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org,
	robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH v5] MIPS: NI 169445 board support
Date: Wed, 7 Jun 2017 15:01:58 -0700	[thread overview]
Message-ID: <1663401.DU57P1IPDA@np-p-burton> (raw)
In-Reply-To: <1496259237-9524-1-git-send-email-nathan.sullivan-acOepvfBmUk@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 8771 bytes --]

Hi Nathan,

On Wednesday, 31 May 2017 12:33:57 PDT Nathan Sullivan wrote:
> Support the National Instruments 169445 board.
> 
> Signed-off-by: Nathan Sullivan <nathan.sullivan-acOepvfBmUk@public.gmane.org>
> ---
> 
> Changes from v4:
> 
> - Address Rob Herring's device tree feedback
> 
> I'm still unclear on the vmlinux.its.S changes.  The linux-mti tree has a
> config in the image tree for each board it supports, and I followed that
> pattern here.  Rob was concerned about how the configs would scale wrt
> the number of bootloaders around, but it's really just one per board/dt,
> right?

It is one per board/DT as you say - ie. it's about including multiple DTs into 
the FIT/.itb kernel image rather than about producing multiple image formats. 
What you've done does indeed match what I've been doing for our boards in the 
linux-mti downstream & in code submitted upstream.

I guess it might be nice at some point to break apart the entries in 
vmlinux.its.S to a file per board or something, and it'd also be nice if we 
had a way to automatically only include boards that make sense for a targeted 
ISA - eg. if a board has a little endian MIPS32r2 CPU there's no point 
including drivers or DT for it in big endian, MIPS64 or MIPSr6 kernels. Right 
now that can only be done manually by specifying BOARDS= when configuring the 
kernel.

Still, it's great to see a board support patch like this one rather than the 
"copy arch/mips/mti-malta & bodge it" style patches that many have produced 
before - so thanks & nice work :)

Thanks,
    Paul

> 
> ---
>  Documentation/devicetree/bindings/mips/ni.txt   |   7 ++
>  MAINTAINERS                                     |   8 ++
>  arch/mips/boot/dts/Makefile                     |   1 +
>  arch/mips/boot/dts/ni/169445.dts                | 100
> ++++++++++++++++++++++++ arch/mips/boot/dts/ni/Makefile                  | 
>  7 ++
>  arch/mips/configs/generic/board-ni169445.config |  27 +++++++
>  arch/mips/generic/Kconfig                       |   6 ++
>  arch/mips/generic/vmlinux.its.S                 |  25 ++++++
>  8 files changed, 181 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/mips/ni.txt
>  create mode 100644 arch/mips/boot/dts/ni/169445.dts
>  create mode 100644 arch/mips/boot/dts/ni/Makefile
>  create mode 100644 arch/mips/configs/generic/board-ni169445.config
> 
> diff --git a/Documentation/devicetree/bindings/mips/ni.txt
> b/Documentation/devicetree/bindings/mips/ni.txt new file mode 100644
> index 0000000..722bf2d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mips/ni.txt
> @@ -0,0 +1,7 @@
> +National Instruments MIPS platforms
> +
> +required root node properties:
> +	- compatible: must be "ni,169445"
> +
> +CPU Nodes
> +	- compatible: must be "mti,mips14KEc"
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 053c3bd..e6662d0 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -9047,6 +9047,14 @@ F:	include/linux/sunrpc/
>  F:	include/uapi/linux/nfs*
>  F:	include/uapi/linux/sunrpc/
> 
> +NI169445 MIPS ARCHITECTURE
> +M:	Nathan Sullivan <nathan.sullivan-acOepvfBmUk@public.gmane.org>
> +L:	linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org
> +S:	Maintained
> +F:	arch/mips/boot/dts/ni/
> +F:	arch/mips/configs/generic/board-ni169445.config
> +F:	Documentation/devicetree/bindings/mips/ni.txt
> +
>  NILFS2 FILESYSTEM
>  M:	Ryusuke Konishi <konishi.ryusuke-Zyj7fXuS5i5L9jVzuh4AOg@public.gmane.org>
>  L:	linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> diff --git a/arch/mips/boot/dts/Makefile b/arch/mips/boot/dts/Makefile
> index b9db492..27b0f37 100644
> --- a/arch/mips/boot/dts/Makefile
> +++ b/arch/mips/boot/dts/Makefile
> @@ -4,6 +4,7 @@ dts-dirs	+= img
>  dts-dirs	+= ingenic
>  dts-dirs	+= lantiq
>  dts-dirs	+= mti
> +dts-dirs	+= ni
>  dts-dirs	+= netlogic
>  dts-dirs	+= pic32
>  dts-dirs	+= qca
> diff --git a/arch/mips/boot/dts/ni/169445.dts
> b/arch/mips/boot/dts/ni/169445.dts new file mode 100644
> index 0000000..6a20036
> --- /dev/null
> +++ b/arch/mips/boot/dts/ni/169445.dts
> @@ -0,0 +1,100 @@
> +/dts-v1/;
> +
> +/ {
> +	#address-cells = <1>;
> +	#size-cells = <1>;
> +	compatible = "ni,169445";
> +
> +	cpus {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		cpu@0 {
> +			device_type = "cpu";
> +			compatible = "mti,mips14KEc";
> +			clocks = <&baseclk>;
> +			reg = <0>;
> +		};
> +	};
> +
> +	memory@0 {
> +		device_type = "memory";
> +		reg = <0x0 0x10000000>;
> +	};
> +
> +	baseclk: baseclock {
> +		compatible = "fixed-clock";
> +		#clock-cells = <0>;
> +		clock-frequency = <50000000>;
> +	};
> +
> +	cpu_intc: interrupt-controller {
> +		#address-cells = <0>;
> +		compatible = "mti,cpu-interrupt-controller";
> +		interrupt-controller;
> +		#interrupt-cells = <1>;
> +	};
> +
> +	ahb@1f300000 {
> +		compatible = "simple-bus";
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges = <0x0 0x1f300000 0x80FFF>;
> +
> +		gpio1: gpio@1f300010 {
> +			compatible = "ni,169445-nand-gpio";
> +			reg = <0x10 0x4>;
> +			reg-names = "dat";
> +			gpio-controller;
> +			#gpio-cells = <2>;
> +		};
> +
> +		gpio2: gpio@1f300014 {
> +			compatible = "ni,169445-nand-gpio";
> +			reg = <0x14 0x4>;
> +			reg-names = "dat";
> +			gpio-controller;
> +			#gpio-cells = <2>;
> +			no-output;
> +		};
> +
> +		nand@1f300000 {
> +			compatible = "gpio-control-nand";
> +			nand-on-flash-bbt;
> +			nand-ecc-mode = "soft_bch";
> +			nand-ecc-step-size = <512>;
> +			nand-ecc-strength = <4>;
> +			reg = <0x0 4>;
> +			gpios = <&gpio2 0 0>, /* rdy */
> +				<&gpio1 1 0>, /* nce */
> +				<&gpio1 2 0>, /* ale */
> +				<&gpio1 3 0>, /* cle */
> +				<&gpio1 4 0>; /* nwp */
> +		};
> +
> +		serial@1f380000 {
> +			compatible = "ns16550a";
> +			reg = <0x80000 0x1000>;
> +			interrupt-parent = <&cpu_intc>;
> +			interrupts = <6>;
> +			clocks = <&baseclk>;
> +			reg-shift = <0>;
> +		};
> +
> +		ethernet@1f340000 {
> +			compatible = "snps,dwmac-4.10a";
> +			interrupt-parent = <&cpu_intc>;
> +			interrupts = <5>;
> +			interrupt-names = "macirq";
> +			reg = <0x40000 0x2000>;
> +			clock-names = "stmmaceth", "pclk";
> +			clocks = <&baseclk>, <&baseclk>;
> +
> +			phy-mode = "rgmii";
> +
> +			fixed-link {
> +				speed = <1000>;
> +				full-duplex;
> +			};
> +		};
> +	};
> +};
> diff --git a/arch/mips/boot/dts/ni/Makefile b/arch/mips/boot/dts/ni/Makefile
> new file mode 100644
> index 0000000..66cfdff
> --- /dev/null
> +++ b/arch/mips/boot/dts/ni/Makefile
> @@ -0,0 +1,7 @@
> +dtb-$(CONFIG_FIT_IMAGE_FDT_NI169445)	+= 169445.dtb
> +
> +# Force kbuild to make empty built-in.o if necessary
> +obj-					+= dummy.o
> +
> +always					:= $(dtb-y)
> +clean-files				:= *.dtb *.dtb.S
> diff --git a/arch/mips/configs/generic/board-ni169445.config
> b/arch/mips/configs/generic/board-ni169445.config new file mode 100644
> index 0000000..0bae1f8
> --- /dev/null
> +++ b/arch/mips/configs/generic/board-ni169445.config
> @@ -0,0 +1,27 @@
> +CONFIG_FIT_IMAGE_FDT_NI169445=y
> +
> +CONFIG_SERIAL_8250=y
> +CONFIG_SERIAL_8250_CONSOLE=y
> +CONFIG_SERIAL_OF_PLATFORM=y
> +
> +CONFIG_GPIOLIB=y
> +CONFIG_GPIO_SYSFS=y
> +CONFIG_GPIO_GENERIC_PLATFORM=y
> +
> +CONFIG_MTD=y
> +CONFIG_MTD_BLOCK=y
> +CONFIG_MTD_CMDLINE_PARTS=y
> +
> +CONFIG_MTD_NAND_ECC=y
> +CONFIG_MTD_NAND_ECC_BCH=y
> +CONFIG_MTD_NAND=y
> +CONFIG_MTD_NAND_GPIO=y
> +CONFIG_MTD_NAND_IDS=y
> +
> +CONFIG_MTD_UBI=y
> +CONFIG_MTD_UBI_BLOCK=y
> +
> +CONFIG_NETDEVICES=y
> +CONFIG_STMMAC_ETH=y
> +CONFIG_STMMAC_PLATFORM=y
> +CONFIG_DWMAC_GENERIC=y
> diff --git a/arch/mips/generic/Kconfig b/arch/mips/generic/Kconfig
> index a606b3f..fbf0813 100644
> --- a/arch/mips/generic/Kconfig
> +++ b/arch/mips/generic/Kconfig
> @@ -16,4 +16,10 @@ config LEGACY_BOARD_SEAD3
>  	  Enable this to include support for booting on MIPS SEAD-3 FPGA-based
>  	  development boards, which boot using a legacy boot protocol.
> 
> +config FIT_IMAGE_FDT_NI169445
> +	bool "Include FDT for NI 169445"
> +	help
> +	  Enable this to include the FDT for the 169445 platform from
> +	  National Instruments in the FIT kernel image.
> +
>  endif
> diff --git a/arch/mips/generic/vmlinux.its.S
> b/arch/mips/generic/vmlinux.its.S index f67fbf1..de851f7 100644
> --- a/arch/mips/generic/vmlinux.its.S
> +++ b/arch/mips/generic/vmlinux.its.S
> @@ -29,3 +29,28 @@
>  		};
>  	};
>  };
> +
> +#ifdef CONFIG_FIT_IMAGE_FDT_NI169445
> +/ {
> +	images {
> +		fdt@ni169445 {
> +			description = "NI 169445 device tree";
> +			data = /incbin/("boot/dts/ni/169445.dtb");
> +			type = "flat_dt";
> +			arch = "mips";
> +			compression = "none";
> +			hash@0 {
> +				algo = "sha1";
> +			};
> +		};
> +	};
> +
> +	configurations {
> +		conf@ni169445 {
> +			description = "NI 169445 Linux Kernel";
> +			kernel = "kernel@0";
> +			fdt = "fdt@ni169445";
> +		};
> +	};
> +};
> +#endif


[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

      parent reply	other threads:[~2017-06-07 22:01 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-31 19:33 [PATCH v5] MIPS: NI 169445 board support Nathan Sullivan
2017-06-07 21:35 ` Rob Herring
     [not found] ` <1496259237-9524-1-git-send-email-nathan.sullivan-acOepvfBmUk@public.gmane.org>
2017-06-07 22:01   ` Paul Burton [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=1663401.DU57P1IPDA@np-p-burton \
    --to=paul.burton-1axoqhu6uovqt0dzr+alfa@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-mips-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org \
    --cc=nathan.sullivan-acOepvfBmUk@public.gmane.org \
    --cc=ralf-6z/3iImG2C8G8FEW9MqTrA@public.gmane.org \
    --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox