1. 17 Nov, 2010 4 commits
    • Sebastien Carlier's avatar
      Switch from archive libraries to partial linking · 6d8962e8
      Sebastien Carlier authored
      Before this commit, weak symbols were not overridden by non-weak symbols
      found in archive libraries when linking with recent versions of
      binutils.  As stated in the System V ABI, "the link editor does not
      extract archive members to resolve undefined weak symbols".
      
      This commit changes all Makefiles to use partial linking (ld -r) instead
      of creating library archives, which forces all symbols to participate in
      linking, allowing non-weak symbols to override weak symbols as intended.
      This approach is also used by Linux, from which the gmake function
      cmd_link_o_target (defined in config.mk and used in all Makefiles) is
      inspired.
      
      The name of each former library archive is preserved except for
      extensions which change from ".a" to ".o".  This commit updates
      references accordingly where needed, in particular in some linker
      scripts.
      
      This commit reveals board configurations that exclude some features but
      include source files that depend these disabled features in the build,
      resulting in undefined symbols.  Known such cases include:
      - disabling CMD_NET but not CMD_NFS;
      - enabling CONFIG_OF_LIBFDT but not CONFIG_QE.
      Signed-off-by: default avatarSebastien Carlier <sebastien.carlier@gmail.com>
      6d8962e8
    • Wolfgang Denk's avatar
      d7b19700
    • Albert Aribaud's avatar
      tx25: fix linker file for newer ld support · 858ecd9a
      Albert Aribaud authored
      older ld emitted all ELF relocations in input sections named
      .rel.dyn, whereas newer ld uses names of the form .rel*. The
      linker script only collected .rel.dyn input sections. Rewrite
      to collect all .rel* input sections.
      Signed-off-by: default avatarAlbert Aribaud <albert.aribaud@free.fr>
      858ecd9a
    • Albert Aribaud's avatar
      ARM: fix linker file for newer ld support · aaeb0a89
      Albert Aribaud authored
      older ld emitted all ELF relocations in input sections named
      .rel.dyn, whereas newer ld uses names of the form .rel*. The
      linker script only collected .rel.dyn input sections. Rewrite
      to collect all .rel* input sections.
      Signed-off-by: default avatarAlbert Aribaud <albert.aribaud@free.fr>
      aaeb0a89
  2. 14 Nov, 2010 25 commits
    • Ben Warren's avatar
      Net: clarify board/cpu_eth_init calls · 8ad25bf8
      Ben Warren authored
      This has always been confusing, and the idea of these functions returning the
      number of interfaces initialized was half-baked and ultimately pointless.
      Instead, act more like regular functions and return < 0 on failure, >= 0 on
      success.
      
      This change shouldn't break anything.
      Signed-off-by: default avatarBen Warren <biggerbadderben@gmail.com>
      8ad25bf8
    • François Revol's avatar
      Makefile: move include for config.mk up · a98ae78f
      François Revol authored
      Reorder including config.mk before the HOSTCC check, so HOSTCC is
      actually defined when checking for it.
      Signed-off-by: default avatarFranois Revol <revol@free.fr>
      
      Cleaned up commit message
      Signed-off-by: default avatarWolfgang Denk <wd@denx.de>
      a98ae78f
    • Peter Tyser's avatar
      MAKEALL: Do a sanity check on user-supplied arguments · cd57b0bb
      Peter Tyser authored
      Add a check to make sure that the user's arguments actually find a board
      in boards.cfg.  Previously, if a user misspelled an argument the
      argument would be discarded without warning.  For example, running
      'MAKEALL -c 85xx' with the intention of compiling all Freescale 85xx
      boards would instead silently discard the '-c 85xx' argument since the
      proper cpu name is 'mpc85xx' and then proceed to compile all PowerPC
      boards (MAKEALL's default).
      
      Also fix an unrelated typo.
      Signed-off-by: default avatarPeter Tyser <ptyser@xes-inc.com>
      cd57b0bb
    • Peter Tyser's avatar
      pci: Use intelligent indentation for CONFIG_PCI_SCAN_SHOW · 009884ae
      Peter Tyser authored
      When CONFIG_PCI_SCAN_SHOW is defined U-Boot prints out PCI devices as
      they are found during bootup, eg:
        PCIE1: connected as Root Complex
              01:00.0 - 10b5:8518 - Bridge device
              02:01.0 - 10b5:8518 - Bridge device
              03:00.0 - 10b5:8112 - Bridge device
              04:01.0 - 8086:1010 - Network controller
              04:01.1 - 8086:1010 - Network controller
              02:02.0 - 10b5:8518 - Bridge device
              02:03.0 - 10b5:8518 - Bridge device
              06:00.0 - 10b5:8518 - Bridge device
              07:00.0 - 10b5:8518 - Bridge device
              08:00.0 - 1957:0040 - Processor
              07:01.0 - 10b5:8518 - Bridge device
              09:00.0 - 10b5:8112 - Bridge device
              07:02.0 - 10b5:8518 - Bridge device
        PCIE1: Bus 00 - 0b
        PCIE2: connected as Root Complex
              0d:00.0 - 1957:0040 - Processor
        PCIE2: Bus 0c - 0d
      
      This information is useful, but its difficult to determine the PCI bus
      topology.  To things clearer, we can use indention to make it more
      obvious how the PCI bus is organized.  For the example above, the
      updated output with this change is:
      
        PCIE1: connected as Root Complex
          01:00.0     - 10b5:8518 - Bridge device
           02:01.0    - 10b5:8518 - Bridge device
            03:00.0   - 10b5:8112 - Bridge device
             04:01.0  - 8086:1010 - Network controller
             04:01.1  - 8086:1010 - Network controller
           02:02.0    - 10b5:8518 - Bridge device
           02:03.0    - 10b5:8518 - Bridge device
            06:00.0   - 10b5:8518 - Bridge device
             07:00.0  - 10b5:8518 - Bridge device
              08:00.0 - 1957:0040 - Processor
             07:01.0  - 10b5:8518 - Bridge device
              09:00.0 - 10b5:8112 - Bridge device
             07:02.0  - 10b5:8518 - Bridge device
        PCIE1: Bus 00 - 0b
        PCIE2: connected as Root Complex
          0d:00.0     - 1957:0040 - Processor
        PCIE2: Bus 0c - 0d
      
      In the examples above, an MPC8640 is connected to a PEX8518 PCIe switch
      (01:00 and 02:0x), which is connected to another PEX8518 PCIe switch
      (06:00 and 07:0x), which then connects to a MPC8572 processor (08:00).
      Also, the MPC8640's PEX8518 PCIe switch is connected to a PCI ethernet
      card (04:01) via a PEX8112 PCIe-to-PCI bridge (03:00).
      Signed-off-by: default avatarPeter Tyser <ptyser@xes-inc.com>
      009884ae
    • Peter Tyser's avatar
      pci: Fix ordering of devices when CONFIG_PCI_SCAN_SHOW · a38d216e
      Peter Tyser authored
      Move the printing of PCI device information to before the PCI device is
      configured.  This prevents the case where recursive scanning results in
      the deepest devices being printed first.
      
      This change also makes PCI lockups during enumeration easier to
      diagnose since the device that is being configured is printed out prior
      to configuration.  Previously, it was not possible to determine which
      device caused the PCI lockup.
      
      Original example:
        PCIE1: connected as Root Complex
              04:01.0 - 8086:1010 - Network controller
              04:01.1 - 8086:1010 - Network controller
              03:00.0 - 10b5:8112 - Bridge device
              02:01.0 - 10b5:8518 - Bridge device
              02:02.0 - 10b5:8518 - Bridge device
              08:00.0 - 1957:0040 - Processor
              07:00.0 - 10b5:8518 - Bridge device
              09:00.0 - 10b5:8112 - Bridge device
              07:01.0 - 10b5:8518 - Bridge device
              07:02.0 - 10b5:8518 - Bridge device
              06:00.0 - 10b5:8518 - Bridge device
              02:03.0 - 10b5:8518 - Bridge device
              01:00.0 - 10b5:8518 - Bridge device
        PCIE1: Bus 00 - 0b
      
      Updated example:
        PCIE1: connected as Root Complex
              01:00.0 - 10b5:8518 - Bridge device
              02:01.0 - 10b5:8518 - Bridge device
              03:00.0 - 10b5:8112 - Bridge device
              04:01.0 - 8086:1010 - Network controller
              04:01.1 - 8086:1010 - Network controller
              02:02.0 - 10b5:8518 - Bridge device
              02:03.0 - 10b5:8518 - Bridge device
              06:00.0 - 10b5:8518 - Bridge device
              07:00.0 - 10b5:8518 - Bridge device
              08:00.0 - 1957:0040 - Processor
              07:01.0 - 10b5:8518 - Bridge device
              09:00.0 - 10b5:8112 - Bridge device
              07:02.0 - 10b5:8518 - Bridge device
        PCIE1: Bus 00 - 0b
      Signed-off-by: default avatarPeter Tyser <ptyser@xes-inc.com>
      a38d216e
    • Peter Tyser's avatar
      pci: Clean up PCI info when CONFIG_PCI_SCAN_SHOW · 983eb9d1
      Peter Tyser authored
      This change does the following:
      - Removes the printing of the PCI interrupt line value.  This is
        normally set to 0 by U-Boot on bootup and is rarely used during
        everyday operation.
      
      - Prints out the PCI function number of a device.  Previously a device
        with multiple functions would be printed identically 2 times, which is
        generally confusing.  For example, on an Intel 2 port gigabit Ethernet
        card the following was displayed:
          ...
          04  01  8086  1010  0200  00
          04  01  8086  1010  0200  00
          ...
      
      - Prints a text description of each device's PCI class instead of the
        raw PCI class code.  The textual description makes it much easier to
        determine what devices are installed on a PCI bus.
      
      - Changes the general formatting of the PCI device output.
      
      Previous output:
        PCIE1: connected as Root Complex
                04  01  8086  1010  0200  00
                04  01  8086  1010  0200  00
                03  00  10b5  8112  0604  00
                02  01  10b5  8518  0604  00
                02  02  10b5  8518  0604  00
                08  00  1957  0040  0b20  00
                07  00  10b5  8518  0604  00
                09  00  10b5  8112  0604  00
                07  01  10b5  8518  0604  00
                07  02  10b5  8518  0604  00
                06  00  10b5  8518  0604  00
                02  03  10b5  8518  0604  00
                01  00  10b5  8518  0604  00
        PCIE1: Bus 00 - 0b
        PCIE2: connected as Root Complex
                0d  00  1957  0040  0b20  00
        PCIE2: Bus 0c - 0d
      
      Updated output:
        PCIE1: connected as Root Complex
                04:01.0 - 8086:1010 - Network controller
                04:01.1 - 8086:1010 - Network controller
                03:00.0 - 10b5:8112 - Bridge device
                02:01.0 - 10b5:8518 - Bridge device
                02:02.0 - 10b5:8518 - Bridge device
                08:00.0 - 1957:0040 - Processor
                07:00.0 - 10b5:8518 - Bridge device
                09:00.0 - 10b5:8112 - Bridge device
                07:01.0 - 10b5:8518 - Bridge device
                07:02.0 - 10b5:8518 - Bridge device
                06:00.0 - 10b5:8518 - Bridge device
                02:03.0 - 10b5:8518 - Bridge device
                01:00.0 - 10b5:8518 - Bridge device
        PCIE1: Bus 00 - 0b
        PCIE2: connected as Root Complex
                0d:00.0 - 1957:0040 - Processor
        PCIE2: Bus 0c - 0d
      Signed-off-by: default avatarPeter Tyser <ptyser@xes-inc.com>
      983eb9d1
    • Peter Tyser's avatar
      fsl_pci_init: Quiet scanning printf() · 37d03fce
      Peter Tyser authored
      The "Scanning PCI bus X" message doesn't provide any real useful
      information, so remove it.
      
      Original output:
        PCIE1: connected as Root Complex
                   Scanning PCI bus 01
                04  01  8086  1010  0200  00
                04  01  8086  1010  0200  00
                03  00  10b5  8112  0604  00
                02  01  10b5  8518  0604  00
                02  02  10b5  8518  0604  00
                08  00  1957  0040  0b20  00
                07  00  10b5  8518  0604  00
                09  00  10b5  8112  0604  00
                07  01  10b5  8518  0604  00
                07  02  10b5  8518  0604  00
                06  00  10b5  8518  0604  00
                02  03  10b5  8518  0604  00
                01  00  10b5  8518  0604  00
        PCIE1: Bus 00 - 0b
        PCIE2: connected as Root Complex
                   Scanning PCI bus 0d
                0d  00  1957  0040  0b20  00
        PCIE2: Bus 0c - 0d
      
      Updated output:
        PCIE1: connected as Root Complex
                04  01  8086  1010  0200  00
                04  01  8086  1010  0200  00
                03  00  10b5  8112  0604  00
                02  01  10b5  8518  0604  00
                02  02  10b5  8518  0604  00
                08  00  1957  0040  0b20  00
                07  00  10b5  8518  0604  00
                09  00  10b5  8112  0604  00
                07  01  10b5  8518  0604  00
                07  02  10b5  8518  0604  00
                06  00  10b5  8518  0604  00
                02  03  10b5  8518  0604  00
                01  00  10b5  8518  0604  00
        PCIE1: Bus 00 - 0b
        PCIE2: connected as Root Complex
                0d  00  1957  0040  0b20  00
        PCIE2: Bus 0c - 0d
      Signed-off-by: default avatarPeter Tyser <ptyser@xes-inc.com>
      CC: galak@kernel.crashing.org
      37d03fce
    • Peter Tyser's avatar
      mpc85xx: Fix SERDES/eTSEC message indentation · e7060dc5
      Peter Tyser authored
      Previously some mpc85xx boards printed indented messages such as the
      following on bootup:
        printf("    eTSEC4 is in sgmii mode.\n");
        printf("    Serdes2 disalbed\n");
      
      The bootup appearance looks cleaner if the indentation is removed which
      aligns these messages with other bootup output.
      Signed-off-by: default avatarPeter Tyser <ptyser@xes-inc.com>
      CC: galak@kernel.crashing.org
      e7060dc5
    • Peter Tyser's avatar
      fsl: Clean up printing of PCI boot info · 8ca78f2c
      Peter Tyser authored
      Previously boards used a variety of indentations, newline styles, and
      colon styles for the PCI information that is printed on bootup.  This
      patch unifies the style to look like:
      
      ...
      NAND:  1024 MiB
      PCIE1: connected as Root Complex
                 Scanning PCI bus 01
              04  01  8086  1010  0200  00
              04  01  8086  1010  0200  00
              03  00  10b5  8112  0604  00
              02  01  10b5  8518  0604  00
              02  02  10b5  8518  0604  00
              08  00  1957  0040  0b20  00
              07  00  10b5  8518  0604  00
              09  00  10b5  8112  0604  00
              07  01  10b5  8518  0604  00
              07  02  10b5  8518  0604  00
              06  00  10b5  8518  0604  00
              02  03  10b5  8518  0604  00
              01  00  10b5  8518  0604  00
      PCIE1: Bus 00 - 0b
      PCIE2: connected as Root Complex
                 Scanning PCI bus 0d
              0d  00  1957  0040  0b20  00
      PCIE2: Bus 0c - 0d
      In:    serial
      ...
      Signed-off-by: default avatarPeter Tyser <ptyser@xes-inc.com>
      CC: wd@denx.de
      CC: sr@denx.de
      CC: galak@kernel.crashing.org
      8ca78f2c
    • Peter Tyser's avatar
      fsl_pci_init: Make fsl_pci_init_port() PCI/PCIe aware · a72dbae2
      Peter Tyser authored
      Previously fsl_pci_init_port() always assumed that a port was a PCIe
      port and would incorrectly print messages for a PCI port such as the
      following on bootup:
          PCI1:  32 bit, 33 MHz, sync, host, arbiter
                      Scanning PCI bus 00
          PCIE1 on bus 00 - 00
      
      This change corrects the output of fsl_pci_init_port():
          PCI1:  32 bit, 33 MHz, sync, host, arbiter
                      Scanning PCI bus 00
          PCI1 on bus 00 - 00
      Signed-off-by: default avatarPeter Tyser <ptyser@xes-inc.com>
      a72dbae2
    • Jason Liu's avatar
      net: Fix potential empty DHCP Parameter Request List · 258ccd68
      Jason Liu authored
      Can't get IP address with dhcp due to the dhcp server not
      allow the empty param list request under some network env
      
      This patch is based on Gray Remlin's initial patch.
      Signed-off-by: default avatarJason Liu <r64343@freescale.com>
      Signed-off-by: default avatarGray Remlin <g_remlin@rocketmail.com>
      258ccd68
    • Lei Wen's avatar
      env_mmc: fix compile warning · 6d1d51b3
      Lei Wen authored
      hexport would complain implicit declaration, if we don't add the
      include file.
      
      env_mmc.c: In function 'saveenv':
      env_mmc.c:109: warning: implicit declaration of function 'hexport'
      Signed-off-by: default avatarLei Wen <leiwen@marvell.com>
      6d1d51b3
    • Daniel Hobi's avatar
      tools/env: cleanup host build flags · 02bd475e
      Daniel Hobi authored
      This patch makes tools/env/Makefile more similar to tools/imls:
      - define HOSTSRCS and HOSTCPPFLAGS, so that .depend generation works.
      - include U-Boot headers using -idirafter to prevent picking up
        u-boot/include/errno.h.
      - use HOSTCFLAGS_NOPED (fw_env.c does not conform to -pedantic).
      
      In order to cross-compile tools/env, override the HOSTCC variable
      as in this example:
      
        make tools env HOSTCC=bfin-uclinux-gcc
      Signed-off-by: default avatarDaniel Hobi <daniel.hobi@schmid-telecom.ch>
      Tested-by: default avatarDetlev Zundel <dzu@denx.de>
      Tested-by: default avatarSteve Sakoman <steve.sakoman@linaro.org>
      02bd475e
    • Joakim Tjernlund's avatar
      PowerPC: Don't destroy fixup table while doing fixups · 34bbf618
      Joakim Tjernlund authored
      The fixup procedure just stored a constant value in the
      fixup table rather than just adjusting the table.
      Although that doesn't seem to do any harm, it prevents
      relocation more that once.
      Signed-off-by: default avatarJoakim Tjernlund <Joakim.Tjernlund@transmode.se>
      34bbf618
    • Kumar Gala's avatar
      net: e1000: Add initialized eth_device & e1000_hw structure · 4b29bdb0
      Kumar Gala authored
      nic and hw structures are allocated via malloc i.e. return memory
      is not zero initialized. Because of this few structure member like
      "function pointers" are initialized with garbage values.
      
      It may cause problem. for eg. during eth_initialize, dev->write_hwaddr
      is used.
      Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
      
      Fixed typo.
      Signed-off-by: default avatarWolfgang Denk <wd@denx.de>
      4b29bdb0
    • Nobuhiro Iwamatsu's avatar
      net: uli526x: Add initialized eth_device structure · fe7f1883
      Nobuhiro Iwamatsu authored
      uli526x driver does not have write_hwaddr function.
      However, eth stuff executes write_hwaddr function
      because eth_device structure has not been initialized.
      Signed-off-by: default avatarNobuhiro Iwamatsu <iwamatsu@nigauri.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      fe7f1883
    • Nobuhiro Iwamatsu's avatar
      net: tsi108_eth: Add initialized eth_device structure · 7faeb997
      Nobuhiro Iwamatsu authored
      tsi108_eth driver does not have write_hwaddr function.
      However, eth stuff executes write_hwaddr function
      because eth_device structure has not been initialized.
      Signed-off-by: default avatarNobuhiro Iwamatsu <iwamatsu@nigauri.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      7faeb997
    • Nobuhiro Iwamatsu's avatar
      net: pcnet: Add initialized eth_device structure · 5ed0eeca
      Nobuhiro Iwamatsu authored
      pcnet driver does not have write_hwaddr function.
      However, eth stuff executes write_hwaddr function
      because eth_device structure has not been initialized.
      Signed-off-by: default avatarNobuhiro Iwamatsu <iwamatsu@nigauri.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      5ed0eeca
    • Nobuhiro Iwamatsu's avatar
      net: ns8382x: Add initialized eth_device structure · 9a07e809
      Nobuhiro Iwamatsu authored
      ns8382x driver does not have write_hwaddr function.
      However, eth stuff executes write_hwaddr function
      because eth_device structure has not been initialized.
      Signed-off-by: default avatarNobuhiro Iwamatsu <iwamatsu@nigauri.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      9a07e809
    • Nobuhiro Iwamatsu's avatar
      net: natsemi: Add initialized eth_device structure · a9bc6d7c
      Nobuhiro Iwamatsu authored
      natsemi driver does not have write_hwaddr function.
      However, eth stuff executes write_hwaddr function
      because eth_device structure has not been initialized.
      Signed-off-by: default avatarNobuhiro Iwamatsu <iwamatsu@nigauri.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      a9bc6d7c
    • Nobuhiro Iwamatsu's avatar
      net: fec_mxc: Add initialized eth_device structure · de0b9576
      Nobuhiro Iwamatsu authored
      This prevents access to the member of eth_device which is not initialized.
      Signed-off-by: default avatarNobuhiro Iwamatsu <iwamatsu@nigauri.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      de0b9576
    • Nobuhiro Iwamatsu's avatar
      net: eepro100: Add initialized eth_device structure · 72c4c33e
      Nobuhiro Iwamatsu authored
      eepro100 driver does not have write_hwaddr function.
      However, eth stuff executes write_hwaddr function
      because eth_device structure has not been initialized.
      Signed-off-by: default avatarNobuhiro Iwamatsu <iwamatsu@nigauri.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      72c4c33e
    • Nobuhiro Iwamatsu's avatar
      net: dc2114x: Add initialized eth_device structure · be44f758
      Nobuhiro Iwamatsu authored
      dc2114x driver does not have write_hwaddr function.
      However, eth stuff executes write_hwaddr function
      because eth_device structure has not been initialized.
      Signed-off-by: default avatarNobuhiro Iwamatsu <iwamatsu@nigauri.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      be44f758
    • Nobuhiro Iwamatsu's avatar
      net: rtl8139: Add initialized eth_device structure · 986f7278
      Nobuhiro Iwamatsu authored
      rtl8139 driver does not have write_hwaddr function.
      However, eth stuff executes write_hwaddr function
      because eth_device structure has not been initialized.
      Signed-off-by: default avatarNobuhiro Iwamatsu <iwamatsu@nigauri.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      986f7278
    • Nobuhiro Iwamatsu's avatar
      net: rtl8169: Add initialized eth_device structure · f4eaef7b
      Nobuhiro Iwamatsu authored
      rtl8169 does not have write_hwaddr function.
      However, eth stuff executes write_hwaddr function
      because eth_device structure has not been initialized.
      Signed-off-by: default avatarNobuhiro Iwamatsu <iwamatsu@nigauri.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      f4eaef7b
  3. 12 Nov, 2010 11 commits