From 70ff943fad6491fb81b12a97761d8be7dc5e6d02 Mon Sep 17 00:00:00 2001 From: Robert Nelson Date: Fri, 15 Mar 2013 10:14:10 -0500 Subject: [PATCH] omap3_beagle: uEnv.txt, bootz, n fixes Defaults: #define CONFIG_BOOTDELAY 1 #define CONFIG_CMD_FAT #define CONFIG_CMD_EXT2 #define CONFIG_CMD_EXT4 #define CONFIG_CMD_FS_GENERIC /* bootz: zImage/initrd.img support */ #define CONFIG_CMD_BOOTZ #define CONFIG_SUPPORT_RAW_INITRD fatload -> load bootm -> bootz "mmcargs=setenv bootargs console=${console} " \ "${optargs} " \ "root=${mmcroot} " \ "rootfstype=${mmcrootfstype} " \ "video=${video}\0" \ "loadbootenv=load mmc ${mmcdev}:${mmcpart} ${loadaddr} uEnv.txt\0" \ "importbootenv=echo Importing environment from mmc (uEnv.txt)...; " \ "env import -t ${loadaddr} ${filesize}\0" \ #define CONFIG_BOOTCOMMAND \ "mmc dev ${mmcdev};" \ "if mmc rescan; then " \ "echo SD/MMC found on device ${mmcdev};" \ "if run loadbootenv; then " \ "run importbootenv;" \ "fi;" \ "if test -n $uenvcmd; then " \ "echo Running uenvcmd ...;" \ "run uenvcmd;" \ "fi;" \ "if run loadzimage; then " \ "run loadfdt;" \ "run mmcboot;" \ "fi;" \ "fi;" #endif Signed-off-by: Robert Nelson --- board/ti/beagle/beagle.c | 38 ++++++++++++++++++++++++---- include/configs/omap3_beagle.h | 54 +++++++++++++++++++++++++++------------- 2 files changed, 70 insertions(+), 22 deletions(-) diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c index 3d9b6dd..910463b 100644 --- a/board/ti/beagle/beagle.c +++ b/board/ti/beagle/beagle.c @@ -70,6 +70,7 @@ #define BBTOYS_WIFI 0x01000B00 #define BBTOYS_VGA 0x02000B00 #define BBTOYS_LCD 0x03000B00 +#define BBTOYS_ULCD 0x04000B00 #define BCT_BRETTL3 0x01000F00 #define BCT_BRETTL4 0x02000F00 #define LSR_COM6L_ADPT 0x01001300 @@ -214,25 +215,25 @@ void get_board_mem_timings(struct board_sdrc_timings *timings) * bus 1 for the availability of an AT24C01B serial EEPROM. * returns the device_vendor field from the EEPROM */ -static unsigned int get_expansion_id(void) +static unsigned int get_expansion_id(int eeprom_address) { i2c_set_bus_num(EXPANSION_EEPROM_I2C_BUS); /* return BEAGLE_NO_EEPROM if eeprom doesn't respond */ - if (i2c_probe(EXPANSION_EEPROM_I2C_ADDRESS) == 1) { + if (i2c_probe(eeprom_address) == 1) { i2c_set_bus_num(TWL4030_I2C_BUS); return BEAGLE_NO_EEPROM; } /* read configuration data */ - i2c_read(EXPANSION_EEPROM_I2C_ADDRESS, 0, 1, (u8 *)&expansion_config, + i2c_read(eeprom_address, 0, 1, (u8 *)&expansion_config, sizeof(expansion_config)); /* retry reading configuration data with 16bit addressing */ if ((expansion_config.device_vendor == 0xFFFFFF00) || (expansion_config.device_vendor == 0xFFFFFFFF)) { printf("EEPROM is blank or 8bit addressing failed: retrying with 16bit:\n"); - i2c_read(EXPANSION_EEPROM_I2C_ADDRESS, 0, 2, (u8 *)&expansion_config, + i2c_read(eeprom_address, 0, 2, (u8 *)&expansion_config, sizeof(expansion_config)); } @@ -342,15 +343,18 @@ int misc_init_r(void) case REVISION_AXBX: printf("Beagle Rev Ax/Bx\n"); setenv("beaglerev", "AxBx"); + setenv("musb", "musb_hdrc.fifo_mode=5"); break; case REVISION_CX: printf("Beagle Rev C1/C2/C3\n"); setenv("beaglerev", "Cx"); + setenv("musb", "musb_hdrc.fifo_mode=5"); MUX_BEAGLE_C(); break; case REVISION_C4: printf("Beagle Rev C4\n"); setenv("beaglerev", "C4"); + setenv("musb", "musb_hdrc.fifo_mode=5"); MUX_BEAGLE_C(); /* Set VAUX2 to 1.8V for EHCI PHY */ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, @@ -398,7 +402,7 @@ int misc_init_r(void) TWL4030_PM_RECEIVER_DEV_GRP_P1); } - switch (get_expansion_id()) { + switch (get_expansion_id(EXPANSION_EEPROM_I2C_ADDRESS)) { case TINCANTOOLS_ZIPPY: printf("Recognized Tincantools Zippy board (rev %d %s)\n", expansion_config.revision, @@ -481,6 +485,30 @@ int misc_init_r(void) if (expansion_config.content == 1) setenv(expansion_config.env_var, expansion_config.env_setting); + /* Scan 0x51 as well for loop-thru boards */ + switch (get_expansion_id(EXPANSION_EEPROM_I2C_ADDRESS + 1)) { + case BBTOYS_ULCD: + printf("Recognized BeagleBoardToys uLCD-lite board\n"); + setenv("buddy2", "bbtoys-ulcd"); + setenv("defaultdisplay", "dvi"); + setenv("dvimode", "800x480MR-16@60"); + setenv("lcd1", "i2c mw 40 00 00; i2c mw 40 04 80; i2c mw 40 0d 05"); + setenv("lcdcmd", "i2c dev 1 ; run lcd1; i2c dev 0"); + setenv("kmsmode", "video=DVI-D-1:800x480"); + break; + case BEAGLE_NO_EEPROM: + printf("No EEPROM on expansion board\n"); + setenv("buddy2", "none"); + break; + default: + printf("Unrecognized expansion board: %x\n", + expansion_config.device_vendor); + setenv("buddy2", "unknown"); + } + + if (expansion_config.content == 1) + setenv(expansion_config.env_var, expansion_config.env_setting); + twl4030_power_init(); switch (get_board_revision()) { case REVISION_XM_A: diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h index 48ce4c0..8ecfc14 100644 --- a/include/configs/omap3_beagle.h +++ b/include/configs/omap3_beagle.h @@ -150,6 +150,13 @@ #define CONFIG_CMD_CACHE #define CONFIG_CMD_EXT2 /* EXT2 Support */ #define CONFIG_CMD_FAT /* FAT support */ +#define CONFIG_CMD_EXT4 +/* #define CONFIG_CMD_FS_GENERIC */ + +/* bootz: zImage/initrd.img support */ +#define CONFIG_CMD_BOOTZ +#define CONFIG_SUPPORT_RAW_INITRD + #define CONFIG_CMD_JFFS2 /* JFFS2 Support */ #define CONFIG_CMD_MTDPARTS /* Enable MTD parts commands */ #define CONFIG_MTD_DEVICE /* needed for mtdparts commands */ @@ -212,7 +219,7 @@ /* partition */ /* Environment information */ -#define CONFIG_BOOTDELAY 3 +#define CONFIG_BOOTDELAY 1 #define CONFIG_EXTRA_ENV_SETTINGS \ "loadaddr=0x80200000\0" \ @@ -222,14 +229,18 @@ "console=ttyO2,115200n8\0" \ "mpurate=auto\0" \ "buddy=none\0" \ - "optargs=\0" \ + "buddy2=none\0" \ "camera=none\0" \ + "wl12xx_clk=none\0" \ + "optargs=\0" \ + "musb=\0" \ "vram=12M\0" \ - "dvimode=640x480MR-16@60\0" \ + "dvimode=1280x720MR-16@60\0" \ "defaultdisplay=dvi\0" \ "mmcdev=0\0" \ - "mmcroot=/dev/mmcblk0p2 rw\0" \ - "mmcrootfstype=ext3 rootwait\0" \ + "mmcpart=1\0" \ + "mmcroot=/dev/mmcblk0p2 ro\0" \ + "mmcrootfstype=ext4 rootwait fixrtc\0" \ "nandroot=ubi0:rootfs ubi.mtd=4\0" \ "nandrootfstype=ubifs\0" \ "ramroot=/dev/ram0 rw ramdisk_size=65536 initrd=0x81000000,64M\0" \ @@ -238,48 +249,54 @@ "${optargs} " \ "mpurate=${mpurate} " \ "buddy=${buddy} "\ + "buddy2=${buddy2} "\ "camera=${camera} "\ + "wl12xx_clk=${wl12xx_clk} "\ "vram=${vram} " \ - "omapfb.mode=dvi:${dvimode} " \ + "omapfb.mode=${defaultdisplay}:${dvimode} " \ "omapdss.def_disp=${defaultdisplay} " \ "root=${mmcroot} " \ - "rootfstype=${mmcrootfstype}\0" \ + "rootfstype=${mmcrootfstype} " \ + "${musb}\0" \ "nandargs=setenv bootargs console=${console} " \ "${optargs} " \ "mpurate=${mpurate} " \ "buddy=${buddy} "\ + "buddy2=${buddy2} "\ "camera=${camera} "\ + "wl12xx_clk=${wl12xx_clk} "\ "vram=${vram} " \ - "omapfb.mode=dvi:${dvimode} " \ + "omapfb.mode=${defaultdisplay}:${dvimode} " \ "omapdss.def_disp=${defaultdisplay} " \ "root=${nandroot} " \ "rootfstype=${nandrootfstype}\0" \ "bootenv=uEnv.txt\0" \ - "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \ + "loadbootenv=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootenv}\0" \ "importbootenv=echo Importing environment from mmc ...; " \ "env import -t $loadaddr $filesize\0" \ "ramargs=setenv bootargs console=${console} " \ "${optargs} " \ "mpurate=${mpurate} " \ "buddy=${buddy} "\ + "buddy2=${buddy2} "\ "vram=${vram} " \ - "omapfb.mode=dvi:${dvimode} " \ + "omapfb.mode=${defaultdisplay}:${dvimode} " \ "omapdss.def_disp=${defaultdisplay} " \ "root=${ramroot} " \ "rootfstype=${ramrootfstype}\0" \ - "loadramdisk=fatload mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \ - "loaduimagefat=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \ - "loaduimage=ext2load mmc ${mmcdev}:2 ${loadaddr} /boot/uImage\0" \ + "loadramdisk=fatload mmc ${mmcdev}:${mmcpart} ${rdaddr} ramdisk.gz\0" \ + "loaduimagefat=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} zImage\0" \ + "loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} zImage\0" \ "mmcboot=echo Booting from mmc ...; " \ "run mmcargs; " \ - "bootm ${loadaddr}\0" \ + "bootz ${loadaddr}\0" \ "nandboot=echo Booting from nand ...; " \ "run nandargs; " \ "nand read ${loadaddr} 280000 400000; " \ - "bootm ${loadaddr}\0" \ + "bootz ${loadaddr}\0" \ "ramboot=echo Booting from ramdisk ...; " \ "run ramargs; " \ - "bootm ${loadaddr}\0" \ + "bootz ${loadaddr}\0" \ "userbutton=if gpio input 173; then run userbutton_xm; " \ "else run userbutton_nonxm; fi;\0" \ "userbutton_xm=gpio input 4;\0" \ @@ -294,9 +311,12 @@ "fi;" \ "echo SD/MMC found on device ${mmcdev};" \ "if run loadbootenv; then " \ - "echo Loaded environment from ${bootenv};" \ "run importbootenv;" \ "fi;" \ + "if test -n $lcdcmd; then " \ + "echo Running lcdcmd ...;" \ + "run lcdcmd;" \ + "fi;" \ "if test -n $uenvcmd; then " \ "echo Running uenvcmd ...;" \ "run uenvcmd;" \ -- 1.7.10.4