1. 20 Mar, 2009 31 commits
    • 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
    • Mike Frysinger's avatar
      remove bi_enet*addr from global data for all arches · 566b652c
      Mike Frysinger authored
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      CC: Daniel Hellstrom <daniel@gaisler.com>
      CC: Michal Simek <monstr@seznam.cz>
      CC: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
      CC: Scott McNutt <smcnutt@psyent.com>
      CC: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
      566b652c
    • Mike Frysinger's avatar
      ppc: mark global bi_enet*addr as legacy · eb85aa59
      Mike Frysinger authored
      The environment is the canonical storage location of the mac address, so
      we're killing off the global data location and moving everything to
      querying the env directly.
      
      In the ppc case, these things are part of the legacy ABI, so keep them
      around but mark them as legacy so no new code will touch them.
      
      Also stop calling load_sernum_ethaddr() since all boards now implement
      this as a stub.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      eb85aa59
    • Mike Frysinger's avatar
      boards: get mac address from env and move load_sernum_ethaddr() to board init · 9c150102
      Mike Frysinger authored
      The environment is the canonical storage location of the mac address, so
      we're killing off the global data location and moving everything to
      querying the env directly.
      
      Rather than have common ppc code call a board-specific function like
      load_sernum_ethaddr(), have each board call it in its own board-specific
      misc_init_r() function.
      
      The boards that get converted here are:
      	- kup4k/kup4x
      	- pcs440ep
      	- tqm8xx
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      CC: Stefan Roese <sr@denx.de>
      9c150102
    • Mike Frysinger's avatar
      cmc_pu2: get mac address from environment · 92b50ffe
      Mike Frysinger authored
      The environment is the canonical storage location of the mac address, so
      we're killing off the global data location and moving everything to
      querying the env directly.
      
      Also rename load_sernum_ethaddr() to misc_init_r() so we don't need to
      handle this board specially in common ARM code.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      92b50ffe
    • Mike Frysinger's avatar
      boards: move board_get_enetaddr() into board-specific init · d8d21e69
      Mike Frysinger authored
      The environment is the canonical storage location of the mac address, so
      we're killing off the global data location and moving everything to
      querying the env directly.
      
      Rather than have the common ppc code have board-specific hooks, move the
      board_get_enetaddr() function into the board-specific init functions.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      d8d21e69
    • Mike Frysinger's avatar
      arm: get mac address from environment · f11e6ff5
      Mike Frysinger authored
      The environment is the canonical storage location of the mac address, so
      we're killing off the global data location and moving everything to
      querying the env directly.
      
      Some warts are remaining and should be killed off (by moving the func to
      the appropriate board init code):
      	- davinci_eth_set_mac_addr
      	- cs8900_get_enetaddr
      	- smc_set_mac_addr
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      f11e6ff5
    • Mike Frysinger's avatar
      nx823: get mac address from environment · 0107cf66
      Mike Frysinger authored
      The environment is the canonical storage location of the mac address, so
      we're killing off the global data location and moving everything to
      querying the env directly.
      
      For the nx823, the serial number is moved out of load_sernum_ethaddr() and
      into misc_init_r() as is the env setup.  This lets us kill off the former
      function in the process.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      0107cf66
    • Mike Frysinger's avatar
      lib_*/board.c: do not initialize bi_enet*addr in global data · 19b5b533
      Mike Frysinger authored
      Since everyone is using the environment for mac address storage, there is
      no point in seeding the global data.
      
      The arches that are converted here:
      	i386
      	m68k
      	microblaze
      	mips
      	nios
      	nios2
      	sh
      	sparc
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      CC: Daniel Hellstrom <daniel@gaisler.com>
      CC: Michal Simek <monstr@seznam.cz>
      CC: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
      CC: Scott McNutt <smcnutt@psyent.com>
      CC: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
      19b5b533
    • Mike Frysinger's avatar
      npe: get mac address from environment · 740e8ba7
      Mike Frysinger authored
      The environment is the canonical storage location of the mac address, so
      we're killing off the global data location and moving everything to
      querying the env directly.
      
      The resulting code can also be simplified even further.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Stefan Roese <sr@denx.de>
      CC: Ben Warren <biggerbadderben@gmail.com>
      740e8ba7
    • Mike Frysinger's avatar
      cpu/: get mac address from environment · 6bacfa6a
      Mike Frysinger authored
      The environment is the canonical storage location of the mac address, so
      we're killing off the global data location and moving everything to
      querying the env directly.
      
      The cpus that get converted here:
      	at91rm9200
      	mpc512x
      	mpc5xxx
      	mpc8260
      	mpc8xx
      	ppc4xx
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      CC: John Rigby <jrigby@freescale.com>
      CC: Stefan Roese <sr@denx.de>
      6bacfa6a
    • Mike Frysinger's avatar
      lan91c96/smc91111/smc911x: get mac address from environment · 03f3d8d3
      Mike Frysinger authored
      The environment is the canonical storage location of the mac address, so
      we're killing off the global data location and moving everything to
      querying the env directly.
      
      Also, do not bother checking the EEPROM if the env is setup.  This
      simplifies the code greatly.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      Signed-off-by: default avatarWolfgang Dnek <wd@denx.de>
      CC: Ben Warren <biggerbadderben@gmail.com>
      CC: Rolf Offermanns <rof@sysgo.de>
      CC: Erik Stahlman <erik@vt.edu>
      CC: Daris A Nevil <dnevil@snmc.com>
      CC: Sascha Hauer <s.hauer@pengutronix.de>
      03f3d8d3
    • Mike Frysinger's avatar
      sh_eth: get mac address from environment · c527ce92
      Mike Frysinger authored
      The environment is the canonical storage location of the mac address, so
      we're killing off the global data location and moving everything to
      querying the env directly.
      
      The sh_eth driver can also be simplified a bit by using enetaddr member of
      the eth_device structure.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
      CC: Carlos Munoz <carlos@kenati.com>
      CC: Ben Warren <biggerbadderben@gmail.com>
      c527ce92
    • Mike Frysinger's avatar
      cs8900: get mac address from environment · 0a5238ce
      Mike Frysinger authored
      The environment is the canonical storage location of the mac address, so
      we're killing off the global data location and moving everything to
      querying the env directly.
      
      The cs8900 driver also changes slightly in that the hardware is not
      consulted if the mac address in the env is sane.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Marius Groeger <mgroeger@sysgo.de>
      CC: Ben Warren <biggerbadderben@gmail.com>
      0a5238ce
    • Mike Frysinger's avatar
      bcm570x: get mac address from environment · c4b8762f
      Mike Frysinger authored
      The environment is the canonical storage location of the mac address, so
      we're killing off the global data location and moving everything to
      querying the env directly.
      
      Since the address is in the PLM_DEVICE_BLOCK structure already, there is
      no need to pass the NodeAddress as a second parameter.  So drop the second
      argument to the LM_SetMacAddress() function (and update the tigon3 driver
      accordingly).
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      c4b8762f
    • Mike Frysinger's avatar
      drivers/net/: get mac address from environment · d3f87148
      Mike Frysinger authored
      The environment is the canonical storage location of the mac address, so
      we're killing off the global data location and moving everything to
      querying the env directly.
      
      The drivers that get converted here:
      	3c589
      	4xx_enet
      	dc2114x
      	dm9000x
      	enc28j60
      	fsl_mcdmafec
      	ks8695eth
      	mcffec
      	rtl8019
      	rtl8169
      	s3c4510b_eth
      	xilinx_emac
      	xilinx_emaclite
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      CC: Rolf Offermanns <rof@sysgo.de>
      CC: Stefan Roese <sr@denx.de>
      CC: Sascha Hauer <saschahauer@web.de>
      CC: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
      CC: Greg Ungerer <greg.ungerer@opengear.com>
      CC: Xue Ligong <lgxue@hotmail.com>
      CC: Masami Komiya <mkomiya@sonare.it>
      CC: Curt Brune <curt@cucy.com>
      CC: Michal SIMEK <monstr@monstr.eu>
      d3f87148
    • Mike Frysinger's avatar
      boards: get mac address from environment · b6b4625d
      Mike Frysinger authored
      The boards that get converted here to use the environment for the mac
      address rather than global data:
      	debris
      	mgcoge
      	mgsuvd
      	muas3001
      	netstal
      	pn62
      	sixnet
      	vcma9
      	xilinx (the ones that use xilinx_enet)
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      CC: Sangmoon Kim <dogoil@etinsys.com>
      CC: Heiko Schocher <hs@denx.de>
      CC: David Mueller <d.mueller@elsoft.ch>
      CC: Niklaus Giger <niklaus.giger@netstal.com>
      CC: Wolfgang Grandegger <wg@denx.de>
      CC: Dave Ellis <DGE@sixnetio.com>
      CC: Ricardo Ribalda <ricardo.ribalda@uam.es>
      b6b4625d
    • Mike Frysinger's avatar
      AmigaOneG3SE/enet: get mac address from environment · 06a0c438
      Mike Frysinger authored
      Always use the MAC address that is stored in the environment first before
      falling back to the ROM.  This also cuts out any comparison steps: if the
      mac in the env is sane, the ROM is never consulted.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Thomas Frieden <ThomasF@hyperion-entertainment.com>
      CC: Ben Warren <biggerbadderben@gmail.com>
      06a0c438
    • Mike Frysinger's avatar
      nvedit: do not update global bi_enetaddr and do not call eth_set_enetaddr() · 56b555a6
      Mike Frysinger authored
      Since the ethernet layer handles updating of device addresses itself from
      the environment, there is no point in calling eth_set_enetaddr().
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      56b555a6
    • Mike Frysinger's avatar
      lynxkdi: get mac address from environment · 50135334
      Mike Frysinger authored
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      50135334
    • Mike Frysinger's avatar
      bootvx: get mac address from environment · 62c93d92
      Mike Frysinger authored
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Niklaus Giger <niklaus.giger@member.fsf.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      62c93d92
    • Mike Frysinger's avatar
      bdinfo: get mac address from environment · de2dff6f
      Mike Frysinger authored
      Add a new print_eth() function to automate the eth*addr env var acquisition
      and display.  Affects all arches.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
      CC: Scott McNutt <smcnutt@psyent.com>
      CC: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
      CC: Michal Simek <monstr@seznam.cz>
      CC: Daniel Hellstrom <daniel@gaisler.com>
      CC: Ben Warren <biggerbadderben@gmail.com>
      de2dff6f
    • Mike Frysinger's avatar
      net: get mac address from environment and use eth util funcs · 95823ca0
      Mike Frysinger authored
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      95823ca0
    • Mike Frysinger's avatar
      Blackfin: bfin_mac: force boards to setup the MAC themselves · 500b6c51
      Mike Frysinger authored
      Since the on-chip MAC does not have an eeprom or similar interface, force
      all Blackfin boards that use this driver to setup the board data with a
      proper MAC.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      500b6c51
    • Mike Frysinger's avatar
      doc/README.enetaddr: document proper MAC usage · 6ff4137f
      Mike Frysinger authored
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      6ff4137f
    • Mike Frysinger's avatar
      net: new utility functions for working with enetaddr's · 3f6e6993
      Mike Frysinger authored
      Declare new utility functions for converting between the environment
      variables (eth*addr) and the binary MAC address representation.  This way
      we can unify all the random places that already do this kind of thing.
      
      The functions in question:
      	eth_parse_enetaddr - "..." -> {...}
      	eth_getenv_enetaddr - env -> {...}
      	eth_setenv_enetaddr - {...} -> env
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      3f6e6993
    • Mike Frysinger's avatar
      convert print_IPaddr() to %pI4 · b6446b67
      Mike Frysinger authored
      Now that our printf functions support the %pI4 modifier like the kernel,
      let's drop the inflexible print_IPaddr() function and covert over to the
      %pI4 modifier.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      CC: Ben Warren <biggerbadderben@gmail.com>
      b6446b67
    • Mike Frysinger's avatar
      vsprintf: pull updates from Linux kernel · 6c6166f5
      Mike Frysinger authored
      This brings in support for the %p modifier which allows us to easily print
      out things like ip addresses, mac addresses, and pointers.
      
      It also converts the rarely used 'q' length modifier to the common 'L'
      modifier when dealing with quad types.
      
      While this new code is a bit larger (~1k .text), most of it should be made
      up by converting the existing ip/mac address code to use format modifiers.
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      6c6166f5
    • Jon Smirl's avatar
      .gitignore for generated files in api_examples directory · a43ea5cc
      Jon Smirl authored
      Add .gitignore for generated files in api_examples directory
      Signed-off-by: default avatarJon Smirl <jonsmirl@gmail.com>
      Signed-off-by: default avatarWolfgang Denk <wd@denx.de>
      a43ea5cc
    • Nobuhiro Iwamatsu's avatar
      net: sh_eth: Remove sh_eth_reset() from halt function · 40281a9c
      Nobuhiro Iwamatsu authored
      sh_eth_reset is function to reset Ether IP.
      The MAC address is stored in IP, but it is initialized by this function.
      OS (e.g. Linux Kernel) can not use this device when initialized.
      This revises this problem.
      Signed-off-by: default avatarNobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
      40281a9c
    • Anatolij Gustschin's avatar
      ppc4xx: Fix bug in PCI outbound map configuration for canyonlands · f8853d10
      Anatolij Gustschin authored
      PCI outbound address map configuration doesn't match the
      PCI memory address range covered by appropriate TLB entry
      configuration for canyonlands causing machine check
      exceptions while accessing PCI memory regions. This patch
      provides a fix for this issue.
      
      Kazuaki Ichinohe observed and reported this issue while
      testing display output with PCI ATI video card on canyonlands.
      Signed-off-by: default avatarAnatolij Gustschin <agust@denx.de>
      Signed-off-by: default avatarStefan Roese <sr@denx.de>
      f8853d10
  2. 19 Mar, 2009 1 commit
  3. 18 Mar, 2009 8 commits