Skip to content
Snippets Groups Projects
  1. Apr 15, 2011
  2. Mar 31, 2011
  3. Mar 27, 2011
  4. Mar 22, 2011
  5. Feb 21, 2011
  6. Jan 14, 2011
  7. Dec 17, 2010
  8. Dec 16, 2010
    • Scott Wood's avatar
      powerpc/nand spl: link libgcc · 97a85b22
      Scott Wood authored
      
      Recent GCC (4.4+) performs out-of-line epilogues in some cases, when
      optimizing for size.  It causes a link error for _restgpr_30_x (and similar)
      if libgcc is not linked.
      
      It actually increases size with very small binaries, due to the fixed size
      of the out-of-line code, and not having any functions that actually need to
      restore more than 2 or 3 registers.  But I don't see a way to turn it off,
      other than asking GCC to optimize for speed -- which may also increase
      size for some boards.
      
      Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
      Acked-by: default avatarKim Phillips <kim.phillips@freescale.com>
      Acked-by: default avatarWolfgang Denk <wd@denx.de>
      97a85b22
    • Scott Wood's avatar
      powerpc/nand spl: link libgcc · 767589a7
      Scott Wood authored
      
      Recent GCC (4.4+) performs out-of-line epilogues in some cases, when
      optimizing for size.  It causes a link error for _restgpr_30_x (and similar)
      if libgcc is not linked.
      
      It actually increases size with very small binaries, due to the fixed size
      of the out-of-line code, and not having any functions that actually need to
      restore more than 2 or 3 registers.  But I don't see a way to turn it off,
      other than asking GCC to optimize for speed -- which may also increase
      size for some boards.
      
      Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
      Acked-by: default avatarKim Phillips <kim.phillips@freescale.com>
      Acked-by: default avatarWolfgang Denk <wd@denx.de>
      767589a7
  9. Nov 27, 2010
    • Wolfgang Denk's avatar
      83xx: Cleanup for partial linking and --gc-sections · ff2311ab
      Wolfgang Denk authored
      
      Signed-off-by: default avatarWolfgang Denk <wd@denx.de>
      Cc: Kim Phillips <kim.phillips@freescale.com>
      Cc: Haiying Wang <r54964@freescale.com>
      ff2311ab
    • Scott Wood's avatar
      83xx: Fix NAND_SPL link address · f1c574d4
      Scott Wood authored
      
      Apply the same fix for 83xx as was done for 85xx in commit
      96196a1f.
      
      Without this, NAND SPLs are built with the text base intended for the main
      image, resulting in a broken, very large u-boot-nand.bin.
      
      The block of defines for NAND boot is moved closer to where
      CONFIG_SYS_TEXT_BASE is defined.  We can't directly use
      CONFIG_SYS_NAND_U_BOOT_DST in the definition of CONFIG_SYS_TEXT_BASE because
      autoconf.mk will include the literal text "CONFIG_SYS_NAND_U_BOOT_DST",
      but at least keep them close and point out that they're supposed to be
      the same.
      
      Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
      f1c574d4
  10. Nov 12, 2010
  11. Oct 18, 2010
    • Wolfgang Denk's avatar
      Rename TEXT_BASE into CONFIG_SYS_TEXT_BASE · 14d0a02a
      Wolfgang Denk authored
      
      The change is currently needed to be able to remove the board
      configuration scripting from the top level Makefile and replace it by
      a simple, table driven script.
      
      Moving this configuration setting into the "CONFIG_*" name space is
      also desirable because it is needed if we ever should move forward to
      a Kconfig driven configuration system.
      
      Signed-off-by: default avatarWolfgang Denk <wd@denx.de>
      14d0a02a
  12. Jul 16, 2010
    • Becky Bruce's avatar
      83xx/85xx/86xx: LBC register cleanup · f51cdaf1
      Becky Bruce authored
      
      Currently, 83xx, 86xx, and 85xx have a lot of duplicated code
      dedicated to defining and manipulating the LBC registers.  Merge
      this into a single spot.
      
      To do this, we have to decide on a common name for the data structure
      that holds the lbc registers - it will now be known as fsl_lbc_t, and we
      adopt a common name for the immap layouts that include the lbc - this was
      previously known as either im_lbc or lbus; use the former.
      
      In addition, create accessors for the BR/OR regs that use in/out_be32
      and use those instead of the mismash of access methods currently in play.
      
      I have done a successful ppc build all and tested a board or two from
      each processor family.
      
      Signed-off-by: default avatarBecky Bruce <beckyb@kernel.crashing.org>
      Acked-by: default avatarKim Phillips <kim.phillips@freescale.com>
      Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
      f51cdaf1
  13. Apr 21, 2010
  14. Apr 13, 2010
  15. Mar 02, 2010
    • Kim Phillips's avatar
      mpc83xx: fix out-of-tree mpc8315 nand build · fe389da6
      Kim Phillips authored
      
      commit 2e95004d "mpc83xx: Add NAND boot support
      for MPC8315E-RDB boards" symlinked nand_spl/board/freescale/mpc8315erdb to
      mpc8313erdb in order to not duplicate code.
      
      Since the main makefile builds nand_spl/board/$(BOARDDIR) (which makes sense),
      and the board Makefile and linker script are the only two necessary files
      to enable out-of-tree building, and other boards have duplicated nand makefiles
      (e.g. 8536ds & 8569mds), it only seems prudent to copy these two files in the
      name of the 8315 too.
      
      Signed-off-by: default avatarKim Phillips <kim.phillips@freescale.com>
      Cc: Anton Vorontsov <avorontsov@ru.mvista.com>
      Cc: Wolfgang Denk <wd@denx.de>
      fe389da6
  16. Jan 27, 2010
  17. Oct 27, 2009
  18. Oct 16, 2009
  19. Sep 30, 2009
    • Mingkai Hu's avatar
      NAND boot: MPC8536DS support · 9a1a0aed
      Mingkai Hu authored
      
      MPC8536E can support booting from NAND flash which uses the
      image u-boot-nand.bin. This image contains two parts: a 4K
      NAND loader and a main U-Boot image. The former is appended
      to the latter to produce u-boot-nand.bin. The 4K NAND loader
      includes the corresponding nand_spl directory, along with the
      code twisted by CONFIG_NAND_SPL. The main U-Boot image just
      like a general U-Boot image except the parts that included by
      CONFIG_SYS_RAMBOOT.
      
      When power on, eLBC will automatically load from bank 0 the
      4K NAND loader into the FCM buffer RAM where CPU can execute
      the boot code directly. In the first stage, the NAND loader
      copies itself to RAM or L2SRAM to free up the FCM buffer RAM,
      then loads the main image from NAND flash to RAM or L2SRAM
      and boot from it.
      
      This patch implements the NAND loader to load the main image
      into L2SRAM, so the main image can configure the RAM by using
      SPD EEPROM. In the first stage, the NAND loader copies itself
      to the second to last 4K address space, and uses the last 4K
      address space as the initial RAM for stack.
      
      Obviously, the size of L2SRAM shouldn't be less than the size
      of the image used. If so, the workaround is to generate another
      image that includes the code to configure the RAM by SPD and
      load it to L2SRAM first, then relocate the main image to RAM
      to boot up.
      
      Signed-off-by: default avatarMingkai Hu <Mingkai.hu@freescale.com>
      Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
      9a1a0aed
  20. Aug 21, 2009
    • Wolfgang Denk's avatar
      Fix all linker scripts for older binutils versions (pre-2.16) · 1aada9cd
      Wolfgang Denk authored
      
      Commit f62fb999 fixed handling of all rodata sections by using a
      wildcard combined with calls to ld's builtin functions SORT_BY_ALIGNMENT()
      and SORT_BY_NAME().  Unfortunately these functions were only
      introduced with biunutils version 2.16, so the modification broke
      building with all tool chains using older binutils.
      
      This patch makes it work again.  This is done by omitting the use of
      these functions for such old tool chains.  This will result in
      slightly larger target binaries, as the rodata sections are no longer
      in optimal order alignment-wise which reauls in unused gaps, but the
      effect was found to be insignificant - especially compared to the fact
      that you cannot build U-Boot at all in the current state.
      
      As ld seems to have no support for conditionals we run the linker
      script through the C preprocessor which can be easily used to remove
      the unwanted function calls.
      
      Note that the C preprocessor must be run with the "-ansi" (or a
      "-std=") option to make sure all the system-specific predefined
      macros outside the reserved namespace are suppressed. Otherise, cpp
      might for example substitute "powerpc" to "1", thus corrupting for
      example "OUTPUT_ARCH(powerpc)" etc.
      
      Signed-off-by: default avatarWolfgang Denk <wd@denx.de>
      Cc: Mike Frysinger <vapier@gentoo.org>
      1aada9cd
  21. Jul 06, 2009
  22. Mar 20, 2009
    • Trent Piepho's avatar
      Fix all linker script to handle all rodata sections · f62fb999
      Trent Piepho authored
      
      A recent gcc added a new unaligned rodata section called '.rodata.str1.1',
      which needs to be added the the linker script.  Instead of just adding this
      one section, we use a wildcard ".rodata*" to get all rodata linker section
      gcc has now and might add in the future.
      
      However, '*(.rodata*)' by itself will result in sub-optimal section
      ordering.  The sections will be sorted by object file, which causes extra
      padding between the unaligned rodata.str.1.1 of one object file and the
      aligned rodata of the next object file.  This is easy to fix by using the
      SORT_BY_ALIGNMENT command.
      
      This patch has not be tested one most of the boards modified.  Some boards
      have a linker script that looks something like this:
      
      *(.text)
      . = ALIGN(16);
      *(.rodata)
      *(.rodata.str1.4)
      *(.eh_frame)
      
      I change this to:
      
      *(.text)
      . = ALIGN(16);
      *(.eh_frame)
      *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
      
      This means the start of rodata will no longer be 16 bytes aligned.
      However, the boundary between text and rodata/eh_frame is still aligned to
      16 bytes, which is what I think the real purpose of the ALIGN call is.
      
      Signed-off-by: default avatarTrent Piepho <xyzzy@speakeasy.org>
      f62fb999
  23. Jan 23, 2009
    • Dave Liu's avatar
      NAND: Fix cache and memory inconsistency issue · c70564e6
      Dave Liu authored
      
      We load the secondary stage u-boot image from NAND to
      system memory by nand_load, but we did not flush d-cache
      to memory, nor invalidate i-cache before we jump to RAM.
      When the system has cache enabled and the TLB/page attribute
      of system memory is cacheable, it will cause issues.
      
      - 83xx family is using the d-cache lock, so all of d-cache
        access is cache-inhibited. so you can't see the issue.
      - 85xx family is using d-cache, i-cache enable, partial
        cache lock. you will see the issue.
      
      This patch fixes the cache issue.
      
      Signed-off-by: default avatarDave Liu <daveliu@freescale.com>
      Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
      c70564e6
  24. Aug 12, 2008
    • Scott Wood's avatar
      NAND boot: MPC8313ERDB support · e4c09508
      Scott Wood authored
      
      Note that with older board revisions, NAND boot may only work after a
      power-on reset, and not after a warm reset.  I don't have a newer board
      to test on; if you have a board with a 33MHz crystal, please let me know
      if it works after a warm reset.
      
      Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
      e4c09508
Loading