dcsimg
Skip to end of metadata
Go to start of metadata

This is a page about Atmel's SAM9x5 family of Development Boards.

Availability

Boards:
SAM9G15-EK at Digi-Key
SAM9G25-EK at Digi-Key
SAM9G35-EK at Digi-Key
SAM9X25-EK at Digi-Key
SAM9X35-EK at Digi-Key

Comparison

From: http://www.atmel.com/tools/SAM9X25-EK.aspx?tab=documents -> "SAM9G15-EK, SAM9G25-EK, SAM9G35-EK, SAM9X25-EK, SAM9X35-EK User Guide" Table 4-1

Peripheral

SO-DIMM Interface

Connector

SAM9G15

SAM9G25

SAM9G35

SAM9X25

SAM9X35

LAN

MII/RMII 10/100 with PHY

ETH0

 

X

X

X

X

LAN

RMII 10/100 with PHY

ETH1

 

 

 

X

 

USART/UART

RS232 4 wires/RS485 Shared

COM0

X

X

X

X

X

USART/UART

RS232 4 wires

COM3

 

X

 

X

 

USART/UART

RS232 2 wires

DBGU

X

X

X

X

X

CAN

CAN

CAN0

 

 

 

X

X

CAN

CAN

CAN1

 

 

 

X

X

USB

2 * USB 2.0 Host

 

X

X

X

X

X

USB

1 * USB 2.0 Host/Device

 

X

X

X

X

X

SMD

Software Modem Device

 

X

X

X

X

X

Memory Card Support

uSD Card Slot Onboard

HSMCI0

X

X

X

X

X

Memory Card Support

MMC/MMC+/SD/SDIO/CE-ATA

HSMCI1

X

X

X

X

X

ISI

 

 

 

X

 

 

 

LCD/Touch Screen

24-bit Output Mode

 

X

 

X

 

X

ZigBee

 

 

X

X

X

X

X

SPI

 

 

X

X

X

X

X

TWI

 

 

X

X

X

X

X

DEBUG

JTAG Test Access Point

 

X

X

X

X

X

Vendor Documentation

Basic Requirements

ARM Cross Compiler: GCC

This is a pre-built (64bit) version of Linaro GCC that runs on generic linux, sorry (32bit) x86 users, it's time to upgrade...
Download/Extract:

~/
wget -c https://releases.linaro.org/components/toolchain/binaries/6.4-2017.08/arm-eabi/gcc-linaro-6.4.1-2017.08-x86_64_arm-eabi.tar.xz
tar xf gcc-linaro-6.4.1-2017.08-x86_64_arm-eabi.tar.xz
export CC=`pwd`/gcc-linaro-6.4.1-2017.08-x86_64_arm-eabi/bin/arm-eabi-

Test Cross Compiler:

~/
${CC}gcc --version
arm-eabi-gcc (Linaro GCC 6.4-2017.08) 6.4.1 20170707
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Bootloader: AT91Bootstrap

AT91Bootstrap – Atmel's first step bootloader: http://www.at91.com/linux4sam/bin/view/Linux4SAM/AT91Bootstrap
Source: https://github.com/linux4sam/at91bootstrap
Download:

~/
git clone https://github.com/linux4sam/at91bootstrap
cd at91bootstrap/
git checkout f05a4df -b tmp

Configure and Build:

~/at91bootstrap
make ARCH=arm CROSS_COMPILE=${CC} distclean
make ARCH=arm CROSS_COMPILE=${CC} at91sam9x5eksd_uboot_defconfig
make ARCH=arm CROSS_COMPILE=${CC}

Bootloader: U-Boot

Das U-Boot – the Universal Boot Loader: http://www.denx.de/wiki/U-Boot
eewiki.net patch archive: https://github.com/eewiki/u-boot-patches
Download:

~/
git clone https://github.com/u-boot/u-boot
cd u-boot/
git checkout v2017.09 -b tmp

Patches:

~/u-boot
wget -c https://rcn-ee.com/repos/git/u-boot-patches/v2017.09/0001-at91sam9x5ek-uEnv.txt-bootz-n-fixes.patch
 
patch -p1 < 0001-at91sam9x5ek-uEnv.txt-bootz-n-fixes.patch

Configure and Build:

~/u-boot
make ARCH=arm CROSS_COMPILE=${CC} distclean
make ARCH=arm CROSS_COMPILE=${CC} at91sam9x5ek_mmc_defconfig
make ARCH=arm CROSS_COMPILE=${CC}

Linux Kernel

This script will build the kernel, modules, device tree binaries and copy them to the deploy directory.
Download:

~/
git clone https://github.com/RobertCNelson/armv5_devel
cd armv5_devel/

For v4.9.x (Longterm 4.9.x):

~/armv5_devel/
git checkout origin/v4.9.x -b tmp

For v4.14.x (Longterm 4.14.x):

~/armv5_devel/
git checkout origin/v4.14.x -b tmp

Build:

~/armv5_devel/
./build_kernel.sh

Root File System

Debian 9

User

Password

debian

temppwd

root

root

Download:

~/
wget -c https://rcn-ee.com/rootfs/eewiki/minfs/debian-9.2-minimal-armel-2017-10-10.tar.xz

Verify:

~/
sha256sum debian-9.2-minimal-armel-2017-10-10.tar.xz
b687b772b1cfe1e659585f442363917ba951b93bf176b06422b972f746b472a9  debian-9.2-minimal-armel-2017-10-10.tar.xz

Extract:

~/
tar xf debian-9.2-minimal-armel-2017-10-10.tar.xz

Setup microSD card

For these instruction we are assuming, DISK=/dev/mmcblk0, lsblk is very useful for determining the device id.

export DISK=/dev/mmcblk0

Erase partition table/labels on microSD card:

sudo dd if=/dev/zero of=${DISK} bs=1M count=50

Create Partition Layout:
With util-linux v2.26, sfdisk was rewritten and is now based on libfdisk.

sudo sfdisk --version
sfdisk from util-linux 2.27.1
sfdisk >= 2.26.x
sudo sfdisk ${DISK} <<-__EOF__
1M,48M,0xE,*
49M,,,-
__EOF__
sfdisk <= 2.25.x
sudo sfdisk --unit M ${DISK} <<-__EOF__
1,48,0xE,*
49,,,-
__EOF__

Format Partition:

for: DISK=/dev/mmcblk0
sudo mkfs.vfat -F 16 -n BOOT ${DISK}p1
sudo mkfs.ext4 -L rootfs ${DISK}p2
 
for: DISK=/dev/sdX
sudo mkfs.vfat -F 16 -n BOOT ${DISK}1
sudo mkfs.ext4 -L rootfs ${DISK}2

Mount Partition:
On most systems these partitions may will be auto-mounted...

sudo mkdir -p /media/boot/
sudo mkdir -p /media/rootfs/
 
for: DISK=/dev/mmcblk0
sudo mount ${DISK}p1 /media/boot/
sudo mount ${DISK}p2 /media/rootfs/
 
for: DISK=/dev/sdX
sudo mount ${DISK}1 /media/boot/
sudo mount ${DISK}2 /media/rootfs/

Install Bootloader

Copy at91bootstrap/u-boot binaries to the boot partition

~/
sudo cp -v ./at91bootstrap/binaries/at91sam9x5ek-sdcardboot-uboot-3.8.9.bin /media/boot/BOOT.BIN
sudo cp -v ./u-boot/u-boot.bin /media/boot/

uEnv.txt based bootscript

Create "uEnv.txt" boot script: (nano uEnv.txt)
Make sure to un-comment which board you have with the fdtfile variable otherwise /dtbs/at91sam9g25ek.dtb will be used by default.

~/uEnv.txt
#ariag25 board
#fdtfile=/dtbs/at91-ariag25.dtb
 
#SAM9G15-EK
#fdtfile=/dtbs/at91sam9g15ek.dtb
 
#SAM9G25-EK
#fdtfile=/dtbs/at91sam9g25ek.dtb
 
#SAM9G35-EK
#fdtfile=/dtbs/at91sam9g35ek.dtb
 
#SAM9X25-EK
#fdtfile=/dtbs/at91sam9x25ek.dtb
 
#SAM9X35-EK
#fdtfile=/dtbs/at91sam9x35ek.dtb
 
#Default u-boot settings:
#console=ttyS0,115200
#optargs=console=tty0
 
#mmcroot=/dev/mmcblk0p2 ro
#mmcrootfstype=ext4 rootwait fixrtc
 
#Run custom u-boot commands early:
#uenvcmd=

Copy uEnv.txt to the boot partition:

~/
sudo cp -v ./uEnv.txt /media/boot/

Install Kernel and Root File System

To help new users, since the kernel version can change on a daily basis. The kernel building scripts listed on this page will now give you a hint of what kernel version was built.

-----------------------------
Script Complete
eewiki.net: [user@localhost:~$ export kernel_version=4.X.Y-Z]
-----------------------------

Copy and paste that "export kernel_version=4.X.Y-Z" exactly as shown in your own build/desktop environment and hit enter to create an environment variable to be used later.

export kernel_version=4.X.Y-Z

Copy Root File System

~/
sudo tar xfvp ./debian-*-*-armel-*/armel-rootfs-*.tar -C /media/rootfs/
sync
sudo chown root:root /media/rootfs/
sudo chmod 755 /media/rootfs/

Copy Kernel Image

Kernel Image:

~/
sudo cp -v ./armv5_devel/deploy/${kernel_version}.zImage /media/boot/zImage

Copy Kernel Device Tree Binaries

~/
sudo mkdir -p /media/boot/dtbs/
sudo tar xfvo ./armv5_devel/deploy/${kernel_version}-dtbs.tar.gz -C /media/boot/dtbs/

Copy Kernel Modules

~/
sudo tar xfv ./armv5_devel/deploy/${kernel_version}-modules.tar.gz -C /media/rootfs/

File Systems Table (/etc/fstab)

sudo sh -c "echo '/dev/mmcblk0p2  /  auto  errors=remount-ro  0  1' >> /media/rootfs/etc/fstab"
sudo sh -c "echo '/dev/mmcblk0p1  /boot/uboot  auto  defaults  0  2' >> /media/rootfs/etc/fstab"

Remove microSD/SD card

sync
sudo umount /media/boot
sudo umount /media/rootfs

Comments

Comments, feedback, and questions can be sent to: eewiki@digikey.com
Please use the Digi-Key's TechForum: TechForum

25 Comments

  1. Any details on steps needed to boot from NAND flash instead of the SD card?

    1. Hi Bryan,

      I saw your message on the linux-arm-kernel mainline list. After spending the time fighting with getting the HSMCI working, I had just assumed nand was just working. So I had not tried booting the system from NAND up to this point. So it is either a config setting or the v3.7-rcX at91 device tree is not ready yet for this method.

      Regards,

    2. Well, there are a heap of DT related patches for the AT91 hitting http://www.spinics.net/lists/arm-kernel/&nbsp; . So hopefully Robert spins a new version of this page for 3.8-rc1 when it becomes available, probably around mid-December. I have this current version limping along for a SD based system (Aria G25) but a lot of things are either broken (e.g. SPI) or working in a sub-optimal way (e.g. data is moved from the SD card via PIO rather than DMA). Many of these issues have already been addressed on the arm-kernel list. The DT stuff is new (in v3.7) for the AT91 and some older members (e.g. AT91SAM9G20) still have non-DT support in the kernel. However for this sub-family (i.e. AT91SAM9x5) the DT stuff is the only game available. Welcome to the bleeding edge.

  2. I too tried to make this code run out of nand flash on an at91sam9g25-ek without success.  I cloned Robert's sources and did the patching.  

    // in at91bootstrap:
    make clean
    make at91sam9x5nf_defconfig
    make
    // in u-boot:
    make distclean
    make at91sam9x5ek_nandflash
    make
    In at91bootstrap I used "make at91sam9x5nf_defconfig" and in u-boot I used "make at91sam9x5ek_nandflash" to configure for nand flash.  But when I boot with these I get nothing beyond the output: "RomBOOT".  So it appears that the new bootstrap is failing to run the new u-boot or or the new u-boot is crashing before generating any output.

    1. Atmel appears to have a number of device tree related patches that are still pending mainline release.  I recently tried the mainline 3.7.5 kernel and was able to boot from NAND flash, but the kernel did not yet have DMA support for NAND flash for the SAM9x5 chip series.  Atmel recently updated their support page to include some more information related to device tree support and their latest staged kernel.  Check out http://www.at91.com/linux4SAM for the updated information.  Their latest Linux kernel with changes pending mainline release is at https://github.com/linux4sam/linux-at91/tree/linux-3.6.9-at91.&nbsp; I have not yet tried that kernel, but looking at the source code it looks like it should have DMA support for NAND flash.  this thread on Atmel's support page has been pretty active lately with people talking about their results: http://www.at91.com/samphpbb/viewtopic.php?f=12&t=20841.&nbsp; It's worth a look.

      1. Thanks Brian.  I'm still unclear on the booting of kernels based on device trees.  The newer u-boot mkimage allows images with embedded dtb's and I'm assuming that this is my only option for booting linux 3.x on the at91sam9x5 as it is only provided in a device tree dependent form.  But for u-boot to understand and boot from these images an updated u-boot for the at91sam9x5 is needed- correct?  Is this how you booted successfully out of NAND and if so what u-boot/bootstrap did you use?

        1. Dan,

          Embedded dtb's is actually a kernel option: http://cateee.net/lkddb/web-lkddb/ARM_APPENDED_DTB.html

          Once enabled, just, build the kernel with the "zImage" target vs "uImage"...

          Then:

          cat zImage <filename>.dtb > zImage_w_dtb
          

          Then just run mkimage over "zImage_w_dtb" like your did previously and call it "uImage".

          Regards,

          1. Thanks Robert.  If so to boot 3.x on the at91sam9x5 there is no need to upgrade to your latest u-boot/bootstrap above- correct?  What has been added in your new u-boot/bootstrap that was not in those long posted here: http://www.at91.com/linux4sam/bin/view/Linux4SAM/SAM9x5Page ?

            1. Hi Dan,

              For at91bootstrap: nothing is different from those pages, the directions on this wiki specify to build against commit (1) which was pushed on "Sep 09, 2011" and building the "at91sam9x5sduboot_defconfig" target, for booting off sd cards... ( I had pushed some sama5d3 changes to my repo from Atmel, so I had to specifically point out that commit now..)

              For u-boot: I've specifically enable booting from zImage support (aka: no more trying to remember mkimage settings...) and using uEnv.txt based boot scripts (2)...

              #define CONFIG_CMD_EXT2            /* EXT2 Support */
              #define CONFIG_CMD_BOOTZ           /* bootz zImage support */
              #define CONFIG_SUPPORT_RAW_INITRD  /* bootz raw initrd support */
              

              1: https://github.com/RobertCNelson/at91bootstrap/commit/8e099c3a47f11c03b1ebe5cbc8d7406063b55262
              2: https://raw.github.com/RobertCNelson/Bootloader-Builder/master/patches/v2013.01/0002-at91-convert-to-uEnv.txt-n-fixes.patch

              Regards,

      2. Hi Bryan-

        I find that I can now do the following to create a working nand-bootable kernel for my at91sam9g25:

        git clone git://github.com/linux4sam/linux-at91.git
        cd linux-at91
        git checkout origin/linux-3.6.9-at91 \-b linux-3.6.9-at91
        make at91_dt_defconfig
        make zImage
        make dtbs
        cat arch/arm/boot/zImage arch/arm/boot/at91sam9g25ek.dtb > arch/arm/boot/zImage_w_dtb
        mkimage \-A arm \-O linux \-C none \-T kernel \-a 20008000 \-e 20008000 \-n linux-3.6.9 \-d arch/arm/boot/zImage_w_dtb uImage-linux-3.6.9-at91_dt.bin
        

        Though this boots I don't think that USB is working and lsusb just shows this:

        root@at91sam9x5ek:~# lsusb

        Bus 001 Device 001: ID 1d6b:0002

        Bus 002 Device 001: ID 1d6b:0001

        regardless of what USB devices I plug in.  I have gone through a good may experiments to my .config settings (the last one is pasted below) but still no USB devices are recognized.  Is this a known issue in the present state of the code?

        Thanks,
        Dan

        .config

        git clone git://github.com/linux4sam/linux-at91.git
        cd linux-at91
        git checkout origin/linux-3.6.9-at91 \-b linux-3.6.9-at91
        make at91_dt_defconfig
        make zImage
        make dtbs
        cat arch/arm/boot/zImage arch/arm/boot/at91sam9g25ek.dtb > arch/arm/boot/zImage_w_dtb
        mkimage \-A arm \-O linux \-C none \-T kernel \-a 20008000 \-e 20008000 \-n linux-3.6.9 \-d arch/arm/boot/zImage_w_dtb uImage-linux-3.6.9-at91_dt.bi
        

        Edited: rcn-ee: Shorten message by using attachment...

        1. So you are not using the RN's code or instructions. Instead you are using Atmel's Linux4Sam page and you are reporting that their USB handling doesn't work. Well I have had no problems with USB (SD card as boot media) when following this page. Why not point out your problems to Nicolas Ferre of Atmel whose name appears on the Linux4Sam pages?

          By my records device tree (DT) stuff first appeared in mainline lk 3.7.0 for the AT91 family. And there have been a lot of changes (corrections and additions) since then to the current lk 3.8.0-rc7 (as the instructions on this page will build today). There are also more changes in the pipeline. So why did Atmel base their updated Linux4Sam pages on lk-3.6.9 ?? No doubt Atmel have lots of patches over lk 3.6.9 but it seems strange that they chose that reference point IMO. At least lk-3.6.9 is more recent than the two year old lk 2.6.39 based stuff that was previously on the Linux4Sam pages.

          My output from lsusb:

          # lsusb
          Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
          Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
          
          1. Yes the system I'm on uses the at91sam9g25cm plugged into our own board which has no SD slot so NAND boot is imperative.  So Bryan's comment vectored me out to the Linux4Sam instructions.  But their USB is broken and I have posted a question there too.

            I would very much like to use Robert Nelson's code since it's later and has a working USB- which for my system is also a must have.  But I was unable to get NAND boot working in this code after updating the the at91sam9g25 device tree contents to that on the Linux4Sam site since this does add NAND to the DT.  But with this change the kernel still fails to boot.

            The RN code has USB but no NAND.  The Linux4Sam code has NAND but no USB.  Since I need both I've now retreated for the time being to the old 2.6 kernel until a fully functional 3.x kernel for the at91sam9g25cm becomes available.

  3. For those interested I build at91boostrap, u-boot and Linux kernels based on this page and put the binaries and some dts/dtsi files here:

    http://sg.danny.cz/foxg20/ariag25/

    At the time of writing Robert's lk 3.9.0-rc3 is the most recent and my built files for that are in the 390rc3 directory. See the readme.txt file for more information.

    My target system is called a AriaG25 which is based on the AT91SAM9G25 SoC which is a member of the "9x5" sub-family. The AriaG25 boots from a microSD card connected to MCI0 interface on the SoC and also expects to find its root file system on the microSD card. The AriaG25 can be viewed as a stripped down version of the SAM9G25-EK evaluation card sold by Digi-Key.

    Either the Debian 6 or Debian 7 root file system provided by Robert can be used.

  4. Hi,

    I have AT91SAM9x5-Ek board. When I try to boot this board using "U-Boot 2013.04" and "Linux-2.6.39", Linux is not able to detect NAND flash. It says following error,

    atmel_nand atmel_nand: Using dma0chan0 for DMA transfers.
    nand_get_flash_type: second ID read did not match 30,30 against 00,00
    No NAND device found.
    UBI error: ubi_init: UBI error: cannot initialize UBI, error -19

    But when I try to boot the say linux Image using old u-boot i.e. "U-Boot 2010.06", Linux is able to detect NAND flash,

    atmel_nand atmel_nand: Using dma0chan0 for DMA transfers.
    ONFI flash detected
    ONFI param page 0 valid
    NAND device: Manufacturer ID: 0x2c, Chip ID: 0xda (Micron MT29F2G08AAD)
    atmel_pmecc_init_params
    Scanning device for bad blocks
    2 cmdlinepart partitions found on MTD device atmel_nand
    Creating 2 MTD partitions on "atmel_nand":
    0x000000000000-0x000000800000 : "bootstrap/uboot/kernel"
    0x000000800000-0x000010000000 : "rootfs"
    UBI: attaching mtd1 to ubi0
    UBI: physical eraseblock size: 131072 bytes (128 KiB)
    UBI: logical eraseblock size: 126976 bytes
    UBI: smallest flash I/O unit: 2048
    UBI: VID header offset: 2048 (aligned 2048)
    UBI: data offset: 4096
    UBI: max. sequence number: 48
    UBI: attached mtd1 to ubi0
    UBI: MTD device name: "rootfs"
    UBI: MTD device size: 248 MiB
    UBI: number of good PEBs: 1984
    UBI: number of bad PEBs: 0
    UBI: number of corrupted PEBs: 0
    UBI: max. allowed volumes: 128
    UBI: wear-leveling threshold: 4096
    UBI: number of internal volumes: 1
    UBI: number of user volumes: 1
    UBI: available PEBs: 0

     

    I see both versions of u-boot are able to detect Nand Flash.

    btw, bootargs for linux is "mem=128M console=ttyS0,115200 mtdparts=atmel_nand:8M(bootstrap/uboot/kernel)ro,-(rootfs) root=/dev/mtdblock1 rw rootfstype=ubifs ubi.mtd=1 root=ubi0:rootfs"

    What I don't understand is, why the same kernel Image, with the same bootargs, able to detect NAND flash with old boot loader, but NOT able to detect with new boot loader.

    Can anyone shed some light on this?

    1. Hi Julius,

      If you consider (mainline) u-boot v2010.06 did not have support for the 9x5 family, but instead your version contains a patch from Atmel to fully support the 9x5 family.  Then it would seem (mainline) u-boot v2013.04 is still either incorrectly (or just not) initializing the nand for the kernel.

      Regards,

      1. Hi Robert, 

        Thanks for the reply..

        I figured out the issue, u-boot v2013.04 is not passing ATAG_SERIAL and ATAG_REVISION information to kernel, hence kernel started assuming that this is REV-A board and starting looking at wrong GPIO pins for NAND flash info.

        I changed some part of the code in U-boot-2013.04-rc2, and it working correctly now. Here is code I changed,

        diff -urB u-boot/board/atmel/at91sam9x5ek/at91sam9x5ek.c ../new-built/u-boot/board/atmel/at91sam9x5ek/at91sam9x5ek.c
        --- u-boot/board/atmel/at91sam9x5ek/at91sam9x5ek.c 2013-04-22 10:45:21.293275176 +0800
        +++ ../new-built/u-boot/board/atmel/at91sam9x5ek/at91sam9x5ek.c 2013-04-23 14:36:16.008460202 +0800
        @@ -46,6 +46,30 @@

        DECLARE_GLOBAL_DATA_PTR;

        +#ifdef CONFIG_LOAD_ONE_WIRE_INFO
        +static u32 system_rev;
        +static u32 system_serial_low;
        +
        +u32 get_board_rev(void)
        +{
        + return system_rev;
        +}
        +
        +void get_board_serial(struct tag_serialnr *serialnr)
        +{
        + serialnr->high = 0; /* Not used */
        + serialnr->low = system_serial_low;
        +}
        +
        +void load_1wire_info(void)
        +{
        + /* serial is in GPBR #2 and revision is in GPBR #3 */
        + system_serial_low = readl(ATMEL_BASE_GPBR + 4 * 2);
        + system_rev = readl(ATMEL_BASE_GPBR + 4 * 3);
        +}
        +
        +#endif
        +
        /* ------------------------------------------------------------------------- */
        /*
        * Miscelaneous platform dependent initialisations
        @@ -282,6 +306,10 @@
        /* adress of boot parameters */
        gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;

        +#ifdef CONFIG_LOAD_ONE_WIRE_INFO
        + load_1wire_info();
        +#endif
        +
        #ifdef CONFIG_CMD_NAND
        at91sam9x5ek_nand_hw_init();
        #endif
        diff -urB u-boot/include/configs/at91sam9x5ek.h ../new-built/u-boot/include/configs/at91sam9x5ek.h
        --- u-boot/include/configs/at91sam9x5ek.h 2013-04-22 10:45:21.205275174 +0800
        +++ ../new-built/u-boot/include/configs/at91sam9x5ek.h 2013-04-23 17:16:34.596765780 +0800
        @@ -38,6 +38,13 @@
        #define CONFIG_CMDLINE_TAG /* enable passing of ATAGs */
        #define CONFIG_SETUP_MEMORY_TAGS
        #define CONFIG_INITRD_TAG
        +
        +#define CONFIG_LOAD_ONE_WIRE_INFO 1

        +#ifdef CONFIG_LOAD_ONE_WIRE_INFO
        +#define CONFIG_REVISION_TAG 1
        +#define CONFIG_SERIAL_TAG 1
        +#endif
        +
        #define CONFIG_SKIP_LOWLEVEL_INIT
        #define CONFIG_BOARD_EARLY_INIT_F
        #define CONFIG_DISPLAY_CPUINFO

        1. Hi Julius,

          Thanks for the patch.. I cleaned it up and pushed it out to the repo I use for this wiki page, so others can utilize it by default too..

          https://raw.github.com/eewiki/u-boot-patches/master/v2013.04/board/0001-at91sam9x5ek-fix-nand-init-for-Linux-2.6.39.patch

          As you are the author you should also email the patch to http://lists.denx.de/mailman/listinfo/u-boot

          Edit: only tested on my nand-less 9x5, the board with nand is at home...

          Regards,

  5. Hi,

    I've successfully followed this tutorial. And i am now running this Linux distribution on a SAM9x25 dev board. But we have problems getting the built-in CAN-bus module to work. During the compilation of the Linux kernel we have enabled some CAN-bus drivers but we didn't find the driver for the built-in CAN module.

    When we try to start the CAN-bus module with the following command: ip link set can0 up type can bitrate 125000

    We get the following output: Cannot find device "can0"

    Any help would be greatly appreciated.

    Kind regards,

    Marcel

    1. Hi Marcel,

      It looks like we still do not have the "can" device tree bindings in the mainline/v3.9.x based kernel:

      https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/at91sam9x5.dtsi

      A quick search of linux-arm-kernel, does not indicate any can patches being queued for v3.10-rcX. I'll keep digging...

      Regards,

    2. drivers/net/can/at91_can.c does not support DT as of lk 3.9.0-rc6 but it does seem to know about at91sam9x5_can . So it needs some work to support DT plus the appropriate hooks in the dts/dtsi files.

  6. Hi,

    Thanks for the reactions. 

    If I understand it correctly the built-in CAN will not be supported shortly. I have no idea how to implement it by myself. So I will look into alternatives. 

    Thanks for the help

    Kind regards,

    Marcel

     

     

    1. Hi Marcel,

      I don't have the can email link handy on this system, but the dt conversion for the can driver is slated to get pulled into the v3.10-rc0 merge this week, so watch:

      https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/

      Regards,

      1. Hi Robert,

        That sounds promising. I'll keep you informed.

        Kind regards

      2. Hi Robert,

        I have ran the linux kernel build script. But in the kernel bulid menu I still can not select the on chip CAN module.

        I is it possible that the v3.10-rc0 is not merged yet? Because I don't see the v3.10-rc0 on Git. The build kernel script pulled the master branch.

        Regards

        1. Hi Marcel,

          The script still relies on user intervention, so when rc1 get's tagged this weekend, all have to edit a few things, check that it builds/boots then push it out...
          PS: the can patch got merged: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/net/can/at91_can.c?id=3078cde792340280b761a0f46f99799a78f4395d

          Regards,