From 4884692d7f6b9cc76ab3535fc0790a148b1137f6 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Thu, 10 Mar 2011 15:19:04 +0100 Subject: [PATCH] u-boot git: sync beagleboard with OE .dev Signed-off-by: Koen Kooi --- .../0001-Enable-I2C-bus-switching.patch | 49 -- ...le-Pin-Mux-initialization-glitch-fix.patch | 46 + ...nge-default-console-serial-port-from.patch | 30 - ...b.debug-y-from-Beagle-and-Overo-env.patch} | 21 +- ...d-board-revision-detection-for-Overo.patch | 187 ---- ...gle-revision-detection-to-recognize-.patch | 165 ---- ...ble-the-use-of-a-plain-text-file-nam.patch | 89 ++ ...3-BeagleBoard-Enable-pullups-on-i2c2.patch | 69 ++ ...to-1.8V-for-EHCI-PHY-on-Beagle-Rev-C.patch | 143 --- ...BeagleBoard-add-xM-rev-B-to-ID-table.patch | 111 +++ ...for-rev-3.1.2-check-and-display-max-.patch | 105 --- ...gleBoard-add-more-expansionboard-IDs.patch | 95 ++ ...purate-boot-arg-for-overo-and-beagle.patch | 70 -- ...0007-OMAP3-Add-DSS-driver-for-OMAP3.patch} | 396 +++++---- ...ansion-board-type-version-using-eepr.patch | 129 --- ...eagleBoard-Added-userbutton-command.patch} | 31 +- ...le-config-eeprom-to-set-u-boot-env-v.patch | 81 -- ...le-input-on-MMC1_CLK-and-MMC3_CLK-pi.patch | 34 - ...pass-expansionboard-name-in-bootargs.patch | 57 ++ ...> 0010-Enable-DSS-driver-for-Beagle.patch} | 81 +- ...o-set-CONFIG_SYS_I2C_SPEED-to-400Khz.patch | 25 - .../u-boot/u-boot/0011-Add-led-command.patch | 213 +++++ ...xcessively-long-delays-in-i2c-driver.patch | 52 -- ...> 0012-BeagleBoard-Added-LED-driver.patch} | 36 +- ...w-expansion-boards-with-any-vendor-I.patch | 47 - ...eBoard-updated-default-configuration.patch | 184 ++++ ...ge-address-of-expansion-eeprom-to-0x.patch | 25 - ...me-match-finding-avoiding-extraneous.patch | 42 + ...n-t-attempt-to-set-up-second-RAM-ban.patch | 49 -- ...015-OMAP3-mem.c-enhance-the-RAM-test.patch | 52 -- ...tch-default-console-from-ttyS2-to-tt.patch | 29 + ...ard-Load-kernel-via-MMC-ext2-not-fat.patch | 26 + ...ail-gracefully-if-no-nand-is-present.patch | 27 - ...tions-to-support-sysinfo-cpu-and-cpu.patch | 68 -- ...o-update-cpu-detection-for-36XX-37XX.patch | 196 ----- ...cks-update-clock-setup-for-36XX-37XX.patch | 826 ------------------ ...AP3-beagle-add-support-for-Beagle-xM.patch | 137 --- ...lement-expansionboard-detection-base.patch | 157 ---- ...lay-message-about-I2C-errors-being-e.patch | 26 - ...agleboard-fix-TCT-expansionboard-IDs.patch | 27 - ...-don-t-set-mpurate-on-xM-in-bootargs.patch | 24 - ...ean-up-L2-cache-enable-disable-funct.patch | 112 --- ...MAP3-convert-setup_auxcr-to-pure-asm.patch | 99 --- ...ex-A8-errata-workarounds-only-on-aff.patch | 46 - ...-more-expansionboards-based-on-http-.patch | 61 -- ...-mpurate-to-600-for-revB-and-revC1-3.patch | 29 - ...rettify-expansionboard-message-a-bit.patch | 25 - ...-pinmux-for-Tincantools-Trainer-expa.patch | 53 -- ...P3-Beagle-set-mpurate-to-1000-for-xM.patch | 24 - ...rease-bootdelay-to-3-use-VGA-for-def.patch | 34 - ...pass-expansionboard-name-in-bootargs.patch | 87 -- ...ed-configurations-for-xM-Rev-A-board.patch | 29 - ...env-beaglerev-for-AxBx-Cx-xMA-for-be.patch | 42 - ...port-for-second-and-third-mmc-channe.patch | 126 --- ...ble-support-for-second-and-third-mmc.patch | 55 -- .../u-boot/u-boot/0043-Add-led-command.patch | 256 ------ .../0044-BeagleBoard-Enabled-LEDs.patch | 47 - ...Board-Add-CONFIG_SYS_MEMTEST_SCRATCH.patch | 35 - ...d-Adjust-boot-command-on-USER-button.patch | 115 --- ...8-BeagleBoard-Enable-pullups-on-i2c2.patch | 46 - ...Board-Add-camera-to-default-bootargs.patch | 49 -- ...-BeagleBoard-move-ramdisk-parameters.patch | 38 - ...-for-beagleboardtoys-expansionboards.patch | 74 -- recipes-bsp/u-boot/u-boot_git.bb | 75 +- 64 files changed, 1281 insertions(+), 4533 deletions(-) delete mode 100644 recipes-bsp/u-boot/u-boot/0001-Enable-I2C-bus-switching.patch create mode 100644 recipes-bsp/u-boot/u-boot/0001-OMAP3-Beagle-Pin-Mux-initialization-glitch-fix.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0001-omap3evm-Change-default-console-serial-port-from.patch rename recipes-bsp/u-boot/u-boot/{0021-OMAP3-Beagle-Overo-remove-omapfb.debug-y-from-defaul.patch => 0002-OMAP-Remove-omapfb.debug-y-from-Beagle-and-Overo-env.patch} (74%) delete mode 100644 recipes-bsp/u-boot/u-boot/0002-OMAP3-add-board-revision-detection-for-Overo.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0003-OMAP3-update-Beagle-revision-detection-to-recognize-.patch create mode 100644 recipes-bsp/u-boot/u-boot/0003-omap3_beagle-enable-the-use-of-a-plain-text-file-nam.patch create mode 100644 recipes-bsp/u-boot/u-boot/0004-OMAP3-BeagleBoard-Enable-pullups-on-i2c2.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0004-OMAP3-Set-VAUX2-to-1.8V-for-EHCI-PHY-on-Beagle-Rev-C.patch create mode 100644 recipes-bsp/u-boot/u-boot/0005-ARMV7-OMAP3-BeagleBoard-add-xM-rev-B-to-ID-table.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0005-OMAP3-add-entry-for-rev-3.1.2-check-and-display-max-.patch create mode 100644 recipes-bsp/u-boot/u-boot/0006-OMAP3-BeagleBoard-add-more-expansionboard-IDs.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0006-OMAP3-add-mpurate-boot-arg-for-overo-and-beagle.patch rename recipes-bsp/u-boot/u-boot/{0025-Add-DSS-driver-for-OMAP3.patch => 0007-OMAP3-Add-DSS-driver-for-OMAP3.patch} (76%) delete mode 100644 recipes-bsp/u-boot/u-boot/0007-OMAP3-detect-expansion-board-type-version-using-eepr.patch rename recipes-bsp/u-boot/u-boot/{0045-BeagleBoard-Added-userbutton-command.patch => 0008-BeagleBoard-Added-userbutton-command.patch} (77%) delete mode 100644 recipes-bsp/u-boot/u-boot/0008-OMAP3-Overo-enable-config-eeprom-to-set-u-boot-env-v.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0009-OMAP3-Overo-enable-input-on-MMC1_CLK-and-MMC3_CLK-pi.patch create mode 100644 recipes-bsp/u-boot/u-boot/0009-OMAP3-beagle-pass-expansionboard-name-in-bootargs.patch rename recipes-bsp/u-boot/u-boot/{0026-Enable-DSS-driver-for-Beagle.patch => 0010-Enable-DSS-driver-for-Beagle.patch} (52%) delete mode 100644 recipes-bsp/u-boot/u-boot/0010-OMAP3-Overo-set-CONFIG_SYS_I2C_SPEED-to-400Khz.patch create mode 100644 recipes-bsp/u-boot/u-boot/0011-Add-led-command.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0011-OMAP3-trim-excessively-long-delays-in-i2c-driver.patch rename recipes-bsp/u-boot/u-boot/{0042-BeagleBoard-Added-LED-driver.patch => 0012-BeagleBoard-Added-LED-driver.patch} (83%) delete mode 100644 recipes-bsp/u-boot/u-boot/0012-OMAP3-Overo-allow-expansion-boards-with-any-vendor-I.patch create mode 100644 recipes-bsp/u-boot/u-boot/0013-OMAP3-BeagleBoard-updated-default-configuration.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0013-OMAP3-Overo-change-address-of-expansion-eeprom-to-0x.patch create mode 100644 recipes-bsp/u-boot/u-boot/0014-Corrected-LED-name-match-finding-avoiding-extraneous.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0014-OMAP3-board.c-don-t-attempt-to-set-up-second-RAM-ban.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0015-OMAP3-mem.c-enhance-the-RAM-test.patch create mode 100644 recipes-bsp/u-boot/u-boot/0015-omap3_beagle-Switch-default-console-from-ttyS2-to-tt.patch create mode 100644 recipes-bsp/u-boot/u-boot/0016-BeagleBoard-Load-kernel-via-MMC-ext2-not-fat.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0016-env_nand.c-fail-gracefully-if-no-nand-is-present.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0017-OMAP3-add-definitions-to-support-sysinfo-cpu-and-cpu.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0018-OMAP3-sys_info-update-cpu-detection-for-36XX-37XX.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0019-OMAP3-clocks-update-clock-setup-for-36XX-37XX.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0020-OMAP3-beagle-add-support-for-Beagle-xM.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0022-OMAP3-beagle-implement-expansionboard-detection-base.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0023-beagleboard-display-message-about-I2C-errors-being-e.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0024-beagleboard-fix-TCT-expansionboard-IDs.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0027-beagleboardXM-don-t-set-mpurate-on-xM-in-bootargs.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0028-OMAP3-fix-and-clean-up-L2-cache-enable-disable-funct.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0029-OMAP3-convert-setup_auxcr-to-pure-asm.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0030-OMAP3-apply-Cortex-A8-errata-workarounds-only-on-aff.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0031-OMAP3-beagle-add-more-expansionboards-based-on-http-.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0032-OMAP3-beagle-set-mpurate-to-600-for-revB-and-revC1-3.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0033-OMAP3-beagle-prettify-expansionboard-message-a-bit.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0034-OMAP3-beagle-add-pinmux-for-Tincantools-Trainer-expa.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0035-OMAP3-Beagle-set-mpurate-to-1000-for-xM.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0036-OMAP3-Beagle-decrease-bootdelay-to-3-use-VGA-for-def.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0037-OMAP3-beagle-pass-expansionboard-name-in-bootargs.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0038-Added-configurations-for-xM-Rev-A-board.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0039-OMAP3-beagle-setenv-beaglerev-for-AxBx-Cx-xMA-for-be.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0040-OMAP-mmc-add-support-for-second-and-third-mmc-channe.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0041-OMAP3-Beagle-enable-support-for-second-and-third-mmc.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0043-Add-led-command.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0044-BeagleBoard-Enabled-LEDs.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0046-BeagleBoard-Add-CONFIG_SYS_MEMTEST_SCRATCH.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0047-BeagleBoard-Adjust-boot-command-on-USER-button.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0048-BeagleBoard-Enable-pullups-on-i2c2.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0049-BeagleBoard-Add-camera-to-default-bootargs.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0050-BeagleBoard-move-ramdisk-parameters.patch delete mode 100644 recipes-bsp/u-boot/u-boot/0051-add-support-for-beagleboardtoys-expansionboards.patch diff --git a/recipes-bsp/u-boot/u-boot/0001-Enable-I2C-bus-switching.patch b/recipes-bsp/u-boot/u-boot/0001-Enable-I2C-bus-switching.patch deleted file mode 100644 index 8a32862..0000000 --- a/recipes-bsp/u-boot/u-boot/0001-Enable-I2C-bus-switching.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 5b5eb18bfb80fa9595eb258a911a94f2807e7497 Mon Sep 17 00:00:00 2001 -From: Syed Mohammed Khasim -Date: Mon, 18 Jan 2010 18:11:14 +0530 -Subject: [PATCH 01/51] Enable I2C bus switching - -OMAP3 supports Multiple I2C channels, this patch allows -us to use i2c dev command to switch between busses. - -Signed-off-by: Syed Mohammed Khasim -Acked-by: Heiko Schocher -(cherry picked from commit 9bb1c3501c8f098dac6e224c99e409ebf92b0ab9) ---- - drivers/i2c/omap24xx_i2c.c | 5 +++++ - include/configs/omap3_beagle.h | 6 ++++++ - 2 files changed, 11 insertions(+), 0 deletions(-) - -diff --git a/drivers/i2c/omap24xx_i2c.c b/drivers/i2c/omap24xx_i2c.c -index ff18991..e8c8184 100644 ---- a/drivers/i2c/omap24xx_i2c.c -+++ b/drivers/i2c/omap24xx_i2c.c -@@ -435,3 +435,8 @@ int i2c_set_bus_num(unsigned int bus) - - return 0; - } -+ -+int i2c_get_bus_num(void) -+{ -+ return (int) current_bus; -+} -diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h -index 08d79ac..d522c77 100644 ---- a/include/configs/omap3_beagle.h -+++ b/include/configs/omap3_beagle.h -@@ -100,6 +100,12 @@ - /* DDR - I use Micron DDR */ - #define CONFIG_OMAP3_MICRON_DDR 1 - -+/* Enable Multi Bus support for I2C */ -+#define CONFIG_I2C_MULTI_BUS 1 -+ -+/* Probe all devices */ -+#define CONFIG_SYS_I2C_NOPROBES {0x0, 0x0} -+ - /* USB */ - #define CONFIG_MUSB_UDC 1 - #define CONFIG_USB_OMAP3 1 --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0001-OMAP3-Beagle-Pin-Mux-initialization-glitch-fix.patch b/recipes-bsp/u-boot/u-boot/0001-OMAP3-Beagle-Pin-Mux-initialization-glitch-fix.patch new file mode 100644 index 0000000..7e88d70 --- /dev/null +++ b/recipes-bsp/u-boot/u-boot/0001-OMAP3-Beagle-Pin-Mux-initialization-glitch-fix.patch @@ -0,0 +1,46 @@ +From 7b250f8be3b8c496796dcdc954c9e5959cefea2c Mon Sep 17 00:00:00 2001 +From: Bob Feretich +Date: Thu, 24 Feb 2011 13:16:44 +0000 +Subject: [PATCH 01/16] OMAP3 Beagle Pin Mux initialization glitch fix + +The below patch reverses the order of two segments in the board file. +Output pins need to have their values initialized, before they are +exposed to the logic outside the chip. + +Signed-off-by: Bob Feretich +Cc: Wolfgang Denk +--- + board/ti/beagle/beagle.c | 12 ++++++------ + 1 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c +index c066d6e..929461c 100644 +--- a/board/ti/beagle/beagle.c ++++ b/board/ti/beagle/beagle.c +@@ -239,17 +239,17 @@ int misc_init_r(void) + twl4030_power_init(); + twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); + +- /* Configure GPIOs to output */ +- writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe); +- writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | +- GPIO15 | GPIO14 | GPIO13 | GPIO12), &gpio5_base->oe); +- +- /* Set GPIOs */ ++ /* Set GPIO states before they are made outputs */ + writel(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1, + &gpio6_base->setdataout); + writel(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | + GPIO15 | GPIO14 | GPIO13 | GPIO12, &gpio5_base->setdataout); + ++ /* Configure GPIOs to output */ ++ writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe); ++ writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | ++ GPIO15 | GPIO14 | GPIO13 | GPIO12), &gpio5_base->oe); ++ + dieid_num_r(); + + return 0; +-- +1.6.6.1 + diff --git a/recipes-bsp/u-boot/u-boot/0001-omap3evm-Change-default-console-serial-port-from.patch b/recipes-bsp/u-boot/u-boot/0001-omap3evm-Change-default-console-serial-port-from.patch deleted file mode 100644 index d171b78..0000000 --- a/recipes-bsp/u-boot/u-boot/0001-omap3evm-Change-default-console-serial-port-from.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 6b23ecf49d1c2ee5227ff57101919af46ecd7396 Mon Sep 17 00:00:00 2001 -From: Roger Monk -Date: Fri, 9 Jul 2010 08:37:04 +0100 -Subject: [PATCH] omap3evm: Change default 'console' serial port from ttyS2 to ttyS0 - - * Update default kernel console env variable ($(console)) - to use ttyS0 (instead of ttyS2) to match the serial port - used by x-loader and u-boot - -Signed-off-by: Roger Monk ---- - include/configs/omap3_evm.h | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/include/configs/omap3_evm.h b/include/configs/omap3_evm.h -index 73a5c98..d01d733 100644 ---- a/include/configs/omap3_evm.h -+++ b/include/configs/omap3_evm.h -@@ -203,7 +203,7 @@ - #define CONFIG_EXTRA_ENV_SETTINGS \ - "loadaddr=0x82000000\0" \ - "usbtty=cdc_acm\0" \ -- "console=ttyS2,115200n8\0" \ -+ "console=ttyS0,115200n8\0" \ - "mmcargs=setenv bootargs console=${console} " \ - "root=/dev/mmcblk0p2 rw " \ - "rootfstype=ext3 rootwait\0" \ --- -1.6.0.4 - diff --git a/recipes-bsp/u-boot/u-boot/0021-OMAP3-Beagle-Overo-remove-omapfb.debug-y-from-defaul.patch b/recipes-bsp/u-boot/u-boot/0002-OMAP-Remove-omapfb.debug-y-from-Beagle-and-Overo-env.patch similarity index 74% rename from recipes-bsp/u-boot/u-boot/0021-OMAP3-Beagle-Overo-remove-omapfb.debug-y-from-defaul.patch rename to recipes-bsp/u-boot/u-boot/0002-OMAP-Remove-omapfb.debug-y-from-Beagle-and-Overo-env.patch index 8278993..707cc79 100644 --- a/recipes-bsp/u-boot/u-boot/0021-OMAP3-Beagle-Overo-remove-omapfb.debug-y-from-defaul.patch +++ b/recipes-bsp/u-boot/u-boot/0002-OMAP-Remove-omapfb.debug-y-from-Beagle-and-Overo-env.patch @@ -1,18 +1,21 @@ -From 0fd26c84173c9a589c6cd9c0db6d2200e769134b Mon Sep 17 00:00:00 2001 +From 0588da9057fddb5f6a6a04aedd7e0a79eb39e9e5 Mon Sep 17 00:00:00 2001 From: Steve Sakoman -Date: Thu, 25 Mar 2010 06:54:47 -0700 -Subject: [PATCH 21/51] OMAP3: Beagle, Overo: remove omapfb.debug=y from default env +Date: Thu, 30 Dec 2010 07:19:44 +0000 +Subject: [PATCH 02/16] OMAP: Remove omapfb.debug=y from Beagle and Overo env settings +The kernel DSS2 code is mature now, and keeping this setting hurts performance + +Signed-off-by: Steve Sakoman --- include/configs/omap3_beagle.h | 2 -- include/configs/omap3_overo.h | 2 -- 2 files changed, 0 insertions(+), 4 deletions(-) diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h -index 1370a29..8bedf7d 100644 +index 5cfa4cb..8b580ef 100644 --- a/include/configs/omap3_beagle.h +++ b/include/configs/omap3_beagle.h -@@ -200,7 +200,6 @@ +@@ -203,7 +203,6 @@ "mpurate=${mpurate} " \ "vram=${vram} " \ "omapfb.mode=dvi:${dvimode} " \ @@ -20,7 +23,7 @@ index 1370a29..8bedf7d 100644 "omapdss.def_disp=${defaultdisplay} " \ "root=${mmcroot} " \ "rootfstype=${mmcrootfstype}\0" \ -@@ -208,7 +207,6 @@ +@@ -211,7 +210,6 @@ "mpurate=${mpurate} " \ "vram=${vram} " \ "omapfb.mode=dvi:${dvimode} " \ @@ -29,10 +32,10 @@ index 1370a29..8bedf7d 100644 "root=${nandroot} " \ "rootfstype=${nandrootfstype}\0" \ diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h -index 27b5476..118e886 100644 +index 1b3d439..06a28f6 100644 --- a/include/configs/omap3_overo.h +++ b/include/configs/omap3_overo.h -@@ -163,7 +163,6 @@ +@@ -169,7 +169,6 @@ "mpurate=${mpurate} " \ "vram=${vram} " \ "omapfb.mode=dvi:${dvimode} " \ @@ -40,7 +43,7 @@ index 27b5476..118e886 100644 "omapdss.def_disp=${defaultdisplay} " \ "root=${mmcroot} " \ "rootfstype=${mmcrootfstype}\0" \ -@@ -171,7 +170,6 @@ +@@ -177,7 +176,6 @@ "mpurate=${mpurate} " \ "vram=${vram} " \ "omapfb.mode=dvi:${dvimode} " \ diff --git a/recipes-bsp/u-boot/u-boot/0002-OMAP3-add-board-revision-detection-for-Overo.patch b/recipes-bsp/u-boot/u-boot/0002-OMAP3-add-board-revision-detection-for-Overo.patch deleted file mode 100644 index 86cc3ef..0000000 --- a/recipes-bsp/u-boot/u-boot/0002-OMAP3-add-board-revision-detection-for-Overo.patch +++ /dev/null @@ -1,187 +0,0 @@ -From 8cea9443be01ccc2525ff1de17b0dddd7c27984e Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Wed, 10 Feb 2010 14:40:56 -0800 -Subject: [PATCH 02/51] OMAP3: add board revision detection for Overo - ---- - board/overo/overo.c | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++ - board/overo/overo.h | 43 +++++++++++++++++++++--- - 2 files changed, 127 insertions(+), 6 deletions(-) - -diff --git a/board/overo/overo.c b/board/overo/overo.c -index e85be7d..3df1a12 100644 ---- a/board/overo/overo.c -+++ b/board/overo/overo.c -@@ -61,11 +61,101 @@ int board_init(void) - } - - /* -+ * Routine: get_sdio2_config -+ * Description: Return information about the wifi module connection -+ * Returns 0 if the module connects though a level translator -+ * Returns 1 if the module connects directly -+ */ -+int get_sdio2_config(void) { -+ int sdio_direct; -+ -+ if (!omap_request_gpio(130) && !omap_request_gpio(139)){ -+ -+ omap_set_gpio_direction(130, 0); -+ omap_set_gpio_direction(139, 1); -+ -+ sdio_direct = 1; -+ omap_set_gpio_dataout(130, 0); -+ if (omap_get_gpio_datain(139) == 0) { -+ omap_set_gpio_dataout(130, 1); -+ if (omap_get_gpio_datain(139) == 1) -+ sdio_direct = 0; -+ } -+ -+ omap_free_gpio(130); -+ omap_free_gpio(139); -+ } else { -+ printf("Error: unable to acquire sdio2 clk GPIOs\n"); -+ sdio_direct=-1; -+ } -+ -+ return sdio_direct; -+} -+ -+/* -+ * Routine: get_board_revision -+ * Description: Returns the board revision -+ */ -+int get_board_revision(void) { -+ int revision; -+ -+ if (!omap_request_gpio(126) && !omap_request_gpio(127) && -+ !omap_request_gpio(128) && !omap_request_gpio(129)){ -+ -+ omap_set_gpio_direction(126, 1); -+ omap_set_gpio_direction(127, 1); -+ omap_set_gpio_direction(128, 1); -+ omap_set_gpio_direction(129, 1); -+ -+ revision = 0; -+ if (omap_get_gpio_datain(126) == 0) -+ revision += 1; -+ if (omap_get_gpio_datain(127) == 0) -+ revision += 2; -+ if (omap_get_gpio_datain(128) == 0) -+ revision += 4; -+ if (omap_get_gpio_datain(129) == 0) -+ revision += 8; -+ -+ omap_free_gpio(126); -+ omap_free_gpio(127); -+ omap_free_gpio(128); -+ omap_free_gpio(129); -+ } else { -+ printf("Error: unable to acquire board revision GPIOs\n"); -+ revision=-1; -+ } -+ -+ return revision; -+} -+ -+/* - * Routine: misc_init_r - * Description: Configure board specific parts - */ - int misc_init_r(void) - { -+ printf("Board revision: "); -+ switch (get_board_revision()) { -+ case 0: -+ case 1: -+ switch (get_sdio2_config()) { -+ case 0: -+ printf(" 0\n"); -+ MUX_OVERO_SDIO2_TRANSCEIVER(); -+ break; -+ case 1: -+ printf(" 1\n"); -+ MUX_OVERO_SDIO2_DIRECT(); -+ break; -+ default: -+ printf(" unknown\n"); -+ } -+ break; -+ default: -+ printf(" unsupported\n"); -+ } -+ - twl4030_power_init(); - twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); - -diff --git a/board/overo/overo.h b/board/overo/overo.h -index 1873523..e120e09 100644 ---- a/board/overo/overo.h -+++ b/board/overo/overo.h -@@ -206,12 +206,12 @@ const omap3_sysinfo sysinfo = { - MUX_VAL(CP(MMC1_DAT1), (IEN | PTU | EN | M0)) /*MMC1_DAT1*/\ - MUX_VAL(CP(MMC1_DAT2), (IEN | PTU | EN | M0)) /*MMC1_DAT2*/\ - MUX_VAL(CP(MMC1_DAT3), (IEN | PTU | EN | M0)) /*MMC1_DAT3*/\ -- MUX_VAL(CP(MMC1_DAT4), (IEN | PTU | EN | M0)) /*MMC1_DAT4*/\ -- MUX_VAL(CP(MMC1_DAT5), (IEN | PTU | EN | M0)) /*MMC1_DAT5*/\ -- MUX_VAL(CP(MMC1_DAT6), (IEN | PTU | EN | M0)) /*MMC1_DAT6*/\ -- MUX_VAL(CP(MMC1_DAT7), (IEN | PTU | EN | M0)) /*MMC1_DAT7*/\ -+ MUX_VAL(CP(MMC1_DAT4), (IEN | PTU | EN | M4)) /*GPIO_126*/\ -+ MUX_VAL(CP(MMC1_DAT5), (IEN | PTU | EN | M4)) /*GPIO_127*/\ -+ MUX_VAL(CP(MMC1_DAT6), (IEN | PTU | EN | M4)) /*GPIO_128*/\ -+ MUX_VAL(CP(MMC1_DAT7), (IEN | PTU | EN | M4)) /*GPIO_129*/\ - /*Wireless LAN */\ -- MUX_VAL(CP(MMC2_CLK), (IEN | PTU | EN | M0)) /*MMC2_CLK*/\ -+ MUX_VAL(CP(MMC2_CLK), (IEN | PTU | EN | M4)) /*GPIO_130*/\ - MUX_VAL(CP(MMC2_CMD), (IEN | PTU | EN | M0)) /*MMC2_CMD*/\ - MUX_VAL(CP(MMC2_DAT0), (IEN | PTU | EN | M0)) /*MMC2_DAT0*/\ - MUX_VAL(CP(MMC2_DAT1), (IEN | PTU | EN | M0)) /*MMC2_DAT1*/\ -@@ -220,7 +220,7 @@ const omap3_sysinfo sysinfo = { - MUX_VAL(CP(MMC2_DAT4), (IEN | PTU | EN | M1)) /*MMC2_DIR_DAT0*/\ - MUX_VAL(CP(MMC2_DAT5), (IEN | PTU | EN | M1)) /*MMC2_DIR_DAT1*/\ - MUX_VAL(CP(MMC2_DAT6), (IEN | PTU | EN | M1)) /*MMC2_DIR_CMD*/\ -- MUX_VAL(CP(MMC2_DAT7), (IEN | PTU | EN | M1)) /*MMC2_CLKIN*/\ -+ MUX_VAL(CP(MMC2_DAT7), (IEN | PTU | EN | M4)) /*GPIO_139*/\ - /*Bluetooth*/\ - MUX_VAL(CP(MCBSP3_DX), (IEN | PTD | DIS | M1)) /*UART2_CTS*/\ - MUX_VAL(CP(MCBSP3_DR), (IDIS | PTD | DIS | M1)) /*UART2_RTS*/\ -@@ -387,5 +387,36 @@ const omap3_sysinfo sysinfo = { - MUX_VAL(CP(SDRC_CKE0), (IDIS | PTU | EN | M0)) /*sdrc_cke0*/\ - MUX_VAL(CP(SDRC_CKE1), (IDIS | PTU | EN | M0)) /*sdrc_cke1*/ - -+#define MUX_OVERO_SDIO2_DIRECT() \ -+ MUX_VAL(CP(MMC2_CLK), (IEN | PTU | EN | M0)) /*MMC2_CLK*/\ -+ MUX_VAL(CP(MMC2_CMD), (IEN | PTU | EN | M0)) /*MMC2_CMD*/\ -+ MUX_VAL(CP(MMC2_DAT0), (IEN | PTU | EN | M0)) /*MMC2_DAT0*/\ -+ MUX_VAL(CP(MMC2_DAT1), (IEN | PTU | EN | M0)) /*MMC2_DAT1*/\ -+ MUX_VAL(CP(MMC2_DAT2), (IEN | PTU | EN | M0)) /*MMC2_DAT2*/\ -+ MUX_VAL(CP(MMC2_DAT3), (IEN | PTU | EN | M0)) /*MMC2_DAT3*/\ -+ MUX_VAL(CP(MMC2_DAT4), (IEN | PTU | EN | M0)) /*MMC2_DAT4*/\ -+ MUX_VAL(CP(MMC2_DAT5), (IEN | PTU | EN | M0)) /*MMC2_DAT5*/\ -+ MUX_VAL(CP(MMC2_DAT6), (IEN | PTU | EN | M0)) /*MMC2_DAT6*/\ -+ MUX_VAL(CP(MMC2_DAT7), (IEN | PTU | EN | M0)) /*MMC2_DAT7*/\ -+ MUX_VAL(CP(MMC1_DAT4), (IEN | PTD | EN | M4)) /*GPIO_126*/\ -+ MUX_VAL(CP(MMC1_DAT5), (IEN | PTU | EN | M4)) /*GPIO_127*/\ -+ MUX_VAL(CP(MMC1_DAT6), (IEN | PTU | EN | M4)) /*GPIO_128*/\ -+ MUX_VAL(CP(MMC1_DAT7), (IEN | PTU | EN | M4)) /*GPIO_129*/ -+ -+#define MUX_OVERO_SDIO2_TRANSCEIVER() \ -+ MUX_VAL(CP(MMC2_CLK), (IEN | PTU | EN | M0)) /*MMC2_CLK*/\ -+ MUX_VAL(CP(MMC2_CMD), (IEN | PTU | EN | M0)) /*MMC2_CMD*/\ -+ MUX_VAL(CP(MMC2_DAT0), (IEN | PTU | EN | M0)) /*MMC2_DAT0*/\ -+ MUX_VAL(CP(MMC2_DAT1), (IEN | PTU | EN | M0)) /*MMC2_DAT1*/\ -+ MUX_VAL(CP(MMC2_DAT2), (IEN | PTU | EN | M0)) /*MMC2_DAT2*/\ -+ MUX_VAL(CP(MMC2_DAT3), (IEN | PTU | EN | M0)) /*MMC2_DAT3*/\ -+ MUX_VAL(CP(MMC2_DAT4), (IEN | PTU | EN | M1)) /*MMC2_DIR_DAT0*/\ -+ MUX_VAL(CP(MMC2_DAT5), (IEN | PTU | EN | M1)) /*MMC2_DIR_DAT1*/\ -+ MUX_VAL(CP(MMC2_DAT6), (IEN | PTU | EN | M1)) /*MMC2_DIR_CMD*/\ -+ MUX_VAL(CP(MMC2_DAT7), (IEN | PTU | EN | M1)) /*MMC2_CLKIN*/\ -+ MUX_VAL(CP(MMC1_DAT4), (IEN | PTU | EN | M4)) /*GPIO_126*/\ -+ MUX_VAL(CP(MMC1_DAT5), (IEN | PTU | EN | M4)) /*GPIO_127*/\ -+ MUX_VAL(CP(MMC1_DAT6), (IEN | PTU | EN | M4)) /*GPIO_128*/\ -+ MUX_VAL(CP(MMC1_DAT7), (IEN | PTU | EN | M4)) /*GPIO_129*/ - - #endif --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0003-OMAP3-update-Beagle-revision-detection-to-recognize-.patch b/recipes-bsp/u-boot/u-boot/0003-OMAP3-update-Beagle-revision-detection-to-recognize-.patch deleted file mode 100644 index 546888c..0000000 --- a/recipes-bsp/u-boot/u-boot/0003-OMAP3-update-Beagle-revision-detection-to-recognize-.patch +++ /dev/null @@ -1,165 +0,0 @@ -From fae6228e203436ce0d82ce32da769bd91206865f Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Wed, 10 Feb 2010 14:51:48 -0800 -Subject: [PATCH 03/51] OMAP3: update Beagle revision detection to recognize C4 boards - ---- - board/ti/beagle/beagle.c | 77 +++++++++++++++++++++++++++------------------- - board/ti/beagle/beagle.h | 7 +++- - 2 files changed, 51 insertions(+), 33 deletions(-) - -diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c -index 3b4c9e7..ba16dd7 100644 ---- a/board/ti/beagle/beagle.c -+++ b/board/ti/beagle/beagle.c -@@ -38,7 +38,7 @@ - #include - #include "beagle.h" - --static int beagle_revision_c; -+static int beagle_revision; - - /* - * Routine: board_init -@@ -60,41 +60,38 @@ int board_init(void) - /* - * Routine: beagle_get_revision - * Description: Return the revision of the BeagleBoard this code is running on. -- * If it is a revision Ax/Bx board, this function returns 0, -- * on a revision C board you will get a 1. - */ - int beagle_get_revision(void) - { -- return beagle_revision_c; -+ return beagle_revision; - } - - /* - * Routine: beagle_identify -- * Description: Detect if we are running on a Beagle revision Ax/Bx or -- * Cx. This can be done by GPIO_171. If this is low, we are -- * running on a revision C board. -+ * Description: Detect if we are running on a Beagle revision Ax/Bx, -+ * C1/2/3, C4 or D. This can be done by reading -+ * the level of GPIO173, GPIO172 and GPIO171. This should -+ * result in -+ * GPIO173, GPIO172, GPIO171: 1 1 1 => Ax/Bx -+ * GPIO173, GPIO172, GPIO171: 1 1 0 => C1/2/3 -+ * GPIO173, GPIO172, GPIO171: 1 0 1 => C4 -+ * GPIO173, GPIO172, GPIO171: 0 0 0 => D - */ - void beagle_identify(void) - { -- beagle_revision_c = 0; -- if (!omap_request_gpio(171)) { -- unsigned int val; -- -- omap_set_gpio_direction(171, 1); -- val = omap_get_gpio_datain(171); -- omap_free_gpio(171); -- -- if (val) -- beagle_revision_c = 0; -- else -- beagle_revision_c = 1; -- } -- -- printf("Board revision "); -- if (beagle_revision_c) -- printf("C\n"); -- else -- printf("Ax/Bx\n"); -+ omap_request_gpio(171); -+ omap_request_gpio(172); -+ omap_request_gpio(173); -+ omap_set_gpio_direction(171, 1); -+ omap_set_gpio_direction(172, 1); -+ omap_set_gpio_direction(173, 1); -+ -+ beagle_revision = omap_get_gpio_datain(173) << 2 | -+ omap_get_gpio_datain(172) << 1 | -+ omap_get_gpio_datain(171); -+ omap_free_gpio(171); -+ omap_free_gpio(172); -+ omap_free_gpio(173); - } - - /* -@@ -106,9 +103,31 @@ int misc_init_r(void) - struct gpio *gpio5_base = (struct gpio *)OMAP34XX_GPIO5_BASE; - struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE; - -+ beagle_identify(); -+ - twl4030_power_init(); - twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); - -+ printf("Board revision "); -+ switch (beagle_revision) { -+ case REVISION_AXBX: -+ printf("Ax/Bx\n"); -+ break; -+ case REVISION_CX: -+ printf("C1/C2/C3\n"); -+ MUX_BEAGLE_C(); -+ break; -+ case REVISION_C4: -+ printf("C4\n"); -+ MUX_BEAGLE_C(); -+ break; -+ case REVISION_D: -+ printf("D\n"); -+ break; -+ default: -+ printf("unknown 0x%02x\n", beagle_revision); -+ } -+ - /* Configure GPIOs to output */ - writel(~(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1), &gpio6_base->oe); - writel(~(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | -@@ -120,8 +139,6 @@ int misc_init_r(void) - writel(GPIO31 | GPIO30 | GPIO29 | GPIO28 | GPIO22 | GPIO21 | - GPIO15 | GPIO14 | GPIO13 | GPIO12, &gpio5_base->setdataout); - -- beagle_identify(); -- - dieid_num_r(); - - return 0; -@@ -136,8 +153,4 @@ int misc_init_r(void) - void set_muxconf_regs(void) - { - MUX_BEAGLE(); -- -- if (beagle_revision_c) { -- MUX_BEAGLE_C(); -- } - } -diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h -index 7fe6275..d95fd78 100644 ---- a/board/ti/beagle/beagle.h -+++ b/board/ti/beagle/beagle.h -@@ -34,6 +34,11 @@ const omap3_sysinfo sysinfo = { - }; - - #define BOARD_REVISION_MASK (0x1 << 11) -+/* BeagleBoard revisions */ -+#define REVISION_AXBX 0x7 -+#define REVISION_CX 0x6 -+#define REVISION_C4 0x5 -+#define REVISION_D 0x0 - - /* - * IEN - Input Enable -@@ -264,7 +269,7 @@ const omap3_sysinfo sysinfo = { - MUX_VAL(CP(HDQ_SIO), (IDIS | PTU | EN | M4)) /*GPIO_170*/\ - MUX_VAL(CP(MCSPI1_CLK), (IEN | PTU | EN | M4)) /*GPIO_171*/\ - MUX_VAL(CP(MCSPI1_SIMO), (IEN | PTU | EN | M4)) /*GPIO_172*/\ -- MUX_VAL(CP(MCSPI1_SOMI), (IEN | PTD | DIS | M0)) /*McSPI1_SOMI*/\ -+ MUX_VAL(CP(MCSPI1_SOMI), (IEN | PTU | EN | M4)) /*GPIO_173*/\ - MUX_VAL(CP(MCSPI1_CS0), (IEN | PTD | EN | M0)) /*McSPI1_CS0*/\ - MUX_VAL(CP(MCSPI1_CS1), (IDIS | PTD | EN | M0)) /*McSPI1_CS1*/\ - MUX_VAL(CP(MCSPI1_CS2), (IDIS | PTD | DIS | M4)) /*GPIO_176*/\ --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0003-omap3_beagle-enable-the-use-of-a-plain-text-file-nam.patch b/recipes-bsp/u-boot/u-boot/0003-omap3_beagle-enable-the-use-of-a-plain-text-file-nam.patch new file mode 100644 index 0000000..a68859e --- /dev/null +++ b/recipes-bsp/u-boot/u-boot/0003-omap3_beagle-enable-the-use-of-a-plain-text-file-nam.patch @@ -0,0 +1,89 @@ +From 58ca6009d4101e5fd45ef9df22aa360d1662e9e9 Mon Sep 17 00:00:00 2001 +From: Alexander Holler +Date: Mon, 24 Jan 2011 13:08:49 +0000 +Subject: [PATCH 03/16] omap3_beagle: enable the use of a plain text file named uEnv.txt instead of boot.scr + +Using the new env import command it is possible to use plain text files instead +of script-images. Plain text files are much easier to handle. + +E.g. If your boot.scr contains the following: +----------------------------------- +setenv dvimode 1024x768-16@60 +run loaduimage +run mmcboot +----------------------------------- +you could create a file named uEnv.txt and use that instead of boot.scr: +----------------------------------- +dvimode=1024x768-16@60 +uenvcmd=run loaduimage; run mmcboot +----------------------------------- +The variable uenvcmd (if existent) will be executed (using run) after uEnv.txt +was loaded. If uenvcmd doesn't exist the default boot sequence will be started, +therefore you could just use +----------------------------------- +dvimode=1024x768-16@60 +----------------------------------- +as uEnv.txt because loaduimage and mmcboot is part of the default boot sequence. +--- +Changes for v2: + - Eliminated else redundant clause that would be ignored if boot + succeeds. + +Changes for v3: + - Removed boot.scr + +Changes for v4: + - Removed comment about boot.scr being supported. +--- + include/configs/omap3_beagle.h | 28 ++++++++++++++++------------ + 1 files changed, 16 insertions(+), 12 deletions(-) + +diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h +index 8b580ef..c85537c 100644 +--- a/include/configs/omap3_beagle.h ++++ b/include/configs/omap3_beagle.h +@@ -213,9 +213,9 @@ + "omapdss.def_disp=${defaultdisplay} " \ + "root=${nandroot} " \ + "rootfstype=${nandrootfstype}\0" \ +- "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \ +- "bootscript=echo Running bootscript from mmc ...; " \ +- "source ${loadaddr}\0" \ ++ "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} uEnv.txt\0" \ ++ "importbootenv=echo Importing environment from mmc ...; " \ ++ "env import -t $loadaddr $filesize\0" \ + "loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \ + "mmcboot=echo Booting from mmc ...; " \ + "run mmcargs; " \ +@@ -227,15 +227,19 @@ + + #define CONFIG_BOOTCOMMAND \ + "if mmc rescan ${mmcdev}; then " \ +- "if run loadbootscript; then " \ +- "run bootscript; " \ +- "else " \ +- "if run loaduimage; then " \ +- "run mmcboot; " \ +- "else run nandboot; " \ +- "fi; " \ +- "fi; " \ +- "else run nandboot; fi" ++ "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 loaduimage; then " \ ++ "run mmcboot;" \ ++ "fi;" \ ++ "fi;" \ ++ "run nandboot;" \ + + #define CONFIG_AUTO_COMPLETE 1 + /* +-- +1.6.6.1 + diff --git a/recipes-bsp/u-boot/u-boot/0004-OMAP3-BeagleBoard-Enable-pullups-on-i2c2.patch b/recipes-bsp/u-boot/u-boot/0004-OMAP3-BeagleBoard-Enable-pullups-on-i2c2.patch new file mode 100644 index 0000000..4840d86 --- /dev/null +++ b/recipes-bsp/u-boot/u-boot/0004-OMAP3-BeagleBoard-Enable-pullups-on-i2c2.patch @@ -0,0 +1,69 @@ +From 6859e4b88c405ed40c898d259227f158da5f867a Mon Sep 17 00:00:00 2001 +From: Steve Kipisz +Date: Thu, 5 Aug 2010 10:36:07 -0500 +Subject: [PATCH 04/16] OMAP3: BeagleBoard: Enable pullups on i2c2. + +This allows the reading of EEPROMS on the expansion bus without adding +external pull-ups. +--- +v2 updates + * Updated per http://patchwork.ozlabs.org/patch/71997/ + * Added description + * Used OMAP34XX_CTRL_BASE + * Used structure and writel to perform write + +v3 updates + * Included v3 in the subject line + * Fixed structure name typo that got messed up in generating patch + * Removed some extraneous blank lines + +v4 updates + * Fixed typo in typecast +--- + arch/arm/include/asm/arch-omap3/omap3.h | 14 ++++++++++++++ + board/ti/beagle/beagle.c | 4 ++++ + 2 files changed, 18 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/include/asm/arch-omap3/omap3.h b/arch/arm/include/asm/arch-omap3/omap3.h +index 3957c79..cc2b541 100644 +--- a/arch/arm/include/asm/arch-omap3/omap3.h ++++ b/arch/arm/include/asm/arch-omap3/omap3.h +@@ -50,6 +50,20 @@ + /* CONTROL */ + #define OMAP34XX_CTRL_BASE (OMAP34XX_L4_IO_BASE + 0x2000) + ++#ifndef __ASSEMBLY__ ++/* Signal Integrity Parameter Control Registers */ ++struct control_prog_io { ++ unsigned char res[0x408]; ++ unsigned int io2; /* 0x408 */ ++ unsigned char res2[0x38]; ++ unsigned int io0; /* 0x444 */ ++ unsigned int io1; /* 0x448 */ ++}; ++#endif /* __ASSEMBLY__ */ ++ ++/* Bit definition for CONTROL_PROG_IO1 */ ++#define PRG_I2C2_PULLUPRESX 0x00000001 ++ + /* UART */ + #define OMAP34XX_UART1 (OMAP34XX_L4_IO_BASE + 0x6a000) + #define OMAP34XX_UART2 (OMAP34XX_L4_IO_BASE + 0x6c000) +diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c +index 929461c..9d03b24 100644 +--- a/board/ti/beagle/beagle.c ++++ b/board/ti/beagle/beagle.c +@@ -148,6 +148,10 @@ int misc_init_r(void) + { + struct gpio *gpio5_base = (struct gpio *)OMAP34XX_GPIO5_BASE; + struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE; ++ struct control_prog_io *prog_io_base = (struct control_prog_io *)OMAP34XX_CTRL_BASE; ++ ++ /* Enable i2c2 pullup resisters */ ++ writel(~(PRG_I2C2_PULLUPRESX), &prog_io_base->io1); + + switch (get_board_revision()) { + case REVISION_AXBX: +-- +1.6.6.1 + diff --git a/recipes-bsp/u-boot/u-boot/0004-OMAP3-Set-VAUX2-to-1.8V-for-EHCI-PHY-on-Beagle-Rev-C.patch b/recipes-bsp/u-boot/u-boot/0004-OMAP3-Set-VAUX2-to-1.8V-for-EHCI-PHY-on-Beagle-Rev-C.patch deleted file mode 100644 index 16f4888..0000000 --- a/recipes-bsp/u-boot/u-boot/0004-OMAP3-Set-VAUX2-to-1.8V-for-EHCI-PHY-on-Beagle-Rev-C.patch +++ /dev/null @@ -1,143 +0,0 @@ -From a1a4ba7a5fce36522a994cb06d6d76931964578c Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Wed, 10 Feb 2010 15:23:19 -0800 -Subject: [PATCH 04/51] OMAP3: Set VAUX2 to 1.8V for EHCI PHY on Beagle Rev C4 boards - ---- - board/ti/beagle/beagle.c | 5 +++++ - drivers/power/twl4030.c | 45 +++++++++++++++++++++++++-------------------- - include/twl4030.h | 15 +++++++++++++++ - 3 files changed, 45 insertions(+), 20 deletions(-) - -diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c -index ba16dd7..b4ea7e6 100644 ---- a/board/ti/beagle/beagle.c -+++ b/board/ti/beagle/beagle.c -@@ -120,6 +120,11 @@ int misc_init_r(void) - case REVISION_C4: - printf("C4\n"); - MUX_BEAGLE_C(); -+ /* Set VAUX2 to 1.8V for EHCI PHY */ -+ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, -+ TWL4030_PM_RECEIVER_VAUX2_VSEL_18, -+ TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, -+ TWL4030_PM_RECEIVER_DEV_GRP_P1); - break; - case REVISION_D: - printf("D\n"); -diff --git a/drivers/power/twl4030.c b/drivers/power/twl4030.c -index eb066cb..f354834 100644 ---- a/drivers/power/twl4030.c -+++ b/drivers/power/twl4030.c -@@ -59,57 +59,62 @@ void twl4030_power_reset_init(void) - } - } - -- --/* -- * Power Init -- */ --#define DEV_GRP_P1 0x20 --#define VAUX3_VSEL_28 0x03 --#define DEV_GRP_ALL 0xE0 --#define VPLL2_VSEL_18 0x05 --#define VDAC_VSEL_18 0x03 -- - void twl4030_power_init(void) - { - unsigned char byte; - - /* set VAUX3 to 2.8V */ -- byte = DEV_GRP_P1; -+ byte = TWL4030_PM_RECEIVER_DEV_GRP_P1; - twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte, - TWL4030_PM_RECEIVER_VAUX3_DEV_GRP); -- byte = VAUX3_VSEL_28; -+ byte = TWL4030_PM_RECEIVER_VAUX3_VSEL_28; - twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte, - TWL4030_PM_RECEIVER_VAUX3_DEDICATED); - - /* set VPLL2 to 1.8V */ -- byte = DEV_GRP_ALL; -+ byte = TWL4030_PM_RECEIVER_DEV_GRP_ALL; - twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte, - TWL4030_PM_RECEIVER_VPLL2_DEV_GRP); -- byte = VPLL2_VSEL_18; -+ byte = TWL4030_PM_RECEIVER_VPLL2_VSEL_18; - twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte, - TWL4030_PM_RECEIVER_VPLL2_DEDICATED); - - /* set VDAC to 1.8V */ -- byte = DEV_GRP_P1; -+ byte = TWL4030_PM_RECEIVER_DEV_GRP_P1; - twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte, - TWL4030_PM_RECEIVER_VDAC_DEV_GRP); -- byte = VDAC_VSEL_18; -+ byte = TWL4030_PM_RECEIVER_VDAC_VSEL_18; - twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte, - TWL4030_PM_RECEIVER_VDAC_DEDICATED); - } - --#define VMMC1_VSEL_30 0x02 -- - void twl4030_power_mmc_init(void) - { - unsigned char byte; - -- byte = DEV_GRP_P1; -+ byte = TWL4030_PM_RECEIVER_DEV_GRP_P1; - twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte, - TWL4030_PM_RECEIVER_VMMC1_DEV_GRP); - - /* 3 Volts */ -- byte = VMMC1_VSEL_30; -+ byte = TWL4030_PM_RECEIVER_VMMC1_VSEL_30; - twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte, - TWL4030_PM_RECEIVER_VMMC1_DEDICATED); - } -+ -+/* -+ * Generic function to select Device Group and Voltage -+ */ -+void twl4030_pmrecv_vsel_cfg(u8 vsel_reg, u8 vsel_val, -+ u8 dev_grp, u8 dev_grp_sel) -+{ -+ /* Select the Device Group */ -+ twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, dev_grp_sel, -+ dev_grp); -+ -+ /* Select the Voltage */ -+ twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, vsel_val, -+ vsel_reg); -+} -+ -+ -diff --git a/include/twl4030.h b/include/twl4030.h -index 2b2f5ae..cc99403 100644 ---- a/include/twl4030.h -+++ b/include/twl4030.h -@@ -471,6 +471,21 @@ - #define TWL4030_USB_PHY_CLK_CTRL_STS 0xFF - - /* -+ * Voltage Selection in PM Receiver Module -+ */ -+#define TWL4030_PM_RECEIVER_VAUX2_VSEL_18 0x05 -+#define TWL4030_PM_RECEIVER_VAUX3_VSEL_28 0x03 -+#define TWL4030_PM_RECEIVER_VPLL2_VSEL_18 0x05 -+#define TWL4030_PM_RECEIVER_VDAC_VSEL_18 0x03 -+#define TWL4030_PM_RECEIVER_VMMC1_VSEL_30 0x02 -+ -+/* -+ * Device Selection in PM Receiver Module -+ */ -+#define TWL4030_PM_RECEIVER_DEV_GRP_P1 0x20 -+#define TWL4030_PM_RECEIVER_DEV_GRP_ALL 0xE0 -+ -+/* - * Convience functions to read and write from TWL4030 - * - * chip_no is the i2c address, it must be one of the chip addresses --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0005-ARMV7-OMAP3-BeagleBoard-add-xM-rev-B-to-ID-table.patch b/recipes-bsp/u-boot/u-boot/0005-ARMV7-OMAP3-BeagleBoard-add-xM-rev-B-to-ID-table.patch new file mode 100644 index 0000000..0e8dd84 --- /dev/null +++ b/recipes-bsp/u-boot/u-boot/0005-ARMV7-OMAP3-BeagleBoard-add-xM-rev-B-to-ID-table.patch @@ -0,0 +1,111 @@ +From d2d1669e4e2d4eeb996305278c6e4df0b1e04a8d Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Wed, 3 Nov 2010 14:48:31 +0100 +Subject: [PATCH 05/16] ARMV7: OMAP3: BeagleBoard: add xM rev B to ID table + +Patch was updated by Jason Kridner : +* Use tabs to match style of other board revisions +* Only include board revisions that exist +* Default to the same configuration as the latest revision, but + without setting 'beaglerev' +--- +v2 Changes + * Updated with feedback from http://patchwork.ozlabs.org/patch/71995/ + * Removed setting of mpurate based on board revision + * Set mpurate to auto in default environment variables + +Cc: Koen Kooi +--- + board/ti/beagle/beagle.c | 22 +++++++++++++++++----- + board/ti/beagle/beagle.h | 3 ++- + include/configs/omap3_beagle.h | 2 +- + 3 files changed, 20 insertions(+), 7 deletions(-) + +diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c +index 9d03b24..87a952e 100644 +--- a/board/ti/beagle/beagle.c ++++ b/board/ti/beagle/beagle.c +@@ -157,18 +157,15 @@ int misc_init_r(void) + case REVISION_AXBX: + printf("Beagle Rev Ax/Bx\n"); + setenv("beaglerev", "AxBx"); +- setenv("mpurate", "600"); + break; + case REVISION_CX: + printf("Beagle Rev C1/C2/C3\n"); + setenv("beaglerev", "Cx"); +- setenv("mpurate", "600"); + MUX_BEAGLE_C(); + break; + case REVISION_C4: + printf("Beagle Rev C4\n"); + setenv("beaglerev", "C4"); +- setenv("mpurate", "720"); + MUX_BEAGLE_C(); + /* Set VAUX2 to 1.8V for EHCI PHY */ + twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, +@@ -176,10 +173,19 @@ int misc_init_r(void) + TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, + TWL4030_PM_RECEIVER_DEV_GRP_P1); + break; +- case REVISION_XM: ++ case REVISION_XM_A: + printf("Beagle xM Rev A\n"); + setenv("beaglerev", "xMA"); +- setenv("mpurate", "1000"); ++ MUX_BEAGLE_XM(); ++ /* Set VAUX2 to 1.8V for EHCI PHY */ ++ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, ++ TWL4030_PM_RECEIVER_VAUX2_VSEL_18, ++ TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, ++ TWL4030_PM_RECEIVER_DEV_GRP_P1); ++ break; ++ case REVISION_XM_B: ++ printf("Beagle xM Rev B\n"); ++ setenv("beaglerev", "xMB"); + MUX_BEAGLE_XM(); + /* Set VAUX2 to 1.8V for EHCI PHY */ + twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, +@@ -189,6 +195,12 @@ int misc_init_r(void) + break; + default: + printf("Beagle unknown 0x%02x\n", get_board_revision()); ++ MUX_BEAGLE_XM(); ++ /* Set VAUX2 to 1.8V for EHCI PHY */ ++ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, ++ TWL4030_PM_RECEIVER_VAUX2_VSEL_18, ++ TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, ++ TWL4030_PM_RECEIVER_DEV_GRP_P1); + } + + switch (get_expansion_id()) { +diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h +index b22b653..b0e26e5 100644 +--- a/board/ti/beagle/beagle.h ++++ b/board/ti/beagle/beagle.h +@@ -37,7 +37,8 @@ const omap3_sysinfo sysinfo = { + #define REVISION_AXBX 0x7 + #define REVISION_CX 0x6 + #define REVISION_C4 0x5 +-#define REVISION_XM 0x0 ++#define REVISION_XM_A 0x0 ++#define REVISION_XM_B 0x1 + + /* + * IEN - Input Enable +diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h +index c85537c..51e14d0 100644 +--- a/include/configs/omap3_beagle.h ++++ b/include/configs/omap3_beagle.h +@@ -190,7 +190,7 @@ + "loadaddr=0x82000000\0" \ + "usbtty=cdc_acm\0" \ + "console=ttyS2,115200n8\0" \ +- "mpurate=500\0" \ ++ "mpurate=auto\0" \ + "vram=12M\0" \ + "dvimode=1024x768MR-16@60\0" \ + "defaultdisplay=dvi\0" \ +-- +1.6.6.1 + diff --git a/recipes-bsp/u-boot/u-boot/0005-OMAP3-add-entry-for-rev-3.1.2-check-and-display-max-.patch b/recipes-bsp/u-boot/u-boot/0005-OMAP3-add-entry-for-rev-3.1.2-check-and-display-max-.patch deleted file mode 100644 index e8f0f5f..0000000 --- a/recipes-bsp/u-boot/u-boot/0005-OMAP3-add-entry-for-rev-3.1.2-check-and-display-max-.patch +++ /dev/null @@ -1,105 +0,0 @@ -From 13ed8be9848adff30bcfdcbe16bce3d2c6bb02f1 Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Wed, 3 Feb 2010 12:26:30 -0800 -Subject: [PATCH 05/51] OMAP3: add entry for rev 3.1.2, check and display max cpu clock for rev > 3.0 - ---- - cpu/arm_cortexa8/omap3/sys_info.c | 24 ++++++++++++++++++++++-- - include/asm-arm/arch-omap3/cpu.h | 8 +++++++- - include/asm-arm/arch-omap3/omap3.h | 3 ++- - 3 files changed, 31 insertions(+), 4 deletions(-) - -diff --git a/cpu/arm_cortexa8/omap3/sys_info.c b/cpu/arm_cortexa8/omap3/sys_info.c -index 08fb32e..e227f67 100644 ---- a/cpu/arm_cortexa8/omap3/sys_info.c -+++ b/cpu/arm_cortexa8/omap3/sys_info.c -@@ -39,7 +39,10 @@ static char *rev_s[CPU_3XX_MAX_REV] = { - "2.0", - "2.1", - "3.0", -- "3.1"}; -+ "3.1", -+ "UNKNOWN", -+ "UNKNOWN", -+ "3.1.2"}; - - /***************************************************************** - * dieid_num_r(void) - read and set die ID -@@ -104,6 +107,16 @@ u32 get_cpu_rev(void) - } - } - -+/***************************************************************** -+ * get_sku_id(void) - read sku_id to get info on max clock rate -+ *****************************************************************/ -+u32 get_sku_id(void) -+{ -+ struct ctrl_id *id_base = (struct ctrl_id *)OMAP34XX_ID_L4_IO_BASE; -+ return (readl(&id_base->sku_id) & SKUID_CLK_MASK); -+} -+ -+ - /**************************************************** - * is_mem_sdr() - return 1 if mem type in use is SDR - ****************************************************/ -@@ -291,9 +304,16 @@ int print_cpuinfo (void) - sec_s = "?"; - } - -- printf("OMAP%s-%s ES%s, CPU-OPP2 L3-165MHz\n", -+ printf("OMAP%s-%s ES%s, CPU-OPP2, L3-165MHz, ", - cpu_s, sec_s, rev_s[get_cpu_rev()]); - -+ printf("Max clock-"); -+ if ((get_cpu_rev() >= CPU_3XX_ES31) && (get_sku_id() == SKUID_CLK_720MHZ)) -+ printf("720Mhz\n"); -+ else printf("600Mhz\n"); -+ -+ -+ - return 0; - } - #endif /* CONFIG_DISPLAY_CPUINFO */ -diff --git a/include/asm-arm/arch-omap3/cpu.h b/include/asm-arm/arch-omap3/cpu.h -index aa8de32..f769571 100644 ---- a/include/asm-arm/arch-omap3/cpu.h -+++ b/include/asm-arm/arch-omap3/cpu.h -@@ -72,7 +72,8 @@ struct ctrl_id { - u8 res1[0x4]; - u32 idcode; /* 0x04 */ - u32 prod_id; /* 0x08 */ -- u8 res2[0x0C]; -+ u32 sku_id; /* 0x0c */ -+ u8 res2[0x08]; - u32 die_id_0; /* 0x18 */ - u32 die_id_1; /* 0x1C */ - u32 die_id_2; /* 0x20 */ -@@ -89,6 +90,11 @@ struct ctrl_id { - #define HS_DEVICE 0x2 - #define GP_DEVICE 0x3 - -+/* device speed */ -+#define SKUID_CLK_MASK 0xf -+#define SKUID_CLK_600MHZ 0x0 -+#define SKUID_CLK_720MHZ 0x8 -+ - #define GPMC_BASE (OMAP34XX_GPMC_BASE) - #define GPMC_CONFIG_CS0 0x60 - #define GPMC_CONFIG_CS0_BASE (GPMC_BASE + GPMC_CONFIG_CS0) -diff --git a/include/asm-arm/arch-omap3/omap3.h b/include/asm-arm/arch-omap3/omap3.h -index 12815f6..1349b8b 100644 ---- a/include/asm-arm/arch-omap3/omap3.h -+++ b/include/asm-arm/arch-omap3/omap3.h -@@ -176,7 +176,8 @@ struct gpio { - #define CPU_3XX_ES21 2 - #define CPU_3XX_ES30 3 - #define CPU_3XX_ES31 4 --#define CPU_3XX_MAX_REV (CPU_3XX_ES31 + 1) -+#define CPU_3XX_ES312 7 -+#define CPU_3XX_MAX_REV 8 - - #define CPU_3XX_ID_SHIFT 28 - --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0006-OMAP3-BeagleBoard-add-more-expansionboard-IDs.patch b/recipes-bsp/u-boot/u-boot/0006-OMAP3-BeagleBoard-add-more-expansionboard-IDs.patch new file mode 100644 index 0000000..1d16cf7 --- /dev/null +++ b/recipes-bsp/u-boot/u-boot/0006-OMAP3-BeagleBoard-add-more-expansionboard-IDs.patch @@ -0,0 +1,95 @@ +From 40cdd86d6040714f79e81bb813596748490aa948 Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Wed, 3 Nov 2010 14:39:15 +0100 +Subject: [PATCH 06/16] OMAP3: BeagleBoard: add more expansionboard IDs + +Information on configurations pulled from +http://www.elinux.org/BeagleBoardPinMux#Vendor_and_Device_IDs + +Boards added: +* Added BeagleBoardToys WiFi, VGA and LCD boards +* Added KBADC Beagle FPGA board +* Added Brainmux LCDog and LCDog Touch +* Added Liquidware BeagleTouch +--- +v2 updates + * Removed unused definitions + * Added BeagleBoardToys board configurations + * Made definition names consistent as VENDOR_BOARD +--- + board/ti/beagle/beagle.c | 30 +++++++++++++++++++++++++++++- + board/ti/beagle/beagle.h | 12 ++++++++++++ + 2 files changed, 41 insertions(+), 1 deletions(-) + +diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c +index 87a952e..97e9e12 100644 +--- a/board/ti/beagle/beagle.c ++++ b/board/ti/beagle/beagle.c +@@ -48,7 +48,12 @@ + #define TINCANTOOLS_TRAINER 0x04000100 + #define TINCANTOOLS_SHOWDOG 0x03000100 + #define KBADC_BEAGLEFPGA 0x01000600 +- ++#define LW_BEAGLETOUCH 0x01000700 ++#define BRAINMUX_LCDOG 0x01000800 ++#define BRAINMUX_LCDOGTOUCH 0x02000800 ++#define BBTOYS_WIFI 0x01000B00 ++#define BBTOYS_VGA 0x02000B00 ++#define BBTOYS_LCD 0x03000B00 + #define BEAGLE_NO_EEPROM 0xffffffff + + DECLARE_GLOBAL_DATA_PTR; +@@ -239,6 +244,29 @@ int misc_init_r(void) + MUX_KBADC_BEAGLEFPGA(); + setenv("buddy", "beaglefpga"); + break; ++ case LW_BEAGLETOUCH: ++ printf("Recognized Liquidware BeagleTouch board\n"); ++ setenv("buddy", "beagletouch"); ++ break; ++ case BRAINMUX_LCDOG: ++ printf("Recognized Brainmux LCDog board\n"); ++ setenv("buddy", "lcdog"); ++ break; ++ case BRAINMUX_LCDOGTOUCH: ++ printf("Recognized Brainmux LCDog Touch board\n"); ++ setenv("buddy", "lcdogtouch"); ++ break; ++ case BBTOYS_WIFI: ++ printf("Recognized BeagleBoardToys WiFi board\n"); ++ MUX_BBTOYS_WIFI() ++ setenv("buddy", "bbtoys-wifi"); ++ break;; ++ case BBTOYS_VGA: ++ printf("Recognized BeagleBoardToys VGA board\n"); ++ break;; ++ case BBTOYS_LCD: ++ printf("Recognized BeagleBoardToys LCD board\n"); ++ break;; + case BEAGLE_NO_EEPROM: + printf("No EEPROM on expansion board\n"); + setenv("buddy", "none"); +diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h +index b0e26e5..0f21790 100644 +--- a/board/ti/beagle/beagle.h ++++ b/board/ti/beagle/beagle.h +@@ -458,4 +458,16 @@ const omap3_sysinfo sysinfo = { + MUX_VAL(CP(MCBSP1_DR), (IEN | PTU | EN | M1)) /*MCSPI4_SOMI*/\ + MUX_VAL(CP(MCBSP1_FSX), (IDIS | PTU | DIS | M1)) /*MCSPI4_CS0*/ + ++#define MUX_BBTOYS_WIFI() \ ++ MUX_VAL(CP(MMC2_CLK), (IEN | PTU | EN | M0)) /*MMC2_CLK*/\ ++ MUX_VAL(CP(MMC2_CMD), (IEN | PTU | EN | M0)) /*MMC2_CMD*/\ ++ MUX_VAL(CP(MMC2_DAT0), (IEN | PTU | EN | M0)) /*MMC2_DAT0*/\ ++ MUX_VAL(CP(MMC2_DAT1), (IEN | PTU | EN | M0)) /*MMC2_DAT1*/\ ++ MUX_VAL(CP(MMC2_DAT2), (IEN | PTU | EN | M0)) /*MMC2_DAT2*/\ ++ MUX_VAL(CP(MMC2_DAT3), (IEN | PTU | EN | M0)) /*MMC2_DAT3*/\ ++ MUX_VAL(CP(MMC2_DAT4), (IDIS | PTU | EN | M4)) /*GPIO_136 FM_EN/BT_WU*/\ ++ MUX_VAL(CP(MMC2_DAT5), (IEN | PTU | EN | M4)) /*GPIO_137 WLAN_IRQ*/\ ++ MUX_VAL(CP(MMC2_DAT6), (IDIS | PTU | EN | M4)) /*GPIO_138 BT_EN*/\ ++ MUX_VAL(CP(MMC2_DAT7), (IDIS | PTU | EN | M4)) /*GPIO_139 WLAN_EN*/ ++ + #endif +-- +1.6.6.1 + diff --git a/recipes-bsp/u-boot/u-boot/0006-OMAP3-add-mpurate-boot-arg-for-overo-and-beagle.patch b/recipes-bsp/u-boot/u-boot/0006-OMAP3-add-mpurate-boot-arg-for-overo-and-beagle.patch deleted file mode 100644 index 700c3c2..0000000 --- a/recipes-bsp/u-boot/u-boot/0006-OMAP3-add-mpurate-boot-arg-for-overo-and-beagle.patch +++ /dev/null @@ -1,70 +0,0 @@ -From b03bad6826a2f3a0a03f6cdd5682e0a628fff851 Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Wed, 3 Feb 2010 14:39:14 -0800 -Subject: [PATCH 06/51] OMAP3: add mpurate boot arg for overo and beagle - -allows one to set the omap clock rate via "setenv mpurate 720" for example ---- - include/configs/omap3_beagle.h | 3 +++ - include/configs/omap3_overo.h | 3 +++ - 2 files changed, 6 insertions(+), 0 deletions(-) - -diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h -index d522c77..35ae8af 100644 ---- a/include/configs/omap3_beagle.h -+++ b/include/configs/omap3_beagle.h -@@ -187,6 +187,7 @@ - "loadaddr=0x82000000\0" \ - "usbtty=cdc_acm\0" \ - "console=ttyS2,115200n8\0" \ -+ "mpurate=500\0" \ - "vram=12M\0" \ - "dvimode=1024x768MR-16@60\0" \ - "defaultdisplay=dvi\0" \ -@@ -195,6 +196,7 @@ - "nandroot=/dev/mtdblock4 rw\0" \ - "nandrootfstype=jffs2\0" \ - "mmcargs=setenv bootargs console=${console} " \ -+ "mpurate=${mpurate} " \ - "vram=${vram} " \ - "omapfb.mode=dvi:${dvimode} " \ - "omapfb.debug=y " \ -@@ -202,6 +204,7 @@ - "root=${mmcroot} " \ - "rootfstype=${mmcrootfstype}\0" \ - "nandargs=setenv bootargs console=${console} " \ -+ "mpurate=${mpurate} " \ - "vram=${vram} " \ - "omapfb.mode=dvi:${dvimode} " \ - "omapfb.debug=y " \ -diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h -index a43500b..113c6df 100644 ---- a/include/configs/omap3_overo.h -+++ b/include/configs/omap3_overo.h -@@ -151,6 +151,7 @@ - #define CONFIG_EXTRA_ENV_SETTINGS \ - "loadaddr=0x82000000\0" \ - "console=ttyS2,115200n8\0" \ -+ "mpurate=500\0" \ - "vram=12M\0" \ - "dvimode=1024x768MR-16@60\0" \ - "defaultdisplay=dvi\0" \ -@@ -159,6 +160,7 @@ - "nandroot=/dev/mtdblock4 rw\0" \ - "nandrootfstype=jffs2\0" \ - "mmcargs=setenv bootargs console=${console} " \ -+ "mpurate=${mpurate} " \ - "vram=${vram} " \ - "omapfb.mode=dvi:${dvimode} " \ - "omapfb.debug=y " \ -@@ -166,6 +168,7 @@ - "root=${mmcroot} " \ - "rootfstype=${mmcrootfstype}\0" \ - "nandargs=setenv bootargs console=${console} " \ -+ "mpurate=${mpurate} " \ - "vram=${vram} " \ - "omapfb.mode=dvi:${dvimode} " \ - "omapfb.debug=y " \ --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0025-Add-DSS-driver-for-OMAP3.patch b/recipes-bsp/u-boot/u-boot/0007-OMAP3-Add-DSS-driver-for-OMAP3.patch similarity index 76% rename from recipes-bsp/u-boot/u-boot/0025-Add-DSS-driver-for-OMAP3.patch rename to recipes-bsp/u-boot/u-boot/0007-OMAP3-Add-DSS-driver-for-OMAP3.patch index 6a0baea..a1b3b0e 100644 --- a/recipes-bsp/u-boot/u-boot/0025-Add-DSS-driver-for-OMAP3.patch +++ b/recipes-bsp/u-boot/u-boot/0007-OMAP3-Add-DSS-driver-for-OMAP3.patch @@ -1,7 +1,7 @@ -From afa9025604773b90831cb93a5c80db8d2b8eed4b Mon Sep 17 00:00:00 2001 +From 8a249fc1c57ab01a78996e33e74a71757a9448b1 Mon Sep 17 00:00:00 2001 From: Syed Mohammed Khasim Date: Tue, 12 Jan 2010 23:57:28 +0530 -Subject: [PATCH 25/51] Add DSS driver for OMAP3 +Subject: [PATCH 07/16] OMAP3: Add DSS driver for OMAP3 Supports dynamic panel configuration Supports dynamic tv standard selection @@ -11,169 +11,27 @@ Incorporated DSS register access using structures. Previous discussions are here http://www.mail-archive.com/u-boot@lists.denx.de/msg27150.html +--- +v2 updates: + * Enable panel output for BeagleBoard + * BeagleBoard: Update DVI-D orange screen frequencies for xM Signed-off-by: Syed Mohammed Khasim --- - drivers/video/Makefile | 1 + - drivers/video/omap3_dss.c | 130 ++++++++++++++++++++++++++++ - include/asm-arm/arch-omap3/dss.h | 173 ++++++++++++++++++++++++++++++++++++++ - 3 files changed, 304 insertions(+), 0 deletions(-) + arch/arm/include/asm/arch-omap3/dss.h | 173 +++++++++++++++++++++++++++++++++ + board/ti/beagle/beagle.c | 22 ++++ + board/ti/beagle/beagle.h | 26 +++++ + drivers/video/Makefile | 2 + + drivers/video/omap3_dss.c | 130 +++++++++++++++++++++++++ + 5 files changed, 353 insertions(+), 0 deletions(-) + create mode 100644 arch/arm/include/asm/arch-omap3/dss.h create mode 100644 drivers/video/omap3_dss.c - create mode 100644 include/asm-arm/arch-omap3/dss.h -diff --git a/drivers/video/Makefile b/drivers/video/Makefile -index a5e339a..44d7ae8 100644 ---- a/drivers/video/Makefile -+++ b/drivers/video/Makefile -@@ -38,6 +38,7 @@ COBJS-$(CONFIG_SED156X) += sed156x.o - COBJS-$(CONFIG_VIDEO_SM501) += sm501.o - COBJS-$(CONFIG_VIDEO_SMI_LYNXEM) += smiLynxEM.o - COBJS-$(CONFIG_VIDEO_VCXK) += bus_vcxk.o -+COBJS-$(CONFIG_VIDEO_OMAP3) += omap3_dss.o - COBJS-y += videomodes.o - - COBJS := $(COBJS-y) -diff --git a/drivers/video/omap3_dss.c b/drivers/video/omap3_dss.c -new file mode 100644 -index 0000000..69c705a ---- /dev/null -+++ b/drivers/video/omap3_dss.c -@@ -0,0 +1,130 @@ -+/* -+ * (C) Copyright 2010 -+ * Texas Instruments, -+ * Syed Mohammed Khasim -+ * -+ * Referred to Linux DSS driver files for OMAP3 -+ * -+ * 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's version 2 of -+ * the License. -+ * -+ * 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., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#include -+#include -+#include -+ -+/* -+ * Configure VENC for a given Mode (NTSC / PAL) -+ */ -+void omap3_dss_venc_config(const struct venc_regs *venc_cfg, -+ u32 height, u32 width) -+{ -+ struct venc_regs *venc = (struct venc_regs *) OMAP3_VENC_BASE; -+ struct dss_regs *dss = (struct dss_regs *) OMAP3_DSS_BASE; -+ struct dispc_regs *dispc = (struct dispc_regs *) OMAP3_DISPC_BASE; -+ -+ writel(venc_cfg->status, &venc->status); -+ writel(venc_cfg->f_control, &venc->f_control); -+ writel(venc_cfg->vidout_ctrl, &venc->vidout_ctrl); -+ writel(venc_cfg->sync_ctrl, &venc->sync_ctrl); -+ writel(venc_cfg->llen, &venc->llen); -+ writel(venc_cfg->flens, &venc->flens); -+ writel(venc_cfg->hfltr_ctrl, &venc->hfltr_ctrl); -+ writel(venc_cfg->cc_carr_wss_carr, &venc->cc_carr_wss_carr); -+ writel(venc_cfg->c_phase, &venc->c_phase); -+ writel(venc_cfg->gain_u, &venc->gain_u); -+ writel(venc_cfg->gain_v, &venc->gain_v); -+ writel(venc_cfg->gain_y, &venc->gain_y); -+ writel(venc_cfg->black_level, &venc->black_level); -+ writel(venc_cfg->blank_level, &venc->blank_level); -+ writel(venc_cfg->x_color, &venc->x_color); -+ writel(venc_cfg->m_control, &venc->m_control); -+ writel(venc_cfg->bstamp_wss_data, &venc->bstamp_wss_data); -+ writel(venc_cfg->s_carr, &venc->s_carr); -+ writel(venc_cfg->line21, &venc->line21); -+ writel(venc_cfg->ln_sel, &venc->ln_sel); -+ writel(venc_cfg->l21__wc_ctl, &venc->l21__wc_ctl); -+ writel(venc_cfg->htrigger_vtrigger, &venc->htrigger_vtrigger); -+ writel(venc_cfg->savid__eavid, &venc->savid__eavid); -+ writel(venc_cfg->flen__fal, &venc->flen__fal); -+ writel(venc_cfg->lal__phase_reset, &venc->lal__phase_reset); -+ writel(venc_cfg->hs_int_start_stop_x, -+ &venc->hs_int_start_stop_x); -+ writel(venc_cfg->hs_ext_start_stop_x, -+ &venc->hs_ext_start_stop_x); -+ writel(venc_cfg->vs_int_start_x, &venc->vs_int_start_x); -+ writel(venc_cfg->vs_int_stop_x__vs_int_start_y, -+ &venc->vs_int_stop_x__vs_int_start_y); -+ writel(venc_cfg->vs_int_stop_y__vs_ext_start_x, -+ &venc->vs_int_stop_y__vs_ext_start_x); -+ writel(venc_cfg->vs_ext_stop_x__vs_ext_start_y, -+ &venc->vs_ext_stop_x__vs_ext_start_y); -+ writel(venc_cfg->vs_ext_stop_y, &venc->vs_ext_stop_y); -+ writel(venc_cfg->avid_start_stop_x, &venc->avid_start_stop_x); -+ writel(venc_cfg->avid_start_stop_y, &venc->avid_start_stop_y); -+ writel(venc_cfg->fid_int_start_x__fid_int_start_y, -+ &venc->fid_int_start_x__fid_int_start_y); -+ writel(venc_cfg->fid_int_offset_y__fid_ext_start_x, -+ &venc->fid_int_offset_y__fid_ext_start_x); -+ writel(venc_cfg->fid_ext_start_y__fid_ext_offset_y, -+ &venc->fid_ext_start_y__fid_ext_offset_y); -+ writel(venc_cfg->tvdetgp_int_start_stop_x, -+ &venc->tvdetgp_int_start_stop_x); -+ writel(venc_cfg->tvdetgp_int_start_stop_y, -+ &venc->tvdetgp_int_start_stop_y); -+ writel(venc_cfg->gen_ctrl, &venc->gen_ctrl); -+ writel(venc_cfg->output_control, &venc->output_control); -+ writel(venc_cfg->dac_b__dac_c, &venc->dac_b__dac_c); -+ -+ /* Configure DSS for VENC Settings */ -+ writel(VENC_DSS_CONFIG, &dss->control); -+ -+ /* Configure height and width for Digital out */ -+ writel(((height << DIG_LPP_SHIFT) | width), &dispc->size_dig); -+} -+ -+/* -+ * Configure Panel Specific Parameters -+ */ -+void omap3_dss_panel_config(const struct panel_config *panel_cfg) -+{ -+ struct dispc_regs *dispc = (struct dispc_regs *) OMAP3_DISPC_BASE; -+ -+ writel(panel_cfg->timing_h, &dispc->timing_h); -+ writel(panel_cfg->timing_v, &dispc->timing_v); -+ writel(panel_cfg->pol_freq, &dispc->pol_freq); -+ writel(panel_cfg->divisor, &dispc->divisor); -+ writel(panel_cfg->lcd_size, &dispc->size_lcd); -+ writel((panel_cfg->load_mode << FRAME_MODE_SHIFT), &dispc->config); -+ writel(((panel_cfg->panel_type << TFTSTN_SHIFT) | -+ (panel_cfg->data_lines << DATALINES_SHIFT)), &dispc->control); -+ writel(panel_cfg->panel_color, &dispc->default_color0); -+} -+ -+/* -+ * Enable LCD and DIGITAL OUT in DSS -+ */ -+void omap3_dss_enable(void) -+{ -+ struct dispc_regs *dispc = (struct dispc_regs *) OMAP3_DISPC_BASE; -+ u32 l = 0; -+ -+ l = readl(&dispc->control); -+ l |= DISPC_ENABLE; -+ writel(l, &dispc->control); -+} -diff --git a/include/asm-arm/arch-omap3/dss.h b/include/asm-arm/arch-omap3/dss.h +diff --git a/arch/arm/include/asm/arch-omap3/dss.h b/arch/arm/include/asm/arch-omap3/dss.h new file mode 100644 index 0000000..e5e3b0d --- /dev/null -+++ b/include/asm-arm/arch-omap3/dss.h ++++ b/arch/arm/include/asm/arch-omap3/dss.h @@ -0,0 +1,173 @@ +/* + * (C) Copyright 2010 @@ -348,6 +206,230 @@ index 0000000..e5e3b0d +void omap3_dss_enable(void); + +#endif /* DSS_H */ +diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c +index 97e9e12..56e7afc 100644 +--- a/board/ti/beagle/beagle.c ++++ b/board/ti/beagle/beagle.c +@@ -146,6 +146,27 @@ unsigned int get_expansion_id(void) + } + + /* ++ * Configure DSS to display background color on DVID ++ * Configure VENC to display color bar on S-Video ++ */ ++void display_init(void) ++{ ++ omap3_dss_venc_config(&venc_config_std_tv, VENC_HEIGHT, VENC_WIDTH); ++ switch (get_board_revision()) { ++ case REVISION_AXBX: ++ case REVISION_CX: ++ case REVISION_C4: ++ omap3_dss_panel_config(&dvid_cfg); ++ break; ++ case REVISION_XM_A: ++ case REVISION_XM_B: ++ default: ++ omap3_dss_panel_config(&dvid_cfg_xm); ++ break; ++ } ++} ++ ++/* + * Routine: misc_init_r + * Description: Configure board specific parts + */ +@@ -282,6 +303,7 @@ int misc_init_r(void) + + twl4030_power_init(); + twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); ++ display_init(); + + /* Set GPIO states before they are made outputs */ + writel(GPIO23 | GPIO10 | GPIO8 | GPIO2 | GPIO1, +diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h +index 0f21790..48228dc 100644 +--- a/board/ti/beagle/beagle.h ++++ b/board/ti/beagle/beagle.h +@@ -470,4 +470,30 @@ const omap3_sysinfo sysinfo = { + MUX_VAL(CP(MMC2_DAT6), (IDIS | PTU | EN | M4)) /*GPIO_138 BT_EN*/\ + MUX_VAL(CP(MMC2_DAT7), (IDIS | PTU | EN | M4)) /*GPIO_139 WLAN_EN*/ + ++/* ++ * Configure Timings for DVI D ++ */ ++static const struct panel_config dvid_cfg = { ++ .timing_h = 0x0ff03f31, /* Horizantal timing */ ++ .timing_v = 0x01400504, /* Vertical timing */ ++ .pol_freq = 0x00007028, /* Pol Freq */ ++ .divisor = 0x00010006, /* 72Mhz Pixel Clock */ ++ .lcd_size = 0x02ff03ff, /* 1024x768 */ ++ .panel_type = 0x01, /* TFT */ ++ .data_lines = 0x03, /* 24 Bit RGB */ ++ .load_mode = 0x02, /* Frame Mode */ ++ .panel_color = DVI_BEAGLE_ORANGE_COL /* ORANGE */ ++}; ++ ++static const struct panel_config dvid_cfg_xm = { ++ .timing_h = 0x1a4024c9, /* Horizantal timing */ ++ .timing_v = 0x02c00509, /* Vertical timing */ ++ .pol_freq = 0x00007028, /* Pol Freq */ ++ .divisor = 0x00010001, /* 96MHz Pixel Clock */ ++ .lcd_size = 0x02ff03ff, /* 1024x768 */ ++ .panel_type = 0x01, /* TFT */ ++ .data_lines = 0x03, /* 24 Bit RGB */ ++ .load_mode = 0x02, /* Frame Mode */ ++ .panel_color = DVI_BEAGLE_ORANGE_COL /* ORANGE */ ++}; + #endif +diff --git a/drivers/video/Makefile b/drivers/video/Makefile +index 2c53a6f..6baa7ca 100644 +--- a/drivers/video/Makefile ++++ b/drivers/video/Makefile +@@ -41,6 +41,8 @@ COBJS-$(CONFIG_SED156X) += sed156x.o + COBJS-$(CONFIG_VIDEO_SM501) += sm501.o + COBJS-$(CONFIG_VIDEO_SMI_LYNXEM) += smiLynxEM.o videomodes.o + COBJS-$(CONFIG_VIDEO_VCXK) += bus_vcxk.o ++COBJS-$(CONFIG_VIDEO_OMAP3) += omap3_dss.o ++COBJS-y += videomodes.o + + COBJS := $(COBJS-y) + SRCS := $(COBJS:.o=.c) +diff --git a/drivers/video/omap3_dss.c b/drivers/video/omap3_dss.c +new file mode 100644 +index 0000000..69c705a +--- /dev/null ++++ b/drivers/video/omap3_dss.c +@@ -0,0 +1,130 @@ ++/* ++ * (C) Copyright 2010 ++ * Texas Instruments, ++ * Syed Mohammed Khasim ++ * ++ * Referred to Linux DSS driver files for OMAP3 ++ * ++ * 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's version 2 of ++ * the License. ++ * ++ * 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., 59 Temple Place, Suite 330, Boston, ++ * MA 02111-1307 USA ++ */ ++ ++#include ++#include ++#include ++ ++/* ++ * Configure VENC for a given Mode (NTSC / PAL) ++ */ ++void omap3_dss_venc_config(const struct venc_regs *venc_cfg, ++ u32 height, u32 width) ++{ ++ struct venc_regs *venc = (struct venc_regs *) OMAP3_VENC_BASE; ++ struct dss_regs *dss = (struct dss_regs *) OMAP3_DSS_BASE; ++ struct dispc_regs *dispc = (struct dispc_regs *) OMAP3_DISPC_BASE; ++ ++ writel(venc_cfg->status, &venc->status); ++ writel(venc_cfg->f_control, &venc->f_control); ++ writel(venc_cfg->vidout_ctrl, &venc->vidout_ctrl); ++ writel(venc_cfg->sync_ctrl, &venc->sync_ctrl); ++ writel(venc_cfg->llen, &venc->llen); ++ writel(venc_cfg->flens, &venc->flens); ++ writel(venc_cfg->hfltr_ctrl, &venc->hfltr_ctrl); ++ writel(venc_cfg->cc_carr_wss_carr, &venc->cc_carr_wss_carr); ++ writel(venc_cfg->c_phase, &venc->c_phase); ++ writel(venc_cfg->gain_u, &venc->gain_u); ++ writel(venc_cfg->gain_v, &venc->gain_v); ++ writel(venc_cfg->gain_y, &venc->gain_y); ++ writel(venc_cfg->black_level, &venc->black_level); ++ writel(venc_cfg->blank_level, &venc->blank_level); ++ writel(venc_cfg->x_color, &venc->x_color); ++ writel(venc_cfg->m_control, &venc->m_control); ++ writel(venc_cfg->bstamp_wss_data, &venc->bstamp_wss_data); ++ writel(venc_cfg->s_carr, &venc->s_carr); ++ writel(venc_cfg->line21, &venc->line21); ++ writel(venc_cfg->ln_sel, &venc->ln_sel); ++ writel(venc_cfg->l21__wc_ctl, &venc->l21__wc_ctl); ++ writel(venc_cfg->htrigger_vtrigger, &venc->htrigger_vtrigger); ++ writel(venc_cfg->savid__eavid, &venc->savid__eavid); ++ writel(venc_cfg->flen__fal, &venc->flen__fal); ++ writel(venc_cfg->lal__phase_reset, &venc->lal__phase_reset); ++ writel(venc_cfg->hs_int_start_stop_x, ++ &venc->hs_int_start_stop_x); ++ writel(venc_cfg->hs_ext_start_stop_x, ++ &venc->hs_ext_start_stop_x); ++ writel(venc_cfg->vs_int_start_x, &venc->vs_int_start_x); ++ writel(venc_cfg->vs_int_stop_x__vs_int_start_y, ++ &venc->vs_int_stop_x__vs_int_start_y); ++ writel(venc_cfg->vs_int_stop_y__vs_ext_start_x, ++ &venc->vs_int_stop_y__vs_ext_start_x); ++ writel(venc_cfg->vs_ext_stop_x__vs_ext_start_y, ++ &venc->vs_ext_stop_x__vs_ext_start_y); ++ writel(venc_cfg->vs_ext_stop_y, &venc->vs_ext_stop_y); ++ writel(venc_cfg->avid_start_stop_x, &venc->avid_start_stop_x); ++ writel(venc_cfg->avid_start_stop_y, &venc->avid_start_stop_y); ++ writel(venc_cfg->fid_int_start_x__fid_int_start_y, ++ &venc->fid_int_start_x__fid_int_start_y); ++ writel(venc_cfg->fid_int_offset_y__fid_ext_start_x, ++ &venc->fid_int_offset_y__fid_ext_start_x); ++ writel(venc_cfg->fid_ext_start_y__fid_ext_offset_y, ++ &venc->fid_ext_start_y__fid_ext_offset_y); ++ writel(venc_cfg->tvdetgp_int_start_stop_x, ++ &venc->tvdetgp_int_start_stop_x); ++ writel(venc_cfg->tvdetgp_int_start_stop_y, ++ &venc->tvdetgp_int_start_stop_y); ++ writel(venc_cfg->gen_ctrl, &venc->gen_ctrl); ++ writel(venc_cfg->output_control, &venc->output_control); ++ writel(venc_cfg->dac_b__dac_c, &venc->dac_b__dac_c); ++ ++ /* Configure DSS for VENC Settings */ ++ writel(VENC_DSS_CONFIG, &dss->control); ++ ++ /* Configure height and width for Digital out */ ++ writel(((height << DIG_LPP_SHIFT) | width), &dispc->size_dig); ++} ++ ++/* ++ * Configure Panel Specific Parameters ++ */ ++void omap3_dss_panel_config(const struct panel_config *panel_cfg) ++{ ++ struct dispc_regs *dispc = (struct dispc_regs *) OMAP3_DISPC_BASE; ++ ++ writel(panel_cfg->timing_h, &dispc->timing_h); ++ writel(panel_cfg->timing_v, &dispc->timing_v); ++ writel(panel_cfg->pol_freq, &dispc->pol_freq); ++ writel(panel_cfg->divisor, &dispc->divisor); ++ writel(panel_cfg->lcd_size, &dispc->size_lcd); ++ writel((panel_cfg->load_mode << FRAME_MODE_SHIFT), &dispc->config); ++ writel(((panel_cfg->panel_type << TFTSTN_SHIFT) | ++ (panel_cfg->data_lines << DATALINES_SHIFT)), &dispc->control); ++ writel(panel_cfg->panel_color, &dispc->default_color0); ++} ++ ++/* ++ * Enable LCD and DIGITAL OUT in DSS ++ */ ++void omap3_dss_enable(void) ++{ ++ struct dispc_regs *dispc = (struct dispc_regs *) OMAP3_DISPC_BASE; ++ u32 l = 0; ++ ++ l = readl(&dispc->control); ++ l |= DISPC_ENABLE; ++ writel(l, &dispc->control); ++} -- 1.6.6.1 diff --git a/recipes-bsp/u-boot/u-boot/0007-OMAP3-detect-expansion-board-type-version-using-eepr.patch b/recipes-bsp/u-boot/u-boot/0007-OMAP3-detect-expansion-board-type-version-using-eepr.patch deleted file mode 100644 index d89469c..0000000 --- a/recipes-bsp/u-boot/u-boot/0007-OMAP3-detect-expansion-board-type-version-using-eepr.patch +++ /dev/null @@ -1,129 +0,0 @@ -From f1ad90ae5fd07257ea42aa771e16a7798cd440bb Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Fri, 12 Feb 2010 12:17:48 -0800 -Subject: [PATCH 07/51] OMAP3: detect expansion board type/version using eeprom contents - ---- - board/overo/overo.c | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++ - 1 files changed, 92 insertions(+), 0 deletions(-) - -diff --git a/board/overo/overo.c b/board/overo/overo.c -index 3df1a12..2838a1f 100644 ---- a/board/overo/overo.c -+++ b/board/overo/overo.c -@@ -39,6 +39,31 @@ - #include - #include "overo.h" - -+static struct { -+ unsigned int device_vendor; -+ unsigned char revision; -+ unsigned char content; -+ unsigned char data[6]; -+} expansion_config; -+ -+#define TWL4030_I2C_BUS 0 -+ -+#define EXPANSION_EEPROM_I2C_BUS 2 -+#define EXPANSION_EEPROM_I2C_ADDRESS 0x50 -+ -+#define GUMSTIX_VENDORID 0x0200 -+ -+#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_NO_EEPROM 0xfffffffe -+#define GUMSTIX_UNKNOWN 0xffffffff -+ - #if defined(CONFIG_CMD_NET) - static void setup_net_chip(void); - #endif -@@ -130,6 +155,31 @@ int get_board_revision(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)); -+ -+ if ( (expansion_config.device_vendor & 0xffff) != GUMSTIX_VENDORID ) -+ return GUMSTIX_UNKNOWN; -+ else -+ return expansion_config.device_vendor; -+} -+ -+ -+/* - * Routine: misc_init_r - * Description: Configure board specific parts - */ -@@ -156,6 +206,48 @@ int misc_init_r(void) - printf(" unsupported\n"); - } - -+ switch (get_expansion_id()) { -+ case GUMSTIX_SUMMIT: -+ printf("Recognized Summit expansion board (rev %d %s)\n", -+ expansion_config.revision, expansion_config.data); -+ setenv("defaultdisplay", "dvi"); -+ break; -+ case GUMSTIX_TOBI: -+ printf("Recognized Tobi expansion board (rev %d %s)\n", -+ expansion_config.revision, expansion_config.data); -+ setenv("defaultdisplay", "dvi"); -+ break; -+ case GUMSTIX_TOBI_DUO: -+ printf("Recognized Tobi Duo expansion board (rev %d %s)\n", -+ expansion_config.revision, expansion_config.data); -+ break; -+ case GUMSTIX_PALO35: -+ printf("Recognized Palo 35 expansion board (rev %d %s)\n", -+ expansion_config.revision, expansion_config.data); -+ setenv("defaultdisplay", "lcd35"); -+ break; -+ case GUMSTIX_PALO43: -+ printf("Recognized Palo 43 expansion board (rev %d %s)\n", -+ expansion_config.revision, expansion_config.data); -+ setenv("defaultdisplay", "lcd43"); -+ break; -+ case GUMSTIX_CHESTNUT43: -+ printf("Recognized Chestnut 43 expansion board (rev %d %s)\n", -+ expansion_config.revision, expansion_config.data); -+ setenv("defaultdisplay", "lcd43"); -+ break; -+ case GUMSTIX_PINTO: -+ printf("Recognized Pinto expansion board (rev %d %s)\n", -+ expansion_config.revision, expansion_config.data); -+ break; -+ case GUMSTIX_NO_EEPROM: -+ printf("No EEPROM on expansion board\n"); -+ break; -+ case GUMSTIX_UNKNOWN: -+ printf("Unrecognized expansion board\n"); -+ } -+ -+ i2c_set_bus_num(TWL4030_I2C_BUS); - twl4030_power_init(); - twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); - --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0045-BeagleBoard-Added-userbutton-command.patch b/recipes-bsp/u-boot/u-boot/0008-BeagleBoard-Added-userbutton-command.patch similarity index 77% rename from recipes-bsp/u-boot/u-boot/0045-BeagleBoard-Added-userbutton-command.patch rename to recipes-bsp/u-boot/u-boot/0008-BeagleBoard-Added-userbutton-command.patch index 993d40c..411bb7b 100644 --- a/recipes-bsp/u-boot/u-boot/0045-BeagleBoard-Added-userbutton-command.patch +++ b/recipes-bsp/u-boot/u-boot/0008-BeagleBoard-Added-userbutton-command.patch @@ -1,7 +1,7 @@ -From f5146ac9d3af9c9cd4f4bc940c343d3ef75ac6f0 Mon Sep 17 00:00:00 2001 +From 31110e039b1982590df08c66e53924f454e3e3f1 Mon Sep 17 00:00:00 2001 From: Jason Kridner Date: Wed, 21 Jul 2010 07:41:25 -0500 -Subject: [PATCH 45/51] BeagleBoard: Added userbutton command +Subject: [PATCH 08/16] BeagleBoard: Added userbutton command Based on commit f1099c7c43caf5bac3bf6a65aa266fade4747072 Author: Greg Turner @@ -19,26 +19,29 @@ Based on commit f1099c7c43caf5bac3bf6a65aa266fade4747072 * Flipped polarity of the return value to avoid confusion. Success (0) is when the button is pressed. Failure (1) is when the button is NOT pressed. +* Used latest revision getting function. +* Used latest macros for board revision. --- - board/ti/beagle/beagle.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++ - 1 files changed, 54 insertions(+), 0 deletions(-) + board/ti/beagle/beagle.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++ + 1 files changed, 55 insertions(+), 0 deletions(-) diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c -index a6a4961..66df719 100644 +index 56e7afc..04e4259 100644 --- a/board/ti/beagle/beagle.c +++ b/board/ti/beagle/beagle.c -@@ -40,6 +40,7 @@ +@@ -38,6 +38,7 @@ #include #include #include "beagle.h" +#include - static struct { - unsigned int device_vendor; -@@ -290,3 +291,56 @@ void set_muxconf_regs(void) - MUX_BEAGLE(); + #define TWL4030_I2C_BUS 0 + #define EXPANSION_EEPROM_I2C_BUS 1 +@@ -339,3 +340,57 @@ int board_mmc_init(bd_t *bis) + return 0; } - + #endif ++ +/* + * This command returns the status of the user button on beagle xM + * Input - none @@ -54,13 +57,14 @@ index a6a4961..66df719 100644 + * pass address parameter as argv[0] (aka command name), + * and all remaining args + */ -+ switch (beagle_revision) { ++ switch (get_board_revision()) { + case REVISION_AXBX: + case REVISION_CX: + case REVISION_C4: + gpio = 7; + break; -+ case REVISION_XM: ++ case REVISION_XM_A: ++ case REVISION_XM_B: + default: + gpio = 4; + break; @@ -91,7 +95,6 @@ index a6a4961..66df719 100644 + "Return the status of the BeagleBoard USER button", + "" +); -+ -- 1.6.6.1 diff --git a/recipes-bsp/u-boot/u-boot/0008-OMAP3-Overo-enable-config-eeprom-to-set-u-boot-env-v.patch b/recipes-bsp/u-boot/u-boot/0008-OMAP3-Overo-enable-config-eeprom-to-set-u-boot-env-v.patch deleted file mode 100644 index d2cf930..0000000 --- a/recipes-bsp/u-boot/u-boot/0008-OMAP3-Overo-enable-config-eeprom-to-set-u-boot-env-v.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 831504a9514c2cb4b1dc8c9a261fd4d1a037235f Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Tue, 16 Feb 2010 09:58:01 -0800 -Subject: [PATCH 08/51] OMAP3: Overo: enable config eeprom to set u-boot env variable - ---- - board/overo/overo.c | 21 +++++++++++++-------- - 1 files changed, 13 insertions(+), 8 deletions(-) - -diff --git a/board/overo/overo.c b/board/overo/overo.c -index 2838a1f..f6093d2 100644 ---- a/board/overo/overo.c -+++ b/board/overo/overo.c -@@ -43,7 +43,9 @@ static struct { - unsigned int device_vendor; - unsigned char revision; - unsigned char content; -- unsigned char data[6]; -+ unsigned char fab_revision[8]; -+ unsigned char env_var[16]; -+ unsigned char env_setting[64]; - } expansion_config; - - #define TWL4030_I2C_BUS 0 -@@ -209,36 +211,36 @@ int misc_init_r(void) - switch (get_expansion_id()) { - case GUMSTIX_SUMMIT: - printf("Recognized Summit expansion board (rev %d %s)\n", -- expansion_config.revision, expansion_config.data); -+ 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.data); -+ 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.data); -+ expansion_config.revision, expansion_config.fab_revision); - break; - case GUMSTIX_PALO35: - printf("Recognized Palo 35 expansion board (rev %d %s)\n", -- expansion_config.revision, expansion_config.data); -+ expansion_config.revision, expansion_config.fab_revision); - setenv("defaultdisplay", "lcd35"); - break; - case GUMSTIX_PALO43: - printf("Recognized Palo 43 expansion board (rev %d %s)\n", -- expansion_config.revision, expansion_config.data); -+ expansion_config.revision, expansion_config.fab_revision); - setenv("defaultdisplay", "lcd43"); - break; - case GUMSTIX_CHESTNUT43: - printf("Recognized Chestnut 43 expansion board (rev %d %s)\n", -- expansion_config.revision, expansion_config.data); -+ 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.data); -+ expansion_config.revision, expansion_config.fab_revision); - break; - case GUMSTIX_NO_EEPROM: - printf("No EEPROM on expansion board\n"); -@@ -247,6 +249,9 @@ int misc_init_r(void) - printf("Unrecognized expansion board\n"); - } - -+ if (expansion_config.content == 1) -+ setenv(expansion_config.env_var, expansion_config.env_setting); -+ - i2c_set_bus_num(TWL4030_I2C_BUS); - twl4030_power_init(); - twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0009-OMAP3-Overo-enable-input-on-MMC1_CLK-and-MMC3_CLK-pi.patch b/recipes-bsp/u-boot/u-boot/0009-OMAP3-Overo-enable-input-on-MMC1_CLK-and-MMC3_CLK-pi.patch deleted file mode 100644 index b1a4157..0000000 --- a/recipes-bsp/u-boot/u-boot/0009-OMAP3-Overo-enable-input-on-MMC1_CLK-and-MMC3_CLK-pi.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 500787d2999e23cf185808f611af61745c2746a3 Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Tue, 16 Feb 2010 10:00:45 -0800 -Subject: [PATCH 09/51] OMAP3: Overo: enable input on MMC1_CLK and MMC3_CLK pinmux - ---- - board/overo/overo.h | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/board/overo/overo.h b/board/overo/overo.h -index e120e09..ff936dd 100644 ---- a/board/overo/overo.h -+++ b/board/overo/overo.h -@@ -200,7 +200,7 @@ const omap3_sysinfo sysinfo = { - MUX_VAL(CP(MCBSP2_DR), (IEN | PTD | DIS | M0)) /*McBSP2_DR*/\ - MUX_VAL(CP(MCBSP2_DX), (IDIS | PTD | DIS | M0)) /*McBSP2_DX*/\ - /*Expansion card */\ -- MUX_VAL(CP(MMC1_CLK), (IDIS | PTU | EN | M0)) /*MMC1_CLK*/\ -+ MUX_VAL(CP(MMC1_CLK), (IEN | PTU | EN | M0)) /*MMC1_CLK*/\ - MUX_VAL(CP(MMC1_CMD), (IEN | PTU | EN | M0)) /*MMC1_CMD*/\ - MUX_VAL(CP(MMC1_DAT0), (IEN | PTU | EN | M0)) /*MMC1_DAT0*/\ - MUX_VAL(CP(MMC1_DAT1), (IEN | PTU | EN | M0)) /*MMC1_DAT1*/\ -@@ -301,7 +301,7 @@ const omap3_sysinfo sysinfo = { - 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_CLKOUT2), (IEN | PTU | EN | M4)) /*GPIO_186*/\ -- MUX_VAL(CP(ETK_CLK_ES2), (IDIS | PTU | EN | M2)) /*MMC3_CLK*/\ -+ MUX_VAL(CP(ETK_CLK_ES2), (IEN | PTU | EN | M2)) /*MMC3_CLK*/\ - MUX_VAL(CP(ETK_CTL_ES2), (IEN | PTU | EN | M2)) /*MMC3_CMD*/\ - MUX_VAL(CP(ETK_D0_ES2), (IEN | PTU | EN | M4)) /*GPIO_14*/\ - MUX_VAL(CP(ETK_D1_ES2), (IEN | PTD | EN | M4)) /*GPIO_15 - X_GATE*/\ --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0009-OMAP3-beagle-pass-expansionboard-name-in-bootargs.patch b/recipes-bsp/u-boot/u-boot/0009-OMAP3-beagle-pass-expansionboard-name-in-bootargs.patch new file mode 100644 index 0000000..7da18af --- /dev/null +++ b/recipes-bsp/u-boot/u-boot/0009-OMAP3-beagle-pass-expansionboard-name-in-bootargs.patch @@ -0,0 +1,57 @@ +From ca7179112840cdca717ac0c958a9ab226d1bdf25 Mon Sep 17 00:00:00 2001 +From: Koen Kooi +Date: Mon, 22 Nov 2010 11:51:32 +0100 +Subject: [PATCH 09/16] OMAP3: beagle: pass expansionboard name in bootargs + +--- + include/configs/omap3_beagle.h | 13 +++++++++++++ + 1 files changed, 13 insertions(+), 0 deletions(-) + +diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h +index 51e14d0..9d569a5 100644 +--- a/include/configs/omap3_beagle.h ++++ b/include/configs/omap3_beagle.h +@@ -191,6 +191,7 @@ + "usbtty=cdc_acm\0" \ + "console=ttyS2,115200n8\0" \ + "mpurate=auto\0" \ ++ "buddy=none "\ + "vram=12M\0" \ + "dvimode=1024x768MR-16@60\0" \ + "defaultdisplay=dvi\0" \ +@@ -201,6 +202,7 @@ + "nandrootfstype=jffs2\0" \ + "mmcargs=setenv bootargs console=${console} " \ + "mpurate=${mpurate} " \ ++ "buddy=${buddy} "\ + "vram=${vram} " \ + "omapfb.mode=dvi:${dvimode} " \ + "omapdss.def_disp=${defaultdisplay} " \ +@@ -208,6 +210,7 @@ + "rootfstype=${mmcrootfstype}\0" \ + "nandargs=setenv bootargs console=${console} " \ + "mpurate=${mpurate} " \ ++ "buddy=${buddy} "\ + "vram=${vram} " \ + "omapfb.mode=dvi:${dvimode} " \ + "omapdss.def_disp=${defaultdisplay} " \ +@@ -216,6 +219,16 @@ + "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} uEnv.txt\0" \ + "importbootenv=echo Importing environment from mmc ...; " \ + "env import -t $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=fatload mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \ + "loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \ + "mmcboot=echo Booting from mmc ...; " \ + "run mmcargs; " \ +-- +1.6.6.1 + diff --git a/recipes-bsp/u-boot/u-boot/0026-Enable-DSS-driver-for-Beagle.patch b/recipes-bsp/u-boot/u-boot/0010-Enable-DSS-driver-for-Beagle.patch similarity index 52% rename from recipes-bsp/u-boot/u-boot/0026-Enable-DSS-driver-for-Beagle.patch rename to recipes-bsp/u-boot/u-boot/0010-Enable-DSS-driver-for-Beagle.patch index 415e718..8766d89 100644 --- a/recipes-bsp/u-boot/u-boot/0026-Enable-DSS-driver-for-Beagle.patch +++ b/recipes-bsp/u-boot/u-boot/0010-Enable-DSS-driver-for-Beagle.patch @@ -1,49 +1,23 @@ -From 89a879905e59c837626b6a9425bcc27b097e02ad Mon Sep 17 00:00:00 2001 +From 2226921518eebb215ddadce09efb35b99a9db8ac Mon Sep 17 00:00:00 2001 From: Syed Mohammed Khasim Date: Sun, 11 Apr 2010 17:44:39 +0200 -Subject: [PATCH 26/51] Enable DSS driver for Beagle +Subject: [PATCH 10/16] Enable DSS driver for Beagle Configures DSS to display color bar on Svideo Configures DSS to display background color on DVID Signed-off-by: Syed Mohammed Khasim --- - board/ti/beagle/beagle.c | 12 ++++++ - board/ti/beagle/beagle.h | 75 ++++++++++++++++++++++++++++++++++++++++ - include/configs/omap3_beagle.h | 1 + - 3 files changed, 88 insertions(+), 0 deletions(-) + board/ti/beagle/beagle.c | 1 + + board/ti/beagle/beagle.h | 60 ++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 61 insertions(+), 0 deletions(-) diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c -index 7cb6d1f..eb57b5a 100644 +index 04e4259..7c80a97 100644 --- a/board/ti/beagle/beagle.c +++ b/board/ti/beagle/beagle.c -@@ -141,6 +141,16 @@ unsigned int get_expansion_id(void) - } - - /* -+ * Configure DSS to display background color on DVID -+ * Configure VENC to display color bar on S-Video -+ */ -+void display_init(void) -+{ -+ omap3_dss_venc_config(&venc_config_std_tv, VENC_HEIGHT, VENC_WIDTH); -+ omap3_dss_panel_config(&dvid_cfg); -+} -+ -+/* - * Routine: misc_init_r - * Description: Configure board specific parts - */ -@@ -188,6 +198,7 @@ int misc_init_r(void) - - twl4030_power_init(); - twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); -+ display_init(); - - switch (beagle_revision) { - case REVISION_AXBX: -@@ -233,6 +244,7 @@ int misc_init_r(void) - GPIO15 | GPIO14 | GPIO13 | GPIO12, &gpio5_base->setdataout); +@@ -318,6 +318,7 @@ int misc_init_r(void) + GPIO15 | GPIO14 | GPIO13 | GPIO12), &gpio5_base->oe); dieid_num_r(); + omap3_dss_enable(); @@ -51,7 +25,7 @@ index 7cb6d1f..eb57b5a 100644 return 0; } diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h -index ec4f831..69f9398 100644 +index 48228dc..bdf2a6f 100644 --- a/board/ti/beagle/beagle.h +++ b/board/ti/beagle/beagle.h @@ -23,6 +23,8 @@ @@ -63,11 +37,10 @@ index ec4f831..69f9398 100644 const omap3_sysinfo sysinfo = { DDR_STACKED, "OMAP3 Beagle board", -@@ -433,4 +435,77 @@ const omap3_sysinfo sysinfo = { - MUX_VAL(CP(MCBSP3_DR), (IEN | PTD | DIS | M4)) /*GPIO_142*/\ - MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_141*/\ +@@ -471,6 +473,64 @@ const omap3_sysinfo sysinfo = { + MUX_VAL(CP(MMC2_DAT7), (IDIS | PTU | EN | M4)) /*GPIO_139 WLAN_EN*/ -+/* + /* + * Display Configuration + */ + @@ -126,33 +99,9 @@ index ec4f831..69f9398 100644 +}; + +/* -+ * Configure Timings for DVI D -+ */ -+static const struct panel_config dvid_cfg = { -+ .timing_h = 0x0ff03f31, /* Horizantal timing */ -+ .timing_v = 0x01400504, /* Vertical timing */ -+ .pol_freq = 0x00007028, /* Pol Freq */ -+ .divisor = 0x00010006, /* 72Mhz Pixel Clock */ -+ .lcd_size = 0x02ff03ff, /* 1024x768 */ -+ .panel_type = 0x01, /* TFT */ -+ .data_lines = 0x03, /* 24 Bit RGB */ -+ .load_mode = 0x02, /* Frame Mode */ -+ .panel_color = DVI_BEAGLE_ORANGE_COL /* ORANGE */ -+}; -+ - #endif -diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h -index 8bedf7d..52d727a 100644 ---- a/include/configs/omap3_beagle.h -+++ b/include/configs/omap3_beagle.h -@@ -137,6 +137,7 @@ - #define CONFIG_CMD_I2C /* I2C serial bus support */ - #define CONFIG_CMD_MMC /* MMC support */ - #define CONFIG_CMD_NAND /* NAND support */ -+#define CONFIG_VIDEO_OMAP3 /* DSS Support */ - - #undef CONFIG_CMD_FLASH /* flinfo, erase, protect */ - #undef CONFIG_CMD_FPGA /* FPGA configuration Support */ + * Configure Timings for DVI D + */ + static const struct panel_config dvid_cfg = { -- 1.6.6.1 diff --git a/recipes-bsp/u-boot/u-boot/0010-OMAP3-Overo-set-CONFIG_SYS_I2C_SPEED-to-400Khz.patch b/recipes-bsp/u-boot/u-boot/0010-OMAP3-Overo-set-CONFIG_SYS_I2C_SPEED-to-400Khz.patch deleted file mode 100644 index 37692a2..0000000 --- a/recipes-bsp/u-boot/u-boot/0010-OMAP3-Overo-set-CONFIG_SYS_I2C_SPEED-to-400Khz.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 6ced8e0d859ea9cddbc2ec4a94a4c7394f1ee4c5 Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Tue, 16 Feb 2010 10:03:14 -0800 -Subject: [PATCH 10/51] OMAP3: Overo: set CONFIG_SYS_I2C_SPEED to 400Khz - ---- - include/configs/omap3_overo.h | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/include/configs/omap3_overo.h b/include/configs/omap3_overo.h -index 113c6df..27b5476 100644 ---- a/include/configs/omap3_overo.h -+++ b/include/configs/omap3_overo.h -@@ -112,7 +112,7 @@ - - #define CONFIG_SYS_NO_FLASH - #define CONFIG_HARD_I2C 1 --#define CONFIG_SYS_I2C_SPEED 100000 -+#define CONFIG_SYS_I2C_SPEED 400000 - #define CONFIG_SYS_I2C_SLAVE 1 - #define CONFIG_SYS_I2C_BUS 0 - #define CONFIG_SYS_I2C_BUS_SELECT 1 --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0011-Add-led-command.patch b/recipes-bsp/u-boot/u-boot/0011-Add-led-command.patch new file mode 100644 index 0000000..e51ee5e --- /dev/null +++ b/recipes-bsp/u-boot/u-boot/0011-Add-led-command.patch @@ -0,0 +1,213 @@ +From e3e94bd49df4b4588cc5c95392b872eadb531fc4 Mon Sep 17 00:00:00 2001 +From: Jason Kridner +Date: Thu, 20 May 2010 05:41:26 -0500 +Subject: [PATCH 11/16] Add 'led' command + +This patch allows any board implementing the coloured LED API +to control the LEDs from the console. + +led [green | yellow | red | all ] [ on | off ] + +or + +led [ 1 | 2 | 3 | all ] [ on | off ] + +Adds configuration item CONFIG_CMD_LED enabling the command. + +Partially based on patch from Ulf Samuelsson: +http://www.mail-archive.com/u-boot@lists.denx.de/msg09593.html. + +Updated based on feedback: +http://www.mail-archive.com/u-boot@lists.denx.de/msg41847.html +https://groups.google.com/d/topic/beagleboard/8Wf1HiK_QBo/discussion +* Fixed a handful of style issues. +* Significantly reduced the number of #ifdefs and redundant code +* Converted redundant code into loops test against a structure +* Made use of cmd_usage() +* Introduced a str_onoff() function, but haven't yet put it in common +* Eliminated trailing newline + +v2 updates + * Test every LED in case "all" is used. Previously, the code broke from + the loop after setting the state of only one LED. + * Corrected swapped on/off in structure definition + * Removed trailing white space +--- + common/Makefile | 1 + + common/cmd_led.c | 152 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 153 insertions(+), 0 deletions(-) + create mode 100644 common/cmd_led.c + +diff --git a/common/Makefile b/common/Makefile +index 048df0c..29a0ead 100644 +--- a/common/Makefile ++++ b/common/Makefile +@@ -105,6 +105,7 @@ COBJS-$(CONFIG_CMD_IRQ) += cmd_irq.o + COBJS-$(CONFIG_CMD_ITEST) += cmd_itest.o + COBJS-$(CONFIG_CMD_JFFS2) += cmd_jffs2.o + COBJS-$(CONFIG_CMD_CRAMFS) += cmd_cramfs.o ++COBJS-$(CONFIG_CMD_LED) += cmd_led.o + COBJS-$(CONFIG_CMD_LICENSE) += cmd_license.o + COBJS-y += cmd_load.o + COBJS-$(CONFIG_LOGBUFFER) += cmd_log.o +diff --git a/common/cmd_led.c b/common/cmd_led.c +new file mode 100644 +index 0000000..7f02fe6 +--- /dev/null ++++ b/common/cmd_led.c +@@ -0,0 +1,152 @@ ++/* ++ * (C) Copyright 2010 ++ * Jason Kridner ++ * ++ * Based on cmd_led.c patch from: ++ * http://www.mail-archive.com/u-boot@lists.denx.de/msg06873.html ++ * (C) Copyright 2008 ++ * Ulf Samuelsson ++ * ++ * 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., 59 Temple Place, Suite 330, Boston, ++ * MA 02111-1307 USA ++ */ ++ ++#include ++#include ++#include ++#include ++ ++struct led_tbl_s { ++ char *string; /* String for use in the command */ ++ led_id_t mask; /* Mask used for calling __led_set() */ ++ void (*off)(void); /* Optional fucntion for turning LED off */ ++ void (*on)(void); /* Optional fucntion for turning LED on */ ++}; ++ ++typedef struct led_tbl_s led_tbl_t; ++ ++static const led_tbl_t led_commands[] = { ++#ifdef CONFIG_BOARD_SPECIFIC_LED ++#ifdef STATUS_LED_BIT ++ { "0", STATUS_LED_BIT, NULL, NULL }, ++#endif ++#ifdef STATUS_LED_BIT1 ++ { "1", STATUS_LED_BIT1, NULL, NULL }, ++#endif ++#ifdef STATUS_LED_BIT2 ++ { "2", STATUS_LED_BIT2, NULL, NULL }, ++#endif ++#ifdef STATUS_LED_BIT3 ++ { "3", STATUS_LED_BIT3, NULL, NULL }, ++#endif ++#endif ++#ifdef STATUS_LED_GREEN ++ { "green", STATUS_LED_GREEN, green_LED_off, green_LED_on }, ++#endif ++#ifdef STATUS_LED_YELLOW ++ { "yellow", STATUS_LED_YELLOW, yellow_LED_off, yellow_LED_on }, ++#endif ++#ifdef STATUS_LED_RED ++ { "red", STATUS_LED_RED, red_LED_off, red_LED_on }, ++#endif ++#ifdef STATUS_LED_BLUE ++ { "blue", STATUS_LED_BLUE, blue_LED_off, blue_LED_on }, ++#endif ++ { NULL, 0, NULL, NULL } ++}; ++ ++int str_onoff (char *var) ++{ ++ if (strcmp(var, "off") == 0) { ++ return 0; ++ } ++ if (strcmp(var, "on") == 0) { ++ return 1; ++ } ++ return -1; ++} ++ ++int do_led (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) ++{ ++ int state, i; ++ ++ /* Validate arguments */ ++ if ((argc != 3)) { ++ return cmd_usage(cmdtp); ++ } ++ ++ state = str_onoff(argv[2]); ++ if (state < 0) { ++ return cmd_usage(cmdtp); ++ } ++ ++ for (i = 0; led_commands[i].string; i++) { ++ if ((strcmp("all", argv[1]) == 0) || ++ (strcmp(led_commands[i].string, argv[1]) == 0)) { ++ if (led_commands[i].on) { ++ if (state) { ++ led_commands[i].on(); ++ } else { ++ led_commands[i].off(); ++ } ++ } else { ++ __led_set(led_commands[i].mask, state); ++ } ++ } ++ } ++ ++ /* If we ran out of matches, print Usage */ ++ if (!led_commands[i].string && !(strcmp("all", argv[1]) == 0)) { ++ return cmd_usage(cmdtp); ++ } ++ ++ return 0; ++} ++ ++U_BOOT_CMD( ++ led, 3, 1, do_led, ++ "led\t- [" ++#ifdef CONFIG_BOARD_SPECIFIC_LED ++#ifdef STATUS_LED_BIT ++ "0|" ++#endif ++#ifdef STATUS_LED_BIT1 ++ "1|" ++#endif ++#ifdef STATUS_LED_BIT2 ++ "2|" ++#endif ++#ifdef STATUS_LED_BIT3 ++ "3|" ++#endif ++#endif ++#ifdef STATUS_LED_GREEN ++ "green|" ++#endif ++#ifdef STATUS_LED_YELLOW ++ "yellow|" ++#endif ++#ifdef STATUS_LED_RED ++ "red|" ++#endif ++#ifdef STATUS_LED_BLUE ++ "blue|" ++#endif ++ "all] [on|off]\n", ++ "led [led_name] [on|off] sets or clears led(s)\n" ++); +-- +1.6.6.1 + diff --git a/recipes-bsp/u-boot/u-boot/0011-OMAP3-trim-excessively-long-delays-in-i2c-driver.patch b/recipes-bsp/u-boot/u-boot/0011-OMAP3-trim-excessively-long-delays-in-i2c-driver.patch deleted file mode 100644 index b6e0545..0000000 --- a/recipes-bsp/u-boot/u-boot/0011-OMAP3-trim-excessively-long-delays-in-i2c-driver.patch +++ /dev/null @@ -1,52 +0,0 @@ -From f054db5f2a8eedbeaf8c6045d0bbafde5aca3efc Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Tue, 16 Feb 2010 10:04:30 -0800 -Subject: [PATCH 11/51] OMAP3: trim excessively long delays in i2c driver - ---- - drivers/i2c/omap24xx_i2c.c | 8 ++++---- - 1 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/drivers/i2c/omap24xx_i2c.c b/drivers/i2c/omap24xx_i2c.c -index e8c8184..0af230d 100644 ---- a/drivers/i2c/omap24xx_i2c.c -+++ b/drivers/i2c/omap24xx_i2c.c -@@ -148,7 +148,7 @@ static int i2c_read_byte (u8 devaddr, u8 regoffset, u8 * value) - if (status & I2C_STAT_XRDY) { - /* Important: have to use byte access */ - writeb (regoffset, &i2c_base->data); -- udelay (20000); -+ udelay (2000); - if (readw (&i2c_base->stat) & I2C_STAT_NACK) { - i2c_error = 1; - } -@@ -160,7 +160,7 @@ static int i2c_read_byte (u8 devaddr, u8 regoffset, u8 * value) - /* free bus, otherwise we can't use a combined transction */ - writew (0, &i2c_base->con); - while (readw (&i2c_base->stat) || (readw (&i2c_base->con) & I2C_CON_MST)) { -- udelay (10000); -+ udelay (1000); - /* Have to clear pending interrupt to clear I2C_STAT */ - writew (0xFFFF, &i2c_base->stat); - } -@@ -181,7 +181,7 @@ static int i2c_read_byte (u8 devaddr, u8 regoffset, u8 * value) - #else - *value = readw (&i2c_base->data); - #endif -- udelay (20000); -+ udelay (2000); - } else { - i2c_error = 1; - } -@@ -190,7 +190,7 @@ static int i2c_read_byte (u8 devaddr, u8 regoffset, u8 * value) - writew (I2C_CON_EN, &i2c_base->con); - while (readw (&i2c_base->stat) - || (readw (&i2c_base->con) & I2C_CON_MST)) { -- udelay (10000); -+ udelay (1000); - writew (0xFFFF, &i2c_base->stat); - } - } --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0042-BeagleBoard-Added-LED-driver.patch b/recipes-bsp/u-boot/u-boot/0012-BeagleBoard-Added-LED-driver.patch similarity index 83% rename from recipes-bsp/u-boot/u-boot/0042-BeagleBoard-Added-LED-driver.patch rename to recipes-bsp/u-boot/u-boot/0012-BeagleBoard-Added-LED-driver.patch index cbe0ce1..01897af 100644 --- a/recipes-bsp/u-boot/u-boot/0042-BeagleBoard-Added-LED-driver.patch +++ b/recipes-bsp/u-boot/u-boot/0012-BeagleBoard-Added-LED-driver.patch @@ -1,28 +1,29 @@ -From bb88a9c0ffa5b6006d689635028177be4ce83104 Mon Sep 17 00:00:00 2001 +From 35271d72072841c16687ffd51f08ec65cdac3b3e Mon Sep 17 00:00:00 2001 From: Jason Kridner Date: Thu, 20 May 2010 06:14:01 -0500 -Subject: [PATCH 42/51] BeagleBoard: Added LED driver +Subject: [PATCH 12/16] BeagleBoard: Added LED driver Added LED driver using status_led. USR0 is set to monitor the boot status. USR1 is set to be the green LED. -(cherry picked from commit 048b526fd7cc0c642f27c674b3e235321c880b66) -(cherry picked from commit 21c574d9e20f86ab757f5efdd9146e6607f2faba) -Signed-off-by: Jason Kridner +Included adding configuration and command to the default configuration. + +v2 updates + * Fixed USR0/USR1 to be LED 0/1 respectively --- board/ti/beagle/Makefile | 4 ++- - board/ti/beagle/beagle.c | 8 ++++ + board/ti/beagle/beagle.c | 7 ++++ board/ti/beagle/led.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 102 insertions(+), 1 deletions(-) + 3 files changed, 101 insertions(+), 1 deletions(-) create mode 100644 board/ti/beagle/led.c diff --git a/board/ti/beagle/Makefile b/board/ti/beagle/Makefile -index f797112..4cc675c 100644 +index 3b4aaac..d9f445f 100644 --- a/board/ti/beagle/Makefile +++ b/board/ti/beagle/Makefile @@ -25,8 +25,10 @@ include $(TOPDIR)/config.mk - LIB = $(obj)lib$(BOARD).a + LIB = $(obj)lib$(BOARD).o -COBJS := beagle.o +COBJS-y := $(BOARD).o @@ -33,7 +34,7 @@ index f797112..4cc675c 100644 OBJS := $(addprefix $(obj),$(COBJS)) diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c -index cdba3dd..a6a4961 100644 +index 7c80a97..905b151 100644 --- a/board/ti/beagle/beagle.c +++ b/board/ti/beagle/beagle.c @@ -30,6 +30,9 @@ @@ -45,8 +46,8 @@ index cdba3dd..a6a4961 100644 +#endif #include #include - #include -@@ -83,6 +86,10 @@ int board_init(void) + #include +@@ -80,6 +83,10 @@ int board_init(void) /* boot param addr */ gd->bd->bi_boot_params = (OMAP34XX_SDRC_CS0 + 0x100); @@ -57,14 +58,9 @@ index cdba3dd..a6a4961 100644 return 0; } -@@ -282,3 +289,4 @@ void set_muxconf_regs(void) - { - MUX_BEAGLE(); - } -+ diff --git a/board/ti/beagle/led.c b/board/ti/beagle/led.c new file mode 100644 -index 0000000..df26552 +index 0000000..fe80e19 --- /dev/null +++ b/board/ti/beagle/led.c @@ -0,0 +1,91 @@ @@ -97,8 +93,8 @@ index 0000000..df26552 +static unsigned int saved_state[2] = {STATUS_LED_OFF, STATUS_LED_OFF}; + +/* GPIO pins for the LEDs */ -+#define BEAGLE_LED_USR0 149 -+#define BEAGLE_LED_USR1 150 ++#define BEAGLE_LED_USR0 150 ++#define BEAGLE_LED_USR1 149 + +#ifdef STATUS_LED_GREEN +void green_LED_off (void) diff --git a/recipes-bsp/u-boot/u-boot/0012-OMAP3-Overo-allow-expansion-boards-with-any-vendor-I.patch b/recipes-bsp/u-boot/u-boot/0012-OMAP3-Overo-allow-expansion-boards-with-any-vendor-I.patch deleted file mode 100644 index a7b97fa..0000000 --- a/recipes-bsp/u-boot/u-boot/0012-OMAP3-Overo-allow-expansion-boards-with-any-vendor-I.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 2c02d9b024b58bbea920d3d6c40d62b30e448f60 Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Fri, 26 Feb 2010 12:40:26 -0800 -Subject: [PATCH 12/51] OMAP3: Overo: allow expansion boards with any vendor ID - ---- - board/overo/overo.c | 10 +++------- - 1 files changed, 3 insertions(+), 7 deletions(-) - -diff --git a/board/overo/overo.c b/board/overo/overo.c -index f6093d2..ec186ec 100644 ---- a/board/overo/overo.c -+++ b/board/overo/overo.c -@@ -63,8 +63,7 @@ static struct { - #define GUMSTIX_CHESTNUT43 0x06000200 - #define GUMSTIX_PINTO 0x07000200 - --#define GUMSTIX_NO_EEPROM 0xfffffffe --#define GUMSTIX_UNKNOWN 0xffffffff -+#define GUMSTIX_NO_EEPROM 0xffffffff - - #if defined(CONFIG_CMD_NET) - static void setup_net_chip(void); -@@ -174,10 +173,7 @@ unsigned int get_expansion_id(void) - i2c_read(EXPANSION_EEPROM_I2C_ADDRESS, 0, 1, (u8 *)&expansion_config, - sizeof(expansion_config)); - -- if ( (expansion_config.device_vendor & 0xffff) != GUMSTIX_VENDORID ) -- return GUMSTIX_UNKNOWN; -- else -- return expansion_config.device_vendor; -+ return expansion_config.device_vendor; - } - - -@@ -245,7 +241,7 @@ int misc_init_r(void) - case GUMSTIX_NO_EEPROM: - printf("No EEPROM on expansion board\n"); - break; -- case GUMSTIX_UNKNOWN: -+ default: - printf("Unrecognized expansion board\n"); - } - --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0013-OMAP3-BeagleBoard-updated-default-configuration.patch b/recipes-bsp/u-boot/u-boot/0013-OMAP3-BeagleBoard-updated-default-configuration.patch new file mode 100644 index 0000000..9c9a3fd --- /dev/null +++ b/recipes-bsp/u-boot/u-boot/0013-OMAP3-BeagleBoard-updated-default-configuration.patch @@ -0,0 +1,184 @@ +From da8fa305fd10331958cd18c9c27c9e062b886fc4 Mon Sep 17 00:00:00 2001 +From: Jason Kridner +Date: Wed, 21 Jul 2010 07:41:25 -0500 +Subject: [PATCH 13/16] OMAP3: BeagleBoard: updated default configuration + +* Decrease bootdelay to 3, use VGA for default resolution +* Add CONFIG_SYS_MEMTEST_SCRATCH to point to a scratch memory area. +* Add camera to default bootargs +* Move ramdisk parameters. This will make it easier to reprogram the ramdisk size. +* Improved boot env var setting + * Enabled evaluation of expressions with 'setexpr' + * Made room for a 64MB ramdisk by moving from 0x81600000 to 0x81000000 + * Removed expression from 'ramroot' that wouldn't be evaluated + * Doubled console I/O buffer size from 256 to 512 + * Doubled maximum command arguments size from 16 to 32 +* Enable multibus support for I2C +* Added USER button switch from uEnv.txt to user.txt +* Enable LEDs + Added LED driver using status_led. USR0 is set to monitor + the boot status. USR1 is set to be the GREEN LED. +--- + include/configs/omap3_beagle.h | 62 ++++++++++++++++++++++++++++++++------- + 1 files changed, 51 insertions(+), 11 deletions(-) + +diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h +index 9d569a5..73d4d4e 100644 +--- a/include/configs/omap3_beagle.h ++++ b/include/configs/omap3_beagle.h +@@ -108,9 +108,27 @@ + #define CONFIG_OMAP_HSMMC 1 + #define CONFIG_DOS_PARTITION 1 + ++/* Status LED */ ++#define CONFIG_STATUS_LED 1 ++#define CONFIG_BOARD_SPECIFIC_LED 1 ++#define STATUS_LED_BIT 0x01 ++#define STATUS_LED_STATE STATUS_LED_ON ++#define STATUS_LED_PERIOD (CONFIG_SYS_HZ / 2) ++#define STATUS_LED_BIT1 0x02 ++#define STATUS_LED_STATE1 STATUS_LED_ON ++#define STATUS_LED_PERIOD1 (CONFIG_SYS_HZ / 2) ++#define STATUS_LED_BOOT STATUS_LED_BIT ++#define STATUS_LED_GREEN STATUS_LED_BIT1 ++ + /* DDR - I use Micron DDR */ + #define CONFIG_OMAP3_MICRON_DDR 1 + ++/* Enable Multi Bus support for I2C */ ++#define CONFIG_I2C_MULTI_BUS 1 ++ ++/* Probe all devices */ ++#define CONFIG_SYS_I2C_NOPROBES {0x0, 0x0} ++ + /* USB */ + #define CONFIG_MUSB_UDC 1 + #define CONFIG_USB_OMAP3 1 +@@ -138,6 +156,9 @@ + #define CONFIG_CMD_I2C /* I2C serial bus support */ + #define CONFIG_CMD_MMC /* MMC support */ + #define CONFIG_CMD_NAND /* NAND support */ ++#define CONFIG_CMD_LED /* LED support */ ++#define CONFIG_VIDEO_OMAP3 /* DSS Support */ ++#define CONFIG_CMD_SETEXPR /* Evaluate expressions */ + + #undef CONFIG_CMD_FLASH /* flinfo, erase, protect */ + #undef CONFIG_CMD_FPGA /* FPGA configuration Support */ +@@ -184,45 +205,56 @@ + /* partition */ + + /* Environment information */ +-#define CONFIG_BOOTDELAY 10 ++#define CONFIG_BOOTDELAY 3 + + #define CONFIG_EXTRA_ENV_SETTINGS \ +- "loadaddr=0x82000000\0" \ ++ "loadaddr=0x80200000\0" \ ++ "rdaddr=0x81000000\0" \ + "usbtty=cdc_acm\0" \ + "console=ttyS2,115200n8\0" \ + "mpurate=auto\0" \ + "buddy=none "\ ++ "optargs=\0" \ ++ "camera=lbcm3m1\0" \ + "vram=12M\0" \ +- "dvimode=1024x768MR-16@60\0" \ ++ "dvimode=640x480MR-16@60\0" \ + "defaultdisplay=dvi\0" \ + "mmcdev=0\0" \ + "mmcroot=/dev/mmcblk0p2 rw\0" \ + "mmcrootfstype=ext3 rootwait\0" \ + "nandroot=/dev/mtdblock4 rw\0" \ + "nandrootfstype=jffs2\0" \ ++ "ramroot=/dev/ram0 rw ramdisk_size=65536 initrd=0x81000000,64M\0" \ ++ "ramrootfstype=ext2\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" \ +- "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} uEnv.txt\0" \ ++ "bootenv=uEnv.txt\0" \ ++ "loadbootenv=fatload mmc ${mmcdev} ${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} "\ ++ "camera=${camera} "\ + "vram=${vram} " \ + "omapfb.mode=dvi:${dvimode} " \ + "omapdss.def_disp=${defaultdisplay} " \ +@@ -237,11 +269,18 @@ + "run nandargs; " \ + "nand read ${loadaddr} 280000 400000; " \ + "bootm ${loadaddr}\0" \ ++ "ramboot=echo Booting from ramdisk ...; " \ ++ "run ramargs; " \ ++ "bootm ${loadaddr}\0" \ + + #define CONFIG_BOOTCOMMAND \ + "if mmc rescan ${mmcdev}; then " \ ++ "if userbutton; then " \ ++ "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 " \ +@@ -252,7 +291,7 @@ + "run mmcboot;" \ + "fi;" \ + "fi;" \ +- "run nandboot;" \ ++ "run nandboot;" + + #define CONFIG_AUTO_COMPLETE 1 + /* +@@ -262,18 +301,19 @@ + #define CONFIG_SYS_HUSH_PARSER /* use "hush" command parser */ + #define CONFIG_SYS_PROMPT_HUSH_PS2 "> " + #define CONFIG_SYS_PROMPT "OMAP3 beagleboard.org # " +-#define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer Size */ ++#define CONFIG_SYS_CBSIZE 512 /* Console I/O Buffer Size */ + /* Print Buffer Size */ + #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \ + sizeof(CONFIG_SYS_PROMPT) + 16) +-#define CONFIG_SYS_MAXARGS 16 /* max number of command args */ ++#define CONFIG_SYS_MAXARGS 32 /* max number of command args */ + /* Boot Argument Buffer Size */ + #define CONFIG_SYS_BARGSIZE (CONFIG_SYS_CBSIZE) + +-#define CONFIG_SYS_MEMTEST_START (OMAP34XX_SDRC_CS0) /* memtest */ +- /* works on */ +-#define CONFIG_SYS_MEMTEST_END (OMAP34XX_SDRC_CS0 + \ +- 0x01F00000) /* 31MB */ ++#define CONFIG_SYS_ALT_MEMTEST 1 ++#define CONFIG_SYS_MEMTEST_START (0x82000000) /* memtest */ ++ /* defaults */ ++#define CONFIG_SYS_MEMTEST_END (0x87FFFFFF) /* 128MB */ ++#define CONFIG_SYS_MEMTEST_SCRATCH (0x81000000) /* dummy address */ + + #define CONFIG_SYS_LOAD_ADDR (OMAP34XX_SDRC_CS0) /* default */ + /* load address */ +-- +1.6.6.1 + diff --git a/recipes-bsp/u-boot/u-boot/0013-OMAP3-Overo-change-address-of-expansion-eeprom-to-0x.patch b/recipes-bsp/u-boot/u-boot/0013-OMAP3-Overo-change-address-of-expansion-eeprom-to-0x.patch deleted file mode 100644 index 2698c0f..0000000 --- a/recipes-bsp/u-boot/u-boot/0013-OMAP3-Overo-change-address-of-expansion-eeprom-to-0x.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 90119d705d2c56254d4b27efb8e8c61e62f014c1 Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Fri, 26 Feb 2010 12:42:30 -0800 -Subject: [PATCH 13/51] OMAP3: Overo: change address of expansion eeprom to 0x51 so as to not conflict with EDID address - ---- - board/overo/overo.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/board/overo/overo.c b/board/overo/overo.c -index ec186ec..f96e7ff 100644 ---- a/board/overo/overo.c -+++ b/board/overo/overo.c -@@ -51,7 +51,7 @@ static struct { - #define TWL4030_I2C_BUS 0 - - #define EXPANSION_EEPROM_I2C_BUS 2 --#define EXPANSION_EEPROM_I2C_ADDRESS 0x50 -+#define EXPANSION_EEPROM_I2C_ADDRESS 0x51 - - #define GUMSTIX_VENDORID 0x0200 - --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0014-Corrected-LED-name-match-finding-avoiding-extraneous.patch b/recipes-bsp/u-boot/u-boot/0014-Corrected-LED-name-match-finding-avoiding-extraneous.patch new file mode 100644 index 0000000..e01092a --- /dev/null +++ b/recipes-bsp/u-boot/u-boot/0014-Corrected-LED-name-match-finding-avoiding-extraneous.patch @@ -0,0 +1,42 @@ +From abc09e8f0b8e02dbfec8bb3c2e024ef9f1bdf4f0 Mon Sep 17 00:00:00 2001 +From: Jason Kridner +Date: Tue, 8 Mar 2011 20:42:01 -0600 +Subject: [PATCH 14/16] Corrected LED name match finding avoiding extraneous Usage printouts + +--- + common/cmd_led.c | 5 +++-- + 1 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/common/cmd_led.c b/common/cmd_led.c +index 7f02fe6..ca2227f 100644 +--- a/common/cmd_led.c ++++ b/common/cmd_led.c +@@ -83,7 +83,7 @@ int str_onoff (char *var) + + int do_led (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) + { +- int state, i; ++ int state, i, match = 0; + + /* Validate arguments */ + if ((argc != 3)) { +@@ -98,6 +98,7 @@ int do_led (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) + for (i = 0; led_commands[i].string; i++) { + if ((strcmp("all", argv[1]) == 0) || + (strcmp(led_commands[i].string, argv[1]) == 0)) { ++ match = 1; + if (led_commands[i].on) { + if (state) { + led_commands[i].on(); +@@ -111,7 +112,7 @@ int do_led (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) + } + + /* If we ran out of matches, print Usage */ +- if (!led_commands[i].string && !(strcmp("all", argv[1]) == 0)) { ++ if (!match) { + return cmd_usage(cmdtp); + } + +-- +1.6.6.1 + diff --git a/recipes-bsp/u-boot/u-boot/0014-OMAP3-board.c-don-t-attempt-to-set-up-second-RAM-ban.patch b/recipes-bsp/u-boot/u-boot/0014-OMAP3-board.c-don-t-attempt-to-set-up-second-RAM-ban.patch deleted file mode 100644 index 4e31550..0000000 --- a/recipes-bsp/u-boot/u-boot/0014-OMAP3-board.c-don-t-attempt-to-set-up-second-RAM-ban.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 7f50d09f9a00b7f2a392a5b0b9f2f19a96a90c16 Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Tue, 23 Mar 2010 09:04:50 -0700 -Subject: [PATCH 14/51] OMAP3: board.c: don't attempt to set up second RAM bank, assume x-load has already done this - ---- - cpu/arm_cortexa8/omap3/board.c | 19 +++++++++---------- - 1 files changed, 9 insertions(+), 10 deletions(-) - -diff --git a/cpu/arm_cortexa8/omap3/board.c b/cpu/arm_cortexa8/omap3/board.c -index 7b78fa4..0126152 100644 ---- a/cpu/arm_cortexa8/omap3/board.c -+++ b/cpu/arm_cortexa8/omap3/board.c -@@ -232,6 +232,7 @@ void s_init(void) - - per_clocks_enable(); - -+ /* FIXME: u-boot's sdrc setup is broken */ - if (!in_sdram) - sdrc_init(); - } -@@ -281,16 +282,14 @@ int dram_init(void) - { - DECLARE_GLOBAL_DATA_PTR; - unsigned int size0 = 0, size1 = 0; -- -- /* -- * If a second bank of DDR is attached to CS1 this is -- * where it can be started. Early init code will init -- * memory on CS0. -- */ -- if ((sysinfo.mtype == DDR_COMBO) || (sysinfo.mtype == DDR_STACKED)) { -- do_sdrc_init(CS1, NOT_EARLY); -- make_cs1_contiguous(); -- } -+ struct sdrc *sdrc_base = (struct sdrc *)OMAP34XX_SDRC_BASE; -+ struct sdrc_actim *sdrc_actim_base = (struct sdrc_actim *)SDRC_ACTIM_CTRL1_BASE; -+ -+ /* x-load sets up the second bank but */ -+ /* doesn't test to see if it is there */ -+ /* do so now, disable if not present */ -+ if (!mem_ok(CS1)) -+ writel(0, &sdrc_base->cs[1].mcfg); - - size0 = get_sdr_cs_size(CS0); - size1 = get_sdr_cs_size(CS1); --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0015-OMAP3-mem.c-enhance-the-RAM-test.patch b/recipes-bsp/u-boot/u-boot/0015-OMAP3-mem.c-enhance-the-RAM-test.patch deleted file mode 100644 index d689f69..0000000 --- a/recipes-bsp/u-boot/u-boot/0015-OMAP3-mem.c-enhance-the-RAM-test.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 379ff04432ffdef234c2f85b1801cf7df2d3d5ee Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Tue, 23 Mar 2010 09:06:49 -0700 -Subject: [PATCH 15/51] OMAP3: mem.c: enhance the RAM test - ---- - cpu/arm_cortexa8/omap3/mem.c | 28 +++++++++++++++------------- - 1 files changed, 15 insertions(+), 13 deletions(-) - -diff --git a/cpu/arm_cortexa8/omap3/mem.c b/cpu/arm_cortexa8/omap3/mem.c -index dfb7e4c..b828097 100644 ---- a/cpu/arm_cortexa8/omap3/mem.c -+++ b/cpu/arm_cortexa8/omap3/mem.c -@@ -106,21 +106,23 @@ void make_cs1_contiguous(void) - *******************************************************/ - u32 mem_ok(u32 cs) - { -- u32 val1, val2, addr; -+ u32 i, val1, val2, addr, size; - u32 pattern = 0x12345678; - -- addr = OMAP34XX_SDRC_CS0 + get_sdr_cs_offset(cs); -- -- writel(0x0, addr + 0x400); /* clear pos A */ -- writel(pattern, addr); /* pattern to pos B */ -- writel(0x0, addr + 4); /* remove pattern off the bus */ -- val1 = readl(addr + 0x400); /* get pos A value */ -- val2 = readl(addr); /* get val2 */ -+ size = get_sdr_cs_offset(cs); -+ addr = OMAP34XX_SDRC_CS0 + size; -+ -+ for (i = 0; i < size; i+=1024) { -+ writel(pattern - i, addr + i); -+ } - -- if ((val1 != 0) || (val2 != pattern)) /* see if pos A val changed */ -- return 0; -- else -- return 1; -+ for (i = 0; i < size; i+=1024) { -+ val1 = readl(addr + i); -+ if (val1 != (pattern - i)) { -+ return 0; -+ } -+ } -+ return 1; - } - - /******************************************************** --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0015-omap3_beagle-Switch-default-console-from-ttyS2-to-tt.patch b/recipes-bsp/u-boot/u-boot/0015-omap3_beagle-Switch-default-console-from-ttyS2-to-tt.patch new file mode 100644 index 0000000..2db0810 --- /dev/null +++ b/recipes-bsp/u-boot/u-boot/0015-omap3_beagle-Switch-default-console-from-ttyS2-to-tt.patch @@ -0,0 +1,29 @@ +From 1a88890580917571811950eabd877cccdb643cb1 Mon Sep 17 00:00:00 2001 +From: Alexander Holler +Date: Thu, 17 Feb 2011 22:37:57 +0000 +Subject: [PATCH 15/16] omap3_beagle: Switch default console from ttyS2 to ttyO2 + +Linux kernels >= 2.6.36 are using ttyOn instead ttySn for the +serials on OMAPs. + +Signed-off-by: Alexander Holler +--- + include/configs/omap3_beagle.h | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h +index 73d4d4e..de572e8 100644 +--- a/include/configs/omap3_beagle.h ++++ b/include/configs/omap3_beagle.h +@@ -211,7 +211,7 @@ + "loadaddr=0x80200000\0" \ + "rdaddr=0x81000000\0" \ + "usbtty=cdc_acm\0" \ +- "console=ttyS2,115200n8\0" \ ++ "console=ttyO2,115200n8\0" \ + "mpurate=auto\0" \ + "buddy=none "\ + "optargs=\0" \ +-- +1.6.6.1 + diff --git a/recipes-bsp/u-boot/u-boot/0016-BeagleBoard-Load-kernel-via-MMC-ext2-not-fat.patch b/recipes-bsp/u-boot/u-boot/0016-BeagleBoard-Load-kernel-via-MMC-ext2-not-fat.patch new file mode 100644 index 0000000..bdcdeb4 --- /dev/null +++ b/recipes-bsp/u-boot/u-boot/0016-BeagleBoard-Load-kernel-via-MMC-ext2-not-fat.patch @@ -0,0 +1,26 @@ +From 03757f19b4affb531d1606e468e0411acd8d57cb Mon Sep 17 00:00:00 2001 +From: Jason Kridner +Date: Wed, 9 Mar 2011 18:48:19 -0600 +Subject: [PATCH 16/16] BeagleBoard: Load kernel via MMC ext2, not fat + +--- + include/configs/omap3_beagle.h | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h +index de572e8..3a102e5 100644 +--- a/include/configs/omap3_beagle.h ++++ b/include/configs/omap3_beagle.h +@@ -261,7 +261,8 @@ + "root=${ramroot} " \ + "rootfstype=${ramrootfstype}\0" \ + "loadramdisk=fatload mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \ +- "loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \ ++ "loaduimagefat=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \ ++ "loaduimage=ext2load mmc ${mmcdev}:2 ${loadaddr} /boot/uImage\0" \ + "mmcboot=echo Booting from mmc ...; " \ + "run mmcargs; " \ + "bootm ${loadaddr}\0" \ +-- +1.6.6.1 + diff --git a/recipes-bsp/u-boot/u-boot/0016-env_nand.c-fail-gracefully-if-no-nand-is-present.patch b/recipes-bsp/u-boot/u-boot/0016-env_nand.c-fail-gracefully-if-no-nand-is-present.patch deleted file mode 100644 index 8f39aa1..0000000 --- a/recipes-bsp/u-boot/u-boot/0016-env_nand.c-fail-gracefully-if-no-nand-is-present.patch +++ /dev/null @@ -1,27 +0,0 @@ -From a9b4ba0446bd55d98243de2f3e3a747f8842811f Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Tue, 23 Mar 2010 09:12:16 -0700 -Subject: [PATCH 16/51] env_nand.c: fail gracefully if no nand is present - ---- - common/env_nand.c | 4 ++++ - 1 files changed, 4 insertions(+), 0 deletions(-) - -diff --git a/common/env_nand.c b/common/env_nand.c -index a15a950..325f112 100644 ---- a/common/env_nand.c -+++ b/common/env_nand.c -@@ -268,6 +268,10 @@ int readenv (size_t offset, u_char * buf) - - u_char *char_ptr; - -+ /* fail if no nand detected */ -+ if (nand_info[0].type == 0) -+ return 1; -+ - blocksize = nand_info[0].erasesize; - len = min(blocksize, CONFIG_ENV_SIZE); - --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0017-OMAP3-add-definitions-to-support-sysinfo-cpu-and-cpu.patch b/recipes-bsp/u-boot/u-boot/0017-OMAP3-add-definitions-to-support-sysinfo-cpu-and-cpu.patch deleted file mode 100644 index 3c66822..0000000 --- a/recipes-bsp/u-boot/u-boot/0017-OMAP3-add-definitions-to-support-sysinfo-cpu-and-cpu.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 4c1682016b61262456acb9386ef69d0da4243db9 Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Tue, 23 Mar 2010 09:15:29 -0700 -Subject: [PATCH 17/51] OMAP3: add definitions to support sysinfo cpu and cpu family detection - ---- - include/asm-arm/arch-omap3/cpu.h | 6 ------ - include/asm-arm/arch-omap3/omap3.h | 29 +++++++++++++++++++++++++++++ - 2 files changed, 29 insertions(+), 6 deletions(-) - -diff --git a/include/asm-arm/arch-omap3/cpu.h b/include/asm-arm/arch-omap3/cpu.h -index f769571..d9eec7e 100644 ---- a/include/asm-arm/arch-omap3/cpu.h -+++ b/include/asm-arm/arch-omap3/cpu.h -@@ -60,12 +60,6 @@ struct ctrl { - #endif /* __ASSEMBLY__ */ - #endif /* __KERNEL_STRICT_NAMES */ - --/* cpu type */ --#define OMAP3503 0x5c00 --#define OMAP3515 0x1c00 --#define OMAP3525 0x4c00 --#define OMAP3530 0x0c00 -- - #ifndef __KERNEL_STRICT_NAMES - #ifndef __ASSEMBLY__ - struct ctrl_id { -diff --git a/include/asm-arm/arch-omap3/omap3.h b/include/asm-arm/arch-omap3/omap3.h -index 1349b8b..3957c79 100644 ---- a/include/asm-arm/arch-omap3/omap3.h -+++ b/include/asm-arm/arch-omap3/omap3.h -@@ -184,4 +184,33 @@ struct gpio { - #define WIDTH_8BIT 0x0000 - #define WIDTH_16BIT 0x1000 /* bit pos for 16 bit in gpmc */ - -+/* -+ * Hawkeye values -+ */ -+#define HAWKEYE_OMAP34XX 0xb7ae -+#define HAWKEYE_AM35XX 0xb868 -+#define HAWKEYE_OMAP36XX 0xb891 -+ -+#define HAWKEYE_SHIFT 12 -+ -+/* -+ * Define CPU families -+ */ -+#define CPU_OMAP34XX 0x3400 /* OMAP34xx/OMAP35 devices */ -+#define CPU_AM35XX 0x3500 /* AM35xx devices */ -+#define CPU_OMAP36XX 0x3600 /* OMAP36xx devices */ -+ -+/* -+ * Control status register values corresponding to cpu variants -+ */ -+#define OMAP3503 0x5c00 -+#define OMAP3515 0x1c00 -+#define OMAP3525 0x4c00 -+#define OMAP3530 0x0c00 -+ -+#define AM3505 0x5c00 -+#define AM3517 0x1c00 -+ -+#define OMAP3730 0x0c00 -+ - #endif --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0018-OMAP3-sys_info-update-cpu-detection-for-36XX-37XX.patch b/recipes-bsp/u-boot/u-boot/0018-OMAP3-sys_info-update-cpu-detection-for-36XX-37XX.patch deleted file mode 100644 index 5566db2..0000000 --- a/recipes-bsp/u-boot/u-boot/0018-OMAP3-sys_info-update-cpu-detection-for-36XX-37XX.patch +++ /dev/null @@ -1,196 +0,0 @@ -From f8a42576fac8349ae8ff9d6673b229f6b3103798 Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Tue, 23 Mar 2010 09:17:59 -0700 -Subject: [PATCH 18/51] OMAP3 sys_info: update cpu detection for 36XX/37XX - ---- - cpu/arm_cortexa8/omap3/sys_info.c | 137 ++++++++++++++++++++++++++++--------- - 1 files changed, 105 insertions(+), 32 deletions(-) - -diff --git a/cpu/arm_cortexa8/omap3/sys_info.c b/cpu/arm_cortexa8/omap3/sys_info.c -index e227f67..e32a846 100644 ---- a/cpu/arm_cortexa8/omap3/sys_info.c -+++ b/cpu/arm_cortexa8/omap3/sys_info.c -@@ -79,32 +79,72 @@ u32 get_cpu_type(void) - } - - /****************************************** -- * get_cpu_rev(void) - extract version info -+ * get_cpu_id(void) - extract cpu id -+ * returns 0 for ES1.0, cpuid otherwise - ******************************************/ --u32 get_cpu_rev(void) -+u32 get_cpu_id(void) - { -- u32 cpuid = 0; - struct ctrl_id *id_base; -+ u32 cpuid = 0; - - /* - * On ES1.0 the IDCODE register is not exposed on L4 - * so using CPU ID to differentiate between ES1.0 and > ES1.0. - */ - __asm__ __volatile__("mrc p15, 0, %0, c0, c0, 0":"=r"(cpuid)); -- if ((cpuid & 0xf) == 0x0) -- return CPU_3XX_ES10; -- else { -+ if ((cpuid & 0xf) == 0x0) { -+ return 0; -+ } else { - /* Decode the IDs on > ES1.0 */ - id_base = (struct ctrl_id *) OMAP34XX_ID_L4_IO_BASE; - -- cpuid = (readl(&id_base->idcode) >> CPU_3XX_ID_SHIFT) & 0xf; -+ cpuid = readl(&id_base->idcode); -+ } - -- /* Some early ES2.0 seem to report ID 0, fix this */ -- if(cpuid == 0) -- cpuid = CPU_3XX_ES20; -+ return cpuid; -+} - -- return cpuid; -+/****************************************** -+ * get_cpu_family(void) - extract cpu info -+ ******************************************/ -+u32 get_cpu_family(void) -+{ -+ u16 hawkeye; -+ u32 cpu_family; -+ u32 cpuid = get_cpu_id(); -+ -+ if (cpuid == 0) -+ return CPU_OMAP34XX; -+ -+ hawkeye = (cpuid >> HAWKEYE_SHIFT) & 0xffff; -+ switch(hawkeye) { -+ case HAWKEYE_OMAP34XX: -+ cpu_family = CPU_OMAP34XX; -+ break; -+ case HAWKEYE_AM35XX: -+ cpu_family = CPU_AM35XX; -+ break; -+ case HAWKEYE_OMAP36XX: -+ cpu_family = CPU_OMAP36XX; -+ break; -+ default: -+ cpu_family = CPU_OMAP34XX; - } -+ -+ return cpu_family; -+} -+ -+/****************************************** -+ * get_cpu_rev(void) - extract version info -+ ******************************************/ -+u32 get_cpu_rev(void) -+{ -+ u32 cpuid = get_cpu_id(); -+ -+ if (cpuid == 0) -+ return CPU_3XX_ES10; -+ else -+ return (cpuid >> CPU_3XX_ID_SHIFT) & 0xf; - } - - /***************************************************************** -@@ -267,24 +307,57 @@ u32 get_device_type(void) - */ - int print_cpuinfo (void) - { -- char *cpu_s, *sec_s; -- -- switch (get_cpu_type()) { -- case OMAP3503: -- cpu_s = "3503"; -- break; -- case OMAP3515: -- cpu_s = "3515"; -+ char *cpu_family_s, *cpu_s, *sec_s; -+ -+ switch(get_cpu_family()) { -+ case CPU_OMAP34XX: -+ cpu_family_s = "OMAP"; -+ switch (get_cpu_type()) { -+ case OMAP3503: -+ cpu_s = "3503"; -+ break; -+ case OMAP3515: -+ cpu_s = "3515"; -+ break; -+ case OMAP3525: -+ cpu_s = "3525"; -+ break; -+ case OMAP3530: -+ cpu_s = "3530"; -+ break; -+ default: -+ cpu_s = "35XX"; -+ break; -+ } - break; -- case OMAP3525: -- cpu_s = "3525"; -+ case CPU_AM35XX: -+ cpu_family_s = "AM"; -+ switch (get_cpu_type()) { -+ case AM3505: -+ cpu_s = "3505"; -+ break; -+ case AM3517: -+ cpu_s = "3517"; -+ break; -+ default: -+ cpu_s = "35XX"; -+ break; -+ } - break; -- case OMAP3530: -- cpu_s = "3530"; -+ case CPU_OMAP36XX: -+ cpu_family_s = "OMAP"; -+ switch (get_cpu_type()) { -+ case OMAP3730: -+ cpu_s = "3630/3730"; -+ break; -+ default: -+ cpu_s = "36XX/37XX"; -+ break; -+ } - break; - default: -+ cpu_family_s = "OMAP"; - cpu_s = "35XX"; -- break; - } - - switch (get_device_type()) { -@@ -304,16 +377,16 @@ int print_cpuinfo (void) - sec_s = "?"; - } - -- printf("OMAP%s-%s ES%s, CPU-OPP2, L3-165MHz, ", -- cpu_s, sec_s, rev_s[get_cpu_rev()]); -+ printf("%s%s-%s ES%s, CPU-OPP2, L3-165MHz, ", -+ cpu_family_s, cpu_s, sec_s, rev_s[get_cpu_rev()]); - -- printf("Max clock-"); -- if ((get_cpu_rev() >= CPU_3XX_ES31) && (get_sku_id() == SKUID_CLK_720MHZ)) -- printf("720Mhz\n"); -- else printf("600Mhz\n"); -+ if (get_cpu_family() == CPU_OMAP34XX) -+ if ((get_cpu_rev() >= CPU_3XX_ES31) && -+ (get_sku_id() == SKUID_CLK_720MHZ)) -+ printf("Max clock-720Mhz\n"); -+ else printf("Max clock-600Mhz\n"); -+ else printf("\n"); - -- -- - return 0; - } - #endif /* CONFIG_DISPLAY_CPUINFO */ --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0019-OMAP3-clocks-update-clock-setup-for-36XX-37XX.patch b/recipes-bsp/u-boot/u-boot/0019-OMAP3-clocks-update-clock-setup-for-36XX-37XX.patch deleted file mode 100644 index fc33fba..0000000 --- a/recipes-bsp/u-boot/u-boot/0019-OMAP3-clocks-update-clock-setup-for-36XX-37XX.patch +++ /dev/null @@ -1,826 +0,0 @@ -From 276236da04d67dfad61ccab5d4700613ae8527f9 Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Tue, 23 Mar 2010 09:20:56 -0700 -Subject: [PATCH 19/51] OMAP3: clocks: update clock setup for 36XX/37XX - ---- - cpu/arm_cortexa8/omap3/clock.c | 559 +++++++++++++++++++++-------- - cpu/arm_cortexa8/omap3/lowlevel_init.S | 69 ++++ - include/asm-arm/arch-omap3/clocks.h | 17 + - include/asm-arm/arch-omap3/clocks_omap3.h | 27 ++ - 4 files changed, 525 insertions(+), 147 deletions(-) - -diff --git a/cpu/arm_cortexa8/omap3/clock.c b/cpu/arm_cortexa8/omap3/clock.c -index 6330c9e..538a183 100644 ---- a/cpu/arm_cortexa8/omap3/clock.c -+++ b/cpu/arm_cortexa8/omap3/clock.c -@@ -47,17 +47,12 @@ u32 get_osc_clk_speed(void) - struct s32ktimer *s32k_base = (struct s32ktimer *)SYNC_32KTIMER_BASE; - - val = readl(&prm_base->clksrc_ctrl); -- - if (val & SYSCLKDIV_2) - cdiv = 2; -- else if (val & SYSCLKDIV_1) -- cdiv = 1; - else -- /* -- * Should never reach here! (Assume divider as 1) -- */ - cdiv = 1; - -+ - /* enable timer2 */ - val = readl(&prcm_base->clksel_wkup) | CLKSEL_GPT1; - -@@ -67,7 +62,6 @@ u32 get_osc_clk_speed(void) - /* Enable I and F Clocks for GPT1 */ - val = readl(&prcm_base->iclken_wkup) | EN_GPT1 | EN_32KSYNC; - writel(val, &prcm_base->iclken_wkup); -- - val = readl(&prcm_base->fclken_wkup) | EN_GPT1; - writel(val, &prcm_base->fclken_wkup); - -@@ -87,13 +81,10 @@ u32 get_osc_clk_speed(void) - - /* wait for 40 cycles */ - while (readl(&s32k_base->s32k_cr) < (start + 20)) ; -+ - cend = readl(&gpt1_base->tcrr); /* get end sys_clk count */ - cdiff = cend - cstart; /* get elapsed ticks */ -- -- if (cdiv == 2) -- { -- cdiff *= 2; -- } -+ cdiff *= cdiv; - - /* based on number of ticks assign speed */ - if (cdiff > 19000) -@@ -135,65 +126,25 @@ void get_sys_clkin_sel(u32 osc_clk, u32 *sys_clkin_sel) - } - } - -+/* -+ * OMAP3530 specific functions -+ */ -+ - /****************************************************************************** -- * prcm_init() - inits clocks for PRCM as defined in clocks.h -- * called from SRAM, or Flash (using temp SRAM stack). -+ * Initialize CORE DPLL for OMAP34x/35x - *****************************************************************************/ --void prcm_init(void) -+static void dpll3_init_34xx(u32 sil_index, u32 clk_index) - { -+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE; -+ dpll_param *ptr = (dpll_param *) get_core_dpll_param(); - void (*f_lock_pll) (u32, u32, u32, u32); - int xip_safe, p0, p1, p2, p3; -- u32 osc_clk = 0, sys_clkin_sel; -- u32 clk_index, sil_index = 0; -- struct prm *prm_base = (struct prm *)PRM_BASE; -- struct prcm *prcm_base = (struct prcm *)PRCM_BASE; -- dpll_param *dpll_param_p; -- -- f_lock_pll = (void *) ((u32) &_end_vect - (u32) &_start + -- SRAM_VECT_CODE); - - xip_safe = is_running_in_sram(); - -- /* -- * Gauge the input clock speed and find out the sys_clkin_sel -- * value corresponding to the input clock. -- */ -- osc_clk = get_osc_clk_speed(); -- get_sys_clkin_sel(osc_clk, &sys_clkin_sel); -+ /* Moving to the right sysclk and ES rev base */ -+ ptr = ptr + (3 * clk_index) + sil_index; - -- /* set input crystal speed */ -- sr32(&prm_base->clksel, 0, 3, sys_clkin_sel); -- -- /* If the input clock is greater than 19.2M always divide/2 */ -- if (sys_clkin_sel > 2) { -- /* input clock divider */ -- sr32(&prm_base->clksrc_ctrl, 6, 2, 2); -- clk_index = sys_clkin_sel / 2; -- } else { -- /* input clock divider */ -- sr32(&prm_base->clksrc_ctrl, 6, 2, 1); -- clk_index = sys_clkin_sel; -- } -- -- /* -- * The DPLL tables are defined according to sysclk value and -- * silicon revision. The clk_index value will be used to get -- * the values for that input sysclk from the DPLL param table -- * and sil_index will get the values for that SysClk for the -- * appropriate silicon rev. -- */ -- if (get_cpu_rev()) -- sil_index = 1; -- -- /* Unlock MPU DPLL (slows things down, and needed later) */ -- sr32(&prcm_base->clken_pll_mpu, 0, 3, PLL_LOW_POWER_BYPASS); -- wait_on_value(ST_MPU_CLK, 0, &prcm_base->idlest_pll_mpu, LDELAY); -- -- /* Getting the base address of Core DPLL param table */ -- dpll_param_p = (dpll_param *) get_core_dpll_param(); -- -- /* Moving it to the right sysclk and ES rev base */ -- dpll_param_p = dpll_param_p + 3 * clk_index + sil_index; - if (xip_safe) { - /* - * CORE DPLL -@@ -208,34 +159,38 @@ void prcm_init(void) - * work. write another value and then default value. - */ - -- /* m3x2 */ -- sr32(&prcm_base->clksel1_emu, 16, 5, CORE_M3X2 + 1); -- /* m3x2 */ -+ /* CM_CLKSEL1_EMU[DIV_DPLL3] */ -+ sr32(&prcm_base->clksel1_emu, 16, 5, (CORE_M3X2 + 1)) ; - sr32(&prcm_base->clksel1_emu, 16, 5, CORE_M3X2); -- /* Set M2 */ -- sr32(&prcm_base->clksel1_pll, 27, 2, dpll_param_p->m2); -- /* Set M */ -- sr32(&prcm_base->clksel1_pll, 16, 11, dpll_param_p->m); -- /* Set N */ -- sr32(&prcm_base->clksel1_pll, 8, 7, dpll_param_p->n); -- /* 96M Src */ -+ -+ /* M2 (CORE_DPLL_CLKOUT_DIV): CM_CLKSEL1_PLL[27:31] */ -+ sr32(&prcm_base->clksel1_pll, 27, 5, ptr->m2); -+ -+ /* M (CORE_DPLL_MULT): CM_CLKSEL1_PLL[16:26] */ -+ sr32(&prcm_base->clksel1_pll, 16, 11, ptr->m); -+ -+ /* N (CORE_DPLL_DIV): CM_CLKSEL1_PLL[8:14] */ -+ sr32(&prcm_base->clksel1_pll, 8, 7, ptr->n); -+ -+ /* Source is the CM_96M_FCLK: CM_CLKSEL1_PLL[6] */ - sr32(&prcm_base->clksel1_pll, 6, 1, 0); -- /* ssi */ -+ -+ /* SSI */ - sr32(&prcm_base->clksel_core, 8, 4, CORE_SSI_DIV); -- /* fsusb */ -+ /* FSUSB */ - sr32(&prcm_base->clksel_core, 4, 2, CORE_FUSB_DIV); -- /* l4 */ -+ /* L4 */ - sr32(&prcm_base->clksel_core, 2, 2, CORE_L4_DIV); -- /* l3 */ -+ /* L3 */ - sr32(&prcm_base->clksel_core, 0, 2, CORE_L3_DIV); -- /* gfx */ -- sr32(&prcm_base->clksel_gfx, 0, 3, GFX_DIV); -- /* reset mgr */ -+ /* GFX */ -+ sr32(&prcm_base->clksel_gfx, 0, 3, GFX_DIV); -+ /* RESET MGR */ - sr32(&prcm_base->clksel_wkup, 1, 2, WKUP_RSM); -- /* FREQSEL */ -- sr32(&prcm_base->clken_pll, 4, 4, dpll_param_p->fsel); -- /* lock mode */ -- sr32(&prcm_base->clken_pll, 0, 3, PLL_LOCK); -+ /* FREQSEL (CORE_DPLL_FREQSEL): CM_CLKEN_PLL[4:7] */ -+ sr32(&prcm_base->clken_pll, 4, 4, ptr->fsel); -+ /* LOCK MODE */ -+ sr32(&prcm_base->clken_pll, 0, 3, PLL_LOCK); - - wait_on_value(ST_CORE_CLK, 1, &prcm_base->idlest_ckgen, - LDELAY); -@@ -244,102 +199,411 @@ void prcm_init(void) - * if running from flash, jump to small relocated code - * area in SRAM. - */ -+ f_lock_pll = (void *) ((u32) &_end_vect - (u32) &_start + -+ SRAM_VECT_CODE); -+ - p0 = readl(&prcm_base->clken_pll); - sr32(&p0, 0, 3, PLL_FAST_RELOCK_BYPASS); -- sr32(&p0, 4, 4, dpll_param_p->fsel); /* FREQSEL */ -+ /* FREQSEL (CORE_DPLL_FREQSEL): CM_CLKEN_PLL[4:7] */ -+ sr32(&p0, 4, 4, ptr->fsel); - - p1 = readl(&prcm_base->clksel1_pll); -- sr32(&p1, 27, 2, dpll_param_p->m2); /* Set M2 */ -- sr32(&p1, 16, 11, dpll_param_p->m); /* Set M */ -- sr32(&p1, 8, 7, dpll_param_p->n); /* Set N */ -- sr32(&p1, 6, 1, 0); /* set source for 96M */ -+ /* M2 (CORE_DPLL_CLKOUT_DIV): CM_CLKSEL1_PLL[27:31] */ -+ sr32(&p1, 27, 5, ptr->m2); -+ /* M (CORE_DPLL_MULT): CM_CLKSEL1_PLL[16:26] */ -+ sr32(&p1, 16, 11, ptr->m); -+ /* N (CORE_DPLL_DIV): CM_CLKSEL1_PLL[8:14] */ -+ sr32(&p1, 8, 7, ptr->n); -+ /* Source is the CM_96M_FCLK: CM_CLKSEL1_PLL[6] */ -+ sr32(&p1, 6, 1, 0); - - p2 = readl(&prcm_base->clksel_core); -- sr32(&p2, 8, 4, CORE_SSI_DIV); /* ssi */ -- sr32(&p2, 4, 2, CORE_FUSB_DIV); /* fsusb */ -- sr32(&p2, 2, 2, CORE_L4_DIV); /* l4 */ -- sr32(&p2, 0, 2, CORE_L3_DIV); /* l3 */ -+ /* SSI */ -+ sr32(&p2, 8, 4, CORE_SSI_DIV); -+ /* FSUSB */ -+ sr32(&p2, 4, 2, CORE_FUSB_DIV); -+ /* L4 */ -+ sr32(&p2, 2, 2, CORE_L4_DIV); -+ /* L3 */ -+ sr32(&p2, 0, 2, CORE_L3_DIV); - - p3 = (u32)&prcm_base->idlest_ckgen; - - (*f_lock_pll) (p0, p1, p2, p3); - } -+} - -- /* PER DPLL */ -- sr32(&prcm_base->clken_pll, 16, 3, PLL_STOP); -- wait_on_value(ST_PERIPH_CLK, 0, &prcm_base->idlest_ckgen, LDELAY); -- -- /* Getting the base address to PER DPLL param table */ -- -- /* Set N */ -- dpll_param_p = (dpll_param *) get_per_dpll_param(); -+/****************************************************************************** -+ * Initialize PER DPLL for OMAP34x/35x -+ *****************************************************************************/ -+static void dpll4_init_34xx(u32 sil_index, u32 clk_index) -+{ -+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE; -+ dpll_param *ptr = (dpll_param *) get_per_dpll_param(); - - /* Moving it to the right sysclk base */ -- dpll_param_p = dpll_param_p + clk_index; -+ ptr = ptr + clk_index; -+ -+ /* EN_PERIPH_DPLL: CM_CLKEN_PLL[16:18] */ -+ sr32(&prcm_base->clken_pll, 16, 3, PLL_STOP); -+ wait_on_value(ST_PERIPH_CLK, 0, &prcm_base->idlest_ckgen, LDELAY); - - /* - * Errata 1.50 Workaround for OMAP3 ES1.0 only - * If using default divisors, write default divisor + 1 - * and then the actual divisor value - */ -- sr32(&prcm_base->clksel1_emu, 24, 5, PER_M6X2 + 1); /* set M6 */ -- sr32(&prcm_base->clksel1_emu, 24, 5, PER_M6X2); /* set M6 */ -- sr32(&prcm_base->clksel_cam, 0, 5, PER_M5X2 + 1); /* set M5 */ -- sr32(&prcm_base->clksel_cam, 0, 5, PER_M5X2); /* set M5 */ -- sr32(&prcm_base->clksel_dss, 0, 5, PER_M4X2 + 1); /* set M4 */ -- sr32(&prcm_base->clksel_dss, 0, 5, PER_M4X2); /* set M4 */ -- sr32(&prcm_base->clksel_dss, 8, 5, PER_M3X2 + 1); /* set M3 */ -- sr32(&prcm_base->clksel_dss, 8, 5, PER_M3X2); /* set M3 */ -- sr32(&prcm_base->clksel3_pll, 0, 5, dpll_param_p->m2 + 1); /* set M2 */ -- sr32(&prcm_base->clksel3_pll, 0, 5, dpll_param_p->m2); /* set M2 */ -+ /* M6 */ -+ sr32(&prcm_base->clksel1_emu, 24, 5, (PER_M6X2 + 1)); -+ sr32(&prcm_base->clksel1_emu, 24, 5, PER_M6X2); -+ /* M5 */ -+ sr32(&prcm_base->clksel_cam, 0, 5, (PER_M5X2 + 1)); -+ sr32(&prcm_base->clksel_cam, 0, 5, PER_M5X2); -+ /* M4 */ -+ sr32(&prcm_base->clksel_dss, 0, 5, (PER_M4X2 + 1)); -+ sr32(&prcm_base->clksel_dss, 0, 5, PER_M4X2); -+ /* M3 */ -+ sr32(&prcm_base->clksel_dss, 8, 5, (PER_M3X2 + 1)); -+ sr32(&prcm_base->clksel_dss, 8, 5, PER_M3X2); -+ /* M2 (DIV_96M): CM_CLKSEL3_PLL[0:4] */ -+ sr32(&prcm_base->clksel3_pll, 0, 5, (ptr->m2 + 1)); -+ sr32(&prcm_base->clksel3_pll, 0, 5, ptr->m2); - /* Workaround end */ - -- sr32(&prcm_base->clksel2_pll, 8, 11, dpll_param_p->m); /* set m */ -- sr32(&prcm_base->clksel2_pll, 0, 7, dpll_param_p->n); /* set n */ -- sr32(&prcm_base->clken_pll, 20, 4, dpll_param_p->fsel); /* FREQSEL */ -- sr32(&prcm_base->clken_pll, 16, 3, PLL_LOCK); /* lock mode */ -+ /* M (PERIPH_DPLL_MULT): CM_CLKSEL2_PLL[8:18] */ -+ sr32(&prcm_base->clksel2_pll, 8, 11, ptr->m); -+ -+ /* N (PERIPH_DPLL_DIV): CM_CLKSEL2_PLL[0:6] */ -+ sr32(&prcm_base->clksel2_pll, 0, 7, ptr->n); -+ -+ /* FREQSEL (PERIPH_DPLL_FREQSEL): CM_CLKEN_PLL[20:23] */ -+ sr32(&prcm_base->clken_pll, 20, 4, ptr->fsel); -+ -+ /* LOCK MODE (EN_PERIPH_DPLL): CM_CLKEN_PLL[16:18] */ -+ sr32(&prcm_base->clken_pll, 16, 3, PLL_LOCK); - wait_on_value(ST_PERIPH_CLK, 2, &prcm_base->idlest_ckgen, LDELAY); -+} - -- /* Getting the base address to MPU DPLL param table */ -- dpll_param_p = (dpll_param *) get_mpu_dpll_param(); -+static void mpu_init_34xx(u32 sil_index, u32 clk_index) -+{ -+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE; -+ dpll_param *ptr = (dpll_param *) get_mpu_dpll_param(); - -- /* Moving it to the right sysclk and ES rev base */ -- dpll_param_p = dpll_param_p + 3 * clk_index + sil_index; -+ /* Moving to the right sysclk and ES rev base */ -+ ptr = ptr + (3 * clk_index) + sil_index; - - /* MPU DPLL (unlocked already) */ - -- /* Set M2 */ -- sr32(&prcm_base->clksel2_pll_mpu, 0, 5, dpll_param_p->m2); -- /* Set M */ -- sr32(&prcm_base->clksel1_pll_mpu, 8, 11, dpll_param_p->m); -- /* Set N */ -- sr32(&prcm_base->clksel1_pll_mpu, 0, 7, dpll_param_p->n); -- /* FREQSEL */ -- sr32(&prcm_base->clken_pll_mpu, 4, 4, dpll_param_p->fsel); -- /* lock mode */ -- sr32(&prcm_base->clken_pll_mpu, 0, 3, PLL_LOCK); -- wait_on_value(ST_MPU_CLK, 1, &prcm_base->idlest_pll_mpu, LDELAY); -- -- /* Getting the base address to IVA DPLL param table */ -- dpll_param_p = (dpll_param *) get_iva_dpll_param(); -- -- /* Moving it to the right sysclk and ES rev base */ -- dpll_param_p = dpll_param_p + 3 * clk_index + sil_index; -- -- /* IVA DPLL (set to 12*20=240MHz) */ -+ /* M2 (MPU_DPLL_CLKOUT_DIV) : CM_CLKSEL2_PLL_MPU[0:4] */ -+ sr32(&prcm_base->clksel2_pll_mpu, 0, 5, ptr->m2); -+ -+ /* M (MPU_DPLL_MULT) : CM_CLKSEL2_PLL_MPU[8:18] */ -+ sr32(&prcm_base->clksel1_pll_mpu, 8, 11, ptr->m); -+ -+ /* N (MPU_DPLL_DIV) : CM_CLKSEL2_PLL_MPU[0:6] */ -+ sr32(&prcm_base->clksel1_pll_mpu, 0, 7, ptr->n); -+ -+ /* FREQSEL (MPU_DPLL_FREQSEL) : CM_CLKEN_PLL_MPU[4:7] */ -+ sr32(&prcm_base->clken_pll_mpu, 4, 4, ptr->fsel); -+} -+ -+static void iva_init_34xx(u32 sil_index, u32 clk_index) -+{ -+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE; -+ dpll_param *ptr = (dpll_param *) get_iva_dpll_param(); -+ -+ /* Moving to the right sysclk and ES rev base */ -+ ptr = ptr + (3 * clk_index) + sil_index; -+ -+ /* IVA DPLL */ -+ /* EN_IVA2_DPLL : CM_CLKEN_PLL_IVA2[0:2] */ - sr32(&prcm_base->clken_pll_iva2, 0, 3, PLL_STOP); - wait_on_value(ST_IVA2_CLK, 0, &prcm_base->idlest_pll_iva2, LDELAY); -- /* set M2 */ -- sr32(&prcm_base->clksel2_pll_iva2, 0, 5, dpll_param_p->m2); -- /* set M */ -- sr32(&prcm_base->clksel1_pll_iva2, 8, 11, dpll_param_p->m); -- /* set N */ -- sr32(&prcm_base->clksel1_pll_iva2, 0, 7, dpll_param_p->n); -- /* FREQSEL */ -- sr32(&prcm_base->clken_pll_iva2, 4, 4, dpll_param_p->fsel); -- /* lock mode */ -+ -+ /* M2 (IVA2_DPLL_CLKOUT_DIV) : CM_CLKSEL2_PLL_IVA2[0:4] */ -+ sr32(&prcm_base->clksel2_pll_iva2, 0, 5, ptr->m2); -+ -+ /* M (IVA2_DPLL_MULT) : CM_CLKSEL1_PLL_IVA2[8:18] */ -+ sr32(&prcm_base->clksel1_pll_iva2, 8, 11, ptr->m); -+ -+ /* N (IVA2_DPLL_DIV) : CM_CLKSEL1_PLL_IVA2[0:6] */ -+ sr32(&prcm_base->clksel1_pll_iva2, 0, 7, ptr->n); -+ -+ /* FREQSEL (IVA2_DPLL_FREQSEL) : CM_CLKEN_PLL_IVA2[4:7] */ -+ sr32(&prcm_base->clken_pll_iva2, 4, 4, ptr->fsel); -+ -+ /* LOCK MODE (EN_IVA2_DPLL) : CM_CLKEN_PLL_IVA2[0:2] */ - sr32(&prcm_base->clken_pll_iva2, 0, 3, PLL_LOCK); -+ - wait_on_value(ST_IVA2_CLK, 1, &prcm_base->idlest_pll_iva2, LDELAY); -+} -+ -+/* -+ * OMAP3630 specific functions -+ */ -+ -+/****************************************************************************** -+ * Initialize PER DPLL for OMAP36x/37x -+ *****************************************************************************/ -+static void dpll3_init_36xx(u32 sil_index, u32 clk_index) -+{ -+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE; -+ dpll_param *ptr = (dpll_param *) get_36x_core_dpll_param(); -+ void (*f_lock_pll) (u32, u32, u32, u32); -+ int xip_safe, p0, p1, p2, p3; -+ -+ xip_safe = is_running_in_sram(); -+ -+ /* Moving it to the right sysclk base */ -+ ptr += clk_index; -+ -+ if (xip_safe) { -+ /* CORE DPLL */ -+ -+ /* Select relock bypass: CM_CLKEN_PLL[0:2] */ -+ sr32(&prcm_base->clken_pll, 0, 3, PLL_FAST_RELOCK_BYPASS); -+ wait_on_value(ST_CORE_CLK, 0, &prcm_base->idlest_ckgen, -+ LDELAY); -+ -+ /* CM_CLKSEL1_EMU[DIV_DPLL3] */ -+ sr32(&prcm_base->clksel1_emu, 16, 5, CORE_M3X2); -+ -+ /* M2 (CORE_DPLL_CLKOUT_DIV): CM_CLKSEL1_PLL[27:31] */ -+ sr32(&prcm_base->clksel1_pll, 27, 5, ptr->m2); -+ -+ /* M (CORE_DPLL_MULT): CM_CLKSEL1_PLL[16:26] */ -+ sr32(&prcm_base->clksel1_pll, 16, 11, ptr->m); -+ -+ /* N (CORE_DPLL_DIV): CM_CLKSEL1_PLL[8:14] */ -+ sr32(&prcm_base->clksel1_pll, 8, 7, ptr->n); -+ -+ /* Source is the CM_96M_FCLK: CM_CLKSEL1_PLL[6] */ -+ sr32(&prcm_base->clksel1_pll, 6, 1, 0); -+ -+ /* SSI */ -+ sr32(&prcm_base->clksel_core, 8, 4, CORE_SSI_DIV); -+ /* FSUSB */ -+ sr32(&prcm_base->clksel_core, 4, 2, CORE_FUSB_DIV); -+ /* L4 */ -+ sr32(&prcm_base->clksel_core, 2, 2, CORE_L4_DIV); -+ /* L3 */ -+ sr32(&prcm_base->clksel_core, 0, 2, CORE_L3_DIV); -+ /* GFX */ -+ sr32(&prcm_base->clksel_gfx, 0, 3, GFX_DIV); -+ /* RESET MGR */ -+ sr32(&prcm_base->clksel_wkup, 1, 2, WKUP_RSM); -+ /* FREQSEL (CORE_DPLL_FREQSEL): CM_CLKEN_PLL[4:7] */ -+ sr32(&prcm_base->clken_pll, 4, 4, ptr->fsel); -+ /* LOCK MODE */ -+ sr32(&prcm_base->clken_pll, 0, 3, PLL_LOCK); -+ -+ wait_on_value(ST_CORE_CLK, 1, &prcm_base->idlest_ckgen, -+ LDELAY); -+ } else if (is_running_in_flash()) { -+ /* -+ * if running from flash, jump to small relocated code -+ * area in SRAM. -+ */ -+ f_lock_pll = (void *) ((u32) &_end_vect - (u32) &_start + -+ SRAM_VECT_CODE); -+ -+ p0 = readl(&prcm_base->clken_pll); -+ sr32(&p0, 0, 3, PLL_FAST_RELOCK_BYPASS); -+ /* FREQSEL (CORE_DPLL_FREQSEL): CM_CLKEN_PLL[4:7] */ -+ sr32(&p0, 4, 4, ptr->fsel); -+ -+ p1 = readl(&prcm_base->clksel1_pll); -+ /* M2 (CORE_DPLL_CLKOUT_DIV): CM_CLKSEL1_PLL[27:31] */ -+ sr32(&p1, 27, 5, ptr->m2); -+ /* M (CORE_DPLL_MULT): CM_CLKSEL1_PLL[16:26] */ -+ sr32(&p1, 16, 11, ptr->m); -+ /* N (CORE_DPLL_DIV): CM_CLKSEL1_PLL[8:14] */ -+ sr32(&p1, 8, 7, ptr->n); -+ /* Source is the CM_96M_FCLK: CM_CLKSEL1_PLL[6] */ -+ sr32(&p1, 6, 1, 0); -+ -+ p2 = readl(&prcm_base->clksel_core); -+ /* SSI */ -+ sr32(&p2, 8, 4, CORE_SSI_DIV); -+ /* FSUSB */ -+ sr32(&p2, 4, 2, CORE_FUSB_DIV); -+ /* L4 */ -+ sr32(&p2, 2, 2, CORE_L4_DIV); -+ /* L3 */ -+ sr32(&p2, 0, 2, CORE_L3_DIV); -+ -+ p3 = (u32)&prcm_base->idlest_ckgen; -+ -+ (*f_lock_pll) (p0, p1, p2, p3); -+ } -+} -+ -+static void dpll4_init_36xx(u32 sil_index, u32 clk_index) -+{ -+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE; -+ struct dpll_per_36x_param *ptr; -+ -+ ptr = (struct dpll_per_36x_param *)get_36x_per_dpll_param(); -+ -+ /* Moving it to the right sysclk base */ -+ ptr += clk_index; -+ -+ /* EN_PERIPH_DPLL: CM_CLKEN_PLL[16:18] */ -+ sr32(&prcm_base->clken_pll, 16, 3, PLL_STOP); -+ wait_on_value(ST_PERIPH_CLK, 0, &prcm_base->idlest_ckgen, LDELAY); -+ -+ /* M6 (DIV_DPLL4): CM_CLKSEL1_EMU[24:29] */ -+ sr32(&prcm_base->clksel1_emu, 24, 6, ptr->m6); -+ -+ /* M5 (CLKSEL_CAM): CM_CLKSEL1_EMU[0:5] */ -+ sr32(&prcm_base->clksel_cam, 0, 6, ptr->m5); -+ -+ /* M4 (CLKSEL_DSS1): CM_CLKSEL_DSS[0:5] */ -+ sr32(&prcm_base->clksel_dss, 0, 6, ptr->m4); -+ -+ /* M3 (CLKSEL_DSS1): CM_CLKSEL_DSS[8:13] */ -+ sr32(&prcm_base->clksel_dss, 8, 6, ptr->m3); -+ -+ /* M2 (DIV_96M): CM_CLKSEL3_PLL[0:4] */ -+ sr32(&prcm_base->clksel3_pll, 0, 5, ptr->m2); -+ -+ /* M (PERIPH_DPLL_MULT): CM_CLKSEL2_PLL[8:19] */ -+ sr32(&prcm_base->clksel2_pll, 8, 12, ptr->m); -+ -+ /* N (PERIPH_DPLL_DIV): CM_CLKSEL2_PLL[0:6] */ -+ sr32(&prcm_base->clksel2_pll, 0, 7, ptr->n); -+ -+ /* M2DIV (CLKSEL_96M): CM_CLKSEL_CORE[12:13] */ -+ sr32(&prcm_base->clksel_core, 12, 2, ptr->m2div); -+ -+ /* LOCK MODE (EN_PERIPH_DPLL): CM_CLKEN_PLL[16:18] */ -+ sr32(&prcm_base->clken_pll, 16, 3, PLL_LOCK); -+ wait_on_value(ST_PERIPH_CLK, 2, &prcm_base->idlest_ckgen, LDELAY); -+} -+ -+static void mpu_init_36xx(u32 sil_index, u32 clk_index) -+{ -+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE; -+ dpll_param *ptr = (dpll_param *) get_36x_mpu_dpll_param(); -+ -+ /* Moving to the right sysclk */ -+ ptr += clk_index; -+ -+ /* MPU DPLL (unlocked already */ -+ -+ /* M2 (MPU_DPLL_CLKOUT_DIV) : CM_CLKSEL2_PLL_MPU[0:4] */ -+ sr32(&prcm_base->clksel2_pll_mpu, 0, 5, ptr->m2); -+ -+ /* M (MPU_DPLL_MULT) : CM_CLKSEL2_PLL_MPU[8:18] */ -+ sr32(&prcm_base->clksel1_pll_mpu, 8, 11, ptr->m); -+ -+ /* N (MPU_DPLL_DIV) : CM_CLKSEL2_PLL_MPU[0:6] */ -+ sr32(&prcm_base->clksel1_pll_mpu, 0, 7, ptr->n); -+} -+ -+static void iva_init_36xx(u32 sil_index, u32 clk_index) -+{ -+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE; -+ dpll_param *ptr = (dpll_param *)get_36x_iva_dpll_param(); -+ -+ /* Moving to the right sysclk */ -+ ptr += clk_index; -+ -+ /* IVA DPLL */ -+ /* EN_IVA2_DPLL : CM_CLKEN_PLL_IVA2[0:2] */ -+ sr32(&prcm_base->clken_pll_iva2, 0, 3, PLL_STOP); -+ wait_on_value(ST_IVA2_CLK, 0, &prcm_base->idlest_pll_iva2, LDELAY); -+ -+ /* M2 (IVA2_DPLL_CLKOUT_DIV) : CM_CLKSEL2_PLL_IVA2[0:4] */ -+ sr32(&prcm_base->clksel2_pll_iva2, 0, 5, ptr->m2); -+ -+ /* M (IVA2_DPLL_MULT) : CM_CLKSEL1_PLL_IVA2[8:18] */ -+ sr32(&prcm_base->clksel1_pll_iva2, 8, 11, ptr->m); -+ -+ /* N (IVA2_DPLL_DIV) : CM_CLKSEL1_PLL_IVA2[0:6] */ -+ sr32(&prcm_base->clksel1_pll_iva2, 0, 7, ptr->n); -+ -+ /* LOCK (MODE (EN_IVA2_DPLL) : CM_CLKEN_PLL_IVA2[0:2] */ -+ sr32(&prcm_base->clken_pll_iva2, 0, 3, PLL_LOCK); -+ -+ wait_on_value(ST_IVA2_CLK, 1, &prcm_base->idlest_pll_iva2, LDELAY); -+} -+ -+/****************************************************************************** -+ * prcm_init() - inits clocks for PRCM as defined in clocks.h -+ * called from SRAM, or Flash (using temp SRAM stack). -+ *****************************************************************************/ -+void prcm_init(void) -+{ -+ u32 osc_clk = 0, sys_clkin_sel; -+ u32 clk_index, sil_index = 0; -+ struct prm *prm_base = (struct prm *)PRM_BASE; -+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE; -+ -+ /* -+ * Gauge the input clock speed and find out the sys_clkin_sel -+ * value corresponding to the input clock. -+ */ -+ osc_clk = get_osc_clk_speed(); -+ get_sys_clkin_sel(osc_clk, &sys_clkin_sel); -+ -+ /* set input crystal speed */ -+ sr32(&prm_base->clksel, 0, 3, sys_clkin_sel); -+ -+ /* If the input clock is greater than 19.2M always divide/2 */ -+ if (sys_clkin_sel > 2) { -+ /* input clock divider */ -+ sr32(&prm_base->clksrc_ctrl, 6, 2, 2); -+ clk_index = sys_clkin_sel / 2; -+ } else { -+ /* input clock divider */ -+ sr32(&prm_base->clksrc_ctrl, 6, 2, 1); -+ clk_index = sys_clkin_sel; -+ } -+ -+ if (get_cpu_family() == CPU_OMAP36XX) { -+ /* Unlock MPU DPLL (slows things down, and needed later) */ -+ sr32(&prcm_base->clken_pll_mpu, 0, 3, PLL_LOW_POWER_BYPASS); -+ wait_on_value(ST_MPU_CLK, 0, &prcm_base->idlest_pll_mpu, -+ LDELAY); -+ -+ dpll3_init_36xx(0, clk_index); -+ dpll4_init_36xx(0, clk_index); -+ iva_init_36xx(0, clk_index); -+ mpu_init_36xx(0, clk_index); -+ -+ /* Lock MPU DPLL to set frequency */ -+ sr32(&prcm_base->clken_pll_mpu, 0, 3, PLL_LOCK); -+ wait_on_value(ST_MPU_CLK, 1, &prcm_base->idlest_pll_mpu, -+ LDELAY); -+ } else { -+ /* -+ * The DPLL tables are defined according to sysclk value and -+ * silicon revision. The clk_index value will be used to get -+ * the values for that input sysclk from the DPLL param table -+ * and sil_index will get the values for that SysClk for the -+ * appropriate silicon rev. -+ */ -+ if (((get_cpu_family() == CPU_OMAP34XX) -+ && (get_cpu_rev() >= CPU_3XX_ES20)) || -+ (get_cpu_family() == CPU_AM35XX)) -+ sil_index = 1; -+ -+ /* Unlock MPU DPLL (slows things down, and needed later) */ -+ sr32(&prcm_base->clken_pll_mpu, 0, 3, PLL_LOW_POWER_BYPASS); -+ wait_on_value(ST_MPU_CLK, 0, &prcm_base->idlest_pll_mpu, -+ LDELAY); -+ -+ dpll3_init_34xx(sil_index, clk_index); -+ dpll4_init_34xx(sil_index, clk_index); -+ iva_init_34xx(sil_index, clk_index); -+ mpu_init_34xx(sil_index, clk_index); -+ -+ /* Lock MPU DPLL to set frequency */ -+ sr32(&prcm_base->clken_pll_mpu, 0, 3, PLL_LOCK); -+ wait_on_value(ST_MPU_CLK, 1, &prcm_base->idlest_pll_mpu, -+ LDELAY); -+ } - - /* Set up GPTimers to sys_clk source only */ - sr32(&prcm_base->clksel_per, 0, 8, 0xff); -@@ -414,3 +678,4 @@ void per_clocks_enable(void) - - sdelay(1000); - } -+ -diff --git a/cpu/arm_cortexa8/omap3/lowlevel_init.S b/cpu/arm_cortexa8/omap3/lowlevel_init.S -index 73063ec..061d75f 100644 ---- a/cpu/arm_cortexa8/omap3/lowlevel_init.S -+++ b/cpu/arm_cortexa8/omap3/lowlevel_init.S -@@ -359,3 +359,72 @@ per_dpll_param: - get_per_dpll_param: - adr r0, per_dpll_param - mov pc, lr -+ -+/* -+ * Tables for 36x/37x devices -+ * -+ */ -+mpu_36x_dpll_param: -+/* 12MHz */ -+.word 50, 0, 0, 1 -+/* 13MHz */ -+.word 600, 12, 0, 1 -+/* 19.2MHz */ -+.word 125, 3, 0, 1 -+/* 26MHz */ -+.word 300, 12, 0, 1 -+/* 38.4MHz */ -+.word 125, 7, 0, 1 -+ -+iva_36x_dpll_param: -+/* 12MHz */ -+.word 130, 2, 0, 1 -+/* 13MHz */ -+.word 40, 0, 0, 1 -+/* 19.2MHz */ -+.word 325, 11, 0, 1 -+/* 26MHz */ -+.word 20, 0, 0, 1 -+/* 38.4MHz */ -+.word 325, 23, 0, 1 -+ -+core_36x_dpll_param: -+/* 12MHz */ -+.word 100, 2, 0, 1 -+/* 13MHz */ -+.word 400, 12, 0, 1 -+/* 19.2MHz */ -+.word 375, 17, 0, 1 -+/* 26MHz */ -+.word 200, 12, 0, 1 -+/* 38.4MHz */ -+.word 375, 35, 0, 1 -+ -+per_36x_dpll_param: -+/* SYSCLK M N M2 M3 M4 M5 M6 m2DIV */ -+.word 12000, 360, 4, 9, 16, 5, 4, 3, 1 -+.word 13000, 864, 12, 9, 16, 9, 4, 3, 1 -+.word 19200, 360, 7, 9, 16, 5, 4, 3, 1 -+.word 26000, 432, 12, 9, 16, 9, 4, 3, 1 -+.word 38400, 360, 15, 9, 16, 5, 4, 3, 1 -+ -+.globl get_36x_mpu_dpll_param -+get_36x_mpu_dpll_param: -+ adr r0, mpu_36x_dpll_param -+ mov pc, lr -+ -+.globl get_36x_iva_dpll_param -+get_36x_iva_dpll_param: -+ adr r0, iva_36x_dpll_param -+ mov pc, lr -+ -+.globl get_36x_core_dpll_param -+get_36x_core_dpll_param: -+ adr r0, core_36x_dpll_param -+ mov pc, lr -+ -+.globl get_36x_per_dpll_param -+get_36x_per_dpll_param: -+ adr r0, per_36x_dpll_param -+ mov pc, lr -+ -diff --git a/include/asm-arm/arch-omap3/clocks.h b/include/asm-arm/arch-omap3/clocks.h -index 71a0cb6..a5f2d08 100644 ---- a/include/asm-arm/arch-omap3/clocks.h -+++ b/include/asm-arm/arch-omap3/clocks.h -@@ -51,12 +51,29 @@ typedef struct { - unsigned int m2; - } dpll_param; - -+struct dpll_per_36x_param { -+ unsigned int sys_clk; -+ unsigned int m; -+ unsigned int n; -+ unsigned int m2; -+ unsigned int m3; -+ unsigned int m4; -+ unsigned int m5; -+ unsigned int m6; -+ unsigned int m2div; -+}; -+ - /* Following functions are exported from lowlevel_init.S */ - extern dpll_param *get_mpu_dpll_param(void); - extern dpll_param *get_iva_dpll_param(void); - extern dpll_param *get_core_dpll_param(void); - extern dpll_param *get_per_dpll_param(void); - -+extern dpll_param *get_36x_mpu_dpll_param(void); -+extern dpll_param *get_36x_iva_dpll_param(void); -+extern dpll_param *get_36x_core_dpll_param(void); -+extern dpll_param *get_36x_per_dpll_param(void); -+ - extern void *_end_vect, *_start; - - #endif -diff --git a/include/asm-arm/arch-omap3/clocks_omap3.h b/include/asm-arm/arch-omap3/clocks_omap3.h -index 661407b..30ef690 100644 ---- a/include/asm-arm/arch-omap3/clocks_omap3.h -+++ b/include/asm-arm/arch-omap3/clocks_omap3.h -@@ -282,4 +282,31 @@ - #define PER_FSEL_38P4 0x07 - #define PER_M2_38P4 0x09 - -+/* 36XX PER DPLL */ -+ -+#define PER_36XX_M_12 0x1B0 -+#define PER_36XX_N_12 0x05 -+#define PER_36XX_FSEL_12 0x07 -+#define PER_36XX_M2_12 0x09 -+ -+#define PER_36XX_M_13 0x360 -+#define PER_36XX_N_13 0x0C -+#define PER_36XX_FSEL_13 0x03 -+#define PER_36XX_M2_13 0x09 -+ -+#define PER_36XX_M_19P2 0x1C2 -+#define PER_36XX_N_19P2 0x09 -+#define PER_36XX_FSEL_19P2 0x07 -+#define PER_36XX_M2_19P2 0x09 -+ -+#define PER_36XX_M_26 0x1B0 -+#define PER_36XX_N_26 0x0C -+#define PER_36XX_FSEL_26 0x07 -+#define PER_36XX_M2_26 0x09 -+ -+#define PER_36XX_M_38P4 0x1C2 -+#define PER_36XX_N_38P4 0x13 -+#define PER_36XX_FSEL_38P4 0x07 -+#define PER_36XX_M2_38P4 0x09 -+ - #endif /* endif _CLOCKS_OMAP3_H_ */ --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0020-OMAP3-beagle-add-support-for-Beagle-xM.patch b/recipes-bsp/u-boot/u-boot/0020-OMAP3-beagle-add-support-for-Beagle-xM.patch deleted file mode 100644 index abe4655..0000000 --- a/recipes-bsp/u-boot/u-boot/0020-OMAP3-beagle-add-support-for-Beagle-xM.patch +++ /dev/null @@ -1,137 +0,0 @@ -From 8a8738a7d042a80ddef68a9683d7dda77bed8765 Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Tue, 23 Mar 2010 09:21:49 -0700 -Subject: [PATCH 20/51] OMAP3: beagle: add support for Beagle xM - ---- - board/ti/beagle/beagle.c | 23 +++++++++++++++-------- - board/ti/beagle/beagle.h | 34 ++++++++++++++++++++++++++++++---- - include/configs/omap3_beagle.h | 1 + - 3 files changed, 46 insertions(+), 12 deletions(-) - -diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c -index b4ea7e6..d357588 100644 ---- a/board/ti/beagle/beagle.c -+++ b/board/ti/beagle/beagle.c -@@ -75,7 +75,7 @@ int beagle_get_revision(void) - * GPIO173, GPIO172, GPIO171: 1 1 1 => Ax/Bx - * GPIO173, GPIO172, GPIO171: 1 1 0 => C1/2/3 - * GPIO173, GPIO172, GPIO171: 1 0 1 => C4 -- * GPIO173, GPIO172, GPIO171: 0 0 0 => D -+ * GPIO173, GPIO172, GPIO171: 0 0 0 => XM - */ - void beagle_identify(void) - { -@@ -108,29 +108,36 @@ int misc_init_r(void) - twl4030_power_init(); - twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); - -- printf("Board revision "); - switch (beagle_revision) { - case REVISION_AXBX: -- printf("Ax/Bx\n"); -+ printf("Beagle Rev Ax/Bx\n"); - break; - case REVISION_CX: -- printf("C1/C2/C3\n"); -+ printf("Beagle Rev C1/C2/C3\n"); - MUX_BEAGLE_C(); - break; - case REVISION_C4: -- printf("C4\n"); -+ printf("Beagle Rev C4\n"); - MUX_BEAGLE_C(); - /* Set VAUX2 to 1.8V for EHCI PHY */ - twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, - TWL4030_PM_RECEIVER_VAUX2_VSEL_18, - TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, - TWL4030_PM_RECEIVER_DEV_GRP_P1); -+ setenv("mpurate", "720"); - break; -- case REVISION_D: -- printf("D\n"); -+ case REVISION_XM: -+ printf("Beagle xM Rev A\n"); -+ MUX_BEAGLE_XM(); -+ /* Set VAUX2 to 1.8V for EHCI PHY */ -+ twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, -+ TWL4030_PM_RECEIVER_VAUX2_VSEL_18, -+ TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, -+ TWL4030_PM_RECEIVER_DEV_GRP_P1); -+ setenv("mpurate", "720"); - break; - default: -- printf("unknown 0x%02x\n", beagle_revision); -+ printf("Beagle unknown 0x%02x\n", beagle_revision); - } - - /* Configure GPIOs to output */ -diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h -index d95fd78..fd06d46 100644 ---- a/board/ti/beagle/beagle.h -+++ b/board/ti/beagle/beagle.h -@@ -38,7 +38,7 @@ const omap3_sysinfo sysinfo = { - #define REVISION_AXBX 0x7 - #define REVISION_CX 0x6 - #define REVISION_C4 0x5 --#define REVISION_D 0x0 -+#define REVISION_XM 0x0 - - /* - * IEN - Input Enable -@@ -379,11 +379,37 @@ const omap3_sysinfo sysinfo = { - MUX_VAL(CP(SDRC_CKE1), (IDIS | PTU | EN | M0)) /*sdrc_cke1*/ - - #define MUX_BEAGLE_C() \ -- MUX_VAL(CP(MCBSP3_DX), (IEN | PTD | DIS | M4)) /*GPIO_140*/\ -- MUX_VAL(CP(MCBSP3_DR), (IEN | PTD | DIS | M4)) /*GPIO_142*/\ -- MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_141*/\ -+ MUX_VAL(CP(MCBSP3_DX), (IEN | PTD | DIS | M4)) /*GPIO_140*/\ -+ MUX_VAL(CP(MCBSP3_DR), (IEN | PTD | DIS | M4)) /*GPIO_142*/\ -+ MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_141*/\ - MUX_VAL(CP(UART2_CTS), (IEN | PTU | EN | M0)) /*UART2_CTS*/\ - MUX_VAL(CP(UART2_RTS), (IDIS | PTD | DIS | M0)) /*UART2_RTS*/\ - MUX_VAL(CP(UART2_TX), (IDIS | PTD | DIS | M0)) /*UART2_TX*/ - -+#define MUX_BEAGLE_XM() \ -+ MUX_VAL(CP(MCBSP3_DX), (IEN | PTD | DIS | M4)) /*GPIO_140*/\ -+ MUX_VAL(CP(MCBSP3_DR), (IEN | PTD | DIS | M4)) /*GPIO_142*/\ -+ MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_141*/\ -+ MUX_VAL(CP(UART2_CTS), (IEN | PTU | EN | M0)) /*UART2_CTS*/\ -+ MUX_VAL(CP(UART2_RTS), (IDIS | PTD | DIS | M0)) /*UART2_RTS*/\ -+ MUX_VAL(CP(UART2_TX), (IDIS | PTD | DIS | M0)) /*UART2_TX*/\ -+ MUX_VAL(CP(DSS_DATA0), (IDIS | PTD | DIS | M7)) /*safe_mode*/\ -+ MUX_VAL(CP(DSS_DATA1), (IDIS | PTD | DIS | M7)) /*safe_mode*/\ -+ MUX_VAL(CP(DSS_DATA2), (IDIS | PTD | DIS | M7)) /*safe_mode*/\ -+ MUX_VAL(CP(DSS_DATA3), (IDIS | PTD | DIS | M7)) /*safe_mode*/\ -+ MUX_VAL(CP(DSS_DATA4), (IDIS | PTD | DIS | M7)) /*safe_mode*/\ -+ MUX_VAL(CP(DSS_DATA5), (IDIS | PTD | DIS | M7)) /*safe_mode*/\ -+ MUX_VAL(CP(DSS_DATA18), (IDIS | PTD | DIS | M3)) /*DSS_DATA0*/\ -+ MUX_VAL(CP(DSS_DATA19), (IDIS | PTD | DIS | M3)) /*DSS_DATA1*/\ -+ MUX_VAL(CP(DSS_DATA20), (IDIS | PTD | DIS | M3)) /*DSS_DATA2*/\ -+ MUX_VAL(CP(DSS_DATA21), (IDIS | PTD | DIS | M3)) /*DSS_DATA3*/\ -+ MUX_VAL(CP(DSS_DATA22), (IDIS | PTD | DIS | M3)) /*DSS_DATA4*/\ -+ MUX_VAL(CP(DSS_DATA23), (IDIS | PTD | DIS | M3)) /*DSS_DATA5*/\ -+ MUX_VAL(CP(SYS_BOOT0), (IDIS | PTD | DIS | M3)) /*DSS_DATA18*/\ -+ MUX_VAL(CP(SYS_BOOT1), (IDIS | PTD | DIS | M3)) /*DSS_DATA19*/\ -+ MUX_VAL(CP(SYS_BOOT3), (IDIS | PTD | DIS | M3)) /*DSS_DATA20*/\ -+ MUX_VAL(CP(SYS_BOOT4), (IDIS | PTD | DIS | M3)) /*DSS_DATA21*/\ -+ MUX_VAL(CP(SYS_BOOT5), (IDIS | PTD | DIS | M3)) /*DSS_DATA22*/\ -+ MUX_VAL(CP(SYS_BOOT6), (IDIS | PTD | DIS | M3)) /*DSS_DATA23*/ -+ - #endif -diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h -index 35ae8af..1370a29 100644 ---- a/include/configs/omap3_beagle.h -+++ b/include/configs/omap3_beagle.h -@@ -162,6 +162,7 @@ - /* - * Board NAND Info. - */ -+#define CONFIG_SYS_NAND_QUIET_TEST 1 - #define CONFIG_NAND_OMAP_GPMC - #define CONFIG_SYS_NAND_ADDR NAND_BASE /* physical address */ - /* to access nand */ --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0022-OMAP3-beagle-implement-expansionboard-detection-base.patch b/recipes-bsp/u-boot/u-boot/0022-OMAP3-beagle-implement-expansionboard-detection-base.patch deleted file mode 100644 index c301c77..0000000 --- a/recipes-bsp/u-boot/u-boot/0022-OMAP3-beagle-implement-expansionboard-detection-base.patch +++ /dev/null @@ -1,157 +0,0 @@ -From b48754f4c77924a9351867e17e2f09fbe5a83b82 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Thu, 25 Mar 2010 16:07:23 +0100 -Subject: [PATCH 22/51] OMAP3: beagle: implement expansionboard detection based on board/overo.c code - ---- - board/ti/beagle/beagle.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++ - board/ti/beagle/beagle.h | 25 +++++++++++++- - 2 files changed, 101 insertions(+), 2 deletions(-) - -diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c -index d357588..8c5b88c 100644 ---- a/board/ti/beagle/beagle.c -+++ b/board/ti/beagle/beagle.c -@@ -38,6 +38,31 @@ - #include - #include "beagle.h" - -+static struct { -+ unsigned int device_vendor; -+ unsigned char revision; -+ unsigned char content; -+ unsigned char fab_revision[8]; -+ unsigned char env_var[16]; -+ unsigned char env_setting[64]; -+} expansion_config; -+ -+#define TWL4030_I2C_BUS 0 -+ -+#define EXPANSION_EEPROM_I2C_BUS 1 -+#define EXPANSION_EEPROM_I2C_ADDRESS 0x50 -+ -+#define TINCANTOOLS_VENDORID 0x0100 -+#define GUMSTIX_VENDORID 0x0200 -+#define SPECIALCOMP_VENDORID 0x0300 -+ -+#define TINCANTOOLS_ZIPPY 0x01000100 -+#define TINCANTOOLS_ZIPPY2 0x02000100 -+#define TINCANTOOLS_TRAINER 0x03000100 -+#define TINCANTOOLS_SHOWDOG 0x04000100 -+ -+#define BEAGLE_NO_EEPROM 0xffffffff -+ - static int beagle_revision; - - /* -@@ -95,6 +120,27 @@ void beagle_identify(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 BEAGLE_NO_EEPROM if eeprom doesn't respond */ -+ if (i2c_probe(EXPANSION_EEPROM_I2C_ADDRESS) == 1) -+ return BEAGLE_NO_EEPROM; -+ -+ /* read configuration data */ -+ i2c_read(EXPANSION_EEPROM_I2C_ADDRESS, 0, 1, (u8 *)&expansion_config, -+ sizeof(expansion_config)); -+ -+ return expansion_config.device_vendor; -+} -+ -+/* - * Routine: misc_init_r - * Description: Configure board specific parts - */ -@@ -104,6 +150,38 @@ int misc_init_r(void) - struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE; - - beagle_identify(); -+ switch (get_expansion_id()) { -+ case TINCANTOOLS_ZIPPY: -+ printf("Recognized Tincantools Zippy expansion board (rev %d %s)\n", -+ expansion_config.revision, expansion_config.fab_revision); -+ MUX_TINCANTOOLS_ZIPPY(); -+ break; -+ case TINCANTOOLS_ZIPPY2: -+ printf("Recognized Tincantools Zippy2 expansion board (rev %d %s)\n", -+ expansion_config.revision, expansion_config.fab_revision); -+ MUX_TINCANTOOLS_ZIPPY(); -+ break; -+ case TINCANTOOLS_TRAINER: -+ printf("Recognized Tincantools Trainer expansion board (rev %d %s)\n", -+ expansion_config.revision, expansion_config.fab_revision); -+ break; -+ case TINCANTOOLS_SHOWDOG: -+ printf("Recognized Tincantools Showdow expansion board (rev %d %s)\n", -+ expansion_config.revision, expansion_config.fab_revision); -+ /* Place holder for DSS2 definition for showdog lcd */ -+ setenv("defaultdisplay", "showdoglcd"); -+ break; -+ case BEAGLE_NO_EEPROM: -+ printf("No EEPROM on expansion board\n"); -+ break; -+ default: -+ printf("Unrecognized expansion board: %x\n", expansion_config.device_vendor); -+ } -+ -+ if (expansion_config.content == 1) -+ setenv(expansion_config.env_var, expansion_config.env_setting); -+ -+ i2c_set_bus_num(TWL4030_I2C_BUS); - - twl4030_power_init(); - twl4030_led_init(TWL4030_LED_LEDEN_LEDAON | TWL4030_LED_LEDEN_LEDBON); -diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h -index fd06d46..ec4f831 100644 ---- a/board/ti/beagle/beagle.h -+++ b/board/ti/beagle/beagle.h -@@ -260,8 +260,8 @@ const omap3_sysinfo sysinfo = { - MUX_VAL(CP(HSUSB0_DATA7), (IEN | PTD | DIS | M0)) /*HSUSB0_DATA7*/\ - MUX_VAL(CP(I2C1_SCL), (IEN | PTU | EN | M0)) /*I2C1_SCL*/\ - MUX_VAL(CP(I2C1_SDA), (IEN | PTU | EN | M0)) /*I2C1_SDA*/\ -- MUX_VAL(CP(I2C2_SCL), (IEN | PTU | EN | M4)) /*GPIO_168*/\ -- MUX_VAL(CP(I2C2_SDA), (IEN | PTU | EN | M4)) /*GPIO_183*/\ -+ MUX_VAL(CP(I2C2_SCL), (IEN | PTU | EN | M0)) /*I2C2_SCL*/\ -+ MUX_VAL(CP(I2C2_SDA), (IEN | PTU | EN | M0)) /*I2C2_SDA*/\ - MUX_VAL(CP(I2C3_SCL), (IEN | PTU | EN | M0)) /*I2C3_SCL*/\ - MUX_VAL(CP(I2C3_SDA), (IEN | PTU | EN | M0)) /*I2C3_SDA*/\ - MUX_VAL(CP(I2C4_SCL), (IEN | PTU | EN | M0)) /*I2C4_SCL*/\ -@@ -412,4 +412,25 @@ const omap3_sysinfo sysinfo = { - MUX_VAL(CP(SYS_BOOT5), (IDIS | PTD | DIS | M3)) /*DSS_DATA22*/\ - MUX_VAL(CP(SYS_BOOT6), (IDIS | PTD | DIS | M3)) /*DSS_DATA23*/ - -+#define MUX_TINCANTOOLS_ZIPPY() \ -+ MUX_VAL(CP(MMC2_CLK), (IEN | PTU | EN | M0)) /*MMC2_CLK*/\ -+ MUX_VAL(CP(MMC2_CMD), (IEN | PTU | EN | M0)) /*MMC2_CMD*/\ -+ MUX_VAL(CP(MMC2_DAT0), (IEN | PTU | EN | M0)) /*MMC2_DAT0*/\ -+ MUX_VAL(CP(MMC2_DAT1), (IEN | PTU | EN | M0)) /*MMC2_DAT1*/\ -+ MUX_VAL(CP(MMC2_DAT2), (IEN | PTU | EN | M0)) /*MMC2_DAT2*/\ -+ MUX_VAL(CP(MMC2_DAT3), (IEN | PTU | EN | M0)) /*MMC2_DAT3*/\ -+ MUX_VAL(CP(MMC2_DAT4), (IEN | PTU | EN | M1)) /*MMC2_DIR_DAT0*/\ -+ MUX_VAL(CP(MMC2_DAT5), (IEN | PTU | EN | M1)) /*MMC2_DIR_DAT1*/\ -+ MUX_VAL(CP(MMC2_DAT6), (IEN | PTU | EN | M1)) /*MMC2_DIR_CMD*/\ -+ MUX_VAL(CP(MMC2_DAT7), (IEN | PTU | EN | M1)) /*MMC2_CLKIN*/\ -+ MUX_VAL(CP(MCBSP1_CLKR), (IEN | PTU | EN | M1)) /*MCSPI4_CLK*/\ -+ MUX_VAL(CP(MCBSP1_FSR), (IEN | PTU | EN | M4)) /*GPIO_157*/\ -+ MUX_VAL(CP(MCBSP1_DX), (IEN | PTD | EN | M1)) /*MCSPI4_SIMO*/\ -+ MUX_VAL(CP(MCBSP1_DR), (IEN | PTD | DIS | M1)) /*MCSPI4_SOMI*/\ -+ MUX_VAL(CP(MCBSP1_FSX), (IEN | PTD | EN | M1)) /*MCSPI4_CS0*/\ -+ MUX_VAL(CP(MCBSP1_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_162*/\ -+ MUX_VAL(CP(MCBSP3_DX), (IEN | PTD | DIS | M4)) /*GPIO_140*/\ -+ MUX_VAL(CP(MCBSP3_DR), (IEN | PTD | DIS | M4)) /*GPIO_142*/\ -+ MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_141*/\ -+ - #endif --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0023-beagleboard-display-message-about-I2C-errors-being-e.patch b/recipes-bsp/u-boot/u-boot/0023-beagleboard-display-message-about-I2C-errors-being-e.patch deleted file mode 100644 index 498a5ac..0000000 --- a/recipes-bsp/u-boot/u-boot/0023-beagleboard-display-message-about-I2C-errors-being-e.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 653c13d956b189c05e6c02077dbd85cba8ff490b Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Wed, 31 Mar 2010 14:24:25 +0200 -Subject: [PATCH 23/51] beagleboard: display message about I2C errors being expected when no expansion boards are present - ---- - board/ti/beagle/beagle.c | 3 +++ - 1 files changed, 3 insertions(+), 0 deletions(-) - -diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c -index 8c5b88c..c9c9a58 100644 ---- a/board/ti/beagle/beagle.c -+++ b/board/ti/beagle/beagle.c -@@ -150,6 +150,9 @@ int misc_init_r(void) - struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE; - - beagle_identify(); -+ -+ printf("\nProbing for expansion boards, if none are connected you'll see a harmless I2C error.\n"); -+ - switch (get_expansion_id()) { - case TINCANTOOLS_ZIPPY: - printf("Recognized Tincantools Zippy expansion board (rev %d %s)\n", --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0024-beagleboard-fix-TCT-expansionboard-IDs.patch b/recipes-bsp/u-boot/u-boot/0024-beagleboard-fix-TCT-expansionboard-IDs.patch deleted file mode 100644 index ada474d..0000000 --- a/recipes-bsp/u-boot/u-boot/0024-beagleboard-fix-TCT-expansionboard-IDs.patch +++ /dev/null @@ -1,27 +0,0 @@ -From a0f21f7418dfa81a40bf99b7e926153a310ba457 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Sun, 11 Apr 2010 12:14:43 +0200 -Subject: [PATCH 24/51] beagleboard: fix TCT expansionboard IDs - ---- - board/ti/beagle/beagle.c | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c -index c9c9a58..7cb6d1f 100644 ---- a/board/ti/beagle/beagle.c -+++ b/board/ti/beagle/beagle.c -@@ -58,8 +58,8 @@ static struct { - - #define TINCANTOOLS_ZIPPY 0x01000100 - #define TINCANTOOLS_ZIPPY2 0x02000100 --#define TINCANTOOLS_TRAINER 0x03000100 --#define TINCANTOOLS_SHOWDOG 0x04000100 -+#define TINCANTOOLS_TRAINER 0x04000100 -+#define TINCANTOOLS_SHOWDOG 0x03000100 - - #define BEAGLE_NO_EEPROM 0xffffffff - --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0027-beagleboardXM-don-t-set-mpurate-on-xM-in-bootargs.patch b/recipes-bsp/u-boot/u-boot/0027-beagleboardXM-don-t-set-mpurate-on-xM-in-bootargs.patch deleted file mode 100644 index c025503..0000000 --- a/recipes-bsp/u-boot/u-boot/0027-beagleboardXM-don-t-set-mpurate-on-xM-in-bootargs.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 4aca3c70a18da58e263b08e37b288a06b2b6655c Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Tue, 13 Apr 2010 22:04:07 +0200 -Subject: [PATCH 27/51] beagleboardXM: don't set mpurate on xM in bootargs - ---- - board/ti/beagle/beagle.c | 1 - - 1 files changed, 0 insertions(+), 1 deletions(-) - -diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c -index eb57b5a..974a72c 100644 ---- a/board/ti/beagle/beagle.c -+++ b/board/ti/beagle/beagle.c -@@ -226,7 +226,6 @@ int misc_init_r(void) - TWL4030_PM_RECEIVER_VAUX2_VSEL_18, - TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, - TWL4030_PM_RECEIVER_DEV_GRP_P1); -- setenv("mpurate", "720"); - break; - default: - printf("Beagle unknown 0x%02x\n", beagle_revision); --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0028-OMAP3-fix-and-clean-up-L2-cache-enable-disable-funct.patch b/recipes-bsp/u-boot/u-boot/0028-OMAP3-fix-and-clean-up-L2-cache-enable-disable-funct.patch deleted file mode 100644 index 5d6a5bf..0000000 --- a/recipes-bsp/u-boot/u-boot/0028-OMAP3-fix-and-clean-up-L2-cache-enable-disable-funct.patch +++ /dev/null @@ -1,112 +0,0 @@ -From 72e1ab470e483c91ab3aa38bec31faf3dad52735 Mon Sep 17 00:00:00 2001 -From: Mans Rullgard -Date: Wed, 14 Apr 2010 12:08:00 +0100 -Subject: [PATCH 28/51] OMAP3: fix and clean up L2 cache enable/disable functions - -On OMAP34xx ES1.0, the L2 enable bit can only be set in secure mode, -so an SMC call to the ROM monitor is required. On later versions, -and on newer devices, this bit is banked and we can set it directly. - -The code checked only the ES revision of the chip, and hence incorrectly -used the ROM call on ES1.0 versions of other devices. - -This patch adds a check for chip family as well as revision, and also -removes some code duplication between the enable and disable functions. - -Signed-off-by: Mans Rullgard ---- - cpu/arm_cortexa8/omap3/cache.S | 74 +++++++++++----------------------------- - 1 files changed, 20 insertions(+), 54 deletions(-) - -diff --git a/cpu/arm_cortexa8/omap3/cache.S b/cpu/arm_cortexa8/omap3/cache.S -index 0f63815..16afb5d 100644 ---- a/cpu/arm_cortexa8/omap3/cache.S -+++ b/cpu/arm_cortexa8/omap3/cache.S -@@ -128,64 +128,30 @@ finished_inval: - - ldmfd r13!, {r0 - r5, r7, r9 - r12, pc} - -- --l2_cache_enable: -- push {r0, r1, r2, lr} -- @ ES2 onwards we can disable/enable L2 ourselves -+l2_cache_set: -+ push {r4-r6, lr} -+ mov r5, r0 - bl get_cpu_rev -- cmp r0, #CPU_3XX_ES20 -- blt l2_cache_disable_EARLIER_THAN_ES2 -- mrc 15, 0, r3, cr1, cr0, 1 -- orr r3, r3, #2 -- mcr 15, 0, r3, cr1, cr0, 1 -- b l2_cache_enable_END --l2_cache_enable_EARLIER_THAN_ES2: -- @ Save r0, r12 and restore them after usage -- mov r3, ip -- str r3, [sp, #4] -- mov r3, r0 -- @ -+ mov r4, r0 -+ bl get_cpu_family -+ @ ES2 onwards we can disable/enable L2 ourselves -+ cmp r0, #CPU_OMAP34XX -+ cmpeq r4, #CPU_3XX_ES10 -+ mrc 15, 0, r0, cr1, cr0, 1 -+ bic r0, r0, #2 -+ orr r0, r0, r5, lsl #1 -+ mcreq 15, 0, r0, cr1, cr0, 1 - @ GP Device ROM code API usage here - @ r12 = AUXCR Write function and r0 value -- @ - mov ip, #3 -- mrc 15, 0, r0, cr1, cr0, 1 -- orr r0, r0, #2 -- @ SMI instruction to call ROM Code API -- .word 0xe1600070 -- mov r0, r3 -- mov ip, r3 -- str r3, [sp, #4] --l2_cache_enable_END: -- pop {r1, r2, r3, pc} -+ @ SMCNE instruction to call ROM Code API -+ .word 0x11600070 -+ pop {r4-r6, pc} - -+l2_cache_enable: -+ mov r0, #1 -+ b l2_cache_set - - l2_cache_disable: -- push {r0, r1, r2, lr} -- @ ES2 onwards we can disable/enable L2 ourselves -- bl get_cpu_rev -- cmp r0, #CPU_3XX_ES20 -- blt l2_cache_disable_EARLIER_THAN_ES2 -- mrc 15, 0, r3, cr1, cr0, 1 -- bic r3, r3, #2 -- mcr 15, 0, r3, cr1, cr0, 1 -- b l2_cache_disable_END --l2_cache_disable_EARLIER_THAN_ES2: -- @ Save r0, r12 and restore them after usage -- mov r3, ip -- str r3, [sp, #4] -- mov r3, r0 -- @ -- @ GP Device ROM code API usage here -- @ r12 = AUXCR Write function and r0 value -- @ -- mov ip, #3 -- mrc 15, 0, r0, cr1, cr0, 1 -- bic r0, r0, #2 -- @ SMI instruction to call ROM Code API -- .word 0xe1600070 -- mov r0, r3 -- mov ip, r3 -- str r3, [sp, #4] --l2_cache_disable_END: -- pop {r1, r2, r3, pc} -+ mov r0, #0 -+ b l2_cache_set --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0029-OMAP3-convert-setup_auxcr-to-pure-asm.patch b/recipes-bsp/u-boot/u-boot/0029-OMAP3-convert-setup_auxcr-to-pure-asm.patch deleted file mode 100644 index a60aae4..0000000 --- a/recipes-bsp/u-boot/u-boot/0029-OMAP3-convert-setup_auxcr-to-pure-asm.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 1e795a2c3e44002c3512222dd3da07ac3ea42d7d Mon Sep 17 00:00:00 2001 -From: Mans Rullgard -Date: Wed, 14 Apr 2010 16:49:57 +0100 -Subject: [PATCH 29/51] OMAP3: convert setup_auxcr() to pure asm - -This function consists entirely of inline asm statements, so writing -it directly in a .S file is simpler. Additionally, the inline asm is -not safe as is, since registers are not guaranteed to be preserved -between asm() statements. - -Signed-off-by: Mans Rullgard ---- - cpu/arm_cortexa8/omap3/board.c | 35 ----------------------------------- - cpu/arm_cortexa8/omap3/cache.S | 19 +++++++++++++++++++ - 2 files changed, 19 insertions(+), 35 deletions(-) - -diff --git a/cpu/arm_cortexa8/omap3/board.c b/cpu/arm_cortexa8/omap3/board.c -index 0126152..7f49199 100644 ---- a/cpu/arm_cortexa8/omap3/board.c -+++ b/cpu/arm_cortexa8/omap3/board.c -@@ -122,41 +122,6 @@ void secureworld_exit() - } - - /****************************************************************************** -- * Routine: setup_auxcr() -- * Description: Write to AuxCR desired value using SMI. -- * general use. -- *****************************************************************************/ --void setup_auxcr() --{ -- unsigned long i; -- volatile unsigned int j; -- /* Save r0, r12 and restore them after usage */ -- __asm__ __volatile__("mov %0, r12":"=r"(j)); -- __asm__ __volatile__("mov %0, r0":"=r"(i)); -- -- /* -- * GP Device ROM code API usage here -- * r12 = AUXCR Write function and r0 value -- */ -- __asm__ __volatile__("mov r12, #0x3"); -- __asm__ __volatile__("mrc p15, 0, r0, c1, c0, 1"); -- /* Enabling ASA */ -- __asm__ __volatile__("orr r0, r0, #0x10"); -- /* Enable L1NEON */ -- __asm__ __volatile__("orr r0, r0, #1 << 5"); -- /* SMI instruction to call ROM Code API */ -- __asm__ __volatile__(".word 0xE1600070"); -- /* Set PLD_FWD bit in L2AUXCR (Cortex-A8 erratum 725233 workaround) */ -- __asm__ __volatile__("mov r12, #0x2"); -- __asm__ __volatile__("mrc p15, 1, r0, c9, c0, 2"); -- __asm__ __volatile__("orr r0, r0, #1 << 27"); -- /* SMI instruction to call ROM Code API */ -- __asm__ __volatile__(".word 0xE1600070"); -- __asm__ __volatile__("mov r0, %0":"=r"(i)); -- __asm__ __volatile__("mov r12, %0":"=r"(j)); --} -- --/****************************************************************************** - * Routine: try_unlock_sram() - * Description: If chip is GP/EMU(special) type, unlock the SRAM for - * general use. -diff --git a/cpu/arm_cortexa8/omap3/cache.S b/cpu/arm_cortexa8/omap3/cache.S -index 16afb5d..61e6946 100644 ---- a/cpu/arm_cortexa8/omap3/cache.S -+++ b/cpu/arm_cortexa8/omap3/cache.S -@@ -43,6 +43,7 @@ - .global invalidate_dcache - .global l2_cache_enable - .global l2_cache_disable -+.global setup_auxcr - - /* - * invalidate_dcache() -@@ -155,3 +156,21 @@ l2_cache_enable: - l2_cache_disable: - mov r0, #0 - b l2_cache_set -+ -+/****************************************************************************** -+ * Routine: setup_auxcr() -+ * Description: Write to AuxCR desired value using SMI. -+ * general use. -+ *****************************************************************************/ -+setup_auxcr: -+ mov r12, #0x3 -+ mrc p15, 0, r0, c1, c0, 1 -+ orr r0, r0, #0x10 @ Enable ASA -+ orr r0, r0, #1 << 5 @ Enable L1NEON -+ .word 0xE1600070 @ SMC -+ mov r12, #0x2 -+ mrc p15, 1, r0, c9, c0, 2 -+ @ Set PLD_FWD bit in L2AUXCR (Cortex-A8 erratum 725233 workaround) -+ orr r0, r0, #1 << 27 -+ .word 0xE1600070 @ SMC -+ bx lr --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0030-OMAP3-apply-Cortex-A8-errata-workarounds-only-on-aff.patch b/recipes-bsp/u-boot/u-boot/0030-OMAP3-apply-Cortex-A8-errata-workarounds-only-on-aff.patch deleted file mode 100644 index 24f292c..0000000 --- a/recipes-bsp/u-boot/u-boot/0030-OMAP3-apply-Cortex-A8-errata-workarounds-only-on-aff.patch +++ /dev/null @@ -1,46 +0,0 @@ -From fd092c7f2286fab34cf42c6c56360ae7794dbc7f Mon Sep 17 00:00:00 2001 -From: Mans Rullgard -Date: Wed, 14 Apr 2010 17:10:28 +0100 -Subject: [PATCH 30/51] OMAP3: apply Cortex-A8 errata workarounds only on affected revisions - -The workarounds for errata 621766 and 725233 should only be applied -on affected Cortex-A8 revisions. Recent chips use r3px cores where -these have been fixed. - -Signed-off-by: Mans Rullgard ---- - cpu/arm_cortexa8/omap3/cache.S | 13 ++++++++++--- - 1 files changed, 10 insertions(+), 3 deletions(-) - -diff --git a/cpu/arm_cortexa8/omap3/cache.S b/cpu/arm_cortexa8/omap3/cache.S -index 61e6946..932e4eb 100644 ---- a/cpu/arm_cortexa8/omap3/cache.S -+++ b/cpu/arm_cortexa8/omap3/cache.S -@@ -163,14 +163,21 @@ l2_cache_disable: - * general use. - *****************************************************************************/ - setup_auxcr: -+ mrc p15, 0, r0, c0, c0, 0 @ read main ID register -+ and r2, r0, #0x00f00000 @ variant -+ and r3, r0, #0x0000000f @ revision -+ orr r1, r3, r2, lsr #20-4 @ combine variant and revision - mov r12, #0x3 - mrc p15, 0, r0, c1, c0, 1 - orr r0, r0, #0x10 @ Enable ASA -- orr r0, r0, #1 << 5 @ Enable L1NEON -+ @ Enable L1NEON on pre-r2p1 (erratum 621766 workaround) -+ cmp r1, #0x21 -+ orrlt r0, r0, #1 << 5 - .word 0xE1600070 @ SMC - mov r12, #0x2 - mrc p15, 1, r0, c9, c0, 2 -- @ Set PLD_FWD bit in L2AUXCR (Cortex-A8 erratum 725233 workaround) -- orr r0, r0, #1 << 27 -+ @ Set PLD_FWD bit in L2AUXCR on pre-r2p1 (erratum 725233 workaround) -+ cmp r1, #0x21 -+ orrlt r0, r0, #1 << 27 - .word 0xE1600070 @ SMC - bx lr --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0031-OMAP3-beagle-add-more-expansionboards-based-on-http-.patch b/recipes-bsp/u-boot/u-boot/0031-OMAP3-beagle-add-more-expansionboards-based-on-http-.patch deleted file mode 100644 index b713ded..0000000 --- a/recipes-bsp/u-boot/u-boot/0031-OMAP3-beagle-add-more-expansionboards-based-on-http-.patch +++ /dev/null @@ -1,61 +0,0 @@ -From ccbe10687806b6504c87bd3ad80bd406bc6263f4 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Fri, 23 Apr 2010 10:50:43 +0200 -Subject: [PATCH 31/51] OMAP3: beagle: add more expansionboards, based on http://www.elinux.org/BeagleBoardPinMux#Vendor_and_Device_IDs - ---- - board/ti/beagle/beagle.c | 8 ++++++++ - board/ti/beagle/beagle.h | 6 ++++++ - 2 files changed, 14 insertions(+), 0 deletions(-) - -diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c -index 974a72c..0544178 100644 ---- a/board/ti/beagle/beagle.c -+++ b/board/ti/beagle/beagle.c -@@ -55,11 +55,15 @@ static struct { - #define TINCANTOOLS_VENDORID 0x0100 - #define GUMSTIX_VENDORID 0x0200 - #define SPECIALCOMP_VENDORID 0x0300 -+#define HYR_VENDORID 0x0400 -+#define MENTOREL_VENDORID 0x0500 -+#define KBADC_VENDORID 0x0600 - - #define TINCANTOOLS_ZIPPY 0x01000100 - #define TINCANTOOLS_ZIPPY2 0x02000100 - #define TINCANTOOLS_TRAINER 0x04000100 - #define TINCANTOOLS_SHOWDOG 0x03000100 -+#define KBADC_BEAGLEFPGA 0x01000600 - - #define BEAGLE_NO_EEPROM 0xffffffff - -@@ -184,6 +188,10 @@ int misc_init_r(void) - /* Place holder for DSS2 definition for showdog lcd */ - setenv("defaultdisplay", "showdoglcd"); - break; -+ case KBADC_BEAGLEFPGA: -+ printf("Recognized KBADC Beagle FPGA board\n"); -+ MUX_KBADC_BEAGLEFPGA(); -+ break; - case BEAGLE_NO_EEPROM: - printf("No EEPROM on expansion board\n"); - break; -diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h -index 69f9398..90a0ebf 100644 ---- a/board/ti/beagle/beagle.h -+++ b/board/ti/beagle/beagle.h -@@ -435,6 +435,12 @@ const omap3_sysinfo sysinfo = { - MUX_VAL(CP(MCBSP3_DR), (IEN | PTD | DIS | M4)) /*GPIO_142*/\ - MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_141*/\ - -+#define MUX_KBADC_BEAGLEFPGA() \ -+ MUX_VAL(CP(MCBSP1_CLKR), (IEN | PTU | DIS | M1)) /*MCSPI4_CLK*/\ -+ MUX_VAL(CP(MCBSP1_DX), (IDIS | PTU | DIS | M1)) /*MCSPI4_SIMO*/\ -+ MUX_VAL(CP(MCBSP1_DR), (IEN | PTU | EN | M1)) /*MCSPI4_SOMI*/\ -+ MUX_VAL(CP(MCBSP1_FSX), (IDIS | PTU | DIS | M1)) /*MCSPI4_CS0*/\ -+ - /* - * Display Configuration - */ --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0032-OMAP3-beagle-set-mpurate-to-600-for-revB-and-revC1-3.patch b/recipes-bsp/u-boot/u-boot/0032-OMAP3-beagle-set-mpurate-to-600-for-revB-and-revC1-3.patch deleted file mode 100644 index b351344..0000000 --- a/recipes-bsp/u-boot/u-boot/0032-OMAP3-beagle-set-mpurate-to-600-for-revB-and-revC1-3.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 0d2821af767b7cfe1a5d868a14f8a18e01070e37 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Tue, 27 Apr 2010 13:44:16 +0200 -Subject: [PATCH 32/51] OMAP3: beagle: set mpurate to 600 for revB and revC1-3 - ---- - board/ti/beagle/beagle.c | 2 ++ - 1 files changed, 2 insertions(+), 0 deletions(-) - -diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c -index 0544178..6778499 100644 ---- a/board/ti/beagle/beagle.c -+++ b/board/ti/beagle/beagle.c -@@ -211,10 +211,12 @@ int misc_init_r(void) - switch (beagle_revision) { - case REVISION_AXBX: - printf("Beagle Rev Ax/Bx\n"); -+ setenv("mpurate", "600"); - break; - case REVISION_CX: - printf("Beagle Rev C1/C2/C3\n"); - MUX_BEAGLE_C(); -+ setenv("mpurate", "600"); - break; - case REVISION_C4: - printf("Beagle Rev C4\n"); --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0033-OMAP3-beagle-prettify-expansionboard-message-a-bit.patch b/recipes-bsp/u-boot/u-boot/0033-OMAP3-beagle-prettify-expansionboard-message-a-bit.patch deleted file mode 100644 index 27a3fd1..0000000 --- a/recipes-bsp/u-boot/u-boot/0033-OMAP3-beagle-prettify-expansionboard-message-a-bit.patch +++ /dev/null @@ -1,25 +0,0 @@ -From f4f92e1f72e2bcab85f205c66f0725a677e192e2 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Tue, 27 Apr 2010 13:45:28 +0200 -Subject: [PATCH 33/51] OMAP3: beagle: prettify expansionboard message a bit - ---- - board/ti/beagle/beagle.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c -index 6778499..58fb7c3 100644 ---- a/board/ti/beagle/beagle.c -+++ b/board/ti/beagle/beagle.c -@@ -165,7 +165,7 @@ int misc_init_r(void) - - beagle_identify(); - -- printf("\nProbing for expansion boards, if none are connected you'll see a harmless I2C error.\n"); -+ printf("\nProbing for expansion boards, if none are connected you'll see a harmless I2C error.\n\n"); - - switch (get_expansion_id()) { - case TINCANTOOLS_ZIPPY: --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0034-OMAP3-beagle-add-pinmux-for-Tincantools-Trainer-expa.patch b/recipes-bsp/u-boot/u-boot/0034-OMAP3-beagle-add-pinmux-for-Tincantools-Trainer-expa.patch deleted file mode 100644 index fb0277b..0000000 --- a/recipes-bsp/u-boot/u-boot/0034-OMAP3-beagle-add-pinmux-for-Tincantools-Trainer-expa.patch +++ /dev/null @@ -1,53 +0,0 @@ -From d6d6f29e339b5d014f91870b35985a372dd330f2 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Tue, 27 Apr 2010 18:25:57 +0200 -Subject: [PATCH 34/51] OMAP3: beagle: add pinmux for Tincantools Trainer expansionboard - ---- - board/ti/beagle/beagle.c | 2 ++ - board/ti/beagle/beagle.h | 16 +++++++++++++++- - 2 files changed, 17 insertions(+), 1 deletions(-) - -diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c -index 58fb7c3..39c53f2 100644 ---- a/board/ti/beagle/beagle.c -+++ b/board/ti/beagle/beagle.c -@@ -181,6 +181,8 @@ int misc_init_r(void) - case TINCANTOOLS_TRAINER: - printf("Recognized Tincantools Trainer expansion board (rev %d %s)\n", - expansion_config.revision, expansion_config.fab_revision); -+ MUX_TINCANTOOLS_ZIPPY(); -+ MUX_TINCANTOOLS_TRAINER(); - break; - case TINCANTOOLS_SHOWDOG: - printf("Recognized Tincantools Showdow expansion board (rev %d %s)\n", -diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h -index 90a0ebf..7774855 100644 ---- a/board/ti/beagle/beagle.h -+++ b/board/ti/beagle/beagle.h -@@ -433,7 +433,21 @@ const omap3_sysinfo sysinfo = { - MUX_VAL(CP(MCBSP1_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_162*/\ - MUX_VAL(CP(MCBSP3_DX), (IEN | PTD | DIS | M4)) /*GPIO_140*/\ - MUX_VAL(CP(MCBSP3_DR), (IEN | PTD | DIS | M4)) /*GPIO_142*/\ -- MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_141*/\ -+ MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_141*/ -+ -+#define MUX_TINCANTOOLS_TRAINER() \ -+ MUX_VAL(CP(MMC2_CLK), (IEN | PTU | EN | M4)) /*GPIO_130*/\ -+ MUX_VAL(CP(MMC2_CMD), (IEN | PTU | EN | M4)) /*GPIO_131*/\ -+ MUX_VAL(CP(MMC2_DAT0), (IEN | PTU | EN | M4)) /*GPIO_132*/\ -+ MUX_VAL(CP(MMC2_DAT1), (IEN | PTU | EN | M4)) /*GPIO_133*/\ -+ MUX_VAL(CP(MMC2_DAT2), (IEN | PTU | EN | M4)) /*GPIO_134*/\ -+ MUX_VAL(CP(MMC2_DAT3), (IEN | PTU | EN | M4)) /*GPIO_135*/\ -+ MUX_VAL(CP(MMC2_DAT4), (IEN | PTU | EN | M4)) /*GPIO_136*/\ -+ MUX_VAL(CP(MMC2_DAT5), (IEN | PTU | EN | M4)) /*GPIO_137*/\ -+ MUX_VAL(CP(MMC2_DAT6), (IEN | PTU | EN | M4)) /*GPIO_138*/\ -+ MUX_VAL(CP(MMC2_DAT7), (IEN | PTU | EN | M4)) /*GPIO_139*/\ -+ MUX_VAL(CP(MCBSP3_DX), (IEN | PTU | EN | M4)) /*GPIO_140*/\ -+ MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTU | EN | M4)) /*GPIO_141*/ - - #define MUX_KBADC_BEAGLEFPGA() \ - MUX_VAL(CP(MCBSP1_CLKR), (IEN | PTU | DIS | M1)) /*MCSPI4_CLK*/\ --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0035-OMAP3-Beagle-set-mpurate-to-1000-for-xM.patch b/recipes-bsp/u-boot/u-boot/0035-OMAP3-Beagle-set-mpurate-to-1000-for-xM.patch deleted file mode 100644 index c4ed87c..0000000 --- a/recipes-bsp/u-boot/u-boot/0035-OMAP3-Beagle-set-mpurate-to-1000-for-xM.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 442e5d80723e2772f38fe473d32287200d802907 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Fri, 30 Apr 2010 13:25:41 +0200 -Subject: [PATCH 35/51] OMAP3: Beagle: set mpurate to 1000 for xM - ---- - board/ti/beagle/beagle.c | 1 + - 1 files changed, 1 insertions(+), 0 deletions(-) - -diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c -index 39c53f2..9300984 100644 ---- a/board/ti/beagle/beagle.c -+++ b/board/ti/beagle/beagle.c -@@ -238,6 +238,7 @@ int misc_init_r(void) - TWL4030_PM_RECEIVER_VAUX2_VSEL_18, - TWL4030_PM_RECEIVER_VAUX2_DEV_GRP, - TWL4030_PM_RECEIVER_DEV_GRP_P1); -+ setenv("mpurate", "1000"); - break; - default: - printf("Beagle unknown 0x%02x\n", beagle_revision); --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0036-OMAP3-Beagle-decrease-bootdelay-to-3-use-VGA-for-def.patch b/recipes-bsp/u-boot/u-boot/0036-OMAP3-Beagle-decrease-bootdelay-to-3-use-VGA-for-def.patch deleted file mode 100644 index 8cfdfc0..0000000 --- a/recipes-bsp/u-boot/u-boot/0036-OMAP3-Beagle-decrease-bootdelay-to-3-use-VGA-for-def.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 13b74d6ec2b88620515d0060f6276f744f058e44 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Fri, 30 Apr 2010 13:26:01 +0200 -Subject: [PATCH 36/51] OMAP3: Beagle: decrease bootdelay to 3, use VGA for default resolution - ---- - include/configs/omap3_beagle.h | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h -index 52d727a..47bc971 100644 ---- a/include/configs/omap3_beagle.h -+++ b/include/configs/omap3_beagle.h -@@ -183,7 +183,7 @@ - /* partition */ - - /* Environment information */ --#define CONFIG_BOOTDELAY 10 -+#define CONFIG_BOOTDELAY 3 - - #define CONFIG_EXTRA_ENV_SETTINGS \ - "loadaddr=0x82000000\0" \ -@@ -191,7 +191,7 @@ - "console=ttyS2,115200n8\0" \ - "mpurate=500\0" \ - "vram=12M\0" \ -- "dvimode=1024x768MR-16@60\0" \ -+ "dvimode=640x480MR-16@60\0" \ - "defaultdisplay=dvi\0" \ - "mmcroot=/dev/mmcblk0p2 rw\0" \ - "mmcrootfstype=ext3 rootwait\0" \ --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0037-OMAP3-beagle-pass-expansionboard-name-in-bootargs.patch b/recipes-bsp/u-boot/u-boot/0037-OMAP3-beagle-pass-expansionboard-name-in-bootargs.patch deleted file mode 100644 index 59412b3..0000000 --- a/recipes-bsp/u-boot/u-boot/0037-OMAP3-beagle-pass-expansionboard-name-in-bootargs.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 02dba49bdab65e1a96fd4593f5847b38252b66e0 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Mon, 3 May 2010 10:17:41 +0200 -Subject: [PATCH 37/51] OMAP3: beagle: pass expansionboard name in bootargs - -This makes it possible to do in-kernel fixups for expansionboards like reclaiming GPIOs ---- - board/ti/beagle/beagle.c | 7 +++++++ - include/configs/omap3_beagle.h | 3 +++ - 2 files changed, 10 insertions(+), 0 deletions(-) - -diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c -index 9300984..556e995 100644 ---- a/board/ti/beagle/beagle.c -+++ b/board/ti/beagle/beagle.c -@@ -172,33 +172,40 @@ int misc_init_r(void) - printf("Recognized Tincantools Zippy expansion board (rev %d %s)\n", - expansion_config.revision, expansion_config.fab_revision); - MUX_TINCANTOOLS_ZIPPY(); -+ setenv("buddy", "zippy"); - break; - case TINCANTOOLS_ZIPPY2: - printf("Recognized Tincantools Zippy2 expansion board (rev %d %s)\n", - expansion_config.revision, expansion_config.fab_revision); - MUX_TINCANTOOLS_ZIPPY(); -+ setenv("buddy", "zippy2"); - break; - case TINCANTOOLS_TRAINER: - printf("Recognized Tincantools Trainer expansion board (rev %d %s)\n", - expansion_config.revision, expansion_config.fab_revision); - MUX_TINCANTOOLS_ZIPPY(); - MUX_TINCANTOOLS_TRAINER(); -+ setenv("buddy", "trainer"); - break; - case TINCANTOOLS_SHOWDOG: - printf("Recognized Tincantools Showdow expansion board (rev %d %s)\n", - expansion_config.revision, expansion_config.fab_revision); - /* Place holder for DSS2 definition for showdog lcd */ - setenv("defaultdisplay", "showdoglcd"); -+ setenv("buddy", "showdog"); - break; - case KBADC_BEAGLEFPGA: - printf("Recognized KBADC Beagle FPGA board\n"); - MUX_KBADC_BEAGLEFPGA(); -+ setenv("buddy", "beaglefpga"); - break; - case BEAGLE_NO_EEPROM: - printf("No EEPROM on expansion board\n"); -+ setenv("buddy", "none"); - break; - default: - printf("Unrecognized expansion board: %x\n", expansion_config.device_vendor); -+ setenv("buddy", "unknown"); - } - - if (expansion_config.content == 1) -diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h -index 47bc971..8ad52aa 100644 ---- a/include/configs/omap3_beagle.h -+++ b/include/configs/omap3_beagle.h -@@ -190,6 +190,7 @@ - "usbtty=cdc_acm\0" \ - "console=ttyS2,115200n8\0" \ - "mpurate=500\0" \ -+ "buddy=none\0" \ - "vram=12M\0" \ - "dvimode=640x480MR-16@60\0" \ - "defaultdisplay=dvi\0" \ -@@ -199,6 +200,7 @@ - "nandrootfstype=jffs2\0" \ - "mmcargs=setenv bootargs console=${console} " \ - "mpurate=${mpurate} " \ -+ "buddy=${buddy} "\ - "vram=${vram} " \ - "omapfb.mode=dvi:${dvimode} " \ - "omapdss.def_disp=${defaultdisplay} " \ -@@ -206,6 +208,7 @@ - "rootfstype=${mmcrootfstype}\0" \ - "nandargs=setenv bootargs console=${console} " \ - "mpurate=${mpurate} " \ -+ "buddy=${buddy} "\ - "vram=${vram} " \ - "omapfb.mode=dvi:${dvimode} " \ - "omapdss.def_disp=${defaultdisplay} " \ --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0038-Added-configurations-for-xM-Rev-A-board.patch b/recipes-bsp/u-boot/u-boot/0038-Added-configurations-for-xM-Rev-A-board.patch deleted file mode 100644 index bb51b8b..0000000 --- a/recipes-bsp/u-boot/u-boot/0038-Added-configurations-for-xM-Rev-A-board.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 94462a5c200adbad2c4fc47d7fc0ca24aeb14a2a Mon Sep 17 00:00:00 2001 -From: Jason Kridner -Date: Wed, 5 May 2010 14:53:49 -0500 -Subject: [PATCH 38/51] Added configurations for xM Rev A board - -This defaults to "on" condition for USB and DVI. May want to revise for -power savings. ---- - board/ti/beagle/beagle.h | 4 ++++ - 1 files changed, 4 insertions(+), 0 deletions(-) - -diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h -index 7774855..cb7fd1c 100644 ---- a/board/ti/beagle/beagle.h -+++ b/board/ti/beagle/beagle.h -@@ -389,6 +389,10 @@ const omap3_sysinfo sysinfo = { - MUX_VAL(CP(UART2_TX), (IDIS | PTD | DIS | M0)) /*UART2_TX*/ - - #define MUX_BEAGLE_XM() \ -+ MUX_VAL(CP(GPMC_NCS5), (IDIS | PTD | EN | M4)) /*GPIO_56 - USB HUB reset*/\ -+ MUX_VAL(CP(GPMC_WAIT0), (IDIS | PTU | EN | M4)) /*GPIO_63 - P8 USB HUB nreset*/\ -+ MUX_VAL(CP(MMC1_DAT7), (IDIS | PTU | EN | M4)) /*GPIO_129 - DVI enable*/\ -+ MUX_VAL(CP(HDQ_SIO), (IDIS | PTU | EN | M4)) /*GPIO_170 - P8 DVI enable*/\ - MUX_VAL(CP(MCBSP3_DX), (IEN | PTD | DIS | M4)) /*GPIO_140*/\ - MUX_VAL(CP(MCBSP3_DR), (IEN | PTD | DIS | M4)) /*GPIO_142*/\ - MUX_VAL(CP(MCBSP3_CLKX), (IEN | PTD | DIS | M4)) /*GPIO_141*/\ --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0039-OMAP3-beagle-setenv-beaglerev-for-AxBx-Cx-xMA-for-be.patch b/recipes-bsp/u-boot/u-boot/0039-OMAP3-beagle-setenv-beaglerev-for-AxBx-Cx-xMA-for-be.patch deleted file mode 100644 index 799afcc..0000000 --- a/recipes-bsp/u-boot/u-boot/0039-OMAP3-beagle-setenv-beaglerev-for-AxBx-Cx-xMA-for-be.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 4b5bb4a7656dc1c4a1b985b6f5454c58ad060112 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Thu, 3 Jun 2010 19:50:57 +0200 -Subject: [PATCH 39/51] OMAP3: beagle: setenv beaglerev for AxBx/Cx/xMA for better bootscripts - ---- - board/ti/beagle/beagle.c | 4 ++++ - 1 files changed, 4 insertions(+), 0 deletions(-) - -diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c -index 556e995..cdba3dd 100644 ---- a/board/ti/beagle/beagle.c -+++ b/board/ti/beagle/beagle.c -@@ -221,14 +221,17 @@ int misc_init_r(void) - case REVISION_AXBX: - printf("Beagle Rev Ax/Bx\n"); - setenv("mpurate", "600"); -+ setenv("beaglerev", "AxBx"); - break; - case REVISION_CX: - printf("Beagle Rev C1/C2/C3\n"); - MUX_BEAGLE_C(); - setenv("mpurate", "600"); -+ setenv("beaglerev", "Cx"); - break; - case REVISION_C4: - printf("Beagle Rev C4\n"); -+ setenv("beaglerev", "Cx"); - MUX_BEAGLE_C(); - /* Set VAUX2 to 1.8V for EHCI PHY */ - twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, -@@ -239,6 +242,7 @@ int misc_init_r(void) - break; - case REVISION_XM: - printf("Beagle xM Rev A\n"); -+ setenv("beaglerev", "xMA"); - MUX_BEAGLE_XM(); - /* Set VAUX2 to 1.8V for EHCI PHY */ - twl4030_pmrecv_vsel_cfg(TWL4030_PM_RECEIVER_VAUX2_DEDICATED, --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0040-OMAP-mmc-add-support-for-second-and-third-mmc-channe.patch b/recipes-bsp/u-boot/u-boot/0040-OMAP-mmc-add-support-for-second-and-third-mmc-channe.patch deleted file mode 100644 index 68f39f0..0000000 --- a/recipes-bsp/u-boot/u-boot/0040-OMAP-mmc-add-support-for-second-and-third-mmc-channe.patch +++ /dev/null @@ -1,126 +0,0 @@ -From 0dd14c6a6f40cb47fd8517e9e9d48f0a119e9aa9 Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Thu, 29 Apr 2010 10:28:14 -0700 -Subject: [PATCH 40/51] OMAP: mmc: add support for second and third mmc channels - -Boards wishing to use this feature should define CONFIG_SYS_MMC_SET_DEV - -Signed-off-by: Jason Kridner ---- - drivers/mmc/omap3_mmc.c | 39 +++++++++++++++++++++++++++- - include/asm-arm/arch-omap3/mmc_host_def.h | 15 +++++++++-- - 2 files changed, 49 insertions(+), 5 deletions(-) - -diff --git a/drivers/mmc/omap3_mmc.c b/drivers/mmc/omap3_mmc.c -index 96c0e65..bf650ba 100644 ---- a/drivers/mmc/omap3_mmc.c -+++ b/drivers/mmc/omap3_mmc.c -@@ -52,7 +52,27 @@ const unsigned short mmc_transspeed_val[15][4] = { - - mmc_card_data cur_card_data; - static block_dev_desc_t mmc_blk_dev; --static hsmmc_t *mmc_base = (hsmmc_t *)OMAP_HSMMC_BASE; -+static hsmmc_t *mmc_base = (hsmmc_t *)OMAP_HSMMC1_BASE; -+ -+unsigned char mmc_set_dev(int dev) -+{ -+ switch (dev) { -+ case 1: -+ mmc_base = (hsmmc_t *)OMAP_HSMMC1_BASE; -+ break; -+ case 2: -+ mmc_base = (hsmmc_t *)OMAP_HSMMC2_BASE; -+ break; -+ case 3: -+ mmc_base = (hsmmc_t *)OMAP_HSMMC3_BASE; -+ break; -+ default: -+ mmc_base = (hsmmc_t *)OMAP_HSMMC1_BASE; -+ return 1; -+ } -+ -+ return 0; -+} - - block_dev_desc_t *mmc_get_dev(int dev) - { -@@ -62,6 +82,7 @@ block_dev_desc_t *mmc_get_dev(int dev) - unsigned char mmc_board_init(void) - { - t2_t *t2_base = (t2_t *)T2_BASE; -+ struct prcm *prcm_base = (struct prcm *)PRCM_BASE; - - #if defined(CONFIG_TWL4030_POWER) - twl4030_power_mmc_init(); -@@ -74,6 +95,17 @@ unsigned char mmc_board_init(void) - writel(readl(&t2_base->devconf0) | MMCSDIO1ADPCLKISEL, - &t2_base->devconf0); - -+ writel(readl(&t2_base->devconf1) | MMCSDIO2ADPCLKISEL, -+ &t2_base->devconf1); -+ -+ writel(readl(&prcm_base->fclken1_core) | -+ EN_MMC1 | EN_MMC2 | EN_MMC3, -+ &prcm_base->fclken1_core); -+ -+ writel(readl(&prcm_base->iclken1_core) | -+ EN_MMC1 | EN_MMC2 | EN_MMC3, -+ &prcm_base->iclken1_core); -+ - return 1; - } - -@@ -512,8 +544,11 @@ unsigned long mmc_bread(int dev_num, unsigned long blknr, lbaint_t blkcnt, - return 1; - } - --int mmc_legacy_init(int verbose) -+int mmc_legacy_init(int dev) - { -+ if (mmc_set_dev(dev) != 0) -+ return 1; -+ - if (configure_mmc(&cur_card_data) != 1) - return 1; - -diff --git a/include/asm-arm/arch-omap3/mmc_host_def.h b/include/asm-arm/arch-omap3/mmc_host_def.h -index aa751c9..43dd705 100644 ---- a/include/asm-arm/arch-omap3/mmc_host_def.h -+++ b/include/asm-arm/arch-omap3/mmc_host_def.h -@@ -29,13 +29,20 @@ - #define T2_BASE 0x48002000 - - typedef struct t2 { -- unsigned char res1[0x274]; -+ unsigned char res1[0x274]; /* 0x000 */ - unsigned int devconf0; /* 0x274 */ -- unsigned char res2[0x2A8]; -+ unsigned char res2[0x060]; /* 0x278 */ -+ unsigned int devconf1; /* 0x2D8 */ -+ unsigned char res3[0x244]; /* 0x2DC */ - unsigned int pbias_lite; /* 0x520 */ - } t2_t; - - #define MMCSDIO1ADPCLKISEL (1 << 24) -+#define MMCSDIO2ADPCLKISEL (1 << 6) -+ -+#define EN_MMC1 (1 << 24) -+#define EN_MMC2 (1 << 25) -+#define EN_MMC3 (1 << 30) - - #define PBIASLITEPWRDNZ0 (1 << 1) - #define PBIASSPEEDCTRL0 (1 << 2) -@@ -44,7 +51,9 @@ typedef struct t2 { - /* - * OMAP HSMMC register definitions - */ --#define OMAP_HSMMC_BASE 0x4809C000 -+#define OMAP_HSMMC1_BASE 0x4809C000 -+#define OMAP_HSMMC2_BASE 0x480B4000 -+#define OMAP_HSMMC3_BASE 0x480AD000 - - typedef struct hsmmc { - unsigned char res1[0x10]; --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0041-OMAP3-Beagle-enable-support-for-second-and-third-mmc.patch b/recipes-bsp/u-boot/u-boot/0041-OMAP3-Beagle-enable-support-for-second-and-third-mmc.patch deleted file mode 100644 index 048962f..0000000 --- a/recipes-bsp/u-boot/u-boot/0041-OMAP3-Beagle-enable-support-for-second-and-third-mmc.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 8da9e2bac6daf2d61d7ca9d689790fc9ce5de9cb Mon Sep 17 00:00:00 2001 -From: Steve Sakoman -Date: Fri, 7 May 2010 07:40:26 -0700 -Subject: [PATCH 41/51] OMAP3: Beagle: enable support for second and third mmc channels - -Based on 629a01965677e680ffa1fe76579ace7f69dd45b9, but removed BOOTDELAY change. ---- - include/configs/omap3_beagle.h | 8 +++++--- - 1 files changed, 5 insertions(+), 3 deletions(-) - -diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h -index 8ad52aa..e4c88f2 100644 ---- a/include/configs/omap3_beagle.h -+++ b/include/configs/omap3_beagle.h -@@ -95,6 +95,7 @@ - 115200} - #define CONFIG_MMC 1 - #define CONFIG_OMAP3_MMC 1 -+#define CONFIG_SYS_MMC_SET_DEV 1 - #define CONFIG_DOS_PARTITION 1 - - /* DDR - I use Micron DDR */ -@@ -194,6 +195,7 @@ - "vram=12M\0" \ - "dvimode=640x480MR-16@60\0" \ - "defaultdisplay=dvi\0" \ -+ "mmcdev=1\0" \ - "mmcroot=/dev/mmcblk0p2 rw\0" \ - "mmcrootfstype=ext3 rootwait\0" \ - "nandroot=/dev/mtdblock4 rw\0" \ -@@ -214,10 +216,10 @@ - "omapdss.def_disp=${defaultdisplay} " \ - "root=${nandroot} " \ - "rootfstype=${nandrootfstype}\0" \ -- "loadbootscript=fatload mmc 0 ${loadaddr} boot.scr\0" \ -+ "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \ - "bootscript=echo Running bootscript from mmc ...; " \ - "source ${loadaddr}\0" \ -- "loaduimage=fatload mmc 0 ${loadaddr} uImage\0" \ -+ "loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \ - "mmcboot=echo Booting from mmc ...; " \ - "run mmcargs; " \ - "bootm ${loadaddr}\0" \ -@@ -227,7 +229,7 @@ - "bootm ${loadaddr}\0" \ - - #define CONFIG_BOOTCOMMAND \ -- "if mmc init; then " \ -+ "if mmc init ${mmcdev}; then " \ - "if run loadbootscript; then " \ - "run bootscript; " \ - "else " \ --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0043-Add-led-command.patch b/recipes-bsp/u-boot/u-boot/0043-Add-led-command.patch deleted file mode 100644 index bd5a5e2..0000000 --- a/recipes-bsp/u-boot/u-boot/0043-Add-led-command.patch +++ /dev/null @@ -1,256 +0,0 @@ -From 1fc5c28bc260c72b4f9cefdf55bfd10504916457 Mon Sep 17 00:00:00 2001 -From: Jason Kridner -Date: Thu, 20 May 2010 05:41:26 -0500 -Subject: [PATCH 43/51] Add 'led' command - -This patch allows any board implementing the coloured LED API -to control the LEDs from the console. - -led [green | yellow | red | all ] [ on | off ] - -or - -led [ 1 | 2 | 3 | all ] [ on | off ] - -Adds configuration item CONFIG_CMD_LED enabling the command. - -Partially based on patch from Ulf Samuelsson: -http://www.mail-archive.com/u-boot@lists.denx.de/msg09593.html. -(cherry picked from commit aaf47f8d6af81393b7d3275d69b5dbdf07a3d6fb) -(cherry picked from commit 3d314bf59a48c2ee93d06d50b81f109af6a6c1ec) - -Signed-off-by: Jason Kridner ---- - common/Makefile | 1 + - common/cmd_led.c | 207 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 208 insertions(+), 0 deletions(-) - create mode 100644 common/cmd_led.c - -diff --git a/common/Makefile b/common/Makefile -index dbf7a05..1d717ca 100644 ---- a/common/Makefile -+++ b/common/Makefile -@@ -106,6 +106,7 @@ COBJS-$(CONFIG_CMD_IRQ) += cmd_irq.o - COBJS-$(CONFIG_CMD_ITEST) += cmd_itest.o - COBJS-$(CONFIG_CMD_JFFS2) += cmd_jffs2.o - COBJS-$(CONFIG_CMD_CRAMFS) += cmd_cramfs.o -+COBJS-$(CONFIG_CMD_LED) += cmd_led.o - COBJS-$(CONFIG_CMD_LICENSE) += cmd_license.o - COBJS-y += cmd_load.o - COBJS-$(CONFIG_LOGBUFFER) += cmd_log.o -diff --git a/common/cmd_led.c b/common/cmd_led.c -new file mode 100644 -index 0000000..3b7b534 ---- /dev/null -+++ b/common/cmd_led.c -@@ -0,0 +1,207 @@ -+/* -+ * (C) Copyright 2010 -+ * Jason Kridner -+ * -+ * Based on cmd_led.c patch from: -+ * http://www.mail-archive.com/u-boot@lists.denx.de/msg06873.html -+ * (C) Copyright 2008 -+ * Ulf Samuelsson -+ * -+ * 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., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+/* -+ * This file provides a shell like 'test' function to return -+ * true/false from an integer or string compare of two memory -+ * locations or a location and a scalar/literal. -+ * A few parts were lifted from bash 'test' command -+ */ -+ -+#include -+#include -+#include -+#include -+ -+int do_led ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[] ) -+{ -+#ifdef CONFIG_BOARD_SPECIFIC_LED -+ led_id_t mask; -+#endif -+ int state; -+ -+ /* Validate arguments */ -+ if ((argc != 3)){ -+ printf("Usage:\n%s\n", cmdtp->usage); -+ return 1; -+ } -+ -+ if (strcmp(argv[2], "off") == 0) { -+ state = 0; -+ } else if (strcmp(argv[2], "on") == 0) { -+ state = 1; -+ } else { -+ printf ("Usage:\n%s\n", cmdtp->usage); -+ return 1; -+ } -+ -+#if defined(STATUS_LED_BIT) && defined(CONFIG_BOARD_SPECIFIC_LED) -+ if (strcmp(argv[1], "0") == 0) { -+ mask = STATUS_LED_BIT; -+ __led_set(mask, state); -+ } -+ else -+#endif -+#if defined(STATUS_LED_BIT1) && defined(CONFIG_BOARD_SPECIFIC_LED) -+ if (strcmp(argv[1], "1") == 0) { -+ mask = STATUS_LED_BIT1; -+ __led_set(mask, state); -+ } -+ else -+#endif -+#if defined(STATUS_LED_BIT2) && defined(CONFIG_BOARD_SPECIFIC_LED) -+ if (strcmp(argv[1], "2") == 0) { -+ mask = STATUS_LED_BIT2; -+ __led_set(mask, state); -+ } -+ else -+#endif -+#if defined(STATUS_LED_BIT3) && defined(CONFIG_BOARD_SPECIFIC_LED) -+ if (strcmp(argv[1], "3") == 0) { -+ mask = STATUS_LED_BIT3; -+ __led_set(mask, state); -+ } -+ else -+#endif -+#ifdef STATUS_LED_RED -+ if (strcmp(argv[1], "red") == 0) { -+ if (state == 0) -+ red_LED_off(); -+ else -+ red_LED_on(); -+ } -+ else -+#endif -+#ifdef STATUS_LED_GREEN -+ if (strcmp(argv[1], "green") == 0) { -+ if (state == 0) -+ green_LED_off(); -+ else -+ green_LED_on(); -+ } -+ else -+#endif -+#ifdef STATUS_LED_YELLOW -+ if (strcmp(argv[1], "yellow") == 0) { -+ if (state == 0) -+ yellow_LED_off(); -+ else -+ yellow_LED_on(); -+ } -+ else -+#endif -+#ifdef STATUS_LED_BLUE -+ if (strcmp(argv[1], "blue") == 0) { -+ if (state == 0) -+ blue_LED_off(); -+ else -+ blue_LED_on(); -+ } -+ else -+#endif -+ if (strcmp(argv[1], "all") == 0) { -+ mask = 0 -+#if defined(STATUS_LED_BIT) && defined(CONFIG_BOARD_SPECIFIC_LED) -+ | STATUS_LED_BIT -+#endif -+#if defined(STATUS_LED_BIT1) && defined(CONFIG_BOARD_SPECIFIC_LED) -+ | STATUS_LED_BIT1 -+#endif -+#if defined(STATUS_LED_BIT2) && defined(CONFIG_BOARD_SPECIFIC_LED) -+ | STATUS_LED_BIT2 -+#endif -+#if defined(STATUS_LED_BIT3) && defined(CONFIG_BOARD_SPECIFIC_LED) -+ | STATUS_LED_BIT3 -+#endif -+ ; -+#ifdef CONFIG_BOARD_SPECIFIC_LED -+ __led_set(mask, state); -+#endif -+#ifdef STATUS_LED_RED -+ if (state == 0) -+ red_LED_off(); -+ else -+ red_LED_on(); -+#endif -+#ifdef STATUS_LED_GREEN -+ if (state == 0) -+ green_LED_off(); -+ else -+ green_LED_on(); -+#endif -+#ifdef STATUS_LED_YELLOW -+ if (state == 0) -+ yellow_LED_off(); -+ else -+ yellow_LED_on(); -+#endif -+#ifdef STATUS_LED_BLUE -+ if (state == 0) -+ blue_LED_off(); -+ else -+ blue_LED_on(); -+#endif -+ } else { -+ printf ("Usage:\n%s\n", cmdtp->usage); -+ return 1; -+ } -+ -+ return 0; -+} -+ -+U_BOOT_CMD( -+ led, 3, 1, do_led, -+ "led\t- [" -+#if defined(STATUS_LED_BIT) && defined(CONFIG_BOARD_SPECIFIC_LED) -+ "0|" -+#endif -+#if defined(STATUS_LED_BIT1) && defined(CONFIG_BOARD_SPECIFIC_LED) -+ "1|" -+#endif -+#if defined(STATUS_LED_BIT2) && defined(CONFIG_BOARD_SPECIFIC_LED) -+ "2|" -+#endif -+#if defined(STATUS_LED_BIT3) && defined(CONFIG_BOARD_SPECIFIC_LED) -+ "3|" -+#endif -+#ifdef STATUS_LED_GREEN -+ "green|" -+#endif -+#ifdef STATUS_LED_YELLOW -+ "yellow|" -+#endif -+#ifdef STATUS_LED_RED -+ "red|" -+#endif -+#ifdef STATUS_LED_BLUE -+ "blue|" -+#endif -+ "all] [on|off]\n", -+ "led [led_name] [on|off] sets or clears led(s)\n" -+); -+ --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0044-BeagleBoard-Enabled-LEDs.patch b/recipes-bsp/u-boot/u-boot/0044-BeagleBoard-Enabled-LEDs.patch deleted file mode 100644 index 0142c85..0000000 --- a/recipes-bsp/u-boot/u-boot/0044-BeagleBoard-Enabled-LEDs.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 40049e97a5a97d597f8754ff1b39d931053eb465 Mon Sep 17 00:00:00 2001 -From: Jason Kridner -Date: Wed, 19 May 2010 05:14:43 -0500 -Subject: [PATCH 44/51] BeagleBoard: Enabled LEDs - -Added LED driver using status_led. USR0 is set to monitor the boot -status. USR1 is set to be the GREEN LED. - -Signed-off-by: Jason Kridner ---- - include/configs/omap3_beagle.h | 13 +++++++++++++ - 1 files changed, 13 insertions(+), 0 deletions(-) - -diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h -index e4c88f2..053f5df 100644 ---- a/include/configs/omap3_beagle.h -+++ b/include/configs/omap3_beagle.h -@@ -98,6 +98,18 @@ - #define CONFIG_SYS_MMC_SET_DEV 1 - #define CONFIG_DOS_PARTITION 1 - -+/* Status LED */ -+#define CONFIG_STATUS_LED 1 -+#define CONFIG_BOARD_SPECIFIC_LED 1 -+#define STATUS_LED_BIT 0x01 -+#define STATUS_LED_STATE STATUS_LED_ON -+#define STATUS_LED_PERIOD (CONFIG_SYS_HZ / 2) -+#define STATUS_LED_BIT1 0x02 -+#define STATUS_LED_STATE1 STATUS_LED_ON -+#define STATUS_LED_PERIOD1 (CONFIG_SYS_HZ / 2) -+#define STATUS_LED_BOOT STATUS_LED_BIT -+#define STATUS_LED_GREEN STATUS_LED_BIT1 -+ - /* DDR - I use Micron DDR */ - #define CONFIG_OMAP3_MICRON_DDR 1 - -@@ -138,6 +150,7 @@ - #define CONFIG_CMD_I2C /* I2C serial bus support */ - #define CONFIG_CMD_MMC /* MMC support */ - #define CONFIG_CMD_NAND /* NAND support */ -+#define CONFIG_CMD_LED /* LED support */ - #define CONFIG_VIDEO_OMAP3 /* DSS Support */ - - #undef CONFIG_CMD_FLASH /* flinfo, erase, protect */ --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0046-BeagleBoard-Add-CONFIG_SYS_MEMTEST_SCRATCH.patch b/recipes-bsp/u-boot/u-boot/0046-BeagleBoard-Add-CONFIG_SYS_MEMTEST_SCRATCH.patch deleted file mode 100644 index a34f6bf..0000000 --- a/recipes-bsp/u-boot/u-boot/0046-BeagleBoard-Add-CONFIG_SYS_MEMTEST_SCRATCH.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 631cd4e4a02faa5726c058626390bee97188f456 Mon Sep 17 00:00:00 2001 -From: Steven Kipisz -Date: Fri, 4 Jun 2010 10:31:04 -0500 -Subject: [PATCH 46/51] BeagleBoard: Add CONFIG_SYS_MEMTEST_SCRATCH - -Add CONFIG_SYS_MEMTEST_SCRATCH to point to a scratch memory area. - -Signed-off-by: Jason Kridner ---- - include/configs/omap3_beagle.h | 9 +++++---- - 1 files changed, 5 insertions(+), 4 deletions(-) - -diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h -index 053f5df..b265b0c 100644 ---- a/include/configs/omap3_beagle.h -+++ b/include/configs/omap3_beagle.h -@@ -269,10 +269,11 @@ - /* Boot Argument Buffer Size */ - #define CONFIG_SYS_BARGSIZE (CONFIG_SYS_CBSIZE) - --#define CONFIG_SYS_MEMTEST_START (OMAP34XX_SDRC_CS0) /* memtest */ -- /* works on */ --#define CONFIG_SYS_MEMTEST_END (OMAP34XX_SDRC_CS0 + \ -- 0x01F00000) /* 31MB */ -+#define CONFIG_SYS_ALT_MEMTEST 1 -+#define CONFIG_SYS_MEMTEST_START (0x82000000) /* memtest */ -+ /* defaults */ -+#define CONFIG_SYS_MEMTEST_END (0x87FFFFFF) /* 128MB */ -+#define CONFIG_SYS_MEMTEST_SCRATCH (0x81000000) /* dummy address */ - - #define CONFIG_SYS_LOAD_ADDR (OMAP34XX_SDRC_CS0) /* default */ - /* load address */ --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0047-BeagleBoard-Adjust-boot-command-on-USER-button.patch b/recipes-bsp/u-boot/u-boot/0047-BeagleBoard-Adjust-boot-command-on-USER-button.patch deleted file mode 100644 index 7d40ff7..0000000 --- a/recipes-bsp/u-boot/u-boot/0047-BeagleBoard-Adjust-boot-command-on-USER-button.patch +++ /dev/null @@ -1,115 +0,0 @@ -From d3f9ba7264111551ea11f33aadbecc15c87a4332 Mon Sep 17 00:00:00 2001 -From: Jason Kridner -Date: Wed, 21 Jul 2010 08:47:59 -0500 -Subject: [PATCH 47/51] BeagleBoard: Adjust boot command on USER button - -When the USER button is pressed, the default boot command will attempt -to load user.scr. If that fails, it will try to load a ramdisk image. - -This version also sets the rootfstype and assumes that the userbutton -command returns success (0) when the button is pressed. It also really -attempts to load the user.scr file. ---- - include/configs/omap3_beagle.h | 51 ++++++++++++++++++++++++++++++++++----- - 1 files changed, 44 insertions(+), 7 deletions(-) - -diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h -index b265b0c..1a76004 100644 ---- a/include/configs/omap3_beagle.h -+++ b/include/configs/omap3_beagle.h -@@ -200,9 +200,12 @@ - #define CONFIG_BOOTDELAY 3 - - #define CONFIG_EXTRA_ENV_SETTINGS \ -- "loadaddr=0x82000000\0" \ -+ "loadaddr=0x80200000\0" \ -+ "rdaddr=0x81600000\0" \ - "usbtty=cdc_acm\0" \ - "console=ttyS2,115200n8\0" \ -+ "optargs=\0" \ -+ "bootscr=boot.scr\0" \ - "mpurate=500\0" \ - "buddy=none\0" \ - "vram=12M\0" \ -@@ -213,7 +216,10 @@ - "mmcrootfstype=ext3 rootwait\0" \ - "nandroot=/dev/mtdblock4 rw\0" \ - "nandrootfstype=jffs2\0" \ -+ "ramroot=/dev/ram0 rw\0" \ -+ "ramrootfstype=ext2\0" \ - "mmcargs=setenv bootargs console=${console} " \ -+ "${optargs} " \ - "mpurate=${mpurate} " \ - "buddy=${buddy} "\ - "vram=${vram} " \ -@@ -222,6 +228,7 @@ - "root=${mmcroot} " \ - "rootfstype=${mmcrootfstype}\0" \ - "nandargs=setenv bootargs console=${console} " \ -+ "${optargs} " \ - "mpurate=${mpurate} " \ - "buddy=${buddy} "\ - "vram=${vram} " \ -@@ -229,7 +236,18 @@ - "omapdss.def_disp=${defaultdisplay} " \ - "root=${nandroot} " \ - "rootfstype=${nandrootfstype}\0" \ -- "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \ -+ "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} ${bootscr}\0" \ -+ "ramargs=setenv bootargs console=${console} " \ -+ "${optargs} " \ -+ "mpurate=${mpurate} " \ -+ "buddy=${buddy} "\ -+ "vram=${vram} " \ -+ "omapfb.mode=dvi:${dvimode} " \ -+ "omapdss.def_disp=${defaultdisplay} " \ -+ "root=${ramroot} rw ramdisk_size=65536 " \ -+ "initrd=${rdaddr},64M " \ -+ "rootfstype=${ramrootfstype}\0" \ -+ "loadramdisk=fatload mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \ - "bootscript=echo Running bootscript from mmc ...; " \ - "source ${loadaddr}\0" \ - "loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \ -@@ -240,15 +258,34 @@ - "run nandargs; " \ - "nand read ${loadaddr} 280000 400000; " \ - "bootm ${loadaddr}\0" \ -+ "ramboot=echo Booting from ramdisk ...; " \ -+ "run ramargs; " \ -+ "bootm ${loadaddr}\0" \ - - #define CONFIG_BOOTCOMMAND \ - "if mmc init ${mmcdev}; then " \ -- "if run loadbootscript; then " \ -- "run bootscript; " \ -+ "if userbutton; then " \ -+ "setenv bootscr user.scr;" \ -+ "if run loadbootscript; then " \ -+ "run bootscript; " \ -+ "else " \ -+ "if run loaduimage; then " \ -+ "if run loadramdisk; then " \ -+ "run ramboot; " \ -+ "else " \ -+ "run mmcboot; " \ -+ "fi; " \ -+ "fi; " \ -+ "fi; " \ - "else " \ -- "if run loaduimage; then " \ -- "run mmcboot; " \ -- "else run nandboot; " \ -+ "setenv bootscr boot.scr; " \ -+ "if run loadbootscript; then " \ -+ "run bootscript; " \ -+ "else " \ -+ "if run loaduimage; then " \ -+ "run mmcboot; " \ -+ "else run nandboot; " \ -+ "fi; " \ - "fi; " \ - "fi; " \ - "else run nandboot; fi" --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0048-BeagleBoard-Enable-pullups-on-i2c2.patch b/recipes-bsp/u-boot/u-boot/0048-BeagleBoard-Enable-pullups-on-i2c2.patch deleted file mode 100644 index dce5de5..0000000 --- a/recipes-bsp/u-boot/u-boot/0048-BeagleBoard-Enable-pullups-on-i2c2.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 35e971eea9c9d9cb690da0509e0f8a48a2cb1269 Mon Sep 17 00:00:00 2001 -From: Steve Kipisz -Date: Thu, 5 Aug 2010 10:36:07 -0500 -Subject: [PATCH 48/51] BeagleBoard: Enable pullups on i2c2. - ---- - board/ti/beagle/beagle.c | 2 ++ - include/asm-arm/arch-omap3/omap3.h | 9 +++++++++ - 2 files changed, 11 insertions(+), 0 deletions(-) - -diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c -index 66df719..ee6bad2 100644 ---- a/board/ti/beagle/beagle.c -+++ b/board/ti/beagle/beagle.c -@@ -171,6 +171,8 @@ int misc_init_r(void) - struct gpio *gpio5_base = (struct gpio *)OMAP34XX_GPIO5_BASE; - struct gpio *gpio6_base = (struct gpio *)OMAP34XX_GPIO6_BASE; - -+ /* Enable i22 pullup resisters */ -+ *(ulong *)(CONTROL_PROG_IO1) &= ~(PRG_I2C2_PULLUPRESX); - beagle_identify(); - - printf("\nProbing for expansion boards, if none are connected you'll see a harmless I2C error.\n\n"); -diff --git a/include/asm-arm/arch-omap3/omap3.h b/include/asm-arm/arch-omap3/omap3.h -index 3957c79..1860dff 100644 ---- a/include/asm-arm/arch-omap3/omap3.h -+++ b/include/asm-arm/arch-omap3/omap3.h -@@ -50,6 +50,15 @@ - /* CONTROL */ - #define OMAP34XX_CTRL_BASE (OMAP34XX_L4_IO_BASE + 0x2000) - -+/* Signal Integrity Parameter Control Registers */ -+#define CONTROL_PROG_IO0 0x48002444 -+#define CONTROL_PROG_IO1 0x48002448 -+#define CONTROL_PROG_IO2 0x48002408 -+#define CONTROL_PROG_IO_WKUP1 0x48002A80 -+ -+/* Bit definition for CONTROL_PROG_IO1 */ -+#define PRG_I2C2_PULLUPRESX 0x00000001 -+ - /* UART */ - #define OMAP34XX_UART1 (OMAP34XX_L4_IO_BASE + 0x6a000) - #define OMAP34XX_UART2 (OMAP34XX_L4_IO_BASE + 0x6c000) --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0049-BeagleBoard-Add-camera-to-default-bootargs.patch b/recipes-bsp/u-boot/u-boot/0049-BeagleBoard-Add-camera-to-default-bootargs.patch deleted file mode 100644 index e3ac860..0000000 --- a/recipes-bsp/u-boot/u-boot/0049-BeagleBoard-Add-camera-to-default-bootargs.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 0a49d60caf30738f13b60a71e740e28f4e7af902 Mon Sep 17 00:00:00 2001 -From: Jason Kridner -Date: Thu, 5 Aug 2010 13:54:12 -0500 -Subject: [PATCH 49/51] BeagleBoard: Add camera to default bootargs - -Signed-off-by: Jason Kridner ---- - include/configs/omap3_beagle.h | 4 ++++ - 1 files changed, 4 insertions(+), 0 deletions(-) - -diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h -index 1a76004..48ad805 100644 ---- a/include/configs/omap3_beagle.h -+++ b/include/configs/omap3_beagle.h -@@ -208,6 +208,7 @@ - "bootscr=boot.scr\0" \ - "mpurate=500\0" \ - "buddy=none\0" \ -+ "camera=lbcm3m1\0" \ - "vram=12M\0" \ - "dvimode=640x480MR-16@60\0" \ - "defaultdisplay=dvi\0" \ -@@ -222,6 +223,7 @@ - "${optargs} " \ - "mpurate=${mpurate} " \ - "buddy=${buddy} "\ -+ "camera=${camera} "\ - "vram=${vram} " \ - "omapfb.mode=dvi:${dvimode} " \ - "omapdss.def_disp=${defaultdisplay} " \ -@@ -231,6 +233,7 @@ - "${optargs} " \ - "mpurate=${mpurate} " \ - "buddy=${buddy} "\ -+ "camera=${camera} "\ - "vram=${vram} " \ - "omapfb.mode=dvi:${dvimode} " \ - "omapdss.def_disp=${defaultdisplay} " \ -@@ -241,6 +244,7 @@ - "${optargs} " \ - "mpurate=${mpurate} " \ - "buddy=${buddy} "\ -+ "camera=${camera} "\ - "vram=${vram} " \ - "omapfb.mode=dvi:${dvimode} " \ - "omapdss.def_disp=${defaultdisplay} " \ --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0050-BeagleBoard-move-ramdisk-parameters.patch b/recipes-bsp/u-boot/u-boot/0050-BeagleBoard-move-ramdisk-parameters.patch deleted file mode 100644 index ebd998d..0000000 --- a/recipes-bsp/u-boot/u-boot/0050-BeagleBoard-move-ramdisk-parameters.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 21738fa5ae05dd5060cf755ac0460f5d1f27e910 Mon Sep 17 00:00:00 2001 -From: Jason Kridner -Date: Wed, 11 Aug 2010 14:50:38 -0500 -Subject: [PATCH 50/51] BeagleBoard: move ramdisk parameters - -This will make it easier to reprogram the ramdisk size. - -Signed-off-by: Jason Kridner ---- - include/configs/omap3_beagle.h | 5 ++--- - 1 files changed, 2 insertions(+), 3 deletions(-) - -diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h -index 48ad805..4f5c1d4 100644 ---- a/include/configs/omap3_beagle.h -+++ b/include/configs/omap3_beagle.h -@@ -217,7 +217,7 @@ - "mmcrootfstype=ext3 rootwait\0" \ - "nandroot=/dev/mtdblock4 rw\0" \ - "nandrootfstype=jffs2\0" \ -- "ramroot=/dev/ram0 rw\0" \ -+ "ramroot=/dev/ram0 rw ramdisk_size=65536 initrd=${rdaddr},64M\0" \ - "ramrootfstype=ext2\0" \ - "mmcargs=setenv bootargs console=${console} " \ - "${optargs} " \ -@@ -248,8 +248,7 @@ - "vram=${vram} " \ - "omapfb.mode=dvi:${dvimode} " \ - "omapdss.def_disp=${defaultdisplay} " \ -- "root=${ramroot} rw ramdisk_size=65536 " \ -- "initrd=${rdaddr},64M " \ -+ "root=${ramroot} " \ - "rootfstype=${ramrootfstype}\0" \ - "loadramdisk=fatload mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \ - "bootscript=echo Running bootscript from mmc ...; " \ --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot/0051-add-support-for-beagleboardtoys-expansionboards.patch b/recipes-bsp/u-boot/u-boot/0051-add-support-for-beagleboardtoys-expansionboards.patch deleted file mode 100644 index 3f75a60..0000000 --- a/recipes-bsp/u-boot/u-boot/0051-add-support-for-beagleboardtoys-expansionboards.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 05c4ef3b0963cef095075486820b030226ced7c3 Mon Sep 17 00:00:00 2001 -From: Koen Kooi -Date: Tue, 8 Feb 2011 12:02:46 +0100 -Subject: [PATCH 51/51] add support for beagleboardtoys expansionboards - -Signed-off-by: Koen Kooi ---- - board/ti/beagle/beagle.c | 15 +++++++++++++++ - board/ti/beagle/beagle.h | 10 ++++++++++ - 2 files changed, 25 insertions(+), 0 deletions(-) - -diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c -index ee6bad2..fdd9c09 100644 ---- a/board/ti/beagle/beagle.c -+++ b/board/ti/beagle/beagle.c -@@ -62,12 +62,16 @@ static struct { - #define HYR_VENDORID 0x0400 - #define MENTOREL_VENDORID 0x0500 - #define KBADC_VENDORID 0x0600 -+#define BBTOYS_VENDORID 0x0B00 - - #define TINCANTOOLS_ZIPPY 0x01000100 - #define TINCANTOOLS_ZIPPY2 0x02000100 - #define TINCANTOOLS_TRAINER 0x04000100 - #define TINCANTOOLS_SHOWDOG 0x03000100 - #define KBADC_BEAGLEFPGA 0x01000600 -+#define BBTOYS_WIFI 0x01000B00 -+#define BBTOYS_VGA 0x02000B00 -+#define BBTOYS_LCD 0x03000B00 - - #define BEAGLE_NO_EEPROM 0xffffffff - -@@ -209,6 +213,17 @@ int misc_init_r(void) - MUX_KBADC_BEAGLEFPGA(); - setenv("buddy", "beaglefpga"); - break; -+ case BBTOYS_WIFI: -+ printf("Recognized Beagleboardtoys wifi board\n"); -+ MUX_BBTOYS_WIFI() -+ setenv("buddy", "bbtoys-wifi"); -+ break;; -+ case BBTOYS_VGA: -+ printf("Recognized Beagleboardtoys VGA board\n"); -+ break;; -+ case BBTOYS_LCD: -+ printf("Recognized Beagleboardtoys LCD board\n"); -+ break;; - case BEAGLE_NO_EEPROM: - printf("No EEPROM on expansion board\n"); - setenv("buddy", "none"); -diff --git a/board/ti/beagle/beagle.h b/board/ti/beagle/beagle.h -index cb7fd1c..2dc6ee6 100644 ---- a/board/ti/beagle/beagle.h -+++ b/board/ti/beagle/beagle.h -@@ -459,6 +459,16 @@ const omap3_sysinfo sysinfo = { - MUX_VAL(CP(MCBSP1_DR), (IEN | PTU | EN | M1)) /*MCSPI4_SOMI*/\ - MUX_VAL(CP(MCBSP1_FSX), (IDIS | PTU | DIS | M1)) /*MCSPI4_CS0*/\ - -+#define MUX_BBTOYS_WIFI() \ -+ MUX_VAL(CP(MMC2_CLK), (IEN | PTU | EN | M0)) /*MMC2_CLK*/\ -+ MUX_VAL(CP(MMC2_CMD), (IEN | PTU | EN | M0)) /*MMC2_CMD*/\ -+ MUX_VAL(CP(MMC2_DAT0), (IEN | PTU | EN | M0)) /*MMC2_DAT0*/\ -+ MUX_VAL(CP(MMC2_DAT1), (IEN | PTU | EN | M0)) /*MMC2_DAT1*/\ -+ MUX_VAL(CP(MMC2_DAT2), (IEN | PTU | EN | M0)) /*MMC2_DAT2*/\ -+ MUX_VAL(CP(MMC2_DAT3), (IEN | PTU | EN | M0)) /*MMC2_DAT3*/\ -+ MUX_VAL(CP(MMC2_DAT5), (IEN | PTU | EN | M4)) /*GPIO_137*/\ -+ MUX_VAL(CP(MMC2_DAT7), (IDIS | PTD | DIS | M4)) /*GPIO_139*/\ -+ - /* - * Display Configuration - */ --- -1.6.6.1 - diff --git a/recipes-bsp/u-boot/u-boot_git.bb b/recipes-bsp/u-boot/u-boot_git.bb index c4f393d..793c159 100644 --- a/recipes-bsp/u-boot/u-boot_git.bb +++ b/recipes-bsp/u-boot/u-boot_git.bb @@ -4,61 +4,28 @@ PR ="r66" FILESPATHPKG =. "u-boot-git:" SRC_URI_beagleboard = "git://www.denx.de/git/u-boot.git;protocol=git \ - file://0001-Enable-I2C-bus-switching.patch \ - file://0002-OMAP3-add-board-revision-detection-for-Overo.patch \ - file://0003-OMAP3-update-Beagle-revision-detection-to-recognize-.patch \ - file://0004-OMAP3-Set-VAUX2-to-1.8V-for-EHCI-PHY-on-Beagle-Rev-C.patch \ - file://0005-OMAP3-add-entry-for-rev-3.1.2-check-and-display-max-.patch \ - file://0006-OMAP3-add-mpurate-boot-arg-for-overo-and-beagle.patch \ - file://0007-OMAP3-detect-expansion-board-type-version-using-eepr.patch \ - file://0008-OMAP3-Overo-enable-config-eeprom-to-set-u-boot-env-v.patch \ - file://0009-OMAP3-Overo-enable-input-on-MMC1_CLK-and-MMC3_CLK-pi.patch \ - file://0010-OMAP3-Overo-set-CONFIG_SYS_I2C_SPEED-to-400Khz.patch \ - file://0011-OMAP3-trim-excessively-long-delays-in-i2c-driver.patch \ - file://0012-OMAP3-Overo-allow-expansion-boards-with-any-vendor-I.patch \ - file://0013-OMAP3-Overo-change-address-of-expansion-eeprom-to-0x.patch \ - file://0014-OMAP3-board.c-don-t-attempt-to-set-up-second-RAM-ban.patch \ - file://0015-OMAP3-mem.c-enhance-the-RAM-test.patch \ - file://0016-env_nand.c-fail-gracefully-if-no-nand-is-present.patch \ - file://0017-OMAP3-add-definitions-to-support-sysinfo-cpu-and-cpu.patch \ - file://0018-OMAP3-sys_info-update-cpu-detection-for-36XX-37XX.patch \ - file://0019-OMAP3-clocks-update-clock-setup-for-36XX-37XX.patch \ - file://0020-OMAP3-beagle-add-support-for-Beagle-xM.patch \ - file://0021-OMAP3-Beagle-Overo-remove-omapfb.debug-y-from-defaul.patch \ - file://0022-OMAP3-beagle-implement-expansionboard-detection-base.patch \ - file://0023-beagleboard-display-message-about-I2C-errors-being-e.patch \ - file://0024-beagleboard-fix-TCT-expansionboard-IDs.patch \ - file://0025-Add-DSS-driver-for-OMAP3.patch \ - file://0026-Enable-DSS-driver-for-Beagle.patch \ - file://0027-beagleboardXM-don-t-set-mpurate-on-xM-in-bootargs.patch \ - file://0028-OMAP3-fix-and-clean-up-L2-cache-enable-disable-funct.patch \ - file://0029-OMAP3-convert-setup_auxcr-to-pure-asm.patch \ - file://0030-OMAP3-apply-Cortex-A8-errata-workarounds-only-on-aff.patch \ - file://0031-OMAP3-beagle-add-more-expansionboards-based-on-http-.patch \ - file://0032-OMAP3-beagle-set-mpurate-to-600-for-revB-and-revC1-3.patch \ - file://0033-OMAP3-beagle-prettify-expansionboard-message-a-bit.patch \ - file://0034-OMAP3-beagle-add-pinmux-for-Tincantools-Trainer-expa.patch \ - file://0035-OMAP3-Beagle-set-mpurate-to-1000-for-xM.patch \ - file://0036-OMAP3-Beagle-decrease-bootdelay-to-3-use-VGA-for-def.patch \ - file://0037-OMAP3-beagle-pass-expansionboard-name-in-bootargs.patch \ - file://0038-Added-configurations-for-xM-Rev-A-board.patch \ - file://0039-OMAP3-beagle-setenv-beaglerev-for-AxBx-Cx-xMA-for-be.patch \ - file://0040-OMAP-mmc-add-support-for-second-and-third-mmc-channe.patch \ - file://0041-OMAP3-Beagle-enable-support-for-second-and-third-mmc.patch \ - file://0042-BeagleBoard-Added-LED-driver.patch \ - file://0043-Add-led-command.patch \ - file://0044-BeagleBoard-Enabled-LEDs.patch \ - file://0045-BeagleBoard-Added-userbutton-command.patch \ - file://0046-BeagleBoard-Add-CONFIG_SYS_MEMTEST_SCRATCH.patch \ - file://0047-BeagleBoard-Adjust-boot-command-on-USER-button.patch \ - file://0048-BeagleBoard-Enable-pullups-on-i2c2.patch \ - file://0049-BeagleBoard-Add-camera-to-default-bootargs.patch \ - file://0050-BeagleBoard-move-ramdisk-parameters.patch \ - file://0051-add-support-for-beagleboardtoys-expansionboards.patch \ + file://0001-OMAP3-Beagle-Pin-Mux-initialization-glitch-fix.patch \ + file://0002-OMAP-Remove-omapfb.debug-y-from-Beagle-and-Overo-env.patch \ + file://0003-omap3_beagle-enable-the-use-of-a-plain-text-file-nam.patch \ + file://0004-OMAP3-BeagleBoard-Enable-pullups-on-i2c2.patch \ + file://0005-ARMV7-OMAP3-BeagleBoard-add-xM-rev-B-to-ID-table.patch \ + file://0006-OMAP3-BeagleBoard-add-more-expansionboard-IDs.patch \ + file://0007-OMAP3-Add-DSS-driver-for-OMAP3.patch \ + file://0008-BeagleBoard-Added-userbutton-command.patch \ + file://0009-OMAP3-beagle-pass-expansionboard-name-in-bootargs.patch \ + file://0010-Enable-DSS-driver-for-Beagle.patch \ + file://0011-Add-led-command.patch \ + file://0012-BeagleBoard-Added-LED-driver.patch \ + file://0013-OMAP3-BeagleBoard-updated-default-configuration.patch \ + file://0014-Corrected-LED-name-match-finding-avoiding-extraneous.patch \ + file://0015-omap3_beagle-Switch-default-console-from-ttyS2-to-tt.patch \ + file://0016-BeagleBoard-Load-kernel-via-MMC-ext2-not-fat.patch \ file://fw_env.config \ -" -SRCREV_pn-${PN}_beagleboard = "ca6e1c136ddb720c3bb2cc043b99f7f06bc46c55" -PV_pn-${PN}_beagleboard = "2010.03+${PR}+gitr${SRCREV}" + " + +SRCREV_pn-${PN}_beagleboard = "c7977858dcf1f656cbe91ea0dc3cb9139c6a8cc8" +PV_pn-${PN}_beagleboard = "2011.02+${PR}+gitr${SRCREV}" +LIC_FILES_CHKSUM_pn-${PN}_beagleboard = "file://COPYING;md5=1707d6db1d42237583f50183a5651ecb" # ~ TI PSP v2009.11_OMAPPSP_03.00.01.06 (+ couple of commits) SRC_URI_omap3evm = "git://arago-project.org/git/projects/u-boot-omap3.git;protocol=git \ -- 2.39.2