Download Linux-Demo from http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3933 Flash dataflash-version into dataflash boot board //////////////////////// uboot //////////////////////// set ethaddr 02:02:02:04:08:10 set ipaddr 192.168.2.38 set serverip 192.168.2.34 saveenv //////////////////////// build new kernel //////////////////////// download compiler-package from gnuarm.org set path to gnuarm-compiler Download linux2.6.20 source download at91-patch download experimental patch patch -p1 < at91 patch -p1 < experimental make ARCH=arm CROSS_COMPILE=arm-elf- menuconfig select alternative konfiguration and select arch/arm/configs/at91sam9260ek_defconfig enable device driver: davidcom phy support network support: macb support device driver: mmc support exit, save make ARCH=arm CROSS_COMPILE=arm-elf- in arch/arm/boot/ will be the new zImage old filesystem from atmel-demo is fine FIX: "Disable multiple writes in mmc_block.c by setting number of block always to 1." If I remember correctly I also had some trouble getting the fix to work cleanly. The fix for this problem in the driver makes writes to SD/MMC slow. We gave up on sd/mmc support and opted for a bigger nand flash instead. Someone at Atmel told me that they were working on a new driver but that they still had problems. I haven't heard from them since then. Here's the fix: if (rq_data_dir(req) != READ && !(card->host->caps & MMC_CAP_MULTIWRITE) && !mmc_card_sd(card)) brq.data.blocks = 1; if (rq_data_dir(req) != READ){ //printk("*** no multi blocks *** \n"); brq.data.blocks = 1; } if (brq.data.blocks > 1) { brq.data.flags |= MMC_DATA_MULTI; brq.mrq.stop = &brq.stop; readcmd = MMC_READ_MULTIPLE_BLOCK; BTW we also gave up on the at91 twi controller and inserted an external i2c controller on our board. Hope this helps. ///////////////////////// setup tftp server //////////////////////// setup tftp server and add zImage and rootfs to directory //////////////////////// uboot //////////////////////// setenv bootcmd 'tftp 0x21500000 zImage; tftp 0x21100000 rootfs; go 0x21500000' saveenv boot //////////////////////// activate ethernet //////////////////////// ifconfig eth0 192.168.2.38 udhcpc //////////////////////// mknod for mmc //////////////////////// mknod /dev/mmc b 254 0 0 mknod /dev/mmc1 b 254 0 1 //////////////////////////////////////////////////////////////////////// cross-compiler-tool-chain //////////////////////////////////////////////////////////////////////// download http://kegel.com/crosstool/ and run arm-demo.sh (not as root!); unset ld_library_path before. (export LD_LIBRARY_PATH=) install "bison" install "flex" compilationfix: mkdir ./build/arm-unknown-linux-gnu/gcc-4.1.0-glibc-2.3.2/build-glibc/csu/ cd ./build/arm-unknown-linux-gnu/gcc-4.1.0-glibc-2.3.2/build-glibc/csu/ touch version-info.h chmod 444 version-info.h