123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309 |
- diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c
- index ff317ef..8c1639b 100644
- --- a/board/ti/beagle/beagle.c
- +++ b/board/ti/beagle/beagle.c
- @@ -56,6 +56,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
- @@ -211,25 +212,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));
- }
-
- @@ -341,15 +342,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,
- @@ -390,7 +394,7 @@ int misc_init_r(void)
- generate_fake_mac = true;
- }
-
- - 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,
- @@ -473,6 +477,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_AB:
- diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h
- index 65f08a1..5058c3f 100644
- --- a/include/configs/omap3_beagle.h
- +++ b/include/configs/omap3_beagle.h
- @@ -91,6 +91,12 @@
- #define CONFIG_USB_ETHER_MCS7830
- #define CONFIG_USB_ETHER_SMSC95XX
-
- +/* Parabola GNU/Linux-libre extras */
- +#define CONFIG_IDENT_STRING " Parabola GNU/Linux-libre"
- +#define CONFIG_SUPPORT_RAW_INITRD
- +#define CONFIG_CMD_PART
- +#define CONFIG_PARTITION_UUIDS
- +
- /* GPIO banks */
- #define CONFIG_OMAP3_GPIO_5 /* GPIO128..159 is in GPIO bank 5 */
- #define CONFIG_OMAP3_GPIO_6 /* GPIO160..191 is in GPIO bank 6 */
- @@ -125,50 +131,62 @@
- /* devices */
-
- #define CONFIG_EXTRA_ENV_SETTINGS \
- - "loadaddr=0x80200000\0" \
- - "rdaddr=0x81000000\0" \
- + "loadaddr=0x82000000\0" \
- + "rdaddr=0x88080000\0" \
- "fdt_high=0xffffffff\0" \
- - "fdtaddr=0x80f80000\0" \
- - "usbtty=cdc_acm\0" \
- - "bootfile=uImage\0" \
- - "ramdisk=ramdisk.gz\0" \
- - "bootdir=/boot\0" \
- - "bootpart=0:2\0" \
- + "fdtaddr=0x88000000\0" \
- "console=ttyO2,115200n8\0" \
- - "mpurate=auto\0" \
- - "buddy=none\0" \
- - "optargs=\0" \
- - "camera=none\0" \
- - "vram=12M\0" \
- - "dvimode=640x480MR-16@60\0" \
- - "defaultdisplay=dvi\0" \
- + "fdtfile=undefined\0" \
- + "bootpart=0:1\0" \
- + "bootdir=\0" \
- + "fdtdir=/dtbs/linux-libre\0" \
- + "bootfile=vmlinuz-linux-libre\0" \
- + "rdfile=initramfs-linux-libre.img\0" \
- "mmcdev=0\0" \
- - "mmcroot=/dev/mmcblk0p2 rw\0" \
- - "mmcrootfstype=ext3 rootwait\0" \
- - "nandroot=ubi0:rootfs ubi.mtd=4\0" \
- - "nandrootfstype=ubifs\0" \
- - "ramroot=/dev/ram0 rw ramdisk_size=65536 initrd=0x81000000,64M\0" \
- - "ramrootfstype=ext2\0" \
- + "optargs=\0" \
- "mmcargs=setenv bootargs console=${console} " \
- "${optargs} " \
- - "mpurate=${mpurate} " \
- - "buddy=${buddy} "\
- - "camera=${camera} "\
- - "vram=${vram} " \
- - "omapfb.mode=dvi:${dvimode} " \
- - "omapdss.def_disp=${defaultdisplay} " \
- - "root=${mmcroot} " \
- - "rootfstype=${mmcrootfstype}\0" \
- - "nandargs=setenv bootargs console=${console} " \
- - "${optargs} " \
- - "mpurate=${mpurate} " \
- - "buddy=${buddy} "\
- - "camera=${camera} "\
- - "vram=${vram} " \
- - "omapfb.mode=dvi:${dvimode} " \
- - "omapdss.def_disp=${defaultdisplay} " \
- - "root=${nandroot} " \
- - "rootfstype=${nandrootfstype}\0" \
- + "root=${root} " \
- + "${musb} " \
- + "${cmdline}\0" \
- + "loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \
- + "loadrd=load ${devtype} ${bootpart} ${rdaddr} ${bootdir}/${rdfile}\0" \
- + "loadfdt=echo loading ${fdtdir}/${fdtfile} ...; load ${devtype} ${bootpart} ${fdtaddr} ${fdtdir}/${fdtfile}\0" \
- + "mmcboot=usb start;" \
- + "for devtype in mmc usb; do " \
- + "setenv devnum 0;" \
- + "while ${devtype} dev ${devnum}; do " \
- + "echo ${devtype} found on device ${devnum};" \
- + "setenv bootpart ${devnum}:1;" \
- + "if test ${devtype} = mmc; then part uuid mmc ${devnum}:2 uuid; else part uuid ${devtype} ${devnum}:1 uuid; fi;" \
- + "part uuid ${devtype} ${rootpart} uuid;" \
- + "setenv root PARTUUID=${uuid} rw rootwait;" \
- + "echo Checking for: ${bootdir}/uEnv.txt ...;" \
- + "if test -e ${devtype} ${bootpart} ${bootdir}/uEnv.txt; then " \
- + "load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/uEnv.txt;" \
- + "env import -t ${loadaddr} ${filesize};" \
- + "echo Loaded environment from ${bootdir}/uEnv.txt;" \
- + "echo Checking if uenvcmd is set ...;" \
- + "if test -n ${uenvcmd}; then " \
- + "echo Running uenvcmd ...;" \
- + "run uenvcmd;" \
- + "fi;" \
- + "fi;" \
- + "if run loadimage; then " \
- + "run mmcargs;" \
- + "if run loadfdt; then " \
- + "if run loadrd; then " \
- + "bootz ${loadaddr} ${rdaddr}:${filesize} ${fdtaddr};" \
- + "else " \
- + "bootz ${loadaddr} - ${fdtaddr};" \
- + "fi;" \
- + "fi;" \
- + "else " \
- + "echo No kernel found;" \
- + "fi;" \
- + "setexpr devnum ${devnum} + 1;" \
- + "done;" \
- + "done;\0" \
- "findfdt=" \
- "if test $beaglerev = AxBx; then " \
- "setenv fdtfile omap3-beagle.dtb; fi; " \
- @@ -181,81 +199,11 @@
- "if test $beaglerev = xMC; then " \
- "setenv fdtfile omap3-beagle-xm.dtb; fi; " \
- "if test $fdtfile = undefined; then " \
- - "echo WARNING: Could not determine device tree to use; fi; \0" \
- - "validatefdt=" \
- - "if test $beaglerev = xMAB; then " \
- - "if test ! -e mmc ${bootpart} ${bootdir}/${fdtfile}; then " \
- - "setenv fdtfile omap3-beagle-xm.dtb; " \
- - "fi; " \
- - "fi; \0" \
- - "bootenv=uEnv.txt\0" \
- - "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \
- - "importbootenv=echo Importing environment from mmc ...; " \
- - "env import -t -r $loadaddr $filesize\0" \
- - "ramargs=setenv bootargs console=${console} " \
- - "${optargs} " \
- - "mpurate=${mpurate} " \
- - "buddy=${buddy} "\
- - "vram=${vram} " \
- - "omapfb.mode=dvi:${dvimode} " \
- - "omapdss.def_disp=${defaultdisplay} " \
- - "root=${ramroot} " \
- - "rootfstype=${ramrootfstype}\0" \
- - "loadramdisk=load mmc ${bootpart} ${rdaddr} ${bootdir}/${ramdisk}\0" \
- - "loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \
- - "loadbootscript=load mmc ${mmcdev} ${loadaddr} boot.scr\0" \
- - "bootscript=echo Running bootscript from mmc${mmcdev} ...; " \
- - "source ${loadaddr}\0" \
- - "loadfdt=run validatefdt; load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \
- - "mmcboot=echo Booting from mmc ...; " \
- - "run mmcargs; " \
- - "bootm ${loadaddr}\0" \
- - "mmcbootz=echo Booting with DT from mmc${mmcdev} ...; " \
- - "run mmcargs; " \
- - "bootz ${loadaddr} - ${fdtaddr}\0" \
- - "nandboot=echo Booting from nand ...; " \
- - "run nandargs; " \
- - "nand read ${loadaddr} 280000 400000; " \
- - "bootm ${loadaddr}\0" \
- - "ramboot=echo Booting from ramdisk ...; " \
- - "run ramargs; " \
- - "bootm ${loadaddr}\0" \
- - "userbutton=if gpio input 173; then run userbutton_xm; " \
- - "else run userbutton_nonxm; fi;\0" \
- - "userbutton_xm=gpio input 4;\0" \
- - "userbutton_nonxm=gpio input 7;\0"
- -/* "run userbutton" will return 1 (false) if pressed and 0 (true) if not */
- + "echo WARNING: Could not determine device tree to use; fi; \0"
- +
- #define CONFIG_BOOTCOMMAND \
- "run findfdt; " \
- - "mmc dev ${mmcdev}; if mmc rescan; then " \
- - "if run userbutton; then " \
- - "setenv bootenv uEnv.txt;" \
- - "else " \
- - "setenv bootenv user.txt;" \
- - "fi;" \
- - "echo SD/MMC found on device ${mmcdev};" \
- - "if run loadbootenv; then " \
- - "echo Loaded environment from ${bootenv};" \
- - "run importbootenv;" \
- - "fi;" \
- - "if test -n $uenvcmd; then " \
- - "echo Running uenvcmd ...;" \
- - "run uenvcmd;" \
- - "fi;" \
- - "if run loadbootscript; then " \
- - "run bootscript; " \
- - "else " \
- - "if run loadimage; then " \
- - "run mmcboot;" \
- - "fi;" \
- - "fi; " \
- - "fi;" \
- - "run nandboot;" \
- - "setenv bootfile zImage;" \
- - "if run loadimage; then " \
- - "run loadfdt;" \
- - "run mmcbootz; " \
- - "fi; " \
- + "run mmcboot"
-
- /*
- * OMAP3 has 12 GP timers, they can be driven by the system clock
- --
- 2.7.0
|