1. 15 May, 2012 1 commit
    • Tom Rini's avatar
      omap3: Introduce weak misc_init_r · 8a87a3d7
      Tom Rini authored
      Introduce a __weak misc_init_r function that just runs dieid_num_r().
      Remove misc_init_r from cm_t35, mcx, omap3_logic and mt_ventoux as this was
      all they did for misc_init_r.
      
      Cc: Igor Grinberg <grinberg@compulab.co.il>
      Cc: Ilya Yanok <yanok@emcraft.com>
      Cc: Peter Barada <peter.barada@logicpd.com>
      Cc: Stefano Babic <sbabic@denx.de>
      Signed-off-by: default avatarTom Rini <trini@ti.com>
      Acked-by: default avatarIgor Grinberg <grinberg@compulab.co.il>
      8a87a3d7
  2. 27 Mar, 2012 1 commit
  3. 27 Feb, 2012 1 commit
    • Aneesh V's avatar
      armv7: omap3: leave outer cache enabled · f1f2c3ca
      Aneesh V authored
      Mainline kernel for OMAP3 doesn't enable L2 cache
      It expects L2$ to be enabled by ROM-code/bootloader.
      
      Leaving L2$ enabled can be troublesome in cases where
      the L2 cache is not under CP15 control, such as in
      Cortex-A9. This problem is explained in detail in
      the commit dc7100f4
      
      However, this problem doesn't apply to Cortex-A8
      because L2$ in Cortex-A8 is under CP15 control and
      hence the generic armv7 maintenance opertions work
      for it.
      
      As such we can make an exception for OMAP3 and
      leave the L2$ enabled when we jump to kernel. This
      is done by removing the strongly-linked implementation
      of v7_outer_cache_disable() and allowing it to fall
      back to the weakly linked implementation that doesn't
      do anything.
      Signed-off-by: default avatarAneesh V <aneesh@ti.com>
      f1f2c3ca
  4. 12 Feb, 2012 2 commits
  5. 16 Jan, 2012 1 commit
  6. 06 Dec, 2011 1 commit
    • Tom Rini's avatar
      OMAP3: Add SPL_BOARD_INIT hook · ee08a826
      Tom Rini authored
      Add an SPL_BOARD_INIT hook and for OMAP3 have it turn on i2c.  OMAP4
      doesn't need i2c enabled in SPL.  Enable SPL_BOARD_INIT on devkit8000.
      
      Cc: Frederik Kriewitz <frederik@kriewitz.eu>
      Signed-off-by: default avatarTom Rini <trini@ti.com>
      ee08a826
  7. 29 Nov, 2011 1 commit
  8. 27 Nov, 2011 1 commit
  9. 27 Oct, 2011 1 commit
  10. 30 Sep, 2011 1 commit
  11. 04 Sep, 2011 2 commits
  12. 03 Aug, 2011 1 commit
  13. 04 Jul, 2011 1 commit
  14. 08 Sep, 2010 1 commit
  15. 05 Jul, 2010 1 commit
  16. 04 Jul, 2010 1 commit
    • Wolfgang Denk's avatar
      Make sure that argv[] argument pointers are not modified. · 54841ab5
      Wolfgang Denk authored
      The hush shell dynamically allocates (and re-allocates) memory for the
      argument strings in the "char *argv[]" argument vector passed to
      commands.  Any code that modifies these pointers will cause serious
      corruption of the malloc data structures and crash U-Boot, so make
      sure the compiler can check that no such modifications are being done
      by changing the code into "char * const argv[]".
      
      This modification is the result of debugging a strange crash caused
      after adding a new command, which used the following argument
      processing code which has been working perfectly fine in all Unix
      systems since version 6 - but not so in U-Boot:
      
      int main (int argc, char **argv)
      {
      	while (--argc > 0 && **++argv == '-') {
      /* ====> */	while (*++*argv) {
      			switch (**argv) {
      			case 'd':
      				debug++;
      				break;
      			...
      			default:
      				usage ();
      			}
      		}
      	}
      	...
      }
      
      The line marked "====>" will corrupt the malloc data structures and
      usually cause U-Boot to crash when the next command gets executed by
      the shell.  With the modification, the compiler will prevent this with
      an
      	error: increment of read-only location '*argv'
      
      N.B.: The code above can be trivially rewritten like this:
      
      	while (--argc > 0 && **++argv == '-') {
      		char *arg = *argv;
      		while (*++arg) {
      			switch (*arg) {
      			...
      Signed-off-by: default avatarWolfgang Denk <wd@denx.de>
      Acked-by: default avatarMike Frysinger <vapier@gentoo.org>
      54841ab5
  17. 08 Jun, 2010 2 commits
  18. 07 Jun, 2010 2 commits
  19. 13 Apr, 2010 1 commit
  20. 07 Mar, 2010 1 commit
    • Siarhei Siamashka's avatar
      OMAP3: workaround for ARM Cortex-A8 erratum 725233 · 041d42e7
      Siarhei Siamashka authored
      725233: PLD instructions executed with PLD data forwarding
      enabled can result in a processor deadlock
      
      This deadlock can happen when NEON load instructions are used together
      with cache preload instructions (PLD). The problematic conditions
      can be triggered in-the-wild by NEON optimized functions from pixman
      library (http://cgit.freedesktop.org/pixman), which perform dynamic
      adjustment of prefetch distance.
      
      The workaround disables PLD data forwarding by setting PLD_FWD bit
      in L2 Cache Auxiliary Control Register as recommended in ARM Cortex-A8
      errata list.
      
      The deadlock can only happen on r1pX revisions of Cortex-A8 (used in
      OMAP34xx/OMAP35xx). Performance impact of the workaround is practically
      non-existant.
      Signed-off-by: default avatarSiarhei Siamashka <siarhei.siamashka@gmail.com>
      Signed-off-by: default avatarSandeep Paulraj <s-paulraj@ti.com>
      041d42e7
  21. 07 Dec, 2009 1 commit
  22. 13 Oct, 2009 1 commit
    • Tom Rix's avatar
      OMAP3 Move cache routine to cache.S · 7a2aa8b6
      Tom Rix authored
      v7_flush_dcache_all, because it depends on omap ROM code is not
      generic.  Rename the function to 'invalidate_dcache' and move it
      to the omap cpu directory.
      
      Collect the other omap cache routines l2_cache_enable and
      l2_cache_disable with invalide_dcache into cache.S.  This
      means removing the old cache.c file that contained l2_cache_enable
      and l2_cache_disable.
      
      The conversion from cache.c to cache.S was done most through
      disassembling the uboot binary.  The only significant change was
      to change the comparision for the return of get_cpu_rev from
      
         cmp	r0, #0
         beq	earlier_than_label
      
      Which was lost information to
      
         cmp	r0, #CPU_3XX_ES20
         blt	earlier_than_label
      
      The paths through the enable routine were verified by
      adding an infinite loop and seeing the hang.  Then
      removing the infinite loop and seeing it continue.
      
      The disable routine is similar enough that it was not
      tested with this method.
      
      Run tested by cold booting from nand on beagle and zoom1.
      Compile tested on MAKEALL arm.
      Signed-off-by: default avatarTom Rix <Tom.Rix@windriver.com>
      7a2aa8b6
  23. 15 Sep, 2009 1 commit
    • Tom Rix's avatar
      OMAP3 Move cache routine to cache.S · 7467599c
      Tom Rix authored
      v7_flush_dcache_all, because it depends on omap ROM code is not
      generic.  Rename the function to 'invalidate_dcache' and move it
      to the omap cpu directory.
      
      Collect the other omap cache routines l2_cache_enable and
      l2_cache_disable with invalide_dcache into cache.S.  This
      means removing the old cache.c file that contained l2_cache_enable
      and l2_cache_disable.
      
      The conversion from cache.c to cache.S was done most through
      disassembling the uboot binary.  The only significant change was
      to change the comparision for the return of get_cpu_rev from
      
         cmp	r0, #0
         beq	earlier_than_label
      
      Which was lost information to
      
         cmp	r0, #CPU_3XX_ES20
         blt	earlier_than_label
      
      The paths through the enable routine were verified by
      adding an infinite loop and seeing the hang.  Then
      removing the infinite loop and seeing it continue.
      
      The disable routine is similar enough that it was not
      tested with this method.
      
      Run tested by cold booting from nand on beagle and zoom1.
      Compile tested on MAKEALL arm.
      Signed-off-by: default avatarTom Rix <Tom.Rix@windriver.com>
      7467599c
  24. 21 Aug, 2009 1 commit
    • Wolfgang Denk's avatar
      ARM: compiler options cleanup - improve tool chain support · f772acf8
      Wolfgang Denk authored
      For some time there have been repeated reports about build problems
      with some ARM (cross) tool chains.  Especially issues about
      (in)compatibility with the tool chain provided runtime support
      library libgcc.a caused to add and support a private implementation
      of such runtime support code in U-Boot.  A closer look at the code
      indicated that some of these issues are actually home-made.  This
      patch attempts to clean up some of the most obvious problems and make
      building of U-Boot with different tool chains easier:
      
      - Even though all ARM systems basicy used the same compiler options
        to select a specific ABI from the tool chain, the code for this was
        distributed over all cpu/*/config.mk files.  We move this one level
        up into lib_arm/config.mk instead.
      
      - So far, we only checked if "-mapcs-32" was supported by the tool
        chain; if yes, this was used, if not, "-mabi=apcs-gnu" was
        selected, no matter if the tool chain actually understood this
        option.  There was no support for EABI conformant tool chains.
        This patch implements the following logic:
      
        1) If the tool chain supports
      	"-mabi=aapcs-linux -mno-thumb-interwork"
           we use these options (EABI conformant tool chain).
        2) Otherwise, we check first if
      	"-mapcs-32"
           is supported, and then check for
      	"-mabi=apcs-gnu"
           If one test succeeds, we use the first found option.
        3) In case 2), we also test if "-mno-thumb-interwork", and use
           this if the test succeeds. [For "-mabi=aapcs-linux" we set
           "-mno-thumb-interwork" mandatorily.]
      
        This way we use a similar logic for the compile options as the
        Linux kernel does.
      
      - Some EABI conformant tool chains cause external references to
        utility functions like raise(); such functions are provided in the
        new file lib_arm/eabi_compat.c
      
        Note that lib_arm/config.mk gets parsed several times, so we must
        make sure to add eabi_compat.o only once to the linker list.
      Signed-off-by: default avatarWolfgang Denk <wd@denx.de>
      Cc: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
      Cc: Dirk Behme <dirk.behme@googlemail.com>
      Cc: Magnus Lilja <lilja.magnus@gmail.com>
      Cc: Tom Rix <Tom.Rix@windriver.com>
      Cc: Prafulla Wadaskar <prafulla@marvell.com>
      Acked-by: default avatarSergey Kubushyn <ksi@koi8.net>
      Tested-by: default avatarMagnus Lilja <lilja.magnus@gmail.com>
      Tested-by: default avatarAndrzej Wolski <awolski@poczta.fm>
      Tested-by: default avatarGaye Abdoulaye Walsimou <walsimou@walsimou.com>
      Tested-by: default avatarTom Rix <Tom.Rix@windriver.com>
      Tested-by: default avatarJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
      f772acf8
  25. 08 Aug, 2009 1 commit
  26. 06 Jul, 2009 1 commit
  27. 12 Jun, 2009 1 commit
    • Wolfgang Denk's avatar
      General help message cleanup · a89c33db
      Wolfgang Denk authored
      Many of the help messages were not really helpful; for example, many
      commands that take no arguments would not print a correct synopsis
      line, but "No additional help available." which is not exactly wrong,
      but not helpful either.
      
      Commit ``Make "usage" messages more helpful.'' changed this
      partially. But it also became clear that lots of "Usage" and "Help"
      messages (fields "usage" and "help" in struct cmd_tbl_s respective)
      were actually redundant.
      
      This patch cleans this up - for example:
      
      Before:
      	=> help dtt
      	dtt - Digital Thermometer and Thermostat
      
      	Usage:
      	dtt         - Read temperature from digital thermometer and thermostat.
      
      After:
      	=> help dtt
      	dtt - Read temperature from Digital Thermometer and Thermostat
      
      	Usage:
      	dtt
      Signed-off-by: default avatarWolfgang Denk <wd@denx.de>
      a89c33db
  28. 29 Apr, 2009 1 commit
    • Sanjeev Premi's avatar
      OMAP3: Use functions print_cpuinfo() and checkboard() · 6a6b62e3
      Sanjeev Premi authored
      Use the functions print_cpuinfo() and checkboard() to
      display the cpu and board specific information.
      
      These functions reuse content from the existing function
      display_board_info() - which has been removed.
      
      Also, updated the existig OMAP3 configurations to
      define:
       - CONFIG_DISPLAY_CPUINFO
       - CONFIG_DISPLAY_BOARDINFO
      Signed-off-by: default avatarSanjeev Premi <premi@ti.com>
      6a6b62e3
  29. 04 Apr, 2009 1 commit
    • Sanjeev Premi's avatar
      OMAP: Fix compile issue · 36003268
      Sanjeev Premi authored
      Fixes this compile error:
      board.c: In function 'do_switch_ecc':
      board.c:339: error: 'cmd_tbl_t' has no member named 'help'
      make[1]: *** [board.o] Error 1
      make[1]: Leaving directory `/db/psp_git/users/a0756819/u-boot/cpu/arm_cortexa8/omap3'
      make: *** [cpu/arm_cortexa8/omap3/libomap3.a] Error 2
      
      This is due to the fact that current command uses long
      help for the usage print even if the CONFIG_SYS_LONGHELP
      is not enabled. (Thanks Jean-Christophe for explanation).
      Signed-off-by: default avatarSanjeev Premi <premi@ti.com>
      36003268
  30. 24 Jan, 2009 1 commit