Subject: [PATCH] ARM: at91: add Acme Systems Aria G25 board

From: [email-masked] (Nicolas Ferre)
Date: Mon, 25 Mar 2013 15:10:47 +0100

On 03/25/2013 02:48 PM, Douglas Gilbert :
> On 13-03-25 08:22 AM, Jean-Christophe PLAGNIOL-VILLARD wrote:
>> On 09:49 Mon 25 Mar     , Nicolas Ferre wrote:
>>> From: Douglas Gilbert <[email-masked]>
>>>
>>> Signed-off-by: Douglas Gilbert <[email-masked]>
>>> Signed-off-by: Nicolas Ferre <[email-masked]>
>>> ---
>>>   arch/arm/boot/dts/ariag25.dts | 168
>>> ++++++++++++++++++++++++++++++++++++++++++
>>>   1 file changed, 168 insertions(+)
>>>   create mode 100644 arch/arm/boot/dts/ariag25.dts
>>>
>>> diff --git a/arch/arm/boot/dts/ariag25.dts
>>> b/arch/arm/boot/dts/ariag25.dts
>>> new file mode 100644
>>> index 0000000..d18ef50
>>> --- /dev/null
>>> +++ b/arch/arm/boot/dts/ariag25.dts
>>> @@ -0,0 +1,168 @@
>>> +/*
>>> + * ariag25.dts - Device Tree file for Acme Systems Aria G25
>>> (AT91SAM9G25 based)
>>> + *
>>> + * Copyright (C) 2013 Douglas Gilbert <[email-masked]>,
>>> + *                    Robert Nelson <[email-masked]>
>>> + *
>>> + * Licensed under GPLv2 or later.
>>> + */
>>> +/dts-v1/;
>>> +/include/ "at91sam9g25.dtsi"
>>> +
>>> +/ {
>>> +    model = "Acme Systems Aria G25";
>>> +    compatible = "acme,ariag25", "atmel,at91sam9g25ek",
>>> "atmel,at91sam9x5ek",
>>> +             "atmel,at91sam9x5", "atmel,at91sam9";
>> I doube the code is compatible with the 9g25ek
>>
>> specially when you do not include it
>>> +
>>> +    aliases {
>>> +        serial4 = &usart3;
>>> +        serial5 = &uart0;
>>> +    };
>> you need to specify all
>>> +
>>> +    chosen {
>>> +        bootargs = "console=ttyS0,115200 root=/dev/mmcblk0p2 rw
>>> rootwait";
>>> +    };
>>> +
>>> +    memory {
>>> +        /* 128 MB, change this for 256 MB revision */
>>> +        reg = <0x20000000 0x8000000>;
>>> +    };
>>> +
>>> +    clocks {
>>> +        #address-cells = <1>;
>>> +        #size-cells = <1>;
>>> +        ranges;
>>> +
>>> +        main_clock: clock at 0 {
>>> +            compatible = "atmel,osc", "fixed-clock";
>>> +            clock-frequency = <12000000>;
>>> +        };
>>> +    };
>>> +
>>> +    ahb {
>>> +        apb {
>>> +            mmc0: mmc at f0008000 {
>>> +                /* N.B. Aria has no SD card detect (CD), assumed
>>> present */
>>> +
>>> +                pinctrl-0 = <
>>> +                    &pinctrl_mmc0_slot0_clk_cmd_dat0
>>> +                    &pinctrl_mmc0_slot0_dat1_3>;
>>> +                status = "okay";
>>> +                slot at 0 {
>>> +                    reg = <0>;
>>> +                    bus-width = <4>;
>>> +                };
>>> +            };
>>> +
>>> +            i2c0: i2c at f8010000 {
>>> +                status = "okay";
>>> +            };
>>> +
>>> +            i2c1: i2c at f8014000 {
>>> +                status = "okay";
>>> +            };
>>> +
>>> +            /* TWD2+TCLK2 hidden behind ethernet, so no i2c2 */
>>> +
>>> +            usart0: serial at f801c000 {
>>> +                pinctrl-0 = <&pinctrl_usart0
>>> +                         &pinctrl_usart0_rts
>>> +                         &pinctrl_usart0_cts>;
>>> +                status = "okay";
>>> +            };
>>> +
>>> +            usart1: serial at f8020000 {
>>> +                pinctrl-0 = <&pinctrl_usart1
>>> +                         /* &pinctrl_usart1_rts */
>>> +                         /* &pinctrl_usart1_cts */
>>> +                        >;
>>> +                status = "okay";
>>> +            };
>>> +
>>> +            usart2: serial at f8024000 {
>>> +                /* cannot activate RTS2+CTS2, clash with
>>> +                 * ethernet on PB0 and PB1 */
>>> +                pinctrl-0 = <&pinctrl_usart2>;
>>> +                status = "okay";
>>> +            };
>>> +
>>> +            usart3: serial at f8028000 {
>>> +                compatible = "atmel,at91sam9260-usart";
>>> +                reg = <0xf8028000 0x200>;
>>> +                interrupts = <8 4 5>;
>>> +                pinctrl-names = "default";
>>> +                pinctrl-0 = <&pinctrl_usart3
>>> +                         /* &pinctrl_usart3_rts */
>>> +                         /* &pinctrl_usart3_cts */
>>> +                        >;
>>> +                status = "okay";
>>> +            };
>>> +
>>> +            macb0: ethernet at f802c000 {
>>> +                phy-mode = "rmii";
>>> +                /* following can be overwritten by uboot 'ftd set'
>>> command */
>>> +                local-mac-address = [00 04 25 dd 10 01];
>> drop this, this is board specific
>>> +                status = "okay";
> 
> Also the local-mac-address line is needed since it is edited
> by u-boot via this line:
> 
> mod_dtb=fdt addr 0x27FF0000 ; fdt set ${eth0_dt_path} local-mac-address
> [ ${my_ethaddr} ]
> 
> Interesting technique that: editing the dtb from u-boot prior to the
> Linux kernel using it ...
> 
> So the u-boot environment file actually sets the MAC address. The Aria
> G25 has no NAND, flash or switches for setting a quasi unique MAC
> address. There seems to be no way to pass the MAC address on the
> kernel boot line (there was in the past). That leaves the microSD card
> and IMO u-boot is the best place to set that MAC address. My guess
> is that the Aria G25 is not the only board that has this "setting the
> MAC address" challenge.
> 
> Finally of course that line is "board specific", that is why the
> file is called ariag25.dts :-)

Absolutely: for all those reasons (the strongest one beeing: it is so
simple), I won't modify this part.

Bye,
-- 
Nicolas Ferre