Patchwork [v3] Adding support for Ariag25 and Terra board from Acmesystems

login
register
mail settings
Submitter Angelo Compagnucci
Date June 20, 2014, 9:52 p.m.
Message ID <1403301175-3403-1-git-send-email-angelo.compagnucci@gmail.com>
Download mbox | patch
Permalink /patch/362357/
State Changes Requested
Headers show

Comments

Angelo Compagnucci - June 20, 2014, 9:52 p.m.
This patch adds support for Acmesystems' AriaG25 SOM and the
corresponding Terra demo board.
The AriaG25 config is fairly basic, it provides only the minimal
configuration to get the module booting.
The Terra config instead provides many userspace tools.

Signed-off-by: Angelo Compagnucci <angelo.compagnucci@gmail.com>
---
 board/acmesystems/README.md                        |  32 ++++
 board/acmesystems/ariag25/at91-ariag25.config      | 211 +++++++++++++++++++++
 board/acmesystems/ariag25/at91-ariag25.dts         | 191 +++++++++++++++++++
 .../fs-overlay/etc/network/interfaces              |   5 +
 configs/ariag25_defconfig                          |  11 ++
 configs/ariag25_demo_terra_defconfig               |  17 ++
 6 files changed, 467 insertions(+)
 create mode 100644 board/acmesystems/README.md
 create mode 100644 board/acmesystems/ariag25/at91-ariag25.config
 create mode 100644 board/acmesystems/ariag25/at91-ariag25.dts
 create mode 100644 board/acmesystems/ariag25_terra/fs-overlay/etc/network/interfaces
 create mode 100644 configs/ariag25_defconfig
 create mode 100644 configs/ariag25_demo_terra_defconfig
Thomas Petazzoni - July 15, 2014, 6:21 p.m.
Dear Angelo Compagnucci,

Thanks for this patch. See my comments below.

The title of the patch should rather be something like:

  board: add support for Acmesystems Ariag25 and Terra boards

On Fri, 20 Jun 2014 23:52:55 +0200, Angelo Compagnucci wrote:

> diff --git a/board/acmesystems/README.md b/board/acmesystems/README.md
> new file mode 100644
> index 0000000..b09941a
> --- /dev/null
> +++ b/board/acmesystems/README.md
> @@ -0,0 +1,32 @@
> +# AriaG25 / Terra board support
> +
> +Aria G25 is a cost-effective System-on-Module (SoM) thought of to drastically reduce the development time needed to design a low-power and low-EMI Linux Embedded device.
> +
> +Terra board is a complete hardware solution conceived to:
> +
> +* Evaluate the Aria G25 Linux embedded module for your own hardware design (schematic, bom, etc are available here)
> +
> +* Create concept prototypes using the Daisy add-on boards system for in-field applications
> +
> +* Build end-user products
> +
> +
> +## AriaG25 Getting started
> +
> +To build a new minimal AriaG25 rootfs simply load corresponding ariag25_defconfig file. The config is fairly basic with only the kernel and busybox selected.
> +
> +To make the board bootable please follow the instruction on the producer website:
> +
> +[http://acmesystems.it/binary_repository](http://acmesystems.it/binary_repository)
> +
> +You will only need the correct boot.bin file for your board type, everithing else like kernel, dtb and roots are built by buildroot inside images directory.
> +
> +## Terra getting started
> +
> +To build a new minimal AriaG25 rootfs simply open the corresponding ariag25_demo_terra_defconfig file. This configuration is a bit more complete than the other and provides python, networking support and ssh access. It's meant to be usable as a reference for running example code you can find on the producer website:
> +
> +[http://acmesystems.it/tutorials](http://acmesystems.it/tutorials)
> +
> +Networking is configured for DHCP on the eth0.
> +
> +Please note that this configuration needs the correct boot.bin file, please refer to the AriaG25 getting started to know how to obtain it.
> \ No newline at end of file

Lines should be wrapped at a reasonable length, and the markdown wiki
syntax should not be used. The file should be named readme.txt. See all
the other similar text files in Buildroot for examples:

$ find board/ -name 'readme.txt'
board/boundarydevices/nitrogen6x/readme.txt
board/lego/ev3/readme.txt
board/cubietech/cubieboard/readme.txt
board/arm/foundation-v8/readme.txt
board/telit/evk-pro3/readme.txt
board/raspberrypi/readme.txt
board/minnowboard/readme.txt
board/qemu/arm-nuri/readme.txt
board/qemu/powerpc-virtex-ml507/readme.txt
board/qemu/mips64el-malta/readme.txt
board/qemu/powerpc-mpc8544ds/readme.txt
board/qemu/microblazeel-mmu/readme.txt
board/qemu/microblazebe-mmu/readme.txt
board/qemu/x86/readme.txt
board/qemu/mipsel-malta/readme.txt
board/qemu/powerpc-g3beige/readme.txt
board/qemu/sparc-ss10/readme.txt
board/qemu/mips-malta/readme.txt
board/qemu/arm-vexpress/readme.txt
board/qemu/mips64-malta/readme.txt
board/qemu/arm-versatile/readme.txt
board/qemu/x86_64/readme.txt
board/qemu/sh4-r2d/readme.txt
board/altera/sockit/readme.txt
board/avnet/zedboard/readme.txt
board/avnet/s6lx9_microboard/readme.txt
board/atmel/xplained/readme.txt
board/congatec/qmx6/readme.txt
board/freescale/p1010rdb/readme.txt
board/freescale/mpc8315erdb/readme.txt
board/olimex/imx233_olinuxino/readme.txt
board/wandboard/readme.txt
board/ts/ts5x00/readme.txt

> diff --git a/board/acmesystems/ariag25/at91-ariag25.config b/board/acmesystems/ariag25/at91-ariag25.config
> new file mode 100644
> index 0000000..07a0eca
> --- /dev/null
> +++ b/board/acmesystems/ariag25/at91-ariag25.config

This file should be named linux-<version>.config so that we know it's
the kernel configuration.

What are the differences compared to the at91_dt_defconfig available in
the kernel tree? We generally prefer to use the built-in defconfig
files from the kernel, when they are appropriate.


> diff --git a/board/acmesystems/ariag25/at91-ariag25.dts b/board/acmesystems/ariag25/at91-ariag25.dts
> new file mode 100644
> index 0000000..8bb5612
> --- /dev/null
> +++ b/board/acmesystems/ariag25/at91-ariag25.dts

This Device Tree file is already part of the mainline kernel, why do we
need to add it in Buildroot ?

> diff --git a/board/acmesystems/ariag25_terra/fs-overlay/etc/network/interfaces b/board/acmesystems/ariag25_terra/fs-overlay/etc/network/interfaces
> new file mode 100644
> index 0000000..104c1a1
> --- /dev/null
> +++ b/board/acmesystems/ariag25_terra/fs-overlay/etc/network/interfaces
> @@ -0,0 +1,5 @@
> +auto lo
> +iface lo inet loopback
> +
> +auto eth0
> +iface eth0 inet dhcp
> diff --git a/configs/ariag25_defconfig b/configs/ariag25_defconfig
> new file mode 100644
> index 0000000..a572be5
> --- /dev/null
> +++ b/configs/ariag25_defconfig
> @@ -0,0 +1,11 @@
> +BR2_arm=y

Add:

BR2_arm926t=y

to make sure we use the correct CPU architecture.

> +BR2_DEFCONFIG="$(CONFIG_DIR)/defconfig"

Not needed.

> +BR2_TARGET_GENERIC_HOSTNAME="ariag25"
> +BR2_TARGET_GENERIC_ISSUE="Welcome to AriaG25 by www.acmesystems.it!"
> +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y

Please lock down the kernel headers versions, like is done in all other
defconfig files:

# Lock to 3.12 headers to avoid breaking with newer kernels
BR2_KERNEL_HEADERS_VERSION=y
BR2_DEFAULT_KERNEL_VERSION="3.12.2"
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_3_12=y

> +BR2_LINUX_KERNEL=y

Please lock the kernel version, like is done in all other defconfig
files:

BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="3.12.2"

> +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
> +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/acmesystems/ariag25/at91-ariag25.config"
> +BR2_LINUX_KERNEL_DTS_SUPPORT=y
> +BR2_LINUX_KERNEL_USE_CUSTOM_DTS=y
> +BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/acmesystems/ariag25/at91-ariag25.dts"

This will have to be modified to use the Device Tree file built into
the mainline kernel.

> diff --git a/configs/ariag25_demo_terra_defconfig b/configs/ariag25_demo_terra_defconfig
> new file mode 100644
> index 0000000..6ceea7f
> --- /dev/null
> +++ b/configs/ariag25_demo_terra_defconfig
> @@ -0,0 +1,17 @@
> +BR2_arm=y
> +BR2_DEFCONFIG="$(CONFIG_DIR)/defconfig"
> +BR2_TOOLCHAIN_BUILDROOT_LARGEFILE=y
> +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y
> +BR2_TARGET_GENERIC_HOSTNAME="ariag25"
> +BR2_TARGET_GENERIC_ISSUE="Welcome to AriaG25 by www.acmesystems.it!"
> +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
> +BR2_ROOTFS_OVERLAY="board/acmesystems/ariag25_terra/fs-overlay"
> +BR2_LINUX_KERNEL=y
> +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
> +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/acmesystems/ariag25/at91-ariag25.config"
> +BR2_LINUX_KERNEL_DTS_SUPPORT=y
> +BR2_LINUX_KERNEL_USE_CUSTOM_DTS=y
> +BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/acmesystems/ariag25/at91-ariag25.dts"
> +BR2_PACKAGE_PYTHON=y
> +BR2_PACKAGE_PYTHON_SERIAL=y
> +BR2_PACKAGE_DROPBEAR=y

I honestly don't think it's really worth having a demo whose purpose is
just to enable Python and Dropbear. Could you submit a patch without
this demo configuration, it will have a higher chance of being merged.

Thanks!

Thomas
Arnout Vandecappelle - Oct. 12, 2014, 3:57 p.m.
On 15/07/14 20:21, Thomas Petazzoni wrote:
> Dear Angelo Compagnucci,
> 
> Thanks for this patch. See my comments below.
> 
> The title of the patch should rather be something like:
> 
>   board: add support for Acmesystems Ariag25 and Terra boards

 Hi Angelo,

 Do you plan to still take into account Thomas's comments and repost?

 For the time being, we've marked this patch as Changes Requested in patchwork
http://patchwork.ozlabs.org/patch/362357/


 Regards,
 Arnout

Patch

diff --git a/board/acmesystems/README.md b/board/acmesystems/README.md
new file mode 100644
index 0000000..b09941a
--- /dev/null
+++ b/board/acmesystems/README.md
@@ -0,0 +1,32 @@ 
+# AriaG25 / Terra board support
+
+Aria G25 is a cost-effective System-on-Module (SoM) thought of to drastically reduce the development time needed to design a low-power and low-EMI Linux Embedded device.
+
+Terra board is a complete hardware solution conceived to:
+
+* Evaluate the Aria G25 Linux embedded module for your own hardware design (schematic, bom, etc are available here)
+
+* Create concept prototypes using the Daisy add-on boards system for in-field applications
+
+* Build end-user products
+
+
+## AriaG25 Getting started
+
+To build a new minimal AriaG25 rootfs simply load corresponding ariag25_defconfig file. The config is fairly basic with only the kernel and busybox selected.
+
+To make the board bootable please follow the instruction on the producer website:
+
+[http://acmesystems.it/binary_repository](http://acmesystems.it/binary_repository)
+
+You will only need the correct boot.bin file for your board type, everithing else like kernel, dtb and roots are built by buildroot inside images directory.
+
+## Terra getting started
+
+To build a new minimal AriaG25 rootfs simply open the corresponding ariag25_demo_terra_defconfig file. This configuration is a bit more complete than the other and provides python, networking support and ssh access. It's meant to be usable as a reference for running example code you can find on the producer website:
+
+[http://acmesystems.it/tutorials](http://acmesystems.it/tutorials)
+
+Networking is configured for DHCP on the eth0.
+
+Please note that this configuration needs the correct boot.bin file, please refer to the AriaG25 getting started to know how to obtain it.
\ No newline at end of file
diff --git a/board/acmesystems/ariag25/at91-ariag25.config b/board/acmesystems/ariag25/at91-ariag25.config
new file mode 100644
index 0000000..07a0eca
--- /dev/null
+++ b/board/acmesystems/ariag25/at91-ariag25.config
@@ -0,0 +1,211 @@ 
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_KERNEL_LZO=y
+CONFIG_SYSVIPC=y
+CONFIG_LOG_BUF_SHIFT=16
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS_ALL=y
+CONFIG_EMBEDDED=y
+CONFIG_SLAB=y
+CONFIG_JUMP_LABEL=y
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_BLK_DEV_BSGLIB=y
+CONFIG_DEFAULT_NOOP=y
+CONFIG_ARCH_AT91=y
+CONFIG_SOC_AT91SAM9260=y
+CONFIG_SOC_AT91SAM9261=y
+CONFIG_SOC_AT91SAM9263=y
+CONFIG_SOC_AT91SAM9RL=y
+CONFIG_SOC_AT91SAM9G45=y
+CONFIG_SOC_AT91SAM9X5=y
+CONFIG_SOC_AT91SAM9N12=y
+CONFIG_MACH_AT91SAM9_DT=y
+CONFIG_AT91_TIMER_HZ=128
+CONFIG_AEABI=y
+CONFIG_UACCESS_WITH_MEMCPY=y
+# CONFIG_ATAGS is not set
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_KEXEC=y
+CONFIG_AUTO_ZRELADDR=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_PNP=y
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_DIAG is not set
+CONFIG_IPV6=y
+# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET6_XFRM_MODE_BEET is not set
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_DNS_RESOLVER=y
+CONFIG_CFG80211=y
+CONFIG_CFG80211_WEXT=y
+CONFIG_MAC80211=y
+CONFIG_UEVENT_HELPER_PATH="/sbin/mdev"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_STANDALONE is not set
+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
+CONFIG_MTD=y
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_ATMEL=y
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_GLUEBI=y
+CONFIG_PROC_DEVICETREE=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=4
+CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_ATMEL_PWM=y
+CONFIG_ATMEL_TCLIB=y
+CONFIG_ATMEL_SSC=y
+CONFIG_EEPROM_93CX6=m
+CONFIG_SCSI=y
+CONFIG_BLK_DEV_SD=y
+CONFIG_CHR_DEV_SG=y
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_NETDEVICES=y
+CONFIG_MACB=y
+# CONFIG_NET_VENDOR_BROADCOM is not set
+# CONFIG_NET_VENDOR_CIRRUS is not set
+# CONFIG_NET_VENDOR_FARADAY is not set
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SMSC is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+# CONFIG_NET_VENDOR_WIZNET is not set
+CONFIG_SMSC_PHY=y
+CONFIG_ATH_CARDS=m
+CONFIG_ATH9K_HTC=m
+CONFIG_RT2X00=y
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+# CONFIG_RT2800USB_RT33XX is not set
+# CONFIG_RT2800USB_RT35XX is not set
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_INPUT_POLLDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=480
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=272
+CONFIG_INPUT_JOYDEV=y
+CONFIG_INPUT_EVDEV=y
+# CONFIG_KEYBOARD_ATKBD is not set
+CONFIG_KEYBOARD_GPIO=y
+# CONFIG_INPUT_MOUSE is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_SERIO is not set
+CONFIG_LEGACY_PTY_COUNT=4
+CONFIG_SERIAL_ATMEL=y
+CONFIG_SERIAL_ATMEL_CONSOLE=y
+CONFIG_HW_RANDOM=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_AT91=m
+CONFIG_SPI=y
+CONFIG_SPI_ATMEL=y
+CONFIG_SPI_SPIDEV=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_W1=y
+CONFIG_W1_MASTER_GPIO=y
+CONFIG_W1_SLAVE_THERM=y
+# CONFIG_HWMON is not set
+CONFIG_WATCHDOG=y
+CONFIG_AT91SAM9X_WATCHDOG=y
+CONFIG_SSB=m
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_USB_VIDEO_CLASS=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+CONFIG_USB=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_OHCI_HCD=m
+CONFIG_USB_WDM=m
+CONFIG_USB_STORAGE=m
+CONFIG_USB_SERIAL=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_FTDI_SIO=y
+CONFIG_USB_SERIAL_PL2303=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_AT91=m
+CONFIG_USB_ETH=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_CDC_COMPOSITE=m
+CONFIG_USB_G_ACM_MS=m
+CONFIG_USB_G_MULTI=m
+CONFIG_USB_G_MULTI_CDC=y
+CONFIG_MMC=y
+CONFIG_MMC_UNSAFE_RESUME=y
+CONFIG_MMC_ATMELMCI=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_ATMEL_PWM=m
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_ONESHOT=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_LEDS_TRIGGER_GPIO=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_AT91RM9200=y
+CONFIG_RTC_DRV_AT91SAM9=y
+CONFIG_DMADEVICES=y
+CONFIG_AT_HDMAC=y
+# CONFIG_IOMMU_SUPPORT is not set
+CONFIG_PWM=y
+CONFIG_PWM_ATMEL_TCB=y
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_FANOTIFY=y
+CONFIG_VFAT_FS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+# CONFIG_MISC_FILESYSTEMS is not set
+# CONFIG_NETWORK_FILESYSTEMS is not set
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_850=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_PRINTK_TIME=y
+CONFIG_STRIP_ASM_SYMS=y
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_MAGIC_SYSRQ=y
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_FTRACE is not set
+CONFIG_STRICT_DEVMEM=y
+CONFIG_DEBUG_USER=y
+CONFIG_KEYS=y
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_SHA1=y
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+# CONFIG_CRYPTO_HW is not set
+CONFIG_CRC_CCITT=y
+CONFIG_CRC_T10DIF=m
+CONFIG_CRC_ITU_T=y
+CONFIG_CRC7=y
diff --git a/board/acmesystems/ariag25/at91-ariag25.dts b/board/acmesystems/ariag25/at91-ariag25.dts
new file mode 100644
index 0000000..8bb5612
--- /dev/null
+++ b/board/acmesystems/ariag25/at91-ariag25.dts
@@ -0,0 +1,191 @@ 
+/*
+ * at91-ariag25.dts - Device Tree file for Acme Systems Aria G25
+ *
+ * Copyright (C) 2013 Douglas Gilbert <dgilbert@interlog.com>,
+ *                    Robert Nelson <robertcnelson@gmail.com>
+ * Copyright (C) 2014 Sergio Tanzilli <sergio@tanzilli.com>
+ *
+ * Licensed under GPLv2 or later. 
+ */
+/dts-v1/;
+#include "at91sam9g25.dtsi"
+
+/ {
+  model = "Acme Systems Aria G25";
+  compatible = "acme,ariag25", "atmel,at91sam9x5ek",
+         "atmel,at91sam9x5", "atmel,at91sam9";
+
+  aliases {
+    serial0 = &dbgu;
+    serial1 = &usart0;
+    serial2 = &usart1;
+    serial3 = &usart2;
+    serial4 = &usart3;
+    serial5 = &uart0;
+    serial6 = &uart1;
+  };
+
+  chosen {
+    bootargs = "console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait";
+  };
+
+  memory {
+    /* 128 MB Aria G25 version */
+    reg = <0x20000000 0x8000000>;
+    /* 256 MB Aria G25 version */
+    /* reg = <0x20000000 0x10000000>; */
+  };
+
+
+  clocks {
+    #address-cells = <1>;
+    #size-cells = <1>;
+    ranges;
+
+    main_clock: clock@0 {
+      compatible = "atmel,osc", "fixed-clock";
+      clock-frequency = <12000000>;
+    };
+  };
+
+  ahb {
+    apb {
+      mmc0: mmc@f0008000 {
+        pinctrl-0 = <
+          &pinctrl_mmc0_slot0_clk_cmd_dat0
+          &pinctrl_mmc0_slot0_dat1_3>;
+        status = "okay";
+        slot@0 {
+          reg = <0>;
+          bus-width = <4>;
+        };
+      };
+
+      i2c0: i2c@f8010000 {
+        status = "okay";
+      };
+
+      i2c1: i2c@f8014000 {
+        status = "disabled";
+      };
+
+      /* /dev/ttyS1 */
+      usart0: serial@f801c000 {
+        pinctrl-0 = <&pinctrl_usart0 &pinctrl_usart0_rts &pinctrl_usart0_cts>;
+        status = "okay";
+      };
+
+      /* /dev/ttyS2 */
+      usart1: serial@f8020000 {
+        pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts &pinctrl_usart1_cts>;
+        
+        
+        status = "okay";
+      };
+
+      /* /dev/ttyS3 */
+      usart2: serial@f8024000 {
+        pinctrl-0 = <&pinctrl_usart2>;
+        status = "okay";
+      };
+
+      /* /dev/ttyS4 */
+      usart3: serial@f8028000 {
+        compatible = "atmel,at91sam9260-usart";
+        reg = <0xf8028000 0x200>;
+        interrupts = <8 IRQ_TYPE_LEVEL_HIGH 5>;
+        pinctrl-names = "default";
+      
+        pinctrl-0 = <&pinctrl_usart3 &pinctrl_usart3_rts &pinctrl_usart3_cts>;
+        
+        
+         status = "okay";
+      };
+
+      /* /dev/ttyS5 */
+      uart0: serial@f8040000 {
+        status = "disabled";
+      };
+
+      /* /dev/ttyS6 */
+      uart1: serial@f8044000 {
+        status = "disabled";
+      };
+
+      spi0: spi@f0000000 {
+        status = "okay";
+        cs-gpios = <&pioA 14 0>, <&pioA 7 0>, <0>, <0>;
+        
+        device@0 {
+          compatible = "spidev";
+          // spi-max-frequency = <50000000>;  // 50 MHz
+          spi-max-frequency = <5000000>;	    // 5 MHz
+          reg = <0>;
+        };
+
+        device@1 {
+          compatible = "spidev";
+          // spi-max-frequency = <50000000>;  // 50 MHz
+          spi-max-frequency = <5000000>;	    // 5 MHz
+          reg = <1>;
+        };
+      };
+
+
+      macb0: ethernet@f802c000 {
+        phy-mode = "rmii";
+        local-mac-address = [00 04 25 21 43 65];
+        status = "okay";
+      };
+
+      adc0: adc@f804c000 {
+        status = "okay";
+        atmel,adc-channels-used = <0xf>;
+        atmel,adc-num-channels = <4>;
+      };
+
+      dbgu: serial@fffff200 {
+        status = "okay";
+      };
+
+      pinctrl@fffff400 {
+        w1_0 {
+          pinctrl_w1_0: w1_0-0 {
+            atmel,pins = <0 21 0x0 0x1>; /* PA21 PIO, pull-up */
+          };
+        };
+      };
+
+      rtc@fffffeb0 {
+        status = "okay";
+      };
+    };
+
+    usb0: ohci@00600000 {
+      status = "okay";
+      num-ports = <3>;
+    };
+
+    usb1: ehci@00700000 {
+      status = "okay";
+    };
+  };
+
+  leds {
+    compatible = "gpio-leds";
+
+    aria_led {
+      label = "aria_led";
+      gpios = <&pioB 8 GPIO_ACTIVE_HIGH>; /* PB8 */
+      linux,default-trigger = "heartbeat";
+    };
+
+  };
+
+  onewire@0 {
+    compatible = "w1-gpio";
+    gpios = <&pioA 21 GPIO_ACTIVE_LOW>;
+    pinctrl-names = "default";
+    pinctrl-0 = <&pinctrl_w1_0>;
+  };
+};
diff --git a/board/acmesystems/ariag25_terra/fs-overlay/etc/network/interfaces b/board/acmesystems/ariag25_terra/fs-overlay/etc/network/interfaces
new file mode 100644
index 0000000..104c1a1
--- /dev/null
+++ b/board/acmesystems/ariag25_terra/fs-overlay/etc/network/interfaces
@@ -0,0 +1,5 @@ 
+auto lo
+iface lo inet loopback
+
+auto eth0
+iface eth0 inet dhcp
diff --git a/configs/ariag25_defconfig b/configs/ariag25_defconfig
new file mode 100644
index 0000000..a572be5
--- /dev/null
+++ b/configs/ariag25_defconfig
@@ -0,0 +1,11 @@ 
+BR2_arm=y
+BR2_DEFCONFIG="$(CONFIG_DIR)/defconfig"
+BR2_TARGET_GENERIC_HOSTNAME="ariag25"
+BR2_TARGET_GENERIC_ISSUE="Welcome to AriaG25 by www.acmesystems.it!"
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/acmesystems/ariag25/at91-ariag25.config"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_USE_CUSTOM_DTS=y
+BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/acmesystems/ariag25/at91-ariag25.dts"
diff --git a/configs/ariag25_demo_terra_defconfig b/configs/ariag25_demo_terra_defconfig
new file mode 100644
index 0000000..6ceea7f
--- /dev/null
+++ b/configs/ariag25_demo_terra_defconfig
@@ -0,0 +1,17 @@ 
+BR2_arm=y
+BR2_DEFCONFIG="$(CONFIG_DIR)/defconfig"
+BR2_TOOLCHAIN_BUILDROOT_LARGEFILE=y
+BR2_TOOLCHAIN_BUILDROOT_WCHAR=y
+BR2_TARGET_GENERIC_HOSTNAME="ariag25"
+BR2_TARGET_GENERIC_ISSUE="Welcome to AriaG25 by www.acmesystems.it!"
+BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
+BR2_ROOTFS_OVERLAY="board/acmesystems/ariag25_terra/fs-overlay"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
+BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/acmesystems/ariag25/at91-ariag25.config"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_USE_CUSTOM_DTS=y
+BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/acmesystems/ariag25/at91-ariag25.dts"
+BR2_PACKAGE_PYTHON=y
+BR2_PACKAGE_PYTHON_SERIAL=y
+BR2_PACKAGE_DROPBEAR=y