diff mbox

[v2] Adding support for Ariag25 and Terra board from Acmesystems

Message ID 1400875790-20928-1-git-send-email-angelo.compagnucci@gmail.com
State Superseded
Headers show

Commit Message

Angelo Compagnucci May 23, 2014, 8:09 p.m. UTC
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/ariag25/at91-ariag25.config      | 211 +++++++++++++++++++++
 board/acmesystems/ariag25/at91-ariag25.dts         | 191 +++++++++++++++++++
 .../fs-overlay/etc/network/interfaces              |   5 +
 configs/ariag25_defconfig                          |  12 ++
 configs/ariag25_demo_terra_defconfig               |  21 ++
 5 files changed, 440 insertions(+)
 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

Comments

Arnout Vandecappelle May 28, 2014, 6:24 a.m. UTC | #1
On 23/05/14 22:09, Angelo Compagnucci wrote:
> 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/ariag25/at91-ariag25.config      | 211 +++++++++++++++++++++
>  board/acmesystems/ariag25/at91-ariag25.dts         | 191 +++++++++++++++++++
>  .../fs-overlay/etc/network/interfaces              |   5 +
>  configs/ariag25_defconfig                          |  12 ++
>  configs/ariag25_demo_terra_defconfig               |  21 ++
>  5 files changed, 440 insertions(+)
>  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
> 
> 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

 Any reason to support all these different chips?

> +CONFIG_MACH_AT91SAM9_DT=y
> +CONFIG_AT91_TIMER_HZ=128
> +CONFIG_AEABI=y
[snip]
> +CONFIG_EXT4_FS=y
> +CONFIG_EXT4_FS_POSIX_ACL=y

 Why do you need ext4 support?

> +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
[snip]
> 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

 You're not actually using this in your defconfigs...

> @@ -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..b2a23ff
> --- /dev/null
> +++ b/configs/ariag25_defconfig
> @@ -0,0 +1,12 @@
> +BR2_arm=y
> +BR2_DEFCONFIG="$(CONFIG_DIR)/defconfig"
> +BR2_TOOLCHAIN_BUILDROOT_LARGEFILE=y

 There's no reason to have this in the minimal 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"

 Since you create just a root filesystem and a kernel, not even a bootloader,
I'd expect a README file with an explanation how you get this stuff on your device.

> diff --git a/configs/ariag25_demo_terra_defconfig b/configs/ariag25_demo_terra_defconfig
> new file mode 100644
> index 0000000..3457472
> --- /dev/null
> +++ b/configs/ariag25_demo_terra_defconfig
> @@ -0,0 +1,21 @@
> +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_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_SQLITE=y
> +BR2_PACKAGE_PYTHON_ZLIB=y
> +BR2_PACKAGE_PYTHON_SERIAL=y
> +BR2_PACKAGE_DROPBEAR=y
> +BR2_PACKAGE_IPUTILS=y
> +BR2_PACKAGE_NTP=y
> +BR2_PACKAGE_OPKG=y

 I like the fact that we get our first demo config. However, I don't understand
the choice of packages here. dropbear makes a lot of sense of course, but the
others just seem a bit random. In this case, I don't think the demo config makes
a lot of sense.


 Regards,
 Arnout
Angelo Compagnucci May 28, 2014, 9:41 a.m. UTC | #2
>> +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
>
>  Any reason to support all these different chips?

I used the kernel config provided by Acmesystems, do you think it
should be reviewed?

>> +CONFIG_MACH_AT91SAM9_DT=y
>> +CONFIG_AT91_TIMER_HZ=128
>> +CONFIG_AEABI=y
> [snip]
>> +CONFIG_EXT4_FS=y
>> +CONFIG_EXT4_FS_POSIX_ACL=y
>
>  Why do you need ext4 support?

Why not? EXT4 is ubiquitous and used extensively on AriaG25 / Terra board.

>> 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
>
>  You're not actually using this in your defconfigs...

Ouch, big mistake, sorry.

>> +BR2_TOOLCHAIN_BUILDROOT_LARGEFILE=y
>
>  There's no reason to have this in the minimal defconfig.

Ok, I'll remove it

>> +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"
>
>  Since you create just a root filesystem and a kernel, not even a bootloader,
> I'd expect a README file with an explanation how you get this stuff on your device.

Ok, I will add the at91  bootloader.

>> +BR2_PACKAGE_PYTHON=y
>> +BR2_PACKAGE_PYTHON_SQLITE=y
>> +BR2_PACKAGE_PYTHON_ZLIB=y
>> +BR2_PACKAGE_PYTHON_SERIAL=y
>> +BR2_PACKAGE_DROPBEAR=y
>> +BR2_PACKAGE_IPUTILS=y
>> +BR2_PACKAGE_NTP=y
>> +BR2_PACKAGE_OPKG=y
>
>  I like the fact that we get our first demo config. However, I don't understand
> the choice of packages here. dropbear makes a lot of sense of course, but the
> others just seem a bit random. In this case, I don't think the demo config makes
> a lot of sense.

It should be a rationale for a demo board? I choose that packages
because the provides a minimal support to run the examples provided on
the manufacturer's website.
Why do you think they are randomly chosen?
Python packages are useful for running website examples, iputils
contains basic useful commands as ping, ntp is ntp, and OPKG makes
possible to add other pre-compiled software from
http://feeds.angstrom-distribution.org/

I don't think it' so random :) !

Sincerly,

Angelo
Arnout Vandecappelle May 28, 2014, 10:30 a.m. UTC | #3
On 28/05/14 11:41, Angelo Compagnucci wrote:
>>> +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
>>
>>  Any reason to support all these different chips?
> 
> I used the kernel config provided by Acmesystems, do you think it
> should be reviewed?

 No, just mention in the README or in the commit message where it comes from then.

> 
>>> +CONFIG_MACH_AT91SAM9_DT=y
>>> +CONFIG_AT91_TIMER_HZ=128
>>> +CONFIG_AEABI=y
>> [snip]
>>> +CONFIG_EXT4_FS=y
>>> +CONFIG_EXT4_FS_POSIX_ACL=y
>>
>>  Why do you need ext4 support?
> 
> Why not? EXT4 is ubiquitous and used extensively on AriaG25 / Terra board.

 The config you provide doesn't show that because it doesn't have an ext4 rootfs.

> 
>>> 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
>>
>>  You're not actually using this in your defconfigs...
> 
> Ouch, big mistake, sorry.
> 
>>> +BR2_TOOLCHAIN_BUILDROOT_LARGEFILE=y
>>
>>  There's no reason to have this in the minimal defconfig.
> 
> Ok, I'll remove it
> 
>>> +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"
>>
>>  Since you create just a root filesystem and a kernel, not even a bootloader,
>> I'd expect a README file with an explanation how you get this stuff on your device.
> 
> Ok, I will add the at91  bootloader.

 And a readme about how to put it on the board. You can make it very short and
just refer to a website - on condition that the instructions on that website are
correct for the images generated by buildroot.

 We want a user to be able to boot a board with buildroot by doing:

- make ariag25_defconfig
- follow the instructions in board/acmesystems/ariag25/readme.txt

> 
>>> +BR2_PACKAGE_PYTHON=y
>>> +BR2_PACKAGE_PYTHON_SQLITE=y
>>> +BR2_PACKAGE_PYTHON_ZLIB=y
>>> +BR2_PACKAGE_PYTHON_SERIAL=y
>>> +BR2_PACKAGE_DROPBEAR=y
>>> +BR2_PACKAGE_IPUTILS=y
>>> +BR2_PACKAGE_NTP=y
>>> +BR2_PACKAGE_OPKG=y
>>
>>  I like the fact that we get our first demo config. However, I don't understand
>> the choice of packages here. dropbear makes a lot of sense of course, but the
>> others just seem a bit random. In this case, I don't think the demo config makes
>> a lot of sense.
> 
> It should be a rationale for a demo board? I choose that packages
> because the provides a minimal support to run the examples provided on
> the manufacturer's website.

 That's perfect - but then you should refer to the examples on the website, and
how to install them on the system. Perhaps even create a package for them
(though that's probably not very useful).

> Why do you think they are randomly chosen?
> Python packages are useful for running website examples, 

 OK

> iputils
> contains basic useful commands as ping, ntp is ntp,

 Those are also in busybox.

> and OPKG makes
> possible to add other pre-compiled software from
> http://feeds.angstrom-distribution.org/

 Have you tried that? I doubt that angstrom uses uClibc toolchains...


 Regards,
 Arnout

> 
> I don't think it' so random :) !
> 
> Sincerly,
> 
> Angelo
>
Angelo Compagnucci May 28, 2014, 12:51 p.m. UTC | #4
Hi Arnout,

2014-05-28 12:30 GMT+02:00 Arnout Vandecappelle <arnout@mind.be>:
> On 28/05/14 11:41, Angelo Compagnucci wrote:

>  No, just mention in the README or in the commit message where it comes from then.

Ok. I'll add a README.

>  The config you provide doesn't show that because it doesn't have an ext4 rootfs.

Yes, but I can simply untar the rootfs in a EXT4 root partition,
removing EXT4 will make the system unbootable without a plausible
reason. Moreover this setting is inside the producer provided config,
so I think it should stay.
A user that wants a really tailored rootfs for is own needs should
tweak the kernel configuration anyway. I think it's better to have a
sensible default, and ext4 seems sensible to me! Anyway, I'll remove
it if this prevents the patch been accepted.

>>>  Since you create just a root filesystem and a kernel, not even a bootloader,
>>> I'd expect a README file with an explanation how you get this stuff on your device.
>>
>> Ok, I will add the at91  bootloader.
>
>  And a readme about how to put it on the board. You can make it very short and
> just refer to a website - on condition that the instructions on that website are
> correct for the images generated by buildroot.

Ok. Producer website has very detailed explanations that work for sure
with buildroot.

>  We want a user to be able to boot a board with buildroot by doing:
>
> - make ariag25_defconfig
> - follow the instructions in board/acmesystems/ariag25/readme.txt

Ok, will be done!


>  That's perfect - but then you should refer to the examples on the website, and
> how to install them on the system. Perhaps even create a package for them
> (though that's probably not very useful).

I think a package it's not that much useful, they are simply examples
(like how to blink an led). So I will mention them in the README.

>> iputils
>> contains basic useful commands as ping, ntp is ntp,
>
>  Those are also in busybox.

Ok, catched. I'll replace packages with busybox ones.

>> and OPKG makes
>> possible to add other pre-compiled software from
>> http://feeds.angstrom-distribution.org/
>
>  Have you tried that? I doubt that angstrom uses uClibc toolchains...

Yeah, you are right ... I've tried in the past, but used eGlibc, with
default toolchain setting it will not work. I'll remove it.

Thank you for your great support!

Angelo
diff mbox

Patch

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..b2a23ff
--- /dev/null
+++ b/configs/ariag25_defconfig
@@ -0,0 +1,12 @@ 
+BR2_arm=y
+BR2_DEFCONFIG="$(CONFIG_DIR)/defconfig"
+BR2_TOOLCHAIN_BUILDROOT_LARGEFILE=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_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..3457472
--- /dev/null
+++ b/configs/ariag25_demo_terra_defconfig
@@ -0,0 +1,21 @@ 
+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_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_SQLITE=y
+BR2_PACKAGE_PYTHON_ZLIB=y
+BR2_PACKAGE_PYTHON_SERIAL=y
+BR2_PACKAGE_DROPBEAR=y
+BR2_PACKAGE_IPUTILS=y
+BR2_PACKAGE_NTP=y
+BR2_PACKAGE_OPKG=y