summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeLines
* Merge branch 'next' of ../nextWolfgang Denk2009-03-21-5362/+23671
|\
| * UBIFS: Missing offset relocation for compressor 'none'Michael Lawnick2009-03-20-1/+4
| | | | | | | | | | | | | | | | | | | | | | On systems where U-Boot is linked to another address than it really lays (e.g. backup image), calls via function pointers must be fixed with a '+= gd->reloc_off'. This was not done for none_compr in ubifs_compressors_init() what leads to system crash on ubifsmount command. Signed-off-by: Michael Lawnick <ml.lawnick@gmx.de> Acked-by: Stefan Roese <sr@denx.de>
| * UBIFS: Add UBIFS commandsStefan Roese2009-03-20-0/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patchset adds these UBIFS related commands: - ubifsmount Mount an UBIFS volume - ubifsls List a directory of the mounted UBIFS volume - ubifsload Load a file from the mounted UBIFS volume to memory Signed-off-by: Stefan Roese <sr@denx.de>
| * UBIFS: Implement read-only UBIFS support in U-BootStefan Roese2009-03-20-2/+17067
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The U-Boot UBIFS implementation is largely a direct copy from the current Linux version (2.6.29-rc6). As already done in the UBI version we have an "abstraction layer" to redefine or remove some OS calls (e.g. mutex_lock() ...). This makes it possible to use the original Linux code with very little changes. And by this we can better update to later Linux versions. I removed some of the Linux features that are not used in the U-Boot version (e.g. garbage-collection, write support). Signed-off-by: Stefan Roese <sr@denx.de> CC: Artem Bityutskiy <dedekind@infradead.org> CC: Adrian Hunter <ext-Adrian.Hunter@nokia.com>
| * Add LZO decompressor supportStefan Roese2009-03-20-0/+532
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds LZO decompression support to U-Boot. It is needed for the upcoming UBIFS support, since UBIFS uses LZO as default compressor/ decompressor. Since we only support read-only in UBIFS, only the decompressor is needed. All this is copied with minor changes from the current Linux kernel version (2.6.28-rc8). This patch only implements this LZO decompressor support for PPC. Other platforms using UBIFS will have to add the required "include/asm/unaligned.h" as well. It should be fairly easy to copy this from the Linux source tree as I have done it for PPC in this patch. Signed-off-by: Stefan Roese <sr@denx.de>
| * Separate mtdparts command from jffs2Stefan Roese2009-03-20-1852/+2122
| | | | | | | | | | | | | | | | | | | | | | Currently the mtdparts commands are included in the jffs2 command support. This doesn't make sense anymore since other commands (e.g. UBI) use this infrastructure as well now. This patch separates the mtdparts commands from the jffs2 commands making it possible to only select mtdparts when no JFFS2 support is needed. Signed-off-by: Stefan Roese <sr@denx.de> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
| * powerpc: Only use eth_getenv_enetaddr() if networking is enabledStefan Roese2009-03-20-0/+2
| | | | | | | | Signed-off-by: Stefan Roese <sr@denx.de>
| * Add support for the digsy MTC board.Grzegorz Bernacki2009-03-20-1/+788
| | | | | | | | | | | | This is the InterControl custom device based on the MPC5200B chip. Signed-off-by: Grzegorz Bernacki <gjb@semihalf.com>
| * powerpc: Fix compilation warning in board.cStefan Roese2009-03-20-2/+1
| | | | | | | | | | | | | | | | | | | | Fix this warning: board.c: In function 'board_init_r': board.c:653: warning: unused variable 'i' board.c:651: warning: unused variable 'e' Signed-off-by: Stefan Roese <sr@denx.de>
| * ppc4xx: Don't write the MAC address into the internal SoC registersStefan Roese2009-03-20-28/+1
| | | | | | | | | | | | | | Remove this code. It's not needed. The 4xx EMAC driver stores the MAC addresses into the SoC registers instead. Signed-off-by: Stefan Roese <sr@denx.de>
| * ppc4xx: Use correct io accessors for esd 405/440 boardsMatthias Fuchs2009-03-20-182/+217
| | | | | | | | | | | | | | | | | | This patch replaces in/out8/16/32 macros by in/out_8/_be16/_be32 macros. Also volatile pointer references are replaced by the new accessors. Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu> Signed-off-by: Stefan Roese <sr@denx.de>
| * ppc4xx: Use correct io accessors for esd 405 boardsMatthias Fuchs2009-03-20-107/+113
| | | | | | | | | | | | | | | | | | This patch replaces in/out8/16/32 macros by in/out_8/_be16/_be32 macros. Also volatile pointer references are replaced by the new accessors. Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu> Signed-off-by: Stefan Roese <sr@denx.de>
| * ppc4xx: Cleanup linker scripts of esd 4xx boardsMatthias Fuchs2009-03-20-310/+0
| | | | | | | | | | Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu> Signed-off-by: Stefan Roese <sr@denx.de>
| * ppc4xx: Update TEXT_BASE for DASA_SIM boardsMatthias Fuchs2009-03-20-12/+3
| | | | | | | | | | | | | | Fix building DASA_SIM boards by increasing U-Boot's size in flash. Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu> Signed-off-by: Stefan Roese <sr@denx.de>
| * ppc4xx: DU405 maintenance fixMatthias Fuchs2009-03-20-10/+14
| | | | | | | | | | | | | | | | -strip unused features -fix resetting phy Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu> Signed-off-by: Stefan Roese <sr@denx.de>
| * ppc4xx: Abort autoboot only by space key on CPCI405 boardsMatthias Fuchs2009-03-20-0/+12
| | | | | | | | | | Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com> Signed-off-by: Stefan Roese <sr@denx.de>
| * Add basic relocation to i386 portGraeme Russ2009-03-20-5/+77
| | | | | | | | Signed-off-by: Graeme Russ <graeme.russ@gmail.com>
| * Implement SC520 timersGraeme Russ2009-03-20-243/+259
| | | | | | | | Signed-off-by: Graeme Russ <graeme.russ at gmail.com>
| * Factor out SC520 sub-featuresGraeme Russ2009-03-20-277/+340
| | | | | | | | | | | | | | | | Moved sub-features of the SC520 code which is currently selectively compiled using #ifdef out of sc520.c into individual files selectively compiled via the makefile Signed-off-by: Graeme Russ <graeme.russ at gmail.com>
| * Rewrite i386 interrupt handlingGraeme Russ2009-03-20-422/+623
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rewrite interrupt handling functionality for the i386 port. Separated functionality into separate CPU and Architecture components. It appears as if the i386 interrupt handler functionality was intended to allow multiple handlers to be installed for a given interrupt. Unfortunately, this functionality was not fully implemented and also had the problem that irq_free_handler() does not allow the passing of the handler function pointer and therefore could never be used to free specific handlers that had been installed for a given IRQ. There were also various issues with array bounds not being fully tested. I had two objectives in mind for the new implementation: 1) Keep the implementation as similar as possible to existing implementations. To that end, I have used the leon2/3 implementations as the reference 2) Seperate CPU and Architecture specific elements. All specific i386 interrupt functionality is now in cpu/i386/ with the high level API and architecture specific code in lib_i386. Functionality specific to the PC/AT architecture (i.e. cascaded i8259 PICs) has been further split out into an individual file to allow for the implementation of the PIC architecture of the SC520 CPU (supports more IRQs) Signed-off-by: Graeme Russ <graeme.russ at gmail.com>
| * Move ali512x.hGraeme Russ2009-03-20-2/+2
| | | | | | | | | | | | Moved ali512x.h from include/asm-i386/ic/ to /include Signed-off-by: Graeme Russ <graeme.russ at gmail.com>
| * Rename SC520 Configuration OptionsGraeme Russ2009-03-20-30/+30
| | | | | | | | | | | | Options are now all uniformly CONFIG_SYS_SC520_<option> Signed-off-by: Graeme Russ <graeme.russ at gmail.com>
| * Fix all linker script to handle all rodata sectionsTrent Piepho2009-03-20-738/+333
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Trent Piepho <xyzzy@speakeasy.org>
| * remove bi_enet*addr from global data for all archesMike Frysinger2009-03-20-38/+0
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Mike 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>
| * ppc: mark global bi_enet*addr as legacyMike Frysinger2009-03-20-55/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Mike Frysinger <vapier@gentoo.org> CC: Ben Warren <biggerbadderben@gmail.com>
| * boards: get mac address from env and move load_sernum_ethaddr() to board initMike Frysinger2009-03-20-31/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Mike Frysinger <vapier@gentoo.org> CC: Ben Warren <biggerbadderben@gmail.com> CC: Stefan Roese <sr@denx.de>
| * cmc_pu2: get mac address from environmentMike Frysinger2009-03-20-19/+4
| | | | | | | | | | | | | | | | | | | | | | | | 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: Mike Frysinger <vapier@gentoo.org> CC: Ben Warren <biggerbadderben@gmail.com>
| * boards: move board_get_enetaddr() into board-specific initMike Frysinger2009-03-20-54/+157
| | | | | | | | | | | | | | | | | | | | | | | | 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: Mike Frysinger <vapier@gentoo.org> CC: Ben Warren <biggerbadderben@gmail.com>
| * arm: get mac address from environmentMike Frysinger2009-03-20-32/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Mike Frysinger <vapier@gentoo.org> CC: Ben Warren <biggerbadderben@gmail.com>
| * nx823: get mac address from environmentMike Frysinger2009-03-20-31/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | 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: Mike Frysinger <vapier@gentoo.org> CC: Ben Warren <biggerbadderben@gmail.com>
| * lib_*/board.c: do not initialize bi_enet*addr in global dataMike Frysinger2009-03-20-110/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Mike 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>
| * npe: get mac address from environmentMike Frysinger2009-03-20-25/+11
| | | | | | | | | | | | | | | | | | | | | | | | 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: Mike Frysinger <vapier@gentoo.org> CC: Stefan Roese <sr@denx.de> CC: Ben Warren <biggerbadderben@gmail.com>
| * cpu/: get mac address from environmentMike Frysinger2009-03-20-19/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Mike Frysinger <vapier@gentoo.org> CC: Ben Warren <biggerbadderben@gmail.com> CC: John Rigby <jrigby@freescale.com> CC: Stefan Roese <sr@denx.de>
| * lan91c96/smc91111/smc911x: get mac address from environmentMike Frysinger2009-03-20-132/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Wolfgang 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>
| * sh_eth: get mac address from environmentMike Frysinger2009-03-20-22/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Mike Frysinger <vapier@gentoo.org> CC: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> CC: Carlos Munoz <carlos@kenati.com> CC: Ben Warren <biggerbadderben@gmail.com>
| * cs8900: get mac address from environmentMike Frysinger2009-03-20-40/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | 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: Mike Frysinger <vapier@gentoo.org> CC: Marius Groeger <mgroeger@sysgo.de> CC: Ben Warren <biggerbadderben@gmail.com>
| * bcm570x: get mac address from environmentMike Frysinger2009-03-20-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Mike Frysinger <vapier@gentoo.org> CC: Ben Warren <biggerbadderben@gmail.com>
| * drivers/net/: get mac address from environmentMike Frysinger2009-03-20-68/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Mike 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>
| * boards: get mac address from environmentMike Frysinger2009-03-20-68/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Mike 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>
| * AmigaOneG3SE/enet: get mac address from environmentMike Frysinger2009-03-20-34/+8
| | | | | | | | | | | | | | | | | | | | 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: Mike Frysinger <vapier@gentoo.org> CC: Thomas Frieden <ThomasF@hyperion-entertainment.com> CC: Ben Warren <biggerbadderben@gmail.com>
| * nvedit: do not update global bi_enetaddr and do not call eth_set_enetaddr()Mike Frysinger2009-03-20-23/+1
| | | | | | | | | | | | | | | | 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: Mike Frysinger <vapier@gentoo.org> CC: Ben Warren <biggerbadderben@gmail.com>
| * lynxkdi: get mac address from environmentMike Frysinger2009-03-20-1/+1
| | | | | | | | | | Signed-off-by: Mike Frysinger <vapier@gentoo.org> CC: Ben Warren <biggerbadderben@gmail.com>
| * bootvx: get mac address from environmentMike Frysinger2009-03-20-2/+4
| | | | | | | | | | | | Signed-off-by: Mike Frysinger <vapier@gentoo.org> CC: Niklaus Giger <niklaus.giger@member.fsf.org> CC: Ben Warren <biggerbadderben@gmail.com>
| * bdinfo: get mac address from environmentMike Frysinger2009-03-20-88/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | Add a new print_eth() function to automate the eth*addr env var acquisition and display. Affects all arches. Signed-off-by: Mike 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>
| * net: get mac address from environment and use eth util funcsMike Frysinger2009-03-20-22/+6
| | | | | | | | | | Signed-off-by: Mike Frysinger <vapier@gentoo.org> CC: Ben Warren <biggerbadderben@gmail.com>
| * Blackfin: bfin_mac: force boards to setup the MAC themselvesMike Frysinger2009-03-20-55/+11
| | | | | | | | | | | | | | | | | | 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: Mike Frysinger <vapier@gentoo.org> CC: Ben Warren <biggerbadderben@gmail.com>
| * doc/README.enetaddr: document proper MAC usageMike Frysinger2009-03-20-0/+99
| | | | | | | | | | Signed-off-by: Mike Frysinger <vapier@gentoo.org> CC: Ben Warren <biggerbadderben@gmail.com>
| * net: new utility functions for working with enetaddr'sMike Frysinger2009-03-20-31/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Mike Frysinger <vapier@gentoo.org> CC: Ben Warren <biggerbadderben@gmail.com>
| * convert print_IPaddr() to %pI4Mike Frysinger2009-03-20-69/+33
| | | | | | | | | | | | | | | | | | 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: Mike Frysinger <vapier@gentoo.org> CC: Ben Warren <biggerbadderben@gmail.com>
| * vsprintf: pull updates from Linux kernelMike Frysinger2009-03-20-112/+379
| | | | | | | | | | | | | | | | | | | | | | | | | | 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: Mike Frysinger <vapier@gentoo.org>