Current version did not boot (no message at console). Patches & settings were taken from git://gitorious.org/gumstix-oe/mainline.git / branch overo For more informations see http://gitorious.org/gumstix-oe/mainline/blobs/overo/recipes/u-boot/u-boot-omap3_git.bb
Tests performed: * Boot kernel 2.6.37 from SDCard * Boot kernel 2.6.30 from NAND * variable manipulations setenv printenv savenv * NAND erase Signed-off-by: Andreas Mueller <[email protected]> --- conf/machine/overo.conf | 3 +- recipes/u-boot/u-boot-git/overo/expansion.patch | 148 ++++++++++++++++++++ recipes/u-boot/u-boot-git/overo/overo-gpio10.patch | 13 ++ recipes/u-boot/u-boot_git.bb | 10 ++ 4 files changed, 173 insertions(+), 1 deletions(-) create mode 100644 recipes/u-boot/u-boot-git/overo/expansion.patch create mode 100644 recipes/u-boot/u-boot-git/overo/overo-gpio10.patch diff --git a/conf/machine/overo.conf b/conf/machine/overo.conf index e22cd6e..ba6aebe 100644 --- a/conf/machine/overo.conf +++ b/conf/machine/overo.conf @@ -8,7 +8,8 @@ PREFERRED_PROVIDER_virtual/kernel = "linux-omap-psp" TARGET_ARCH = "arm" MACHINE_FEATURES = "kernel26 screen apm usbgadget usbhost vfat alsa touchscreen" -UBOOT_MACHINE_overo = "omap3_overo_config" +PREFERRED_PROVIDER_virtual/bootloader = "u-boot" +UBOOT_MACHINE = "omap3_overo_config" SERIAL_CONSOLE = "115200 ttyS2" diff --git a/recipes/u-boot/u-boot-git/overo/expansion.patch b/recipes/u-boot/u-boot-git/overo/expansion.patch new file mode 100644 index 0000000..3320a55 --- /dev/null +++ b/recipes/u-boot/u-boot-git/overo/expansion.patch @@ -0,0 +1,148 @@ +From: Steve Sakoman <[email protected]> +Date: Mon, 20 Sep 2010 15:05:14 +0000 (-0700) +Subject: ARMV7: OMAP3: Add expansion board detection for Overo +X-Git-Url: http://www.sakoman.com/cgi-bin/gitweb.cgi?p=u-boot.git;a=commitdiff_plain;h=01ed2c6d5dea9f0a771f37b4c23c31f4566a13b7 + +ARMV7: OMAP3: Add expansion board detection for Overo + +Overo expansion boards contain an i2c eeprom to identify themselves. +This patch adds code to read and parse the eeprom contents. It prints +the expansion board name and revision and modifies environment variables +as appropriate. + +Signed-off-by: Steve Sakoman <[email protected]> +--- + +diff --git a/board/overo/overo.c b/board/overo/overo.c +index 9c92693..293c4e0 100644 +--- a/board/overo/overo.c ++++ b/board/overo/overo.c +@@ -40,6 +40,30 @@ + #include <asm/mach-types.h> + #include "overo.h" + ++#define TWL4030_I2C_BUS 0 ++#define EXPANSION_EEPROM_I2C_BUS 2 ++#define EXPANSION_EEPROM_I2C_ADDRESS 0x51 ++ ++#define GUMSTIX_SUMMIT 0x01000200 ++#define GUMSTIX_TOBI 0x02000200 ++#define GUMSTIX_TOBI_DUO 0x03000200 ++#define GUMSTIX_PALO35 0x04000200 ++#define GUMSTIX_PALO43 0x05000200 ++#define GUMSTIX_CHESTNUT43 0x06000200 ++#define GUMSTIX_PINTO 0x07000200 ++#define GUMSTIX_GALLOP43 0x08000200 ++ ++#define GUMSTIX_NO_EEPROM 0xffffffff ++ ++static struct { ++ unsigned int device_vendor; ++ unsigned char revision; ++ unsigned char content; ++ char fab_revision[8]; ++ char env_var[16]; ++ char env_setting[64]; ++} expansion_config; ++ + #if defined(CONFIG_CMD_NET) + static void setup_net_chip(void); + #endif +@@ -137,6 +161,29 @@ int get_sdio2_config(void) + } + + /* ++ * Routine: get_expansion_id ++ * Description: This function checks for expansion board by checking I2C ++ * bus 2 for the availability of an AT24C01B serial EEPROM. ++ * returns the device_vendor field from the EEPROM ++ */ ++unsigned int get_expansion_id(void) ++{ ++ i2c_set_bus_num(EXPANSION_EEPROM_I2C_BUS); ++ ++ /* return GUMSTIX_NO_EEPROM if eeprom doesn't respond */ ++ if (i2c_probe(EXPANSION_EEPROM_I2C_ADDRESS) == 1) ++ return GUMSTIX_NO_EEPROM; ++ ++ /* read configuration data */ ++ i2c_read(EXPANSION_EEPROM_I2C_ADDRESS, 0, 1, (u8 *)&expansion_config, ++ sizeof(expansion_config)); ++ ++ i2c_set_bus_num(TWL4030_I2C_BUS); ++ ++ return expansion_config.device_vendor; ++} ++ ++/* + * Routine: misc_init_r + * Description: Configure board specific parts + */ +@@ -164,6 +211,55 @@ int misc_init_r(void) + printf("Unable to detect mmc2 connection type\n"); + } + ++ switch (get_expansion_id()) { ++ case GUMSTIX_SUMMIT: ++ printf("Recognized Summit expansion board (rev %d %s)\n", ++ expansion_config.revision, expansion_config.fab_revision); ++ setenv("defaultdisplay", "dvi"); ++ break; ++ case GUMSTIX_TOBI: ++ printf("Recognized Tobi expansion board (rev %d %s)\n", ++ expansion_config.revision, expansion_config.fab_revision); ++ setenv("defaultdisplay", "dvi"); ++ break; ++ case GUMSTIX_TOBI_DUO: ++ printf("Recognized Tobi Duo expansion board (rev %d %s)\n", ++ expansion_config.revision, expansion_config.fab_revision); ++ break; ++ case GUMSTIX_PALO35: ++ printf("Recognized Palo35 expansion board (rev %d %s)\n", ++ expansion_config.revision, expansion_config.fab_revision); ++ setenv("defaultdisplay", "lcd35"); ++ break; ++ case GUMSTIX_PALO43: ++ printf("Recognized Palo43 expansion board (rev %d %s)\n", ++ expansion_config.revision, expansion_config.fab_revision); ++ setenv("defaultdisplay", "lcd43"); ++ break; ++ case GUMSTIX_CHESTNUT43: ++ printf("Recognized Chestnut43 expansion board (rev %d %s)\n", ++ expansion_config.revision, expansion_config.fab_revision); ++ setenv("defaultdisplay", "lcd43"); ++ break; ++ case GUMSTIX_PINTO: ++ printf("Recognized Pinto expansion board (rev %d %s)\n", ++ expansion_config.revision, expansion_config.fab_revision); ++ break; ++ case GUMSTIX_GALLOP43: ++ printf("Recognized Gallop43 expansion board (rev %d %s)\n", ++ expansion_config.revision, expansion_config.fab_revision); ++ setenv("defaultdisplay", "lcd43"); ++ break; ++ case GUMSTIX_NO_EEPROM: ++ printf("No EEPROM on expansion board\n"); ++ break; ++ default: ++ printf("Unrecognized expansion board\n"); ++ } ++ ++ if (expansion_config.content == 1) ++ setenv(expansion_config.env_var, expansion_config.env_setting); ++ + dieid_num_r(); + + return 0; +diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h +index 69f9126..29f0aa8 100644 +--- a/include/configs/omap3_overo.h ++++ b/include/configs/omap3_overo.h +@@ -120,6 +120,7 @@ + #define CONFIG_SYS_I2C_SLAVE 1 + #define CONFIG_SYS_I2C_BUS 0 + #define CONFIG_SYS_I2C_BUS_SELECT 1 ++#define CONFIG_I2C_MULTI_BUS 1 + #define CONFIG_DRIVER_OMAP34XX_I2C 1 + + /* diff --git a/recipes/u-boot/u-boot-git/overo/overo-gpio10.patch b/recipes/u-boot/u-boot-git/overo/overo-gpio10.patch new file mode 100644 index 0000000..202471f --- /dev/null +++ b/recipes/u-boot/u-boot-git/overo/overo-gpio10.patch @@ -0,0 +1,13 @@ +diff --git a/board/overo/overo.h b/board/overo/overo.h +index 68e1243..9fb7a63 100644 +--- a/board/overo/overo.h ++++ b/board/overo/overo.h +@@ -299,7 +299,7 @@ const omap3_sysinfo sysinfo = { + MUX_VAL(CP(SYS_BOOT5), (IEN | PTD | DIS | M4)) /*GPIO_7*/\ + MUX_VAL(CP(SYS_BOOT6), (IDIS | PTD | DIS | M4)) /*GPIO_8*/\ + MUX_VAL(CP(SYS_OFF_MODE), (IEN | PTD | DIS | M0)) /*SYS_OFF_MODE*/\ +- MUX_VAL(CP(SYS_CLKOUT1), (IEN | PTD | DIS | M0)) /*SYS_CLKOUT1*/\ ++ MUX_VAL(CP(SYS_CLKOUT1), (IEN | PTU | EN | M4)) /*GPIO_10*/\ + MUX_VAL(CP(SYS_CLKOUT2), (IEN | PTU | EN | M4)) /*GPIO_186*/\ + MUX_VAL(CP(ETK_CLK_ES2), (IEN | PTU | EN | M2)) /*MMC3_CLK*/\ + MUX_VAL(CP(ETK_CTL_ES2), (IEN | PTU | EN | M2)) /*MMC3_CMD*/\ diff --git a/recipes/u-boot/u-boot_git.bb b/recipes/u-boot/u-boot_git.bb index 2cf5b12..7b82f8d 100644 --- a/recipes/u-boot/u-boot_git.bb +++ b/recipes/u-boot/u-boot_git.bb @@ -363,3 +363,13 @@ SRC_URI_nokia900_append_shr = " \ " UBOOT_MACHINE_nokia900 = "nokia_rx51_config" + + +SRCREV_overo = "1e4e5ef0469050f014aee1204dae8a9ab6053e49" + +SRC_URI_overo = "git://git.denx.de/u-boot.git;branch=master;protocol=git \ + file://expansion.patch \ + file://overo-gpio10.patch \ + " + +PV_overo = "2010.9+${PR}+git${SRCREV}" -- 1.7.2.3 _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
