org.openembedded.dev: d80e8cda859a7ac2845d1687345f0b70b733db10

oe at monotone.openmoko.org oe at monotone.openmoko.org
Fri May 2 21:06:02 CEST 2008


revision:            d80e8cda859a7ac2845d1687345f0b70b733db10
date:                2008-04-30T12:59:08
author:              mickeyl at openembedded.org
branch:              org.openembedded.dev
changelog:
merge of 'b84aeb3b3fcb9975cdaaafccc4ecbc7ca61c5312'
     and 'ff99add05b70c6e96f011a1a27dd980a5380a7bf'

manifest:
format_version "1"

new_manifest [f19fd7316f8b02e594853dcb70128770d29d1712]

old_revision [b84aeb3b3fcb9975cdaaafccc4ecbc7ca61c5312]

delete "packages/madwifi/madwifi-ng_r1844-20061208.bb"

delete "packages/madwifi/madwifi-ng_r2100-20070210.bb"

delete "packages/madwifi/madwifi-ng_r2156-20070225.bb"

delete "packages/madwifi/madwifi-ng_r2182-20070308.bb"

delete "packages/madwifi/madwifi-ng_r2187-20070309.bb"

delete "packages/madwifi/madwifi-ng_r2518-20070626.bb"

delete "packages/madwifi/madwifi-ng_r2702-20070903.bb"

add_dir "packages/netbase/netbase/mpc8313e-rdb"

add_dir "packages/u-boot/u-boot-1.3.2"

add_file "packages/binutils/binutils-2.17/binutils-2.17.atmel.1.2.6.patch.bz2"
 content [61afa951e7c1dbe064e1134cfd7c2c4e9f919fb7]

add_file "packages/binutils/binutils-avr32.inc"
 content [5bd29b107e09714fb7b1d4bf3f8e6d5196a9ca37]

add_file "packages/gcc/gcc-4.2.2/901-avr32-no-cond-exec-before-reload-by-default.patch"
 content [a993a533b9e9b03a015aae1cbf427aa4e7f323e7]

add_file "packages/gcc/gcc-4.2.2/gcc-4.2.2.atmel.1.0.8.patch.bz2"
 content [65d3733847d1b916ba3fafcf88127711a6fec8ba]

add_file "packages/gdb/gdb-avr32.inc"
 content [7494151dbc5adbc235fbc5181d3392875c7f4e35]

add_file "packages/linux/linux-omap2-git/beagleboard/usb-timout.patch"
 content [7acb9cec9859f0c448ef4b56bf2ebd12e8b84c2b]

add_file "packages/netbase/netbase/mpc8313e-rdb/interfaces"
 content [2ece41786062e70093a58ef17e23d35ea084c316]

add_file "packages/u-boot/u-boot-1.3.2/mpc8313e-rdb-autoboot.patch"
 content [d10d1edb2510c27cbbfca47e962cfc8da45f0788]

add_file "packages/u-boot/u-boot-1.3.2/mpc8313e-rdb-mtdparts.patch"
 content [20746984bb1c6ef2789381da1283a8e06a74b0ac]

add_file "packages/u-boot/u-boot-1.3.2/mpc8313e-rdb-nand.patch"
 content [64eee6cc9ba75710f130f074b0632df44049ca14]

patch "MAINTAINERS"
 from [5556c9277c3381070987310400058abdd5f4c820]
   to [df1acfac3b7175de3f71ec85623148d285a64116]

patch "classes/kernel.bbclass"
 from [8d92c5a7b6420490dd6b3115e8146b3fc0a0f854]
   to [8ed575119a74e50c5bcb39266997cba3f60792c2]

patch "conf/distro/angstrom-2008.1.conf"
 from [6f251e8e8c830f7c3e1ebbed08e46a6c642556d9]
   to [dd2138b465f663603f99ce6be674dfd46af8c33f]

patch "conf/distro/include/angstrom-uclibc.inc"
 from [bd467a8983d81901f98163052c0537bbf2909f15]
   to [ed3615a8cce5b329c1b4354ca91a98190a64f862]

patch "conf/machine/mpc8313e-rdb.conf"
 from [9521bcf148591a9c5c88e316475ce8493488eaf2]
   to [ca05aff54fbbce7e6178f63cd81e0262c9607193]

patch "packages/binutils/binutils.inc"
 from [f448bed26fe1742f47791f2fa478603cc6c038b5]
   to [ec08872ebf090adf38f8ae73969a35b3cf0f98ae]

patch "packages/binutils/binutils_2.17.bb"
 from [22565b10082a0e16f29e89a55311c299acbc31c1]
   to [99e9c269f46aafaced069158eb736ec2b3c100b9]

patch "packages/gcc/gcc-4.2.2.inc"
 from [e1a01a5ff03489319241b841ece209ab4fdcbc72]
   to [6281a032714b397b43955b47208a1dd89efdd74b]

patch "packages/gdb/gdb-cross.inc"
 from [f22b5bdf741d9b9ce7a69086a1b6ff8dc8383420]
   to [fc0d500641c93bb88bc035f650bb82fd9a102324]

patch "packages/linux/linux-omap2-git/beagleboard/defconfig"
 from [ffa35a912f2d6c8016f6ea1d0f7ebb27987a9b28]
   to [6defc6fa96f79492acbfbaed1cc6553abe5edc13]

patch "packages/linux/linux-omap2_git.bb"
 from [c46412b985389cdee793c4670885ae00a0bfc7c3]
   to [d2df9d873b73d322c1d6a7918ef9c8786b091e48]

patch "packages/madwifi/madwifi-ng_r3314-20080131.bb"
 from [aa87cb14b8005f3b927e4701b1ae845bf2099ec2]
   to [24403394f09cfebacade21edca4dbf1c9fe180ba]

patch "packages/meta/slugos-packages.bb"
 from [46c8ac8a7503c5e222ee23a677a92db2e2ea9dcb]
   to [f62c22f94a5ba8a475afc6d43721c4e29386ca2e]

patch "packages/opkg/opkg_svn.bb"
 from [bc27245782ad8e3348db57c3d14c9e75b4f1b404]
   to [e034851c3a5985b17cbde739bc5bb59a8c69d323]

patch "packages/u-boot/u-boot_1.3.2.bb"
 from [8cfd5293c0214179a38b2304fbd10c77a3912aff]
   to [33ac513192e4695c4ea43a787d866c98c2a011ef]

  set "packages/binutils/binutils-2.17/binutils-2.17.atmel.1.2.6.patch.bz2"
 attr "mtn:manual_merge"
value "true"

  set "packages/gcc/gcc-4.2.2/gcc-4.2.2.atmel.1.0.8.patch.bz2"
 attr "mtn:manual_merge"
value "true"

old_revision [ff99add05b70c6e96f011a1a27dd980a5380a7bf]

patch "packages/efl1/imlib2_cvs.bb"
 from [90324b9d8bfadfca430da3b72c2b1f9c7089ee52]
   to [5c3c8c06ae6d9a4d18d10a066fc8973ec535e871]
-------------- next part --------------
#
#
# delete "packages/madwifi/madwifi-ng_r1844-20061208.bb"
# 
# delete "packages/madwifi/madwifi-ng_r2100-20070210.bb"
# 
# delete "packages/madwifi/madwifi-ng_r2156-20070225.bb"
# 
# delete "packages/madwifi/madwifi-ng_r2182-20070308.bb"
# 
# delete "packages/madwifi/madwifi-ng_r2187-20070309.bb"
# 
# delete "packages/madwifi/madwifi-ng_r2518-20070626.bb"
# 
# delete "packages/madwifi/madwifi-ng_r2702-20070903.bb"
# 
# add_dir "packages/netbase/netbase/mpc8313e-rdb"
# 
# add_dir "packages/u-boot/u-boot-1.3.2"
# 
# add_file "packages/binutils/binutils-2.17/binutils-2.17.atmel.1.2.6.patch.bz2"
#  content [61afa951e7c1dbe064e1134cfd7c2c4e9f919fb7]
# 
# add_file "packages/binutils/binutils-avr32.inc"
#  content [5bd29b107e09714fb7b1d4bf3f8e6d5196a9ca37]
# 
# add_file "packages/gcc/gcc-4.2.2/901-avr32-no-cond-exec-before-reload-by-default.patch"
#  content [a993a533b9e9b03a015aae1cbf427aa4e7f323e7]
# 
# add_file "packages/gcc/gcc-4.2.2/gcc-4.2.2.atmel.1.0.8.patch.bz2"
#  content [65d3733847d1b916ba3fafcf88127711a6fec8ba]
# 
# add_file "packages/gdb/gdb-avr32.inc"
#  content [7494151dbc5adbc235fbc5181d3392875c7f4e35]
# 
# add_file "packages/linux/linux-omap2-git/beagleboard/usb-timout.patch"
#  content [7acb9cec9859f0c448ef4b56bf2ebd12e8b84c2b]
# 
# add_file "packages/netbase/netbase/mpc8313e-rdb/interfaces"
#  content [2ece41786062e70093a58ef17e23d35ea084c316]
# 
# add_file "packages/u-boot/u-boot-1.3.2/mpc8313e-rdb-autoboot.patch"
#  content [d10d1edb2510c27cbbfca47e962cfc8da45f0788]
# 
# add_file "packages/u-boot/u-boot-1.3.2/mpc8313e-rdb-mtdparts.patch"
#  content [20746984bb1c6ef2789381da1283a8e06a74b0ac]
# 
# add_file "packages/u-boot/u-boot-1.3.2/mpc8313e-rdb-nand.patch"
#  content [64eee6cc9ba75710f130f074b0632df44049ca14]
# 
# patch "MAINTAINERS"
#  from [5556c9277c3381070987310400058abdd5f4c820]
#    to [df1acfac3b7175de3f71ec85623148d285a64116]
# 
# patch "classes/kernel.bbclass"
#  from [8d92c5a7b6420490dd6b3115e8146b3fc0a0f854]
#    to [8ed575119a74e50c5bcb39266997cba3f60792c2]
# 
# patch "conf/distro/angstrom-2008.1.conf"
#  from [6f251e8e8c830f7c3e1ebbed08e46a6c642556d9]
#    to [dd2138b465f663603f99ce6be674dfd46af8c33f]
# 
# patch "conf/distro/include/angstrom-uclibc.inc"
#  from [bd467a8983d81901f98163052c0537bbf2909f15]
#    to [ed3615a8cce5b329c1b4354ca91a98190a64f862]
# 
# patch "conf/machine/mpc8313e-rdb.conf"
#  from [9521bcf148591a9c5c88e316475ce8493488eaf2]
#    to [ca05aff54fbbce7e6178f63cd81e0262c9607193]
# 
# patch "packages/binutils/binutils.inc"
#  from [f448bed26fe1742f47791f2fa478603cc6c038b5]
#    to [ec08872ebf090adf38f8ae73969a35b3cf0f98ae]
# 
# patch "packages/binutils/binutils_2.17.bb"
#  from [22565b10082a0e16f29e89a55311c299acbc31c1]
#    to [99e9c269f46aafaced069158eb736ec2b3c100b9]
# 
# patch "packages/gcc/gcc-4.2.2.inc"
#  from [e1a01a5ff03489319241b841ece209ab4fdcbc72]
#    to [6281a032714b397b43955b47208a1dd89efdd74b]
# 
# patch "packages/gdb/gdb-cross.inc"
#  from [f22b5bdf741d9b9ce7a69086a1b6ff8dc8383420]
#    to [fc0d500641c93bb88bc035f650bb82fd9a102324]
# 
# patch "packages/linux/linux-omap2-git/beagleboard/defconfig"
#  from [ffa35a912f2d6c8016f6ea1d0f7ebb27987a9b28]
#    to [6defc6fa96f79492acbfbaed1cc6553abe5edc13]
# 
# patch "packages/linux/linux-omap2_git.bb"
#  from [c46412b985389cdee793c4670885ae00a0bfc7c3]
#    to [d2df9d873b73d322c1d6a7918ef9c8786b091e48]
# 
# patch "packages/madwifi/madwifi-ng_r3314-20080131.bb"
#  from [aa87cb14b8005f3b927e4701b1ae845bf2099ec2]
#    to [24403394f09cfebacade21edca4dbf1c9fe180ba]
# 
# patch "packages/meta/slugos-packages.bb"
#  from [46c8ac8a7503c5e222ee23a677a92db2e2ea9dcb]
#    to [f62c22f94a5ba8a475afc6d43721c4e29386ca2e]
# 
# patch "packages/opkg/opkg_svn.bb"
#  from [bc27245782ad8e3348db57c3d14c9e75b4f1b404]
#    to [e034851c3a5985b17cbde739bc5bb59a8c69d323]
# 
# patch "packages/u-boot/u-boot_1.3.2.bb"
#  from [8cfd5293c0214179a38b2304fbd10c77a3912aff]
#    to [33ac513192e4695c4ea43a787d866c98c2a011ef]
# 
#   set "packages/binutils/binutils-2.17/binutils-2.17.atmel.1.2.6.patch.bz2"
#  attr "mtn:manual_merge"
# value "true"
# 
#   set "packages/gcc/gcc-4.2.2/gcc-4.2.2.atmel.1.0.8.patch.bz2"
#  attr "mtn:manual_merge"
# value "true"
#
============================================================
# packages/binutils/binutils-2.17/binutils-2.17.atmel.1.2.6.patch.bz2 is binary
============================================================
--- packages/binutils/binutils-avr32.inc	5bd29b107e09714fb7b1d4bf3f8e6d5196a9ca37
+++ packages/binutils/binutils-avr32.inc	5bd29b107e09714fb7b1d4bf3f8e6d5196a9ca37
@@ -0,0 +1,31 @@
+# Extra tasks required when using Atmel's patches to binutils
+# See http://avr32linux.org/twiki/bin/view/Main/BinutilsPatches for
+# more information
+
+
+do_avr32_reconf () {
+        if test ${TARGET_ARCH} == avr32; then
+            (cd ${S} && autoconf-2.13) || die "Error running autoconf"
+            for dir in bfd opcodes binutils ld; do
+                (cd "${S}/$dir" &&
+                 aclocal-1.9 &&
+                 autoconf &&
+                 automake-1.9 &&
+                 autoheader) || die "Error reconfiguring $dir"
+            done
+        fi
+}
+
+
+do_avr32_configure_bfd () {
+        if test ${TARGET_ARCH} == avr32; then
+            (cd ${B} && make configure-bfd) || die "Error running 'make configure-bfd'"
+            (cd ${B}/bfd && make headers) || die "Error running 'make headers'"
+        fi
+}
+
+
+
+addtask avr32_reconf after do_patch before do_configure
+addtask avr32_configure_bfd after do_configure before do_compile
+          
============================================================
--- packages/gcc/gcc-4.2.2/901-avr32-no-cond-exec-before-reload-by-default.patch	a993a533b9e9b03a015aae1cbf427aa4e7f323e7
+++ packages/gcc/gcc-4.2.2/901-avr32-no-cond-exec-before-reload-by-default.patch	a993a533b9e9b03a015aae1cbf427aa4e7f323e7
@@ -0,0 +1,13 @@
+Index: gcc-4.2.2/gcc/config/avr32/avr32.c
+===================================================================
+--- gcc-4.2.2.orig/gcc/config/avr32/avr32.c	2008-04-08 10:42:47.000000000 +0200
++++ gcc-4.2.2/gcc/config/avr32/avr32.c	2008-04-08 10:43:33.000000000 +0200
+@@ -161,7 +161,7 @@
+ /* Set default target_flags. */
+ #undef TARGET_DEFAULT_TARGET_FLAGS
+ #define TARGET_DEFAULT_TARGET_FLAGS \
+-  (MASK_HAS_ASM_ADDR_PSEUDOS | MASK_MD_REORG_OPTIMIZATION | MASK_COND_EXEC_BEFORE_RELOAD)
++  (MASK_HAS_ASM_ADDR_PSEUDOS | MASK_MD_REORG_OPTIMIZATION)
+ 
+ void 
+ avr32_optimization_options (int level,
============================================================
# packages/gcc/gcc-4.2.2/gcc-4.2.2.atmel.1.0.8.patch.bz2 is binary
============================================================
--- packages/gdb/gdb-avr32.inc	7494151dbc5adbc235fbc5181d3392875c7f4e35
+++ packages/gdb/gdb-avr32.inc	7494151dbc5adbc235fbc5181d3392875c7f4e35
@@ -0,0 +1,32 @@
+# Perform tasks required to use Atmel's AVR32 patches
+# See http://avr32linux.org/twiki/bin/view/Main/GDBPatches for more info
+
+
+do_avr32_reconf () {
+    if test ${TARGET_ARCH} == "avr32"; then
+        (cd ${S} && autoconf) || \
+            die "failure running autoconf in top-level gdb"
+
+        (cd ${S}/bfd && autoreconf) || \
+            die "failure running autoreconf in bfd/"
+
+        (cd ${S}/opcodes && autoreconf) || \
+            die "failure running autoreconf in opcodes/"
+    fi
+
+}
+
+
+
+do_avr32_configure_bfd () {
+    if test ${TARGET_ARCH} == "avr32"; then
+        (cd ${B} && make configure-bfd) || die "Error running configure-bfd"
+        (cd ${B}/bfd && make headers) || \
+                die "error running 'make headers' in bfd"
+    fi
+}
+
+
+addtask avr32_reconf after do_patch before do_configure
+addtask avr32_configure_bfd after do_configure before do_compile
+
============================================================
--- packages/linux/linux-omap2-git/beagleboard/usb-timout.patch	7acb9cec9859f0c448ef4b56bf2ebd12e8b84c2b
+++ packages/linux/linux-omap2-git/beagleboard/usb-timout.patch	7acb9cec9859f0c448ef4b56bf2ebd12e8b84c2b
@@ -0,0 +1,11 @@
+--- /tmp/ehci-hub.c	2008-04-30 11:41:59.381876290 +0200
++++ git/drivers/usb/host/ehci-hub.c	2008-04-30 11:42:20.522875367 +0200
+@@ -734,7 +734,7 @@
+ 			 * this bit; seems too long to spin routinely...
+ 			 */
+ 			retval = handshake(ehci, status_reg,
+-					PORT_RESET, 0, 750);
++					PORT_RESET, 0, 1250);
+ 			if (retval != 0) {
+ 				ehci_err (ehci, "port %d reset error %d\n",
+ 					wIndex + 1, retval);
============================================================
--- packages/netbase/netbase/mpc8313e-rdb/interfaces	2ece41786062e70093a58ef17e23d35ea084c316
+++ packages/netbase/netbase/mpc8313e-rdb/interfaces	2ece41786062e70093a58ef17e23d35ea084c316
@@ -0,0 +1,16 @@
+# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
+ 
+# The loopback interface
+auto lo
+iface lo inet loopback
+
+# Wired interface
+auto eth1
+iface eth1 inet dhcp
+
+# Wireless interface
+auto ath0
+iface ath0 inet static
+	address 192.168.99.1
+	netmask 255.255.255.0
+
============================================================
--- packages/u-boot/u-boot-1.3.2/mpc8313e-rdb-autoboot.patch	d10d1edb2510c27cbbfca47e962cfc8da45f0788
+++ packages/u-boot/u-boot-1.3.2/mpc8313e-rdb-autoboot.patch	d10d1edb2510c27cbbfca47e962cfc8da45f0788
@@ -0,0 +1,12 @@
+diff -urN u-boot-1.3.1.orig/include/configs/MPC8313ERDB.h u-boot-1.3.1/include/configs/MPC8313ERDB.h
+--- u-boot-1.3.1.orig/include/configs/MPC8313ERDB.h	2007-12-06 10:21:19.000000000 +0100
++++ u-boot-1.3.1/include/configs/MPC8313ERDB.h	2008-01-31 17:38:10.000000000 +0100
+@@ -522,7 +522,7 @@
+ #define CONFIG_FDTFILE		mpc8313erdb.dtb
+ 
+ #define CONFIG_LOADADDR		200000	/* default location for tftp and bootm */
+-#define CONFIG_BOOTDELAY	-1	/* -1 disables auto-boot */
++#define CONFIG_BOOTDELAY	3	/* autoboot after 3 seconds     */
+ #define CONFIG_BAUDRATE		115200
+ 
+ #define XMK_STR(x)	#x
============================================================
--- packages/u-boot/u-boot-1.3.2/mpc8313e-rdb-mtdparts.patch	20746984bb1c6ef2789381da1283a8e06a74b0ac
+++ packages/u-boot/u-boot-1.3.2/mpc8313e-rdb-mtdparts.patch	20746984bb1c6ef2789381da1283a8e06a74b0ac
@@ -0,0 +1,35 @@
+diff -urN u-boot-1.3.2.orig/include/configs/MPC8313ERDB.h u-boot-1.3.2/include/configs/MPC8313ERDB.h
+--- u-boot-1.3.2.orig/include/configs/MPC8313ERDB.h	2008-03-09 16:20:02.000000000 +0100
++++ u-boot-1.3.2/include/configs/MPC8313ERDB.h	2008-04-21 19:20:51.000000000 +0200
+@@ -179,7 +179,7 @@
+ #define CFG_INIT_SP_OFFSET	CFG_GBL_DATA_OFFSET
+ 
+ /* CFG_MONITOR_LEN must be a multiple of CFG_ENV_SECT_SIZE */
+-#define CFG_MONITOR_LEN		(256 * 1024)	/* Reserve 256 kB for Mon */
++#define CFG_MONITOR_LEN		(384 * 1024)	/* Reserve 384 kB for Mon */
+ #define CFG_MALLOC_LEN		(512 * 1024)	/* Reserved for malloc */
+ 
+ /*
+@@ -354,6 +354,7 @@
+ #define CONFIG_CMD_PING
+ #define CONFIG_CMD_DHCP
+ #define CONFIG_CMD_I2C
++#define CONFIG_CMD_JFFS2
+ #define CONFIG_CMD_MII
+ #define CONFIG_CMD_DATE
+ #define CONFIG_CMD_PCI
+@@ -365,6 +366,14 @@
+ 
+ #define CONFIG_CMDLINE_EDITING 1
+ 
++/*
++ * JFFS2 partitions (mtdparts command line support)
++ */
++#define CONFIG_JFFS2_CMDLINE
++#define CONFIG_JFFS2_NAND
++#define MTDIDS_DEFAULT		"nor0=physmap-flash.0,nand0=nand0"
++#define MTDPARTS_DEFAULT	"mtdparts=physmap-flash.0:384k(uboot),64k(env)"
++
+ 
+ /*
+  * Miscellaneous configurable options
============================================================
--- packages/u-boot/u-boot-1.3.2/mpc8313e-rdb-nand.patch	64eee6cc9ba75710f130f074b0632df44049ca14
+++ packages/u-boot/u-boot-1.3.2/mpc8313e-rdb-nand.patch	64eee6cc9ba75710f130f074b0632df44049ca14
@@ -0,0 +1,895 @@
+diff -urN u-boot-1.3.1.orig/board/freescale/mpc8313erdb/Makefile u-boot-1.3.1/board/freescale/mpc8313erdb/Makefile
+--- u-boot-1.3.1.orig/board/freescale/mpc8313erdb/Makefile	2007-12-06 10:21:19.000000000 +0100
++++ u-boot-1.3.1/board/freescale/mpc8313erdb/Makefile	2008-01-31 17:35:43.000000000 +0100
+@@ -25,7 +25,7 @@
+ 
+ LIB	= $(obj)lib$(BOARD).a
+ 
+-COBJS	:= $(BOARD).o sdram.o
++COBJS	:= $(BOARD).o sdram.o nand.o
+ 
+ SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
+ OBJS	:= $(addprefix $(obj),$(COBJS))
+diff -urN u-boot-1.3.1.orig/board/freescale/mpc8313erdb/nand.c u-boot-1.3.1/board/freescale/mpc8313erdb/nand.c
+--- u-boot-1.3.1.orig/board/freescale/mpc8313erdb/nand.c	1970-01-01 01:00:00.000000000 +0100
++++ u-boot-1.3.1/board/freescale/mpc8313erdb/nand.c	2008-01-31 17:35:26.000000000 +0100
+@@ -0,0 +1,868 @@
++/*
++ * Copyright (C) Freescale Semiconductor, Inc. 2006. 
++ * 
++ * Initialized by Nick.Spence at freescale.com
++ *                Wilson.Lo at freescale.com
++ *
++ * See file CREDITS for list of people who contributed to this
++ * project.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License as
++ * published by the Free Software Foundation; either version 2 of
++ * the License, or (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
++ * MA 02111-1307 USA
++ */
++
++#include <common.h>
++
++#if defined(CONFIG_CMD_NAND)
++#if defined(CFG_NAND_LEGACY)
++ #error "U-Boot legacy NAND commands not supported."
++#else
++
++#include <malloc.h>
++#include <asm/errno.h>
++#include <nand.h>
++
++#undef CFG_FCM_DEBUG
++#define CFG_FCM_DEBUG_LVL 1
++#ifdef CFG_FCM_DEBUG
++#define FCM_DEBUG(n, args...)				\
++	do {						\
++		if (n <= (CFG_FCM_DEBUG_LVL + 0))	\
++			printf(args);			\
++	} while(0)
++#else /* CONFIG_FCM_DEBUG */
++#define FCM_DEBUG(n, args...) do { } while(0)
++#endif
++
++#define MIN(x, y)		((x < y) ? x : y)
++
++#define ERR_BYTE 0xFF	/* Value returned for read bytes when read failed */
++
++#define FCM_TIMEOUT_USECS 100000 /* Maximum number of uSecs to wait for FCM */
++
++/* Private structure holding NAND Flash device specific information */
++struct fcm_nand {
++	int		bank;       /* Chip select bank number             */
++	unsigned int	base;       /* Chip select base address            */
++	int		pgs;        /* NAND page size                      */
++	int		oobbuf;     /* Pointer to OOB block                */
++	unsigned int	page;       /* Last page written to / read from    */
++	unsigned int	fmr;        /* FCM Flash Mode Register value       */
++	unsigned int	mdr;        /* UPM/FCM Data Register value         */
++	unsigned int	use_mdr;    /* Non zero if the MDR is to be set    */
++	u_char	       *addr;       /* Address of assigned FCM buffer      */
++	unsigned int	read_bytes; /* Number of bytes read during command */
++	unsigned int	index;      /* Pointer to next byte to 'read'      */
++	unsigned int	req_bytes;  /* Number of bytes read if command ok  */
++	unsigned int	req_index;  /* New read index if command ok        */
++	unsigned int	status;     /* status read from LTESR after last op*/
++};
++
++
++/* These map to the positions used by the FCM hardware ECC generator */
++
++/* Small Page FLASH with FMR[ECCM] = 0 */
++static struct nand_oobinfo fcm_oob_sp_eccm0 = { /* TODO */
++	.useecc = MTD_NANDECC_AUTOPL_USR, /* MTD_NANDECC_PLACEONLY, */
++	.eccbytes = 3,
++	.eccpos = {6, 7, 8},
++	.oobfree = { {0, 5}, {9, 7} }
++};
++
++/* Small Page FLASH with FMR[ECCM] = 1 */
++static struct nand_oobinfo fcm_oob_sp_eccm1 = { /* TODO */
++	.useecc = MTD_NANDECC_AUTOPL_USR, /* MTD_NANDECC_PLACEONLY, */
++	.eccbytes = 3,
++	.eccpos = {8, 9, 10},
++	.oobfree = { {0, 5}, {6, 2}, {11, 5} }
++};
++
++/* Large Page FLASH with FMR[ECCM] = 0 */
++static struct nand_oobinfo fcm_oob_lp_eccm0 = {
++	.useecc = MTD_NANDECC_AUTOPL_USR, /* MTD_NANDECC_PLACEONLY, */
++	.eccbytes = 12,
++	.eccpos = {6, 7, 8, 22, 23, 24, 38, 39, 40, 54, 55, 56},
++	.oobfree = { {1, 5}, {9, 13}, {25, 13}, {41, 13}, {57, 7} }
++};
++
++/* Large Page FLASH with FMR[ECCM] = 1 */
++static struct nand_oobinfo fcm_oob_lp_eccm1 = {
++	.useecc = MTD_NANDECC_AUTOPL_USR, /* MTD_NANDECC_PLACEONLY, */
++	.eccbytes = 12,
++	.eccpos = {8, 9, 10, 24, 25, 26, 40, 41, 42, 56, 57, 58},
++	.oobfree = { {1, 7}, {11, 13}, {27, 13}, {43, 13}, {59, 5} }
++};
++
++/*
++ * execute FCM command and wait for it to complete
++ */
++static int fcm_run_command(struct mtd_info *mtd)
++{
++	volatile immap_t *im = (immap_t *) CFG_IMMR;
++	volatile lbus83xx_t *lbc= &im->lbus;
++	register struct nand_chip *this = mtd->priv;
++	struct fcm_nand *fcm = this->priv;
++	long long end_tick;
++
++	/* Setup the FMR[OP] to execute without write protection */
++	lbc->fmr = fcm->fmr | 3;
++	if (fcm->use_mdr)
++		lbc->mdr = fcm->mdr;
++
++	FCM_DEBUG(5,"fcm_run_command: fmr= %08X fir= %08X fcr= %08X\n",
++		lbc->fmr, lbc->fir, lbc->fcr);
++	FCM_DEBUG(5,"fcm_run_command: fbar=%08X fpar=%08X fbcr=%08X bank=%d\n",
++		lbc->fbar, lbc->fpar, lbc->fbcr, fcm->bank);
++
++	/* clear event registers */
++	lbc->lteatr = 0;
++	lbc->ltesr |= (LTESR_FCT | LTESR_PAR | LTESR_CC);
++
++	/* execute special operation */
++	lbc->lsor = fcm->bank;
++
++	/* wait for FCM complete flag or timeout */
++	fcm->status = 0;
++	end_tick = usec2ticks(FCM_TIMEOUT_USECS) + get_ticks();
++
++	while (end_tick > get_ticks()) {
++		if (lbc->ltesr & LTESR_CC) {
++			fcm->status = lbc->ltesr &
++					(LTESR_FCT | LTESR_PAR | LTESR_CC);
++			break;
++		}
++	}
++
++	/* store mdr value in case it was needed */
++	if (fcm->use_mdr)
++		fcm->mdr = lbc->mdr;
++
++	fcm->use_mdr = 0;
++
++	FCM_DEBUG(5,"fcm_run_command: stat=%08X mdr= %08X fmr= %08X\n",
++		fcm->status, fcm->mdr, lbc->fmr);
++
++	/* if the operation completed ok then set the read buffer pointers */
++	if (fcm->status == LTESR_CC) {
++		fcm->read_bytes = fcm->req_bytes;
++		fcm->index      = fcm->req_index;
++		return 0;
++	}
++
++	return -1;
++}
++
++/*
++ * Set up the FCM hardware block and page address fields, and the fcm
++ * structure addr field to point to the correct FCM buffer in memory
++ */
++static void set_addr(struct mtd_info *mtd, int column, int page_addr, int oob)
++{
++	volatile immap_t *im = (immap_t *) CFG_IMMR;
++	volatile lbus83xx_t *lbc= &im->lbus;
++	register struct nand_chip *this = mtd->priv;
++	struct fcm_nand *fcm = this->priv;
++	int buf_num;
++
++	fcm->page = page_addr;
++
++	lbc->fbar = page_addr >> (this->phys_erase_shift - this->page_shift);
++	if (fcm->pgs) {
++		lbc->fpar = ((page_addr << FPAR_LP_PI_SHIFT) & FPAR_LP_PI) |
++			    ( oob ? FPAR_LP_MS : 0) |
++			      column;
++		buf_num = (page_addr & 1) << 2;
++	} else {
++		lbc->fpar = ((page_addr << FPAR_SP_PI_SHIFT) & FPAR_SP_PI) |
++			    ( oob ? FPAR_SP_MS : 0) |
++			      column;
++		buf_num = page_addr & 7;
++	}
++	fcm->addr = (unsigned char*)(fcm->base + (buf_num * 1024));
++
++	/* for OOB data point to the second half of the buffer */
++	if (oob) {
++		fcm->addr += (fcm->pgs ? 2048 : 512);
++	}
++}
++
++/* not required for FCM */
++static void fcm_hwcontrol(struct mtd_info *mtdinfo, int cmd)
++{
++	return;
++}
++
++
++/*
++ * FCM does not support 16 bit data busses
++ */
++static u16 fcm_read_word(struct mtd_info *mtd)
++{
++	printf("fcm_read_word: UNIMPLEMENTED.\n");
++	return 0;
++}
++static void fcm_write_word(struct mtd_info *mtd, u16 word)
++{
++	printf("fcm_write_word: UNIMPLEMENTED.\n");
++}
++
++/*
++ * Write buf to the FCM Controller Data Buffer
++ */
++static void fcm_write_buf(struct mtd_info *mtd, const u_char *buf, int len)
++{
++	register struct nand_chip *this = mtd->priv;
++	struct fcm_nand *fcm = this->priv;
++
++	FCM_DEBUG(3,"fcm_write_buf: writing %d bytes starting with 0x%x"
++		    " at %d.\n", len, *((unsigned long*) buf), fcm->index);
++
++	/* If armed catch the address of the OOB buffer so that it can be */
++	/* updated with the real signature after the program comletes */
++	if (!fcm->oobbuf)
++		fcm->oobbuf = (int) buf;
++
++	/* copy the data into the FCM hardware buffer and update the index */
++	memcpy(&(fcm->addr[fcm->index]), buf, len);
++	fcm->index += len;
++	return;
++}
++
++
++/*
++ * FCM does not support individual writes. Instead these are either commands
++ * or data being written, both of which are handled through the cmdfunc
++ * handler.
++ */
++static void fcm_write_byte(struct mtd_info *mtd, u_char byte)
++{
++	printf("fcm_write_byte: UNIMPLEMENTED.\n");
++}
++
++/*
++ * read a byte from either the FCM hardware buffer if it has any data left
++ * otherwise issue a command to read a single byte.
++ */
++static u_char fcm_read_byte(struct mtd_info *mtd)
++{
++	volatile immap_t *im = (immap_t *) CFG_IMMR;
++	volatile lbus83xx_t *lbc= &im->lbus;
++	register struct nand_chip *this = mtd->priv;
++	struct fcm_nand *fcm = this->priv;
++	unsigned char byte;
++
++	/* If there are still bytes in the FCM then use the next byte */
++	if(fcm->index < fcm->read_bytes) {
++		byte = fcm->addr[(fcm->index)++];
++		FCM_DEBUG(4,"fcm_read_byte: byte %u (%02X): %d of %d.\n",
++			  byte, byte, fcm->index-1, fcm->read_bytes);
++	} else {
++		/* otherwise issue a command to read 1 byte */
++		lbc->fir = (FIR_OP_RSW << FIR_OP0_SHIFT);
++		fcm->use_mdr = 1;
++		fcm->read_bytes = 0;
++		fcm->index = 0;
++		fcm->req_bytes = 0;
++		fcm->req_index = 0;
++		byte = fcm_run_command(mtd) ? ERR_BYTE : fcm->mdr & 0xff;
++		FCM_DEBUG(4,"fcm_read_byte: byte %u (%02X) from bus.\n",
++			  byte, byte);
++	}
++
++	return byte;
++}
++
++
++/*
++ * Read from the FCM Controller Data Buffer
++ */
++static void fcm_read_buf(struct mtd_info *mtd, u_char* buf, int len)
++{
++	volatile immap_t *im = (immap_t *) CFG_IMMR;
++	volatile lbus83xx_t *lbc= &im->lbus;
++	register struct nand_chip *this = mtd->priv;
++	struct fcm_nand *fcm = this->priv;
++	int i;
++	int rest;
++
++	FCM_DEBUG(3,"fcm_read_buf: reading %d bytes.\n", len);
++
++	/* If last read failed then return error bytes */
++	if (fcm->status != LTESR_CC) {
++		/* just keep copying bytes so that the oob works */
++		memcpy(buf, &(fcm->addr[(fcm->index)]), len);
++		fcm->index += len;
++	}
++	else
++	{
++		/* see how much is still in the FCM buffer */
++		i = min(len, (fcm->read_bytes - fcm->index));
++		rest = i - len;
++		len = i;
++
++		memcpy(buf, &(fcm->addr[(fcm->index)]), len);
++		fcm->index += len;
++
++		/* If more data is needed then issue another block read */
++		if (rest) {
++			FCM_DEBUG(3,"fcm_read_buf: getting %d more bytes.\n",
++				    rest);
++			buf += len;
++			lbc->fir = (FIR_OP_RBW << FIR_OP0_SHIFT);
++			set_addr(mtd, 0, 0, 0);
++			lbc->fbcr = rest;
++			fcm->req_bytes = lbc->fbcr;
++			fcm->req_index = 0;
++			fcm->use_mdr = 0;
++			if (!fcm_run_command(mtd))
++				fcm_read_buf(mtd, buf, rest);
++			else
++				memcpy(buf, fcm->addr, rest);
++		}
++	}
++	return;
++}
++
++
++/*
++ * Verify buffer against the FCM Controller Data Buffer
++ */
++static int fcm_verify_buf(struct mtd_info *mtd, const u_char *buf, int len)
++{
++	volatile immap_t *im = (immap_t *) CFG_IMMR;
++	volatile lbus83xx_t *lbc= &im->lbus;
++	register struct nand_chip *this = mtd->priv;
++	struct fcm_nand *fcm = this->priv;
++	int i;
++	int rest;
++
++	FCM_DEBUG(3,"fcm_verify_buf: checking %d bytes starting with 0x%02x.\n",
++		len, *((unsigned long*) buf));
++	/* If last read failed then return error bytes */
++	if (fcm->status != LTESR_CC) {
++		return EFAULT;
++	}
++
++	/* see how much is still in the FCM buffer */
++	i = min(len, (fcm->read_bytes - fcm->index));
++	rest = i - len;
++	len = i;
++
++	if (memcmp(buf,	&(fcm->addr[(fcm->index)]), len)) {
++		return EFAULT;
++	}
++
++	fcm->index += len;
++	if (rest) {
++		FCM_DEBUG(3,"fcm_verify_buf: getting %d more bytes.\n", rest);
++		buf += len;
++		lbc->fir = (FIR_OP_RBW << FIR_OP0_SHIFT);
++		set_addr(mtd, 0, 0, 0);
++		lbc->fbcr = rest;
++		fcm->req_bytes = lbc->fbcr;
++		fcm->req_index = 0;
++		fcm->use_mdr = 0;
++		if (fcm_run_command(mtd))
++			return EFAULT;
++		return fcm_verify_buf(mtd, buf, rest);
++
++	}
++	return 0;
++}
++
++/* this function is called after Program and Erase Operations to
++ * check for success or failure */
++static int fcm_wait(struct mtd_info *mtd, struct nand_chip *this, int state)
++{
++	volatile immap_t *im = (immap_t *) CFG_IMMR;
++	volatile lbus83xx_t *lbc= &im->lbus;
++	struct fcm_nand *fcm = this->priv;
++
++	if (fcm->status != LTESR_CC) {
++		return(0x1); /* Status Read error */
++	}
++
++	/* Use READ_STATUS command, but wait for the device to be ready */
++	fcm->use_mdr = 0;
++	fcm->req_index = 0;
++	fcm->read_bytes = 0;
++	fcm->index = 0;
++	fcm->oobbuf = -1;
++	lbc->fir = (FIR_OP_CW0 << FIR_OP0_SHIFT) |
++		   (FIR_OP_RBW << FIR_OP1_SHIFT);
++	lbc->fcr = (NAND_CMD_STATUS << FCR_CMD0_SHIFT);
++	set_addr(mtd, 0, 0, 0);
++	lbc->fbcr = 1;
++	fcm->req_bytes = lbc->fbcr;
++	fcm_run_command(mtd);
++	if (fcm->status != LTESR_CC) {
++		return(0x1); /* Status Read error */
++	}
++	return this->read_byte(mtd);
++}
++
++
++/* cmdfunc send commands to the FCM */
++static void fcm_cmdfunc(struct mtd_info *mtd, unsigned command,
++			int column, int page_addr)
++{
++	volatile immap_t *im = (immap_t *) CFG_IMMR;
++	volatile lbus83xx_t *lbc= &im->lbus;
++	register struct nand_chip *this = mtd->priv;
++	struct fcm_nand *fcm = this->priv;
++
++	fcm->use_mdr = 0;
++	fcm->req_index = 0;
++
++	/* clear the read buffer */
++	fcm->read_bytes = 0;
++	if (command != NAND_CMD_PAGEPROG) {
++		fcm->index = 0;
++		fcm->oobbuf = -1;
++	}
++
++	switch (command) {
++	/* READ0 and READ1 read the entire buffer to use hardware ECC */
++	case NAND_CMD_READ1:
++		FCM_DEBUG(2,"fcm_cmdfunc: NAND_CMD_READ1, page_addr:"
++			    " 0x%x, column: 0x%x.\n", page_addr, column);
++		fcm->req_index = column + 256;
++		goto read0;
++	case NAND_CMD_READ0:
++		FCM_DEBUG(2,"fcm_cmdfunc: NAND_CMD_READ0, page_addr:"
++			    " 0x%x, column: 0x%x.\n", page_addr, column);
++		fcm->req_index = column;
++read0:
++		if (fcm->pgs) {
++			lbc->fir = (FIR_OP_CW0 << FIR_OP0_SHIFT) |
++				   (FIR_OP_CA  << FIR_OP1_SHIFT) |
++				   (FIR_OP_PA  << FIR_OP2_SHIFT) |
++				   (FIR_OP_CW1 << FIR_OP3_SHIFT) |
++				   (FIR_OP_RBW << FIR_OP4_SHIFT);
++		} else {
++			lbc->fir = (FIR_OP_CW0 << FIR_OP0_SHIFT) |
++				   (FIR_OP_CA  << FIR_OP1_SHIFT) |
++				   (FIR_OP_PA  << FIR_OP2_SHIFT) |
++				   (FIR_OP_RBW << FIR_OP3_SHIFT);
++		}
++		lbc->fcr = (NAND_CMD_READ0     << FCR_CMD0_SHIFT) |
++			   (NAND_CMD_READSTART << FCR_CMD1_SHIFT);
++		lbc->fbcr = 0; /* read entire page to enable ECC */
++		set_addr(mtd, 0, page_addr, 0);
++		fcm->req_bytes = mtd->oobblock + mtd->oobsize;
++		goto write_cmd2;
++	/* READOOB read only the OOB becasue no ECC is performed */
++	case NAND_CMD_READOOB:
++		FCM_DEBUG(2,"fcm_cmdfunc: NAND_CMD_READOOB, page_addr:"
++			    " 0x%x, column: 0x%x.\n", page_addr, column);
++		if (fcm->pgs) {
++			lbc->fir = (FIR_OP_CW0 << FIR_OP0_SHIFT) |
++				   (FIR_OP_CA  << FIR_OP1_SHIFT) |
++				   (FIR_OP_PA  << FIR_OP2_SHIFT) |
++				   (FIR_OP_CW1 << FIR_OP3_SHIFT) |
++				   (FIR_OP_RBW << FIR_OP4_SHIFT);
++			lbc->fcr = (NAND_CMD_READ0     << FCR_CMD0_SHIFT) |
++				   (NAND_CMD_READSTART << FCR_CMD1_SHIFT);
++		} else {
++			lbc->fir = (FIR_OP_CW0 << FIR_OP0_SHIFT) |
++				   (FIR_OP_CA  << FIR_OP1_SHIFT) |
++				   (FIR_OP_PA  << FIR_OP2_SHIFT) |
++				   (FIR_OP_RBW << FIR_OP3_SHIFT);
++			lbc->fcr = (NAND_CMD_READOOB << FCR_CMD0_SHIFT);
++		}
++		lbc->fbcr = mtd->oobsize - column;
++		set_addr(mtd, column, page_addr, 1);
++		goto write_cmd1;
++	/* READID must read all 5 possible bytes while CEB is active */
++	case NAND_CMD_READID:
++		FCM_DEBUG(2,"fcm_cmdfunc: NAND_CMD_READID.\n");
++		lbc->fir = (FIR_OP_CW0 << FIR_OP0_SHIFT) |
++			   (FIR_OP_UA  << FIR_OP1_SHIFT) |
++			   (FIR_OP_RBW << FIR_OP2_SHIFT);
++		lbc->fcr = (NAND_CMD_READID << FCR_CMD0_SHIFT);
++		lbc->fbcr = 5; /* 5 bytes for manuf, device and exts */
++		fcm->use_mdr = 1;
++		fcm->mdr = 0;
++		goto write_cmd0;
++	/* ERASE1 stores the block and page address */
++	case NAND_CMD_ERASE1:
++		FCM_DEBUG(2,"fcm_cmdfunc: NAND_CMD_ERASE1, page_addr:"
++			    " 0x%x.\n", page_addr);
++		set_addr(mtd, 0, page_addr, 0);
++		goto end;
++	/* ERASE2 uses the block and page address from ERASE1 */
++	case NAND_CMD_ERASE2:
++		FCM_DEBUG(2,"fcm_cmdfunc: NAND_CMD_ERASE2.\n");
++		lbc->fir = (FIR_OP_CW0 << FIR_OP0_SHIFT) |
++			   (FIR_OP_PA  << FIR_OP1_SHIFT) |
++			   (FIR_OP_CM1 << FIR_OP2_SHIFT);
++		lbc->fcr = (NAND_CMD_ERASE1 << FCR_CMD0_SHIFT) |
++			   (NAND_CMD_ERASE2 << FCR_CMD1_SHIFT);
++		lbc->fbcr = 0;
++		goto write_cmd1;
++	/* SEQIN sets up the addr buffer and all registers except the length */
++	case NAND_CMD_SEQIN:
++		FCM_DEBUG(2,"fcm_cmdfunc: NAND_CMD_SEQIN/PAGE_PROG, page_addr:"
++			    " 0x%x, column: 0x%x.\n", page_addr, column);
++		if (column == 0) {
++			lbc->fbcr = 0; /* write entire page to enable ECC */
++		} else {
++			lbc->fbcr = 1; /* mark as partial page so no HW ECC */
++		}
++		if (fcm->pgs) {
++			/* always use READ0 for large page devices */
++			lbc->fir = (FIR_OP_CW0 << FIR_OP0_SHIFT) |
++				   (FIR_OP_CA  << FIR_OP1_SHIFT) |
++				   (FIR_OP_PA  << FIR_OP2_SHIFT) |
++				   (FIR_OP_WB  << FIR_OP3_SHIFT) |
++				   (FIR_OP_CW1 << FIR_OP4_SHIFT);
++			lbc->fcr = (NAND_CMD_SEQIN << FCR_CMD0_SHIFT) |
++				   (NAND_CMD_PAGEPROG << FCR_CMD1_SHIFT);
++			set_addr(mtd, column, page_addr, 0);
++		} else {
++			lbc->fir = (FIR_OP_CW0 << FIR_OP0_SHIFT) |
++				   (FIR_OP_CM2 << FIR_OP1_SHIFT) |
++				   (FIR_OP_CA  << FIR_OP2_SHIFT) |
++				   (FIR_OP_PA  << FIR_OP3_SHIFT) |
++				   (FIR_OP_WB  << FIR_OP4_SHIFT) |
++				   (FIR_OP_CW1 << FIR_OP5_SHIFT);
++			if (column >= mtd->oobblock) {
++				/* OOB area --> READOOB */
++				column -= mtd->oobblock;
++				lbc->fcr = (NAND_CMD_READOOB << FCR_CMD0_SHIFT)
++					 | (NAND_CMD_PAGEPROG<< FCR_CMD1_SHIFT)
++					 | (NAND_CMD_SEQIN << FCR_CMD2_SHIFT);
++				set_addr(mtd, column, page_addr, 1);
++			} else if (column < 256) {
++				/* First 256 bytes --> READ0 */
++				lbc->fcr = (NAND_CMD_READ0 << FCR_CMD0_SHIFT)
++					 | (NAND_CMD_PAGEPROG<< FCR_CMD1_SHIFT)
++					 | (NAND_CMD_SEQIN << FCR_CMD2_SHIFT);
++				set_addr(mtd, column, page_addr, 0);
++			} else {
++				/* Second 256 bytes --> READ1 */
++				column -= 256;
++				lbc->fcr = (NAND_CMD_READ1 << FCR_CMD0_SHIFT)
++					 | (NAND_CMD_PAGEPROG<< FCR_CMD1_SHIFT)
++					 | (NAND_CMD_SEQIN << FCR_CMD2_SHIFT);
++				set_addr(mtd, column, page_addr, 0);
++			}
++		}
++		goto end;
++	/* PAGEPROG reuses all of the setup from SEQIN and adds the length */
++	case NAND_CMD_PAGEPROG:
++		FCM_DEBUG(2,"fcm_cmdfunc: NAND_CMD_PAGEPROG"
++			    " writing %d bytes.\n",fcm->index);
++		/* if the write did not start at 0 or is not a full page */
++		/* then set the exact length, otherwise use a full page  */
++		/* write so the HW generates the ECC. */
++		if (lbc->fbcr ||
++		   (fcm->index != (mtd->oobblock + mtd->oobsize)))
++			lbc->fbcr = fcm->index;
++		fcm->req_bytes = 0;
++		goto write_cmd2;
++	/* CMD_STATUS must read the status byte while CEB is active */
++	/* Note - it does not wait for the ready line */
++	case NAND_CMD_STATUS:
++		FCM_DEBUG(2,"fcm_cmdfunc: NAND_CMD_STATUS.\n");
++		lbc->fir = (FIR_OP_CM0 << FIR_OP0_SHIFT) |
++			   (FIR_OP_RBW << FIR_OP1_SHIFT);
++		lbc->fcr = (NAND_CMD_STATUS << FCR_CMD0_SHIFT);
++		lbc->fbcr = 1;
++		goto write_cmd0;
++	/* RESET without waiting for the ready line */
++	case NAND_CMD_RESET:
++		FCM_DEBUG(2,"fcm_cmdfunc: NAND_CMD_RESET.\n");
++		lbc->fir = (FIR_OP_CM0 << FIR_OP0_SHIFT);
++		lbc->fcr = (NAND_CMD_RESET << FCR_CMD0_SHIFT);
++		lbc->fbcr = 0;
++		goto write_cmd0;
++	default:
++		printk("fcm_cmdfunc: error, unsupported command.\n");
++		goto end;
++	}
++
++	/* Short cuts fall through to save code */
++ write_cmd0:
++	set_addr(mtd, 0, 0, 0);
++ write_cmd1:
++	fcm->req_bytes = lbc->fbcr;
++ write_cmd2:
++	fcm_run_command(mtd);
++
++#ifdef CONFIG_MTD_NAND_VERIFY_WRITE
++	/* if we wrote a page then read back the oob to get the ECC */
++	if ((command == NAND_CMD_PAGEPROG) &&
++	    (this->eccmode > NAND_ECC_SOFT) &&
++	    (lbc->fbcr == 0) &&
++	    (fcm->oobbuf != 0) &&
++	    (fcm->oobbuf != -1)) {
++		int i;
++		uint *oob_config;
++		unsigned char *oob_buf;
++
++		i = fcm->page;
++		oob_buf = (unsigned char*) fcm->oobbuf;
++		oob_config = this->autooob->eccpos;
++
++		/* wait for the write to complete and check it passed */
++		if (!(this->waitfunc(mtd, this, FL_WRITING) & 0x01)) {
++			/* read back the OOB */
++			fcm_cmdfunc(mtd, NAND_CMD_READOOB, 0, i);
++			/* if it succeeded then copy the ECC bytes */
++			if (fcm->status == LTESR_CC) {
++				for (i = 0; i < this->eccbytes; i++) {
++					oob_buf[oob_config[i]] =
++						fcm->addr[oob_config[i]];
++				}
++			}
++		}
++	}
++#endif
++
++ end:
++	return;
++}
++
++/*
++ * fcm_enable_hwecc - start ECC generation
++ */
++static void fcm_enable_hwecc(struct mtd_info *mtd, int mode)
++{
++	return;
++}
++
++/*
++ * fcm_calculate_ecc - Calculate the ECC bytes
++ * This is done by hardware during the write process, so we use this
++ * to arm the oob buf capture on the next write_buf() call. The ECC bytes
++ * only need to be captured if CONFIG_MTD_NAND_VERIFY_WRITE is defined which
++ * reads back the pages and checks they match the data and oob buffers.
++ */
++static int fcm_calculate_ecc(struct mtd_info *mtd, const u_char *dat, u_char *ecc_code)
++{
++	register struct nand_chip *this = mtd->priv;
++	struct fcm_nand *fcm = this->priv;
++
++#ifdef CONFIG_MTD_NAND_VERIFY_WRITE
++	/* arm capture of oob buf ptr on next write_buf */
++	fcm->oobbuf = 0;
++#endif
++	return 0;
++}
++
++/*
++ * fcm_correct_data - Detect and correct bit error(s)
++ * The detection and correction is done automatically by the hardware,
++ * if the complete page was read. If the status code is okay then there
++ * was no error, otherwise we return an error code indicating an uncorrectable
++ * error.
++ */
++static int fcm_correct_data(struct mtd_info *mtd, u_char *dat, u_char *read_ecc, u_char *calc_ecc)
++{
++	register struct nand_chip *this = mtd->priv;
++	struct fcm_nand *fcm = this->priv;
++
++	/* No errors */
++	if (fcm->status == LTESR_CC)
++		return 0;
++
++	return -1; /* uncorrectable error */
++}
++
++
++
++/*
++ * Dummy scan_bbt to complete setup of the FMR based on NAND size
++ */
++static int fcm_scan_bbt (struct mtd_info *mtd)
++{
++	volatile immap_t *im = (immap_t *) CFG_IMMR;
++	volatile lbus83xx_t *lbc= &im->lbus;
++	register struct nand_chip *this = mtd->priv;
++	struct fcm_nand *fcm = this->priv;
++	unsigned int i;
++	unsigned int al;
++
++	if (!fcm) {
++		printk (KERN_ERR "fcm_scan_bbt():" \
++			" Failed to allocate chip specific data structure\n");
++		return -1;
++	}
++
++	/* calculate FMR Address Length field */
++	al = 0;
++	for (i = this->pagemask >> 16; i ; i >>= 8) {
++		al++;
++	}
++
++	/* add to ECCM mode set in fcm_init */
++	fcm->fmr |= 12 << FMR_CWTO_SHIFT |  /* Timeout > 12 mSecs */
++		    al << FMR_AL_SHIFT;
++
++	FCM_DEBUG(1,"fcm_init: nand->options  =   %08X\n", this->options);
++	FCM_DEBUG(1,"fcm_init: nand->numchips = %10d\n", this->numchips);
++	FCM_DEBUG(1,"fcm_init: nand->chipsize = %10d\n", this->chipsize);
++	FCM_DEBUG(1,"fcm_init: nand->pagemask = %10X\n", this->pagemask);
++	FCM_DEBUG(1,"fcm_init: nand->eccmode  = %10d\n", this->eccmode );
++	FCM_DEBUG(1,"fcm_init: nand->eccsize  = %10d\n", this->eccsize );
++	FCM_DEBUG(1,"fcm_init: nand->eccbytes = %10d\n", this->eccbytes);
++	FCM_DEBUG(1,"fcm_init: nand->eccsteps = %10d\n", this->eccsteps);
++	FCM_DEBUG(1,"fcm_init: nand->chip_delay = %8d\n", this->chip_delay);
++	FCM_DEBUG(1,"fcm_init: nand->badblockpos = %7d\n", this->badblockpos);
++	FCM_DEBUG(1,"fcm_init: nand->chip_shift = %8d\n", this->chip_shift);
++	FCM_DEBUG(1,"fcm_init: nand->page_shift = %8d\n", this->page_shift);
++	FCM_DEBUG(1,"fcm_init: nand->phys_erase_shift = %2d\n",
++						      this->phys_erase_shift);
++	FCM_DEBUG(1,"fcm_init: mtd->flags     =   %08X\n", mtd->flags);
++	FCM_DEBUG(1,"fcm_init: mtd->size      = %10d\n", mtd->size);
++	FCM_DEBUG(1,"fcm_init: mtd->erasesize = %10d\n", mtd->erasesize);
++	FCM_DEBUG(1,"fcm_init: mtd->oobblock  = %10d\n", mtd->oobblock);
++	FCM_DEBUG(1,"fcm_init: mtd->oobsize   = %10d\n", mtd->oobsize);
++	FCM_DEBUG(1,"fcm_init: mtd->oobavail  = %10d\n", mtd->oobavail);
++	FCM_DEBUG(1,"fcm_init: mtd->ecctype   = %10d\n", mtd->ecctype);
++	FCM_DEBUG(1,"fcm_init: mtd->eccsize   = %10d\n", mtd->eccsize);
++
++	/* adjust Option Register and ECC to match Flash page size */
++	if (mtd->oobblock == 512)
++		lbc->bank[fcm->bank].or &= ~(OR_FCM_PGS);
++	else if (mtd->oobblock == 2048) {
++		lbc->bank[fcm->bank].or |= OR_FCM_PGS;
++		/* adjust ecc setup if needed */
++		if ( (lbc->bank[fcm->bank].br & BR_DECC) == BR_DECC_CHK_GEN) {
++			mtd->eccsize = 2048;
++			mtd->oobavail -= 9;
++			this->eccmode = NAND_ECC_HW12_2048;
++			this->eccsize = 2048;
++			this->eccbytes += 9;
++			this->eccsteps = 1;
++			this->autooob = (fcm->fmr & FMR_ECCM) ?
++					&fcm_oob_lp_eccm1 : &fcm_oob_lp_eccm0;
++			memcpy(&mtd->oobinfo, this->autooob,
++					sizeof(mtd->oobinfo));
++		}
++	}
++	else {
++		printf("fcm_init: page size %d is not supported\n",
++			mtd->oobblock);
++		return -1;
++	}
++	fcm->pgs = (lbc->bank[fcm->bank].or>>OR_FCM_PGS_SHIFT) & 1;
++
++	if (al > 2) {
++		printf("fcm_init: %d address bytes is not supported\n", al+2);
++		return -1;
++	}
++
++	/* restore default scan_bbt function and call it */
++	this->scan_bbt = nand_default_bbt;
++	return nand_default_bbt(mtd);
++}
++
++/*
++ * Board-specific NAND initialization. The following members of the
++ * argument are board-specific (per include/linux/mtd/nand_new.h):
++ * - IO_ADDR_R?: address to read the 8 I/O lines of the flash device
++ * - IO_ADDR_W?: address to write the 8 I/O lines of the flash device
++ * - hwcontrol: hardwarespecific function for accesing control-lines
++ * - dev_ready: hardwarespecific function for accesing device ready/busy line
++ * - enable_hwecc: function to enable (reset) hardware ecc generator. Must
++ *   only be provided if a hardware ECC is available
++ * - eccmode: mode of ecc, see defines
++ * - chip_delay: chip dependent delay for transfering data from array to
++ *   read regs (tR)
++ * - options: various chip options. They can partly be set to inform
++ *   nand_scan about special functionality. See the defines for further
++ *   explanation
++ * Members with a "?" were not set in the merged testing-NAND branch,
++ * so they are not set here either.
++ */
++int board_nand_init(struct nand_chip *nand)
++{
++	volatile immap_t *im = (immap_t *) CFG_IMMR;
++	volatile lbus83xx_t *lbc= &im->lbus;
++	struct fcm_nand *fcm;
++	unsigned int bank;
++
++	/* Enable FCM detection of timeouts, ECC errors and completion */
++	lbc->ltedr &= ~(LTESR_FCT | LTESR_PAR | LTESR_CC);
++
++	fcm = kmalloc (sizeof(struct fcm_nand), GFP_KERNEL);
++	if (!fcm) {
++		printk (KERN_ERR "board_nand_init():" \
++			" Cannot allocate read buffer data structure\n");
++		return;
++	}
++
++	/* Find which chip select bank is being used for this device */
++	for (bank=0; bank<8; bank++) {
++		if ( (lbc->bank[bank].br & BR_V) &&
++		   ( (lbc->bank[bank].br & BR_MSEL) == BR_MS_FCM ) &&
++		   ( (lbc->bank[bank].br & BR_BA) ==
++		     (lbc->bank[bank].or & OR_FCM_AM &
++			(unsigned int)(nand->IO_ADDR_R) ) ) ) {
++			fcm->bank = bank;
++// TODO			fcm->fmr = FMR_ECCM; /* rest filled in later */
++			fcm->fmr = 0; /* rest filled in later */
++			fcm->read_bytes = 0;
++			fcm->index = 0;
++			fcm->pgs = (lbc->bank[bank].or>>OR_FCM_PGS_SHIFT) & 1;
++			fcm->base = lbc->bank[bank].br & BR_BA;
++			fcm->addr = (unsigned char*) (fcm->base);
++			nand->priv = fcm;
++			fcm->oobbuf = -1;
++			break;
++		}
++	}
++
++	if (!nand->priv) {
++		printk (KERN_ERR "board_nand_init():" \
++			" Could not find matching Chip Select\n");
++		return -1;
++	}
++
++	/* set up nand options */
++	nand->options = 0;
++	/* set up function call table */
++	nand->hwcontrol = fcm_hwcontrol;
++	nand->waitfunc = fcm_wait;
++	nand->read_byte = fcm_read_byte;
++	nand->write_byte = fcm_write_byte;
++	nand->read_word = fcm_read_word;
++	nand->write_word = fcm_write_word;
++	nand->read_buf = fcm_read_buf;
++	nand->verify_buf = fcm_verify_buf;
++	nand->write_buf = fcm_write_buf;
++	nand->cmdfunc = fcm_cmdfunc;
++	nand->scan_bbt = fcm_scan_bbt;
++
++	/* If CS Base Register selects full hardware ECC then use it */
++	if ( ( (lbc->bank[bank].br & BR_DECC) >> BR_DECC_SHIFT) == 2) {
++		/* put in small page settings and adjust later if needed */
++		nand->eccmode = NAND_ECC_HW3_512;
++		nand->autooob = (fcm->fmr & FMR_ECCM) ?
++				&fcm_oob_sp_eccm1 : &fcm_oob_sp_eccm0;
++		nand->calculate_ecc = fcm_calculate_ecc;
++		nand->correct_data = fcm_correct_data;
++		nand->enable_hwecc = fcm_enable_hwecc;
++	} else {
++		/* otherwise fall back to default software ECC */
++		nand->eccmode = NAND_ECC_SOFT;
++	}
++	return 0;
++}
++
++#endif
++#endif
+diff -urN u-boot-1.3.1.orig/include/configs/MPC8313ERDB.h u-boot-1.3.1/include/configs/MPC8313ERDB.h
+--- u-boot-1.3.1.orig/include/configs/MPC8313ERDB.h	2007-12-06 10:21:19.000000000 +0100
++++ u-boot-1.3.1/include/configs/MPC8313ERDB.h	2008-01-31 17:36:18.000000000 +0100
+@@ -360,6 +360,7 @@
+ #define CONFIG_CMD_MII
+ #define CONFIG_CMD_DATE
+ #define CONFIG_CMD_PCI
++#define CONFIG_CMD_NAND
+ 
+ #if defined(CFG_RAMBOOT)
+     #undef CONFIG_CMD_ENV
============================================================
--- MAINTAINERS	5556c9277c3381070987310400058abdd5f4c820
+++ MAINTAINERS	df1acfac3b7175de3f71ec85623148d285a64116
@@ -97,7 +97,8 @@ Recipes:    libexosip2, python-cheetah, 
 Website:    http://www.jerryweb.org/
 Machines:   mpc8313e-rdb
 Recipes:    libexosip2, python-cheetah, python-django, python-pyopenssl,
-Recipes:    pump, squid, squidview
+Recipes:    pump, squid, squidview, hostap-daemon, wpa-supplicant, linux,
+Recipes:    u-boot
 
 Person:     Joaquim Duran
 Mail:       joaquinduran at adtelecom.es
============================================================
--- classes/kernel.bbclass	8d92c5a7b6420490dd6b3115e8146b3fc0a0f854
+++ classes/kernel.bbclass	8ed575119a74e50c5bcb39266997cba3f60792c2
@@ -471,7 +471,7 @@ do_deploy() {
 	install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.bin
 	package_stagefile_shell ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.bin
 
-	if [ -d "${D}lib" ]; then
+	if [ -d "${D}/lib" ]; then
 	tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${PV}-${PR}-${MACHINE}.tgz -C ${D} lib
 	fi
 
============================================================
--- conf/distro/angstrom-2008.1.conf	6f251e8e8c830f7c3e1ebbed08e46a6c642556d9
+++ conf/distro/angstrom-2008.1.conf	dd2138b465f663603f99ce6be674dfd46af8c33f
@@ -119,11 +119,11 @@ require conf/distro/include/preferred-xo
 require conf/distro/include/preferred-e-versions.inc
 require conf/distro/include/preferred-xorg-versions-X11R7.3.inc
 
-#avr32 only has patches for binutils 2.17 and gcc 4.2.1 in OE
-PREFERRED_VERSION_gcc_avr32               = "4.2.1"
-PREFERRED_VERSION_gcc-cross_avr32         = "4.2.1"
-PREFERRED_VERSION_gcc-cross-sdk_avr32     = "4.2.1"
-PREFERRED_VERSION_gcc-cross-initial_avr32 = "4.2.1"
+#avr32 only has patches for binutils 2.17 and gcc 4.2.2 in OE
+PREFERRED_VERSION_gcc_avr32               = "4.2.2"
+PREFERRED_VERSION_gcc-cross_avr32         = "4.2.2"
+PREFERRED_VERSION_gcc-cross-sdk_avr32     = "4.2.2"
+PREFERRED_VERSION_gcc-cross-initial_avr32 = "4.2.2"
 PREFERRED_VERSION_binutils_avr32 = "2.17"
 PREFERRED_VERSION_binutils-cross_avr32 = "2.17"
 PREFERRED_VERSION_binutils-cross-sdk_avr32 = "2.17"
============================================================
--- conf/distro/include/angstrom-uclibc.inc	bd467a8983d81901f98163052c0537bbf2909f15
+++ conf/distro/include/angstrom-uclibc.inc	ed3615a8cce5b329c1b4354ca91a98190a64f862
@@ -16,8 +16,15 @@ BUILD_OPTIMIZATION = "-Os"
 BUILD_OPTIMIZATION = "-Os"
 
 #Gcc will die with 'internal consistency error when using the above optimizations
-FULL_OPTIMIZATION_avr32 = ""
-BUILD_OPTIMIZATION_avr32 = ""
+#with gcc-4.2.1-atmel.1.0.3 (and probably most other avr32 gcc ports).
+#However, some packages require optimizations to compile (e.g. libmad).
+#It appears the guilty optimization is "-frename-registers", leaving that one 
+#out allows the build to proceed normally.  -fexpensive-optimizations may be OK,
+#it was removed while debugging an issue that ultimately turned out to be due
+#to the ICE fixed by gcc-pr32889.patch.  It needs to be tested again. 
+#Note that this testing was done without the gcc-pr32889.patch.
+FULL_OPTIMIZATION_avr32 = "-Os -fomit-frame-pointer"
 
+
 CXXFLAGS += "-fvisibility-inlines-hidden"
 
============================================================
--- conf/machine/mpc8313e-rdb.conf	9521bcf148591a9c5c88e316475ce8493488eaf2
+++ conf/machine/mpc8313e-rdb.conf	ca05aff54fbbce7e6178f63cd81e0262c9607193
@@ -11,7 +11,7 @@ KERNEL_IMAGETYPE = "uImage"
 
 KERNEL_IMAGETYPE = "uImage"
 
-PREFERRED_VERSION_u-boot = "1.3.1"
+PREFERRED_VERSION_u-boot = "1.3.2"
 UBOOT_MACHINE = "MPC8313ERDB_33_config"
 UBOOT_ENTRYPOINT = "0"
 UBOOT_LOADADDRESS = "0"
============================================================
--- packages/binutils/binutils.inc	f448bed26fe1742f47791f2fa478603cc6c038b5
+++ packages/binutils/binutils.inc	ec08872ebf090adf38f8ae73969a35b3cf0f98ae
@@ -67,6 +67,11 @@ do_configure () {
 
 do_configure () {
 	(cd ${S}; gnu-configize) || die "Failed to run gnu-configize"
+
+        # Fix for issues when system's texinfo version >= 4.10
+        # (See https://bugzilla.redhat.com/show_bug.cgi?id=345621)
+        sed -i -e "s at egrep 'texinfo.*'@egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|4.[1-9][0-9]+|[5-9])'@" '${S}/configure'
+
 	oe_runconf
 #
 # must prime config.cache to ensure the build of libiberty
============================================================
--- packages/binutils/binutils_2.17.bb	22565b10082a0e16f29e89a55311c299acbc31c1
+++ packages/binutils/binutils_2.17.bb	99e9c269f46aafaced069158eb736ec2b3c100b9
@@ -1,6 +1,7 @@ require binutils.inc
 require binutils.inc
+require binutils-avr32.inc
 
-PR = "r4"
+PR = "r5"
 
 SRC_URI = \
     "http://ftp.gnu.org/gnu/binutils/binutils-${PV}.tar.bz2 \
@@ -18,9 +19,14 @@ SRC_URI += "\
 	file://300-012_check_ldrunpath_length.patch;patch=1 \
 	file://300-001_ld_makefile_patch.patch;patch=1 \
 	file://400-mips-ELF_MAXPAGESIZE-4K.patch;patch=1 \
-        file://500-avr32-atmel.1.3.0.patch;patch=1 \
-        file://501-avr32-fix-pool-alignment.patch;patch=1 \
 "
+# removed in favor of the atmel 1.2.6 patch which is supposedly newer (yes)
+#        file://500-avr32-atmel.1.3.0.patch;patch=1 \
+#        file://501-avr32-fix-pool-alignment.patch;patch=1 \
 
+SRC_URI_append_avr32 = "\
+        file://binutils-2.17.atmel.1.2.6.patch.bz2;patch=1 \
+"
+
 # Zecke's OSX fixes
 SRC_URI += " file://warning-free.patch;patch=1 "
============================================================
--- packages/gcc/gcc-4.2.2.inc	e1a01a5ff03489319241b841ece209ab4fdcbc72
+++ packages/gcc/gcc-4.2.2.inc	6281a032714b397b43955b47208a1dd89efdd74b
@@ -40,6 +40,13 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/gcc
 	file://intermask-bigendian.patch;patch=1 \
 "
 
+
+SRC_URI_append_avr32 = " \
+        file://gcc-4.2.2.atmel.1.0.8.patch.bz2;patch=1 \
+        file://901-avr32-no-cond-exec-before-reload-by-default.patch;patch=1 \
+"
+
+
 SRC_URI_append_ep93xx = " \
         file://arm-crunch-saveregs.patch;patch=1 \
         file://arm-crunch-20000320.patch;patch=1 \
============================================================
--- packages/gdb/gdb-cross.inc	f22b5bdf741d9b9ce7a69086a1b6ff8dc8383420
+++ packages/gdb/gdb-cross.inc	fc0d500641c93bb88bc035f650bb82fd9a102324
@@ -10,6 +10,12 @@ do_configure () {
 # override this function to avoid the autoconf/automake/aclocal/autoheader
 # calls for now
 	(cd ${S} && gnu-configize) || die "failure in running gnu-configize"
+
+        # Fix for issues when system's texinfo version >= 4.10
+        # (See https://bugzilla.redhat.com/show_bug.cgi?id=345621)
+        sed -i -e "s at egrep 'texinfo.*'@egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|4.[1-9][0-9]+|[5-9])'@" '${S}/configure'
+
+
 	oe_runconf
 }
 
============================================================
--- packages/linux/linux-omap2-git/beagleboard/defconfig	ffa35a912f2d6c8016f6ea1d0f7ebb27987a9b28
+++ packages/linux/linux-omap2-git/beagleboard/defconfig	6defc6fa96f79492acbfbaed1cc6553abe5edc13
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # Linux kernel version: 2.6.25-omap1
-# Thu Apr 24 21:02:00 2008
+# Wed Apr 30 11:44:55 2008
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -941,9 +941,10 @@ CONFIG_VIDEO_V4L2_COMMON=y
 #
 CONFIG_VIDEO_DEV=y
 CONFIG_VIDEO_V4L2_COMMON=y
-# CONFIG_VIDEO_V4L1 is not set
+CONFIG_VIDEO_ALLOW_V4L1=y
 CONFIG_VIDEO_V4L1_COMPAT=y
 CONFIG_VIDEO_V4L2=y
+CONFIG_VIDEO_V4L1=y
 CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_ADV_DEBUG is not set
 # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
@@ -973,11 +974,21 @@ CONFIG_VIDEO_WM8775=m
 #
 # Video decoders
 #
+# CONFIG_VIDEO_BT819 is not set
+# CONFIG_VIDEO_BT856 is not set
+# CONFIG_VIDEO_BT866 is not set
+# CONFIG_VIDEO_KS0127 is not set
 # CONFIG_VIDEO_OV7670 is not set
 # CONFIG_VIDEO_TCM825X is not set
 # CONFIG_VIDEO_OV9640 is not set
+# CONFIG_VIDEO_SAA7110 is not set
+# CONFIG_VIDEO_SAA7111 is not set
+# CONFIG_VIDEO_SAA7114 is not set
 CONFIG_VIDEO_SAA711X=m
+# CONFIG_VIDEO_SAA717X is not set
+# CONFIG_VIDEO_SAA7191 is not set
 # CONFIG_VIDEO_TVP5150 is not set
+# CONFIG_VIDEO_VPX3220 is not set
 
 #
 # Video and audio decoders
@@ -993,6 +1004,9 @@ CONFIG_VIDEO_CX2341X=m
 # Video encoders
 #
 # CONFIG_VIDEO_SAA7127 is not set
+# CONFIG_VIDEO_SAA7185 is not set
+# CONFIG_VIDEO_ADV7170 is not set
+# CONFIG_VIDEO_ADV7175 is not set
 
 #
 # Video improvement chips
@@ -1000,22 +1014,39 @@ CONFIG_VIDEO_VIVI=m
 # CONFIG_VIDEO_UPD64031A is not set
 # CONFIG_VIDEO_UPD64083 is not set
 CONFIG_VIDEO_VIVI=m
+# CONFIG_VIDEO_CPIA is not set
+# CONFIG_VIDEO_CPIA2 is not set
 CONFIG_VIDEO_SAA5246A=m
 CONFIG_VIDEO_SAA5249=m
+# CONFIG_TUNER_3036 is not set
+# CONFIG_VIDEO_AU0828 is not set
 CONFIG_V4L_USB_DRIVERS=y
 CONFIG_VIDEO_PVRUSB2=m
 CONFIG_VIDEO_PVRUSB2_ONAIR_CREATOR=y
 CONFIG_VIDEO_PVRUSB2_ONAIR_USB2=y
 CONFIG_VIDEO_PVRUSB2_SYSFS=y
+# CONFIG_VIDEO_PVRUSB2_DVB is not set
 # CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
 CONFIG_VIDEO_EM28XX=m
 CONFIG_VIDEO_EM28XX_ALSA=m
+# CONFIG_VIDEO_EM28XX_DVB is not set
 CONFIG_VIDEO_USBVISION=m
+# CONFIG_USB_VICAM is not set
+# CONFIG_USB_IBMCAM is not set
+# CONFIG_USB_KONICAWC is not set
+# CONFIG_USB_QUICKCAM_MESSENGER is not set
 CONFIG_USB_ET61X251=m
+# CONFIG_VIDEO_OVCAMCHIP is not set
+# CONFIG_USB_W9968CF is not set
+# CONFIG_USB_OV511 is not set
+# CONFIG_USB_SE401 is not set
 CONFIG_USB_SN9C102=m
+# CONFIG_USB_STV680 is not set
 CONFIG_USB_ZC0301=m
+# CONFIG_USB_PWC is not set
 CONFIG_USB_ZR364XX=m
 CONFIG_USB_STKWEBCAM=m
+# CONFIG_SOC_CAMERA is not set
 # CONFIG_RADIO_ADAPTERS is not set
 CONFIG_DVB_CORE=m
 CONFIG_DVB_CORE_ATTACH=y
@@ -1094,6 +1125,7 @@ CONFIG_DVB_DIB7000P=m
 CONFIG_DVB_DIB3000MC=m
 CONFIG_DVB_DIB7000M=m
 CONFIG_DVB_DIB7000P=m
+# CONFIG_DVB_TDA10048 is not set
 
 #
 # DVB-C (cable) frontends
@@ -1112,6 +1144,7 @@ CONFIG_DVB_S5H1409=m
 CONFIG_DVB_BCM3510=m
 CONFIG_DVB_LGDT330X=m
 CONFIG_DVB_S5H1409=m
+# CONFIG_DVB_AU8522 is not set
 
 #
 # Tuners/PLL support
@@ -1126,11 +1159,13 @@ CONFIG_DVB_TUNER_XC5000=m
 CONFIG_DVB_TUNER_MT2131=m
 CONFIG_DVB_TUNER_DIB0070=m
 CONFIG_DVB_TUNER_XC5000=m
+# CONFIG_DVB_TUNER_ITD1000 is not set
 
 #
 # Miscellaneous devices
 #
 CONFIG_DVB_LNBP21=m
+# CONFIG_DVB_ISL6405 is not set
 CONFIG_DVB_ISL6421=m
 CONFIG_DVB_TUA6100=m
 CONFIG_VIDEO_TUNER=m
@@ -1263,10 +1298,6 @@ CONFIG_SND_SOC=y
 CONFIG_SND_SOC=y
 
 #
-# SoC Audio support for SuperH
-#
-
-#
 # ALSA SoC audio for Freescale SOCs
 #
 
@@ -1312,7 +1343,7 @@ CONFIG_USB_SUSPEND=y
 #
 # USB Host Controller Drivers
 #
-CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_HCD=m
 CONFIG_OMAP_EHCI_PHY_MODE=y
 # CONFIG_OMAP_EHCI_TLL_MODE is not set
 CONFIG_USB_EHCI_ROOT_HUB_TT=y
@@ -1434,7 +1465,7 @@ CONFIG_USB_LED=m
 # CONFIG_USB_IDMOUSE is not set
 # CONFIG_USB_FTDI_ELAN is not set
 # CONFIG_USB_APPLEDISPLAY is not set
-CONFIG_USB_SISUSBVGA=y
+CONFIG_USB_SISUSBVGA=m
 CONFIG_USB_SISUSBVGA_CON=y
 # CONFIG_USB_LD is not set
 # CONFIG_USB_TRANCEVIBRATOR is not set
@@ -1638,7 +1669,6 @@ CONFIG_NFS_V4=y
 CONFIG_NFS_V3=y
 # CONFIG_NFS_V3_ACL is not set
 CONFIG_NFS_V4=y
-# CONFIG_NFS_DIRECTIO is not set
 # CONFIG_NFSD is not set
 CONFIG_ROOT_NFS=y
 CONFIG_LOCKD=y
============================================================
--- packages/linux/linux-omap2_git.bb	c46412b985389cdee793c4670885ae00a0bfc7c3
+++ packages/linux/linux-omap2_git.bb	d2df9d873b73d322c1d6a7918ef9c8786b091e48
@@ -2,16 +2,17 @@ FILESDIR = "${@os.path.dirname(bb.data.g
 
 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-omap2-git/${MACHINE}"
 
-SRCREV = "b1224e0086dc0b27a5af1e7b4f59709521569060"
+SRCREV = "59586cd959b31f91f29cf96c1d3f8ff52c3c0607"
 
 PV = "2.6.25+git${SRCREV}"
-PR = "r5"
+PR = "r6"
 
 
 SRC_URI = "git://source.mvista.com/git/linux-omap-2.6.git;protocol=git \
-           file://defconfig"
+	   file://defconfig"
 
 SRC_URI_append_beagleboard = " file://no-harry-potter.diff;patch=1 \
+			       file://usb-timout.patch;patch=1 \
 "
 
 COMPATIBLE_MACHINE = "omap2430sdp|omap2420h4|beagleboard"
============================================================
--- packages/madwifi/madwifi-ng_r3314-20080131.bb	aa87cb14b8005f3b927e4701b1ae845bf2099ec2
+++ packages/madwifi/madwifi-ng_r3314-20080131.bb	24403394f09cfebacade21edca4dbf1c9fe180ba
@@ -1,8 +1,5 @@
 # Bitbake recipe for the madwifi-ng driver
 
-DEFAULT_PREFERENCE = "-1"
-DEFAULT_PREFERENCE_ixp4xx = "1"
-
 # Disable stripping of kernel modules, since this action strips too
 # much out, and the resulting module won't load.
 INHIBIT_PACKAGE_STRIP = "1"
============================================================
--- packages/meta/slugos-packages.bb	46c8ac8a7503c5e222ee23a677a92db2e2ea9dcb
+++ packages/meta/slugos-packages.bb	f62c22f94a5ba8a475afc6d43721c4e29386ca2e
@@ -5,7 +5,7 @@ LICENSE = "MIT"
 DESCRIPTION = "Packages that are compatible with the SlugOS firmware"
 HOMEPAGE = "http://www.nslu2-linux.org"
 LICENSE = "MIT"
-PR = "r51"
+PR = "r53"
 CONFLICTS = "db3"
 
 COMPATIBLE_MACHINE = "nslu2|ixp4xx"
@@ -50,6 +50,7 @@ SLUGOS_PACKAGES = "\
 	bluez-utils \
 	bluez-hcidump \
 	bogofilter \
+	bonnie++ \
 	boost \
 	bridge-utils \
 	bzip2 \
@@ -103,6 +104,7 @@ SLUGOS_PACKAGES = "\
 	hdparm \
 	ifupdown \
 	inetutils \
+	iozone3 \
 	iperf \
 	ipkg-utils \
 	iptables \
============================================================
--- packages/opkg/opkg_svn.bb	bc27245782ad8e3348db57c3d14c9e75b4f1b404
+++ packages/opkg/opkg_svn.bb	e034851c3a5985b17cbde739bc5bb59a8c69d323
@@ -1,6 +1,6 @@ require opkg.inc
 require opkg.inc
 
-PR = "r3"
+PR = "r4"
 
 PACKAGES =+ "libopkg-dev libopkg"
 
@@ -12,7 +12,7 @@ OPKG_INIT_POSITION_slugos = "41"
 OPKG_INIT_POSITION = "98"
 OPKG_INIT_POSITION_slugos = "41"
 
-pkg_postinst_opkg () {
+pkg_postinst_${PN} () {
 #!/bin/sh
 if [ "x$D" != "x" ]; then
 	install -d ${IMAGE_ROOTFS}/${sysconfdir}/rcS.d
@@ -26,7 +26,7 @@ update-alternatives --install ${bindir}/
 update-alternatives --install ${bindir}/opkg opkg ${bindir}/opkg-cl 100
 }
 
-pkg_postrm_opkg () {
+pkg_postrm_${PN} () {
 #!/bin/sh
 update-alternatives --remove opkg ${bindir}/opkg-cl
 }
============================================================
--- packages/u-boot/u-boot_1.3.2.bb	8cfd5293c0214179a38b2304fbd10c77a3912aff
+++ packages/u-boot/u-boot_1.3.2.bb	33ac513192e4695c4ea43a787d866c98c2a011ef
@@ -2,6 +2,11 @@ DEFAULT_PREFERENCE = "-1"
 
 DEFAULT_PREFERENCE = "-1"
 
-SRC_URI = "ftp://ftp.denx.de/pub/u-boot/u-boot-${PV}.tar.bz2"
+PR = "r1"
 
+SRC_URI = "ftp://ftp.denx.de/pub/u-boot/u-boot-${PV}.tar.bz2 \
+           file://mpc8313e-rdb-autoboot.patch;patch=1 \
+           file://mpc8313e-rdb-mtdparts.patch;patch=1 \
+           file://mpc8313e-rdb-nand.patch;patch=1"
+
 PACKAGE_ARCH = "${MACHINE_ARCH}"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.openmoko.org/pipermail/commitlog/attachments/20080502/8994a4d0/attachment.htm 
-------------- next part --------------
#
#
# patch "packages/efl1/imlib2_cvs.bb"
#  from [90324b9d8bfadfca430da3b72c2b1f9c7089ee52]
#    to [5c3c8c06ae6d9a4d18d10a066fc8973ec535e871]
#
============================================================
--- packages/efl1/imlib2_cvs.bb	90324b9d8bfadfca430da3b72c2b1f9c7089ee52
+++ packages/efl1/imlib2_cvs.bb	5c3c8c06ae6d9a4d18d10a066fc8973ec535e871
@@ -3,12 +3,10 @@ PV = "1.4.1.000+cvs${SRCDATE}"
 # can also depend on tiff34, ungif or gif, z, bz2, id3tag
 DEPENDS = "freetype libpng jpeg virtual/libx11 libxext"
 PV = "1.4.1.000+cvs${SRCDATE}"
-PR = "r0"
+PR = "r1"
 
 inherit efl
 
-SRC_URI += "file://remove-local-includes.patch;patch=1"
-
 EXTRA_OECONF = "--with-x"
 
 # TODO: Use more fine granular version
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.openmoko.org/pipermail/commitlog/attachments/20080502/8994a4d0/attachment-0001.htm 


More information about the commitlog mailing list