FAQ about AT91SAM9x5 SoC family

How to use BuildRoot with an old Linux distribution?

A: We have experienced some troubles using BuildRoot on old Linux distribution such as Debian 4.0. You may need to update some tools:

  • a recent version of cp (should be ok with 6.10 or later)
  • a recent version of tar (ok with 1.22)
  • ncurses 5.7 or later

How do I flash a jffs2 filesystem with U-Boot?

A: To flash a jffs2 root filesystem, you have to use nand write.jffs2 instead of nand write.trimffs.

What is the difference between UBI and UBIFS?

A: The UBI subsystem works on top of MTD devices and provides a notion of UBI volumes. UBIFS filesystem works on top of UBI volumes.

The UBIFS is done with the mkfs.ubifs command and the UBI is done with ubinize command.

SAM-BA and the U-Boot nand write.trimffs command expect a UBI file.

Should I care about the UBI volume name?

A: The UBI volume name is set into the ubinize.cfg file. Sometimes it is not easy to modify this file so you will have to change the boot arguments to give the name of your UBI volume.

The vol_name field into the ubinize.cfg file must match the volume name of the root parameter in boot arguments ie if vol_name is my_rootfs then update root parameter to root=ubi0:my_rootfs.

You can check your boot args with U-Boot:

U-Boot> print
bootargs=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
bootcmd=nand read.jffs2 0x22000000 0x200000 0x240000; bootm 0x22000000
bootdelay=1
baudrate=115200
ethact=macb0

Environment size: 277/131067 bytes

And now change UBI volume name:

setenv bootargs '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:my_rootfs'