platform/kernel/u-boot.git
15 years agonvedit: do not update global bi_enetaddr and do not call eth_set_enetaddr()
Mike Frysinger [Wed, 11 Feb 2009 23:52:38 +0000 (18:52 -0500)]
nvedit: do not update global bi_enetaddr and do not call eth_set_enetaddr()

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>
15 years agolynxkdi: get mac address from environment
Mike Frysinger [Wed, 11 Feb 2009 23:54:07 +0000 (18:54 -0500)]
lynxkdi: get mac address from environment

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
CC: Ben Warren <biggerbadderben@gmail.com>
15 years agobootvx: get mac address from environment
Mike Frysinger [Wed, 11 Feb 2009 23:51:43 +0000 (18:51 -0500)]
bootvx: get mac address from environment

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
CC: Niklaus Giger <niklaus.giger@member.fsf.org>
CC: Ben Warren <biggerbadderben@gmail.com>
15 years agobdinfo: get mac address from environment
Mike Frysinger [Wed, 11 Feb 2009 23:50:10 +0000 (18:50 -0500)]
bdinfo: get mac address from environment

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>
15 years agonet: get mac address from environment and use eth util funcs
Mike Frysinger [Wed, 11 Feb 2009 23:23:48 +0000 (18:23 -0500)]
net: get mac address from environment and use eth util funcs

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
CC: Ben Warren <biggerbadderben@gmail.com>
15 years agoBlackfin: bfin_mac: force boards to setup the MAC themselves
Mike Frysinger [Mon, 13 Oct 2008 19:06:25 +0000 (15:06 -0400)]
Blackfin: bfin_mac: force boards to setup the MAC themselves

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>
15 years agodoc/README.enetaddr: document proper MAC usage
Mike Frysinger [Wed, 11 Feb 2009 19:12:34 +0000 (14:12 -0500)]
doc/README.enetaddr: document proper MAC usage

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
CC: Ben Warren <biggerbadderben@gmail.com>
15 years agonet: new utility functions for working with enetaddr's
Mike Frysinger [Fri, 30 Jan 2009 00:43:44 +0000 (19:43 -0500)]
net: new utility functions for working with enetaddr's

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>
15 years agoconvert print_IPaddr() to %pI4
Mike Frysinger [Tue, 17 Feb 2009 05:00:53 +0000 (00:00 -0500)]
convert print_IPaddr() to %pI4

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>
15 years agovsprintf: pull updates from Linux kernel
Mike Frysinger [Tue, 17 Feb 2009 04:21:36 +0000 (23:21 -0500)]
vsprintf: pull updates from Linux kernel

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>
15 years ago.gitignore for generated files in api_examples directory
Jon Smirl [Fri, 20 Mar 2009 03:04:18 +0000 (23:04 -0400)]
.gitignore for generated files in api_examples directory

Add .gitignore for generated files in api_examples directory

Signed-off-by: Jon Smirl <jonsmirl@gmail.com>
Signed-off-by: Wolfgang Denk <wd@denx.de>
15 years agonet: sh_eth: Remove sh_eth_reset() from halt function
Nobuhiro Iwamatsu [Wed, 18 Mar 2009 03:27:04 +0000 (12:27 +0900)]
net: sh_eth: Remove sh_eth_reset() from halt function

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: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
15 years agoppc4xx: Fix bug in PCI outbound map configuration for canyonlands
Anatolij Gustschin [Fri, 20 Mar 2009 11:45:50 +0000 (12:45 +0100)]
ppc4xx: Fix bug in PCI outbound map configuration for canyonlands

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: Anatolij Gustschin <agust@denx.de>
Signed-off-by: Stefan Roese <sr@denx.de>
15 years agoCFI: geometry reversal for STMicro M29W320DT
Richard Retanubun [Fri, 6 Mar 2009 15:09:37 +0000 (10:09 -0500)]
CFI: geometry reversal for STMicro M29W320DT

Follow up to the flash_fixup_stm to fix geometry reversal
on STMicro M29W320ET flash chip. The M29W320DT has 4 erase region.

Signed-off-by: Richard Retanubun <RichardRetanubun@RuggedCom.com>
Signed-off-by: Stefan Roese <sr@denx.de>
15 years agosmc911x_eeprom: update register API
Mike Frysinger [Wed, 25 Feb 2009 22:29:40 +0000 (17:29 -0500)]
smc911x_eeprom: update register API

The smc911x driver changed the naming convention for its register funcs,
so update the eeprom code accordingly.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
CC: Ben Warren <biggerbadderben@gmail.com>
15 years agompc52xx: Get rid of board-specific #ifdef's in cpu/mpc5xxx/ide.c
Grzegorz Bernacki [Tue, 17 Mar 2009 09:06:39 +0000 (10:06 +0100)]
mpc52xx: Get rid of board-specific #ifdef's in cpu/mpc5xxx/ide.c

Total5200 and digsy MTC use I2C port 2 pins as a ATA chip select.
To avoid adding board-specific ifdefs to cpu/mpc5xxx/ide.c new
define CONFIG_SYS_ATA_CS_ON_I2C2 was introduced. It is used by
Total5200 and will be used by digsy MTC and other boards with
ATA CS on I2C pins.

Signed-off-by: Grzegorz Bernacki <gjb@semihalf.com>
15 years ago8xx: add support for new keymile kmsupx4 board.
Heiko Schocher [Thu, 12 Mar 2009 06:37:34 +0000 (07:37 +0100)]
8xx: add support for new keymile kmsupx4 board.

This patch adds support for the kmsupx4 board from Keymile,
based on a Freescale MPC852T CPU

- serial console on SMC1
- 32 MB SDRAM
- 32 MB NOR Flash
- Ethernet over SCC3
- I2C Bitbang

Signed-off-by: Heiko Schocher <hs@denx.de>
15 years ago8xx, mgsuvd: rename board to a more generic name
Heiko Schocher [Thu, 12 Mar 2009 06:37:28 +0000 (07:37 +0100)]
8xx, mgsuvd: rename board to a more generic name

renaming the "mgsuvd" board port into "km8xx", because
there come more similar boards from keymile.
Compiling the mgsuvd board with "make mgsuvd_config"
remains.

Signed-off-by: Heiko Schocher <hs@denx.de>
15 years ago8xx, mgsuvd: Coding Style cleanup config file
Heiko Schocher [Thu, 12 Mar 2009 06:37:23 +0000 (07:37 +0100)]
8xx, mgsuvd: Coding Style cleanup config file

Signed-off-by: Heiko Schocher <hs@denx.de>
15 years agopowerpc: common updates for keymile boards
Heiko Schocher [Thu, 12 Mar 2009 06:37:18 +0000 (07:37 +0100)]
powerpc: common updates for keymile boards

- added to keymile-common.h:
  - bootcount support
  - COMMAND HISTORY
  - CONFIG_AUTO_COMPLETE
  - CONFIG_SYS_FLASH_PROTECTION
  - JFFS2 support
  - CONFIG_VERSION_VARIABLE
- extracted common I2C settings for all boards
- common default environment settings summarized

Signed-off-by: Heiko Schocher <hs@denx.de>
15 years ago8xx, icache: enabling ICache not before running from RAM
Heiko Schocher [Thu, 12 Mar 2009 06:37:15 +0000 (07:37 +0100)]
8xx, icache: enabling ICache not before running from RAM

with the new CONFIG_SYS_DELAYED_ICACHE config option, ICache
is not enabled before code runs from RAM.

Signed-off-by: Heiko Schocher <hs@denx.de>
15 years ago82xx, mgcoge: fix environment sector size
Heiko Schocher [Thu, 12 Mar 2009 06:37:11 +0000 (07:37 +0100)]
82xx, mgcoge: fix environment sector size

Size of one environment sector is 0x20000.

Signed-off-by: Heiko Schocher <hs@denx.de>
15 years agoNetStar: config reindentation
Ladislav Michl [Mon, 16 Mar 2009 22:27:31 +0000 (23:27 +0100)]
NetStar: config reindentation

Fix indentation broken by symbol renames. "Sort" driver related definitons.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
15 years agoMerge branch 'master' of git://git.denx.de/u-boot-coldfire
Wolfgang Denk [Tue, 17 Mar 2009 23:40:57 +0000 (00:40 +0100)]
Merge branch 'master' of git://git.denx.de/u-boot-coldfire

15 years agoMerge branch 'master' of git://git.denx.de/u-boot-nand-flash
Wolfgang Denk [Tue, 17 Mar 2009 23:39:10 +0000 (00:39 +0100)]
Merge branch 'master' of git://git.denx.de/u-boot-nand-flash

15 years agoColdFire: Fix incorrect definition
TsiChung Liew [Tue, 17 Mar 2009 11:21:43 +0000 (11:21 +0000)]
ColdFire: Fix incorrect definition

Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
15 years agoColdFire: Fix M5329EVB and M5373EVB nand issue
TsiChung Liew [Mon, 2 Mar 2009 19:16:45 +0000 (19:16 +0000)]
ColdFire: Fix M5329EVB and M5373EVB nand issue

The Nand flash was unable to read and write properly
due to Nand Chip Select (nCE) setup was in reverse
order. Also, increase the Nand time out value to 60.

Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
15 years agoColdFire: PLATFORM_CPPFLAGS updates for new compiler
TsiChung Liew [Tue, 27 Jan 2009 15:19:35 +0000 (15:19 +0000)]
ColdFire: PLATFORM_CPPFLAGS updates for new compiler

Update PLATFORM_CPPFLAGS to accept 4.3.x version of
ColdFire compiler.

Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
15 years agoColdFire: Provide gzip image size V2 & V3 platforms
TsiChung Liew [Tue, 27 Jan 2009 12:57:47 +0000 (12:57 +0000)]
ColdFire: Provide gzip image size V2 & V3 platforms

Default gzip bootm size is 8MB. Some platforms require
more than 8MB

Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
15 years agoColdFire: Fix M54451 serial boot dram setup
TsiChung Liew [Wed, 18 Feb 2009 11:49:31 +0000 (11:49 +0000)]
ColdFire: Fix M54451 serial boot dram setup

The serial boot dram extended/standard mode register was not
setup and was using default DRAM setup causing the U-boot was
unstable to boot up in serial mode.

Signed-off-by: TsiChung Liew <Tsi-Chung.Liew@freescale.com>
15 years agoColdfire: XL Bus minor fixes
arun c [Thu, 4 Dec 2008 10:27:15 +0000 (15:57 +0530)]
Coldfire: XL Bus minor fixes

According to coldfire manual data timeout > address time out
also use correct macro to program XARB_CFG

Signed-off-by: Arun C <arunedarath@mistralsolutions.com>
15 years agoNAND: Have nboot accept .e and .i as legacy no-ops.
Scott Wood [Tue, 17 Mar 2009 17:06:04 +0000 (12:06 -0500)]
NAND: Have nboot accept .e and .i as legacy no-ops.

This was intended to happen before, but a trivial bug prevented it.

Signed-off-by: Scott Wood <scottwood@freescale.com>
15 years agoNAND: Make nboot skip bad blocks
Ladislav Michl [Fri, 13 Mar 2009 13:38:19 +0000 (14:38 +0100)]
NAND: Make nboot skip bad blocks

nboot command currently does not skip bad blocks and gives read error when
loading image stored over bad block. With patch applied, nboot works as
expected:

Device 0 bad blocks:
  00780000
  014a0000
  02000000
  02cc0000
  04aa0000

Loading from NAND 128MiB 3,3V 8-bit, offset 0x2c00000
   Image Name:   Linux-2.6.22-omap1
   Created:      2008-11-20  23:44:32 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1052520 Bytes =  1 MB
   Load Address: 10008000
   Entry Point:  10008000
Skipping bad block 0x02cc0000
Automatic boot of image at addr 0x10400000 ...
...

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Signed-off-by: Scott Wood <scottwood@freescale.com>
15 years agoppc4xx: lwmon5: Only use one CS (rank) in DDR2 configuration
Stefan Roese [Thu, 12 Mar 2009 06:27:25 +0000 (07:27 +0100)]
ppc4xx: lwmon5: Only use one CS (rank) in DDR2 configuration

This patch fixes a problem spotted by Mikhail Zolotaryov on Sequoia with
the DDR2 configuration to only use one CS (rank). As this code is most
likely copied from the original Sequoia version, this error was copied
as well.

This patch also removes some dead code.

Signed-off-by: Stefan Roese <sr@denx.de>
15 years agoppc4xx: PMC440: Only use one CS (rank) in DDR2 configuration
Stefan Roese [Thu, 12 Mar 2009 06:24:40 +0000 (07:24 +0100)]
ppc4xx: PMC440: Only use one CS (rank) in DDR2 configuration

This patch fixes a problem spotted by Mikhail Zolotaryov on Sequoia with
the DDR2 configuration to only use one CS (rank). As this code is most
likely copied from the original Sequoia version, this error was copied
as well.

Signed-off-by: Stefan Roese <sr@denx.de>
15 years agoFix AMCC Sequoia board DDR memory configuration
Mikhail Zolotaryov [Wed, 11 Mar 2009 08:54:46 +0000 (10:54 +0200)]
Fix AMCC Sequoia board DDR memory configuration

Sequoia board schematics (DES0211_11_SCH_11.pdf, page 5, unit U1D)
specifies that BankSel#1 is not connected, while bootloader memory
configuration is (board/amcc/sequoia/sdram.c):
       mtsdram(DDR0_10, 0x00000300);
i.e. both Chip Selects used - not correct.

If we change to correct value here:
       mtsdram(DDR0_10, 0x00000100);
memory is accessible OK also.

Signed-off-by: Mikhail Zolotaryov <lebon@lebon.org.ua>
Signed-off-by: Stefan Roese <sr@denx.de>
15 years agoPrepare 2009.03-rc2 v2009.03-rc2
Wolfgang Denk [Sun, 15 Mar 2009 21:40:09 +0000 (22:40 +0100)]
Prepare 2009.03-rc2

Update CHANEGLOG, fix minor coding style issue.

Signed-off-by: Wolfgang Denk <wd@denx.de>
15 years agoMerge branch 'master' of git://git.denx.de/u-boot-sh
Wolfgang Denk [Sun, 15 Mar 2009 21:15:13 +0000 (22:15 +0100)]
Merge branch 'master' of git://git.denx.de/u-boot-sh

15 years agoMerge branch 'master' of git://git.denx.de/u-boot-mpc83xx
Wolfgang Denk [Sun, 15 Mar 2009 21:12:10 +0000 (22:12 +0100)]
Merge branch 'master' of git://git.denx.de/u-boot-mpc83xx

15 years agoMerge branch 'master' of git://git.denx.de/u-boot-arm
Wolfgang Denk [Sun, 15 Mar 2009 21:09:18 +0000 (22:09 +0100)]
Merge branch 'master' of git://git.denx.de/u-boot-arm

15 years agoMerge branch 'master' of git://git.denx.de/u-boot-pxa
Wolfgang Denk [Sun, 15 Mar 2009 21:08:07 +0000 (22:08 +0100)]
Merge branch 'master' of git://git.denx.de/u-boot-pxa

15 years agompc83xx: Add bank configuration to FSL spd_sdram.c
Jerry Van Baren [Fri, 13 Mar 2009 15:40:10 +0000 (11:40 -0400)]
mpc83xx: Add bank configuration to FSL spd_sdram.c

The routine assumed 4 bank SDRAMs, enhance to configure for 4 or 8
bank SDRAMs.

Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>
Acked-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
15 years agompc83xx: correctly set encryption and I2C bus 0 clock
Norbert van Bolhuis [Fri, 13 Mar 2009 07:58:14 +0000 (08:58 +0100)]
mpc83xx: correctly set encryption and I2C bus 0 clock

This patch makes sure the correct mask is applied when setting
the encryption and I2C bus 0 clock in SCCR.
Failing to do so may lead to ENCCM being 0 in which case I2C bus 0
won't function.

Signed-off-by: Norbert van Bolhuis <nvbolhuis@aimvalley.nl>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
15 years agoOMAP3: Add support for OMAP3 die ID
Dirk Behme [Thu, 12 Mar 2009 18:30:50 +0000 (19:30 +0100)]
OMAP3: Add support for OMAP3 die ID

Read and store OMAP3 die ID in U-Boot environment.

Signed-off-by: Dirk Behme <dirk.behme@googlemail.com>
15 years agoMPC5200 FEC MII speed register
Jon Smirl [Wed, 11 Mar 2009 19:08:56 +0000 (15:08 -0400)]
MPC5200 FEC MII speed register

Set a non-zero speed in the MII register so that MII commands will work.

Signed-off-by: Jon Smirl <jonsmirl@gmail.com>
15 years agosh: ap325rxa: Change the wait cycle in the area 5
Yusuke.Goda [Fri, 13 Mar 2009 07:08:18 +0000 (16:08 +0900)]
sh: ap325rxa: Change the wait cycle in the area 5

Signed-off-by: Yusuke Goda <goda.yusuke@renesas.com>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
15 years agosh: Fix cannot work rtl8139 on r2dplus
Yoshihiro Shimoda [Wed, 25 Feb 2009 07:04:26 +0000 (16:04 +0900)]
sh: Fix cannot work rtl8139 on r2dplus

The rtl8139 driver use pci_mem_to_phys. So it need PCI system memory
registration.

Signed-off-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
15 years agosh: Add netdev header fixing of warning/build
Nobuhiro Iwamatsu [Fri, 27 Feb 2009 09:35:41 +0000 (18:35 +0900)]
sh: Add netdev header fixing of warning/build

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
15 years agosh: Add support 32-Bit Extended Address Mode to sh7785lcr
Yoshihiro Shimoda [Tue, 3 Mar 2009 06:11:17 +0000 (15:11 +0900)]
sh: Add support 32-Bit Extended Address Mode to sh7785lcr

We can built 'make sh7785lcr_32bit_config'. And add new command "pmb"
for this mode. This command changes PMB for using 512MB system memory.

Signed-off-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
15 years agosh: Add some register value configurable to PCI of SH7780
Yoshihiro Shimoda [Wed, 25 Feb 2009 05:26:42 +0000 (14:26 +0900)]
sh: Add some register value configurable to PCI of SH7780

Some register value was hardcoded for System memory size 128MB and
memory offset 0x08000000. This patch fixed the problem.

Signed-off-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
15 years agosh: Add system memory registration to PCI for SH4
Yoshihiro Shimoda [Wed, 25 Feb 2009 05:26:52 +0000 (14:26 +0900)]
sh: Add system memory registration to PCI for SH4

It is necessary for some pci device driver.

Signed-off-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
15 years agosh: Add value for PCI system memory registration of sh7785lcr
Yoshihiro Shimoda [Wed, 25 Feb 2009 05:26:55 +0000 (14:26 +0900)]
sh: Add value for PCI system memory registration of sh7785lcr

Signed-off-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
15 years agosh: Add macros for SH-4A 32-Bit Address Extended Mode
Yoshihiro Shimoda [Tue, 3 Mar 2009 06:11:08 +0000 (15:11 +0900)]
sh: Add macros for SH-4A 32-Bit Address Extended Mode

Signed-off-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
15 years agosh: use write{8,16,32} in ms7720se lowlevel_init
Nobuhiro Iwamatsu [Tue, 3 Feb 2009 04:35:05 +0000 (13:35 +0900)]
sh: use write{8,16,32} in ms7720se lowlevel_init

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
15 years agoMerge branch 'master' of git://git.denx.de/u-boot-mpc85xx
Wolfgang Denk [Tue, 10 Mar 2009 21:04:04 +0000 (22:04 +0100)]
Merge branch 'master' of git://git.denx.de/u-boot-mpc85xx

15 years agoMerge branch 'master' of git://git.denx.de/u-boot-mpc83xx
Wolfgang Denk [Tue, 10 Mar 2009 21:01:38 +0000 (22:01 +0100)]
Merge branch 'master' of git://git.denx.de/u-boot-mpc83xx

15 years agotsec: report when there is no vendor specific PHY support
Paul Gortmaker [Mon, 9 Mar 2009 23:07:53 +0000 (18:07 -0500)]
tsec: report when there is no vendor specific PHY support

Commit af1c2b84 added a generic phy support, with an ID of zero
and a 32 bit mask; meaning that it will match on any PHY ID.

The problem is that there is a test that checked if a matching
PHY was found, and if not, it printed the non-matching ID.
But since there will always be a match (on the generic PHY,
worst case), this test will never trip.

In the case of a misconfigured PHY address, or of a PHY that
isn't explicitly supported outside of the generic support,
you will never see the ID of 0xffffffff, or the ID of the
real (but unsupported) chip.  It will silently fall through
onto the generic support.

This change makes that test useful again, and ensures that
the selection of generic PHY support doesn't happen without
some sort of notice.  It also makes it explicitly clear that
the generic PHY must be last in the PHY table.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Acked-by: Andy Fleming <afleming@freescale.com>
15 years agoSIMPC8313 board: fix out of tree building.
Wolfgang Denk [Mon, 9 Mar 2009 09:53:05 +0000 (10:53 +0100)]
SIMPC8313 board: fix out of tree building.

Fix typo in makefile which broke out of tree builds.

Also use expolicit "rm" instead of "ln -sf" which is known to be
unreliable.

Signed-off-by: Wolfgang Denk <wd@denx.de>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
15 years agoAdd eTSEC 1/2 IO override control (corrected)
ksi@koi8.net [Mon, 23 Feb 2009 18:53:13 +0000 (10:53 -0800)]
Add eTSEC 1/2 IO override control (corrected)

This adds tsec12ioovcr to include/asm-ppc/immap_85xx.h (was reserved.)

Signed-off-by: Sergey Kubushyn <ksi@koi8.net>
15 years agofsl: Remove unnecessary debug printfs
Andy Fleming [Sat, 7 Mar 2009 01:05:52 +0000 (19:05 -0600)]
fsl: Remove unnecessary debug printfs

These were left in accidentally, and are not really useful unless the
code is as broken as it was when it was being developed.

Signed-off-by: Andy Fleming <afleming@freescale.com>
15 years agoFix mpc85xx ddr-gen3 ddr_sdram_cfg.
Ed Swarthout [Tue, 24 Feb 2009 08:37:59 +0000 (02:37 -0600)]
Fix mpc85xx ddr-gen3 ddr_sdram_cfg.

Commit e1be0d25, "32bit BUg fix for DDR2 on 8572" prevented other
sdram_cfg bits (such as ecc and self_refresh_in_sleep) from being set.

Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
15 years agoPXA: timer use do_div and simplify it
Jean-Christophe PLAGNIOL-VILLARD [Tue, 24 Feb 2009 05:13:10 +0000 (06:13 +0100)]
PXA: timer use do_div and simplify it

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
15 years agoSIMPC8313 board: fix out of tree building.
Wolfgang Denk [Mon, 9 Mar 2009 09:51:39 +0000 (10:51 +0100)]
SIMPC8313 board: fix out of tree building.

Fix typo in makefile which broke out of tree builds.

Also use expolicit "rm" instead of "ln -sf" which is known to be
unreliable.

Signed-off-by: Wolfgang Denk <wd@denx.de>
15 years agoMerge branch 'master' of git://git.denx.de/u-boot-mpc83xx
Wolfgang Denk [Sun, 8 Mar 2009 23:41:48 +0000 (00:41 +0100)]
Merge branch 'master' of git://git.denx.de/u-boot-mpc83xx

Conflicts:
lib_ppc/board.c

Signed-off-by: Wolfgang Denk <wd@denx.de>
15 years ago8360, kmeter1: added bootcount feature.
Heiko Schocher [Tue, 24 Feb 2009 10:30:51 +0000 (11:30 +0100)]
8360, kmeter1: added bootcount feature.

add CONFIG_BOOTCOUNT_LIMIT feature for 8360 CPU.

The bootcounter uses 8 bytes from the muram,
because no other memory was found on this
CPU for the bootcount feature. So we must
correct the muram size in DTS before booting
Linux.

This feature is actual only implemented for
MPC8360, because not all 83xx CPU have qe,
and therefore no muram, which this feature
uses.

Signed-off-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
15 years ago83xx, kmeter: QE_ENET10 errata for Silicon Revision 2.1
Heiko Schocher [Tue, 24 Feb 2009 10:30:48 +0000 (11:30 +0100)]
83xx, kmeter: QE_ENET10 errata for Silicon Revision 2.1

old code implemented the QE_ENET10 errata only for Silicon
Revision 2.0. New code reads now the Silicon Revision
register and sets dependend on the Silicon Revision the
values as advised in the QE_ENET10 errata.

Signed-off-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
15 years ago83xx, kmeter1: updates for 2009.03
Heiko Schocher [Tue, 24 Feb 2009 10:30:44 +0000 (11:30 +0100)]
83xx, kmeter1: updates for 2009.03

- HRCW update
  HRCWH_BOOTSEQ_DISABLE not HRCWH_BOOTSEQ_NORMAL
  HRCWH_LALE_EARLY added
- DDR-SDRAM settings modified. This solves sporadically
  problems with this memory.
- CS1 now 128 MB window size
- CS3 now 512 MB window size
- PRAM activated
- MTDPARTS_DEFAULT defined
- CONFIG_HOSTNAME added
- MONITOR_LEN now 384 KB

Signed-off-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
15 years ago83xx, kmeter1: autodetect size of DDR II RAM
Heiko Schocher [Tue, 24 Feb 2009 10:30:40 +0000 (11:30 +0100)]
83xx, kmeter1: autodetect size of DDR II RAM

it is possible that some board variants have different DDR II
RAM sizes. So we autodetect the size of the assembled RAM.

Signed-off-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
15 years ago83xx, i2c: add mux support for fsl_i2c
Heiko Schocher [Tue, 24 Feb 2009 10:30:37 +0000 (11:30 +0100)]
83xx, i2c: add mux support for fsl_i2c

This patch adds I2C mux support for the fsl_i2c driver. This
allows you to add "new" i2c busses, which are reached over
i2c muxes. For more infos, please look in the README and
search for CONFIG_I2C_MUX.

Signed-off-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
15 years ago83xx, kmeter1: add I2C, dtt, eeprom support
Heiko Schocher [Tue, 24 Feb 2009 10:30:34 +0000 (11:30 +0100)]
83xx, kmeter1: add I2C, dtt, eeprom support

This patch adds I2C support for the Keymile kmeter1 board.
It uses the First I2C Controller from the CPU, for
accessing 4 temperature sensors, an eeprom with IVM data
and the booteeprom over a pca9547 mux.

Signed-off-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
15 years agoi2c, dtt: move dtt_init () to board_init_r ()
Heiko Schocher [Tue, 24 Feb 2009 10:30:30 +0000 (11:30 +0100)]
i2c, dtt: move dtt_init () to board_init_r ()

In case where a board not uses CONFIG_POST, it is not
necessary to init the DTTs when running from flash.

Signed-off-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
15 years ago83xx: Fix some bugs in spd sdram code
Dave Liu [Wed, 25 Feb 2009 04:31:32 +0000 (12:31 +0800)]
83xx: Fix some bugs in spd sdram code

1. RD_TO_PRE missed to add the AL, and need min 2 clocks for
  tRTP according to DDR2 JEDEC spec.
2. WRTORD - tWTR need min 2 clocks according to DDR2 JEDEC spec.
3. add the support of DDR2-533,667,800 DIMMs
4. cpo
5. make the AL to min to gain better performance.

The Micron MT9HTF6472CHY-667D1 DIMMs test passed on
MPC837xEMDS platform at 266MHz/333MHz/400MHz data rate.

items 1, 2 and 5:
Acked-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
Reported-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
Signed-off-by: Dave Liu <daveliu@freescale.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
15 years agoMPC8349ITX: several config issues fixed
Valeriy Glushkov [Wed, 4 Feb 2009 16:27:49 +0000 (18:27 +0200)]
MPC8349ITX: several config issues fixed

The previous version rebooted forever with DDR bigger than 256MB.
Access the DS1339 RTC chip is on I2C1 bus.
Allow DHCP.

Signed-off-by: Valeriy Glushkov <gvv@lstec.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
15 years agompc83xx: MPC837XEMDS: Initialize SerDes before negating PCIE reset signal
Anton Vorontsov [Thu, 19 Feb 2009 15:20:39 +0000 (18:20 +0300)]
mpc83xx: MPC837XEMDS: Initialize SerDes before negating PCIE reset signal

The SerDes initialization should be finished before negating the reset
signal according to the reference manual. This isn't an issue on real
hardware, but we'd better stick to the specifications anyway.

Suggested-by: Liu Dave <DaveLiu@freescale.com>
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
15 years agoi2c, dtt: move dtt_init () to board_init_r ()
Heiko Schocher [Wed, 25 Feb 2009 11:28:32 +0000 (12:28 +0100)]
i2c, dtt: move dtt_init () to board_init_r ()

it is not necessary to init the DTTs so early,
so move this init to board_init_r ().

Signed-off-by: Heiko Schocher <hs@denx.de>
15 years agolcd: Fix compilation warning in common/lcd.c
Anatolij Gustschin [Wed, 25 Feb 2009 19:28:13 +0000 (20:28 +0100)]
lcd: Fix compilation warning in common/lcd.c

Fix following warning while compilation for mcc200 board:

lcd.c: In function 'lcd_display_bitmap':
lcd.c:625: warning: unused variable 'cmap'

Signed-off-by: Anatolij Gustschin <agust@denx.de>
15 years agoMoved SC520 Files (fix commit 407976185e0dda2c90e89027121a1071b9c77bfb)
Graeme Russ [Tue, 24 Feb 2009 10:11:24 +0000 (21:11 +1100)]
Moved SC520 Files (fix commit 407976185e0dda2c90e89027121a1071b9c77bfb)

Fixes commit 407976185e0dda2c90e89027121a1071b9c77bfb

Signed-off-by: Graeme Russ <graeme.russ at gmail.com>
15 years agosmc911x: split out useful defines/functions into local header
Mike Frysinger [Mon, 23 Feb 2009 15:29:47 +0000 (10:29 -0500)]
smc911x: split out useful defines/functions into local header

The smc911x driver has a lot of useful defines/functions which can be used
by pieces of code (such as example eeprom programmers).  Rather than
forcing each place to duplicate these defines/functions, split them out
of the smdc911x driver into a local header.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Ben Warren <biggerbadderben@gmail.com>
CC: Sascha Hauer <s.hauer@pengutronix.de>
CC: Guennadi Liakhovetski <lg@denx.de>
CC: Magnus Lilja <lilja.magnus@gmail.com>
CC: Ben Warren <biggerbadderben@gmail.com>
15 years agoMerge branch 'master' of git://git.denx.de/u-boot-video
Wolfgang Denk [Tue, 24 Feb 2009 21:56:00 +0000 (22:56 +0100)]
Merge branch 'master' of git://git.denx.de/u-boot-video

15 years agoMerge branch 'master' of git://git.denx.de/u-boot-mpc83xx
Wolfgang Denk [Tue, 24 Feb 2009 21:52:16 +0000 (22:52 +0100)]
Merge branch 'master' of git://git.denx.de/u-boot-mpc83xx

15 years agoARM: add an "eet" variant of the imx31_phycore board
Guennadi Liakhovetski [Tue, 24 Feb 2009 09:44:02 +0000 (10:44 +0100)]
ARM: add an "eet" variant of the imx31_phycore board

The "eet" variant of the imx31_phycore board has an OLED display, using a
s6e63d6 display controller on the first SPI interface, using GPIO57 as a
chip-select for it. With this configuration you can display 256 colour BMP
images in 16-bit RGB (RGB565) LCD mode.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
15 years agovideo: add an i.MX31 framebuffer driver
Guennadi Liakhovetski [Fri, 6 Feb 2009 09:37:57 +0000 (10:37 +0100)]
video: add an i.MX31 framebuffer driver

Add a driver for the Synchronous Display Controller and the Display
Interface on i.MX31, using IPU for DMA channel setup. So far only
displaying of bitmaps is supported, no text output.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
Acked-by: Anatolij Gustschin <agust@denx.de>
15 years agoLCD: support 8bpp BMPs on 16bpp displays
Guennadi Liakhovetski [Fri, 6 Feb 2009 09:37:53 +0000 (10:37 +0100)]
LCD: support 8bpp BMPs on 16bpp displays

This patch also simplifies some ifdefs in lcd.c, introduces a generic
vidinfo_t, which new drivers are encouraged to use and old drivers to switch
over to.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
Acked-by: Anatolij Gustschin <agust@denx.de>
15 years agoAdd 16bpp BMP support
Mark Jackson [Fri, 6 Feb 2009 09:37:49 +0000 (10:37 +0100)]
Add 16bpp BMP support

This patch adds 16bpp BMP support to the common lcd code.

Use CONFIG_BMP_16BPP and set LCD_BPP to LCD_COLOR16 to enable the code.

At the moment it's only been tested on the MIMC200 AVR32 board, but extending
this to other platforms should be a simple task !!

Signed-off-by: Mark Jackson <mpfj@mimc.co.uk>
Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
Acked-by: Anatolij Gustschin <agust@denx.de>
15 years agoA driver for the S6E63D6 SPI display controller from Samsung
Guennadi Liakhovetski [Fri, 6 Feb 2009 09:37:41 +0000 (10:37 +0100)]
A driver for the S6E63D6 SPI display controller from Samsung

This is a driver for the S6E63D6 SPI OLED display controller from Samsung.
It only provides access to controller's registers so the client can freely
configure it.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
Acked-by: Anatolij Gustschin <agust@denx.de>
15 years agoi.MX31: support GPIO as a chip-select in the mxc_spi driver
Guennadi Liakhovetski [Fri, 13 Feb 2009 08:26:40 +0000 (09:26 +0100)]
i.MX31: support GPIO as a chip-select in the mxc_spi driver

Some SPI devices have special requirements on chip-select handling.
With this patch we can use a GPIO as a chip-select and strictly follow
the SPI_XFER_BEGIN and SPI_XFER_END flags.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
15 years agoi.MX31: add a simple gpio driver
Guennadi Liakhovetski [Sat, 7 Feb 2009 00:18:07 +0000 (01:18 +0100)]
i.MX31: add a simple gpio driver

This is a minimal driver, so far only managing output. It will
be used by the mxc_spi.c driver.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
15 years agoi.MX31: fix SPI driver for shorter than 32 bit
Guennadi Liakhovetski [Fri, 6 Feb 2009 23:09:12 +0000 (00:09 +0100)]
i.MX31: fix SPI driver for shorter than 32 bit

Fix setting the SPI Control register, 8 and 16-bit transfers
and a wrong pointer in the free routine in the mxc_spi driver.

Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
15 years agompc83xx: MPC837XERDB: Add PCIe support
Anton Vorontsov [Thu, 19 Feb 2009 15:20:52 +0000 (18:20 +0300)]
mpc83xx: MPC837XERDB: Add PCIe support

On MPC8377E-RDB and MPC8378E-RDB boards we have PCIe and mini-PCIe
slots. Let's support them.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
15 years agompc83xx: PCI: Fix hard-coded first_busno value
Anton Vorontsov [Thu, 19 Feb 2009 15:20:50 +0000 (18:20 +0300)]
mpc83xx: PCI: Fix hard-coded first_busno value

We should use pci_last_busno() in pci_init_bus(), otherwise we'll
erroneously re-use PCI0's first_busno for PCI1 hoses.

NOTE: The patch is untested. All MPC83xx FSL boards I have have
PCI1 in miniPCI form, for which I don't have any cards handy.

But looking in cpu/mpc85xx/pci.c:
...
#ifdef CONFIG_MPC85XX_PCI2
        hose = &pci_hose[1];

        hose->first_busno = pci_hose[0].last_busno + 1;

And considering that we do the same for MPC83xx PCI-E support,
I think this patch is correct.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
15 years agompc83xx: PCI: Fix bus-range fdt fixups for PCI1 controllers
Anton Vorontsov [Thu, 19 Feb 2009 15:20:46 +0000 (18:20 +0300)]
mpc83xx: PCI: Fix bus-range fdt fixups for PCI1 controllers

This patch fixes copy-paste issue: pci_hose[0]'s first and last
busnos were used to fixup pci1's nodes.

We don't see this bug triggering only because Linux reenumerate
buses anyway.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
15 years agompc83xx: PCIe: Fix CONFIG_PCI_SCAN_SHOW reporting bogus values
Anton Vorontsov [Thu, 19 Feb 2009 15:20:44 +0000 (18:20 +0300)]
mpc83xx: PCIe: Fix CONFIG_PCI_SCAN_SHOW reporting bogus values

This patch fixes an issue in config space read accessors: we should
fill-in the value even if we fail (e.g. skipping devices), otherwise
CONFIG_PCI_SCAN_SHOW reports bogus values during boot up.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
15 years agompc83xx: PCIe: Don't start bus enumeration at 0
Anton Vorontsov [Thu, 19 Feb 2009 15:20:42 +0000 (18:20 +0300)]
mpc83xx: PCIe: Don't start bus enumeration at 0

Currently we assign first_busno = 0 for the first PCIe hose, but this
scheme won't work if we have ordinary PCI hose already registered (its
first_busno value is 0 too).

The old code worked fine only because we have PCI disabled on
MPC837XEMDS boards in stand-alone mode (see commit 00f7bbae92e3b13f2b3
"mpc83xx: fix PCI scan hang on the standalone MPC837xE-MDS boards").
But on MPC837XERDB boards we have PCI and PCIe, so the bug actually
triggers.

So, to fix the issue, we should use pci_last_busno() + 1 for the
first_busno (i.e. last available busno).

Reported-by: Huang Changming <Chang-Ming.Huang@freescale.com>
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
15 years agoPCI: Add pci_last_busno() helper
Anton Vorontsov [Thu, 19 Feb 2009 15:20:41 +0000 (18:20 +0300)]
PCI: Add pci_last_busno() helper

This is just a handy routine that reports last PCI busno: we walk
down all the hoses and return last hose's last_busno.

Will be used by PCI/PCIe initialization code.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
15 years agoMPC86xx: set CONFIG_MAX_MEM_MAPPED to 2G by default
Becky Bruce [Mon, 23 Feb 2009 19:56:51 +0000 (13:56 -0600)]
MPC86xx: set CONFIG_MAX_MEM_MAPPED to 2G by default

Currently, we get 256MB as the default, but since all the 86xx
board configs define a 2G BAT mapping for RAM, raise default
to 2G.

Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org>
Acked-by: Jon Loeliger <jdl@freescale.com>
15 years agompc8641hpcn: Indicate 36-bit addr map in boot messages
Becky Bruce [Thu, 12 Feb 2009 16:43:32 +0000 (10:43 -0600)]
mpc8641hpcn: Indicate 36-bit addr map in boot messages

If 36-bit addressing is enabled, print a message on the console
when we boot.

Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org>
15 years agoMerge branch 'master' of git://git.denx.de/u-boot
Kim Phillips [Mon, 23 Feb 2009 21:42:44 +0000 (15:42 -0600)]
Merge branch 'master' of git://git.denx.de/u-boot

15 years agonetloop: speed up NetLoop
Heiko Schocher [Tue, 10 Feb 2009 08:38:52 +0000 (09:38 +0100)]
netloop: speed up NetLoop

NetLoop polls every cycle with getenv some environment variables.
This is horribly slow, especially when the environment is big.

This patch reads only the environment variables in NetLoop,
when they were changed.

Also moved the init part of the NetLoop function in a seperate
function.

Signed-off-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
15 years agosmc911x_eeprom: new example app for managing newer SMC parts
Mike Frysinger [Mon, 22 Dec 2008 07:56:07 +0000 (02:56 -0500)]
smc911x_eeprom: new example app for managing newer SMC parts

A forward port of the last version to work with the newer smc911x driver.
I only have a board with a LAN9218 part on it, so that is the only one
I've tested.  But there isn't anything in this that would make it terribly
chip specific afaik.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
CC: Sascha Hauer <s.hauer@pengutronix.de>
CC: Guennadi Liakhovetski <lg@denx.de>
CC: Magnus Lilja <lilja.magnus@gmail.com>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
15 years agoAdded Vitesse VSC8211 definitions to TSEC driver
Pieter Henning [Mon, 23 Feb 2009 07:17:15 +0000 (23:17 -0800)]
Added Vitesse VSC8211 definitions to TSEC driver

Added the struct containing PHY settings for the Vitesse VSC8211 phy to
the phy_info list in tsec.c

Signed-off-by: Pieter Henning <phenning@vastech.co.za>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>