Paco,
I'm a bit hazy about the u-boot I used on the GP+ but I followed the wiki page
http://plugcomputer.org/plugwiki/index.php/Re-building_the_kernel_and_U-Boot to build u-boot. (Its the grey cells evaporating at a prodigious rate I'm afraid.) I compiled as per the instructions and had no problems with the result. I don't want to reboot and check the u-boot version in use as it is a bit inconvenient. The compiled object is 224964 octets and dated Apr 19 19:57 as u-boot.kwb. There will be a later version 'u-boot-2011.06' which should compile correctly as there is a good 'guruplug.h' file in 'u-boot-2011.06/include/configs'. The u-boot has the ide available and you can alter the commands you need by adjusting the commands in 'guruplug.h' (see included files for command list - can't quite remember the cmd_all_???.h file!). I compiled the guruplugs u-boot on an eSata sheevaplug but as it is also a kirkwood platform, the object is fine. The object was tftp'ed across in the normal way but I was suprised (and pleased) that it worked straight out of the box! no nasty JTAG/OpenOCD to cope with. I wish creating the sheevaplug u-boot was as simple but after tweaking 'sheevaplug.h' I have got a working u-boot-2011.06 on one of my sheevaplugs though I had to use JTAG/Openocd to get me out of a pickle there! I will be converting my other sheevaplugs in due course.
My fw_printenv for one of my guruplugs is:-
bootdelay=3
baudrate=115200
x_bootcmd_usb=usb start
x_bootcmd_kernel=nand read.e 0x6400000 0x100000 0x400000
x_bootargs=console=ttyS0,115200
x_bootargs_root=ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs
ethaddr=02:50:43:a6:4c:53
ethact=egiga0
eth1addr=02:50:43:2f:ce:09
mainlineLinux=yes
arcNumber=2097
fileaddr=6400000
bootargs_debian=console=ttyS0,115200 root=/dev/sdb2
bootcmd_nand=nand start; nand read.e 0x00800000 0x100000 0x400000; nand read.e 0x01100000 0x500000 0x600000
bootcmd=setenv bootargs $(bootargs_debian); run bootcmd_nand; bootm 0x00800000 0x01100000
arcnumber=2659
stdin=serial
stdout=serial
stderr=serial
ipaddr=192.168.2.98
serverip=192.168.2.248
filesize=36EC4
I didn't really bother with NAND or mmc. the kernel i am using is:-
2.6.38.2 #1 PREEMPT Wed Apr 13 12:50:36 UTC 2011 armv5tel GNU/Linux
I note that in the latest u-boot, arcNumber has bee replaced by machid followed by the hexadecimal string for the machine.
I have not compiled any version 3 kernels yet, my latest (on sheeva) is 2.6.39.3. Since all the kernel sources and patches are available courtesy of 'cbxbiker' and kernel.org, I should think there would be no problems using make menuconfig to change the esata setting from module load to built-in. I will be building a version 3 kernel soon but I am working on something else.
BTW, on another subject entirely, I never got Zoneminder to work with my Edimax and Y-CAM IP cameras. ZM works on a sheeva fine but there isn't a good enough example to describe how to configure for thes cams. Another day I will have a go at it but in the meantime, the cams are FTP'ing alarm snapshots to a NAS box so not mission critical.
My Guruplugs (with the external fan mods) are proving to be extremely reliable. I wish i could say the same for my sheevaplugs as I have replaced all but one of the PSU's and the one that hasn't (and it has been working for well over a year) is out of service pending my ordering a new PSU.
BTW, is there any place to post object files hereabouts?
My 'u-boot-2011.06/include/configs/sheevaplug.h' :-
root@debian:/u-boot-2011.06# more include/configs/sheevaplug.h
/*
* (C) Copyright 2009
* Marvell Semiconductor <www.marvell.com>
* Written-by: Prafulla Wadaskar <prafulla@marvell.com>
*
* See file CREDITS for list of people who contributed to this
* project.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*/
#ifndef _CONFIG_SHEEVAPLUG_H
#define _CONFIG_SHEEVAPLUG_H
//#define DEBUG 1
/*
* Version number information
*/
#define CONFIG_IDENT_STRING "\nMarvell-Sheevaplug - eSATA - SD/MMC"
/*
* High Level Configuration Options (easy to change)
*/
#define CONFIG_FEROCEON_88FR131 1 /* CPU Core subversion */
#define CONFIG_KIRKWOOD 1 /* SOC Family Name */
#define CONFIG_KW88F6281 1 /* SOC Name */
//#define CONFIG_MACH_SHEEVAPLUG /* Machine type */
#define CONFIG_MACH_ESATA_SHEEVAPLUG /* Machine type */
#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
/*
* Commands configuration
*/
#define CONFIG_SYS_NO_FLASH /* Declare no flash (NOR/SPI) */
#include <config_cmd_default.h>
#define CONFIG_CMD_DHCP /* DHCP Support */
#define CONFIG_CMD_ENV
#define CONFIG_CMD_IDE /* IDE harddisk support */
#define CONFIG_CMD_MII /* MII support */
#define CONFIG_CMD_MMC /* MMC support */
#define CONFIG_CMD_NAND /* NAND support */
#define CONFIG_CMD_PING /* ping support */
#define CONFIG_CMD_USB /* USB Support */
/*
* Custom CONFIG_SYS_PROMPT
*/
#define CONFIG_SYS_PROMPT "U-Boot> " /* Command Prompt */
/*
* Custom CONFIG_SYS_NAND_BASE to locate start of nand
*/
#define CONFIG_SYS_NAND_BASE 0xD8000000 /* MV_DEFADR_NANDF */
/*
* Custom CONFIG_SYS_TEXT_BASE to put u-boot into the nand kernel space
*/
#define CONFIG_SYS_TEXT_BASE 0x0600000
/*
* mv-common.h should be defined after CMD configs since it used them
* to enable certain macros
*/
#include "mv-common.h"
/*
* Environment variables configurations
*/
#ifdef CONFIG_CMD_NAND
#define CONFIG_ENV_IS_IN_NAND 1
#define CONFIG_ENV_SECT_SIZE 0x20000 /* 128K */
#else
#define CONFIG_ENV_IS_NOWHERE 1 /* if env in SDRAM */
#endif
/*
* max 4k env size is enough, but in case of nand
* it has to be rounded to sector size
*/
#define CONFIG_ENV_SIZE 0x20000 /* 128k */
#define CONFIG_ENV_ADDR 0x60000
#define CONFIG_ENV_OFFSET 0x60000 /* env starts here */
/*
* Default environment variables
*/
#define CONFIG_BOOTCOMMAND "dhcp; run x_bootcmd_usb; run x_bootcmd_sata; setenv machid 831; " \
"run x_bootcmd_mmc; run x_bootcmd_nand\0"
#define CONFIG_MTDPARTS "orion_nand:512k(uboot),4m@1m(kernel),507m@5m(rootfs) rw"
/*
#define CONFIG_MTDPARTS "orion_nand:512k(uboot)," \
"3m@1m(kernel),1m@4m(psm),13m@5m(rootfs) rw\0"
*/
#define CONFIG_EXTRA_ENV_SETTINGS "x_bootargs_console=console=ttyS0,115200 ncip=6666@$serverip\0" \
"ipaddr=192.168.2.240\0" \
"serverip=192.168.2.248\0" \
"arcNumber=2678\0" \
"machid=a76\0" \
"mainlineLinux=yes\0" \
"ideload=ide reset; ext2load ide 0:1 0x800000 /uImage\0" \
"mmcload=mmcinit; ext2load mmc 0:1 0x800000 /uImage; fatload mmc 0:1 0x800000 /uImage;\0" \
"nandload=nand read 0x800000 0x100000 0x400000\0" \
"x_bootcmd_nand=setenv $(x_bootargs_console) $(x_bootargs_nand); run nandload; bootm 0x800000\0" \
"x_bootcmd_usb=usb start;\0" \
"x_bootcmd_sata=ide reset; setenv bootargs $(x_bootargs_console) $(x_bootargs_sata); run ideload; bootm 0x800000\0" \
"x_bootcmd_mmc=setenv bootargs $(x_bootargs_console) $(x_bootargs_mmc); run mmcload; bootm 0x800000\0" \
"x_bootargs_root=ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs\0" \
"x_bootargs_sata=root=/dev/sda2 rw rootwait\0" \
"x_bootargs_mmc=root=/dev/mmcblk0p2 rootdelay=5\0" \
"x_bootargs_nand=mtdparts="CONFIG_MTDPARTS"\0"
/*
#define CONFIG_EXTRA_ENV_SETTINGS "x_bootargs=console" \
"=ttyS0,115200 mtdparts="CONFIG_MTDPARTS \
"x_bootcmd_kernel=nand read 0x6400000 0x100000 0x300000\0" \
"x_bootcmd_usb=usb start\0" \
"x_bootargs_root=root=/dev/mtdblock3 rw rootfstype=jffs2\0"
*/
/*
* Ethernet Driver configuration
*/
#ifdef CONFIG_CMD_NET
#define CONFIG_MVGBE_PORTS {1, 0} /* enable port 0 only */
#define CONFIG_PHY_BASE_ADR 0
#endif /* CONFIG_CMD_NET */
/*
* SDIO/MMC Card Configuration
*/
#ifdef CONFIG_CMD_MMC
#define CONFIG_MMC
#define CONFIG_MV_SDIO
#endif /* CONFIG_CMD_MMC */
/*
* IDE Support on SATA port0
*/
#ifdef CONFIG_CMD_IDE
#define __io
#define CONFIG_CMD_EXT2
#define CONFIG_MVSATA_IDE
#define CONFIG_IDE_PREINIT
#define CONFIG_MVSATA_IDE_USE_PORT0
/* Needs byte-swapping for ATA data register */
#define CONFIG_IDE_SWAP_IO
/* Data, registers and alternate blocks are at the same offset */
#define CONFIG_SYS_ATA_DATA_OFFSET (0x0100)
#define CONFIG_SYS_ATA_REG_OFFSET (0x0100)
#define CONFIG_SYS_ATA_ALT_OFFSET (0x0100)
/* Each 8-bit ATA register is aligned to a 4-bytes address */
#define CONFIG_SYS_ATA_STRIDE 4
/* Controller supports 48-bits LBA addressing */
#define CONFIG_LBA48
/* CONFIG_CMD_IDE requires some #defines for ATA registers */
//#define CONFIG_SYS_IDE_MAXBUS 1
//#define CONFIG_SYS_IDE_MAXDEVICE 1
/* ATA registers base is at SATA controller base */
//#define CONFIG_SYS_ATA_BASE_ADDR KW_SATA_BASE
/* ATA bus 0 is Kirkwood port 1 on sheevaplug */
#define CONFIG_SYS_ATA_IDE0_OFFSET KW_SATA_PORT1_OFFSET
#endif /* CONFIG_CMD_IDE */
/*
* File system
*/
#define CONFIG_CMD_EXT2
#define CONFIG_CMD_FAT
#define CONFIG_CMD_JFFS2
#define CONFIG_CMD_UBI
#define CONFIG_CMD_UBIFS
#define CONFIG_RBTREE
#define CONFIG_MTD_DEVICE /* needed for mtdparts commands */
#define CONFIG_MTD_PARTITIONS
#define CONFIG_CMD_MTDPARTS
#define CONFIG_LZO
/*
Selected other commands not specific Sheevaplug or default commands
*/
//#define CONFIG_CMD_AMBAPP /* AMBA Plug & Play Bus print utility */
//#define CONFIG_CMD_ASKENV /* ask for env variable */
//#define CONFIG_CMD_AT91_SPIMUX /* AT91 MMC/SPI Mux Support */
//#define CONFIG_CMD_BEDBUG /* Include BedBug Debugger */
//#define CONFIG_CMD_BMP /* BMP support */
//#define CONFIG_CMD_BSP /* Board Specific functions */
#define CONFIG_CMD_CACHE /* icache, dcache */
//#define CONFIG_CMD_CDP /* Cisco Discovery Protocol */
//#define CONFIG_CMD_DATE /* support for RTC, date/time...*/
#define CONFIG_CMD_DIAG /* Diagnostics */
//#define CONFIG_CMD_DISPLAY /* Display support */
//#define CONFIG_CMD_DOC /* Disk-On-Chip Support */
//#define CONFIG_CMD_DTT /* Digital Therm and Thermostat */
//#define CONFIG_CMD_EEPROM /* EEPROM read/write support */
//#define CONFIG_CMD_ELF /* ELF (VxWorks) load/boot cmd */
//#define CONFIG_CMD_FDC /* Floppy Disk Support */
//#define CONFIG_CMD_FDOS /* Floppy DOS support */
//#define CONFIG_CMD_HWFLOW /* RTS/CTS hw flow control */
//#define CONFIG_CMD_I2C /* I2C serial bus support */
//#define CONFIG_CMD_IMMAP /* IMMR dump support */
//#define CONFIG_CMD_IRQ /* irqinfo */
//#define CONFIG_CMD_KGDB /* kgdb */
//#define CONFIG_CMD_LICENSE /* console license display */
//#define CONFIG_CMD_MFSL /* FSL support for Microblaze */
//#define CONFIG_CMD_MG_DISK /* mGine m(g)flash IO node support */
//#define CONFIG_CMD_ONENAND /* OneNAND support */
//#define CONFIG_CMD_PCI /* pciinfo */
//#define CONFIG_CMD_PCMCIA /* PCMCIA support */
#define CONFIG_CMD_PORTIO /* Port I/O */
#define CONFIG_CMD_REGINFO /* Register dump */
#define CONFIG_CMD_REISER /* Reiserfs support */
#define CONFIG_CMD_RARP /* rarpboot support */
//#define CONFIG_CMD_SAVES /* save S record dump */
//#define CONFIG_CMD_SCSI /* SCSI Support */
#define CONFIG_CMD_SDRAM /* SDRAM DIMM SPD info printout */
//#define CONFIG_CMD_SETEXPR /* setexpr support */
//#define CONFIG_CMD_SNTP /* SNTP support */
//#define CONFIG_CMD_SPI /* SPI utility */
//#define CONFIG_CMD_TERMINAL /* built-in Serial Terminal */
//#define CONFIG_CMD_UNIVERSE /* Tundra Universe Support */
//#define CONFIG_CMD_UNZIP /* unzip from memory to memory */
#endif /* _CONFIG_SHEEVAPLUG_H */