summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Lauer <mickey@vanille-media.de>2008-02-13 11:15:20 +0000
committerMichael Lauer <mickey@vanille-media.de>2008-02-13 11:15:20 +0000
commit784e9e1768bfef0341ec13b7d17b32d98dafaef3 (patch)
tree42aeafee932d81641e82de922bcdc71b66e9f5b8
parent403333e2d7c0ff87a0a449d7f2d014d941a20d8a (diff)
parent32e690935379493f478d1b7a1cd43fce486083da (diff)
merge of '054216fcb27d4211cd8948d7407878afe1bbf15c'
and 'f26d3059129388297f1542283ce17d100f8c8acc'
-rw-r--r--classes/image.bbclass1
-rw-r--r--conf/bitbake.conf6
-rw-r--r--conf/distro/include/angstrom.inc2
-rw-r--r--conf/machine/davinci-sffsdr.conf2
-rw-r--r--packages/anki/.mtn2git_empty0
-rw-r--r--packages/anki/anki.inc15
-rw-r--r--packages/anki/anki_0.4.3.bb9
-rw-r--r--packages/anki/files/.mtn2git_empty0
-rw-r--r--packages/anki/files/no-need-for-pyqt-at-buildtime.patch28
-rw-r--r--packages/anki/libanki_0.4.3.bb5
-rw-r--r--packages/gpe-login/files/gpe-xcalibrate-rises-from-dead.patch2
-rw-r--r--packages/gpe-login/files/lock-on-supend.patch2
-rw-r--r--packages/gpe-login/files/size-autolock-properly.patch2
-rw-r--r--packages/keylaunch/files/unbreak-keyevents.patch2
-rw-r--r--packages/libpcap/libpcap.inc33
-rw-r--r--packages/libpcap/libpcap_0.9.3.bb33
-rw-r--r--packages/libpcap/libpcap_0.9.5.bb33
-rw-r--r--packages/libpcap/libpcap_0.9.6.bb37
-rw-r--r--packages/linux/linux-davinci/davinci-nand.patch905
-rw-r--r--packages/linux/linux-davinci/davinci-sffsdr/defconfig85
-rw-r--r--packages/linux/linux-davinci_2.6.x+git-davinci.bb1
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/asus620/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/asus730/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/aximx50/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/eteng500/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/h1910/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/h2200/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/h3600/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/h3800/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/h3900/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/h4000/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/h5000/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/htcalpine/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/htcapache/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/htcbeetles/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/htcblueangel/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/htchimalaya/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/htcsable/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/htcuniversal/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/htcwallaby/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/hx4700/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/looxc550/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/magician/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/rx1950/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6-2.6.21/rx3000/defconfig14
-rw-r--r--packages/linux/linux-handhelds-2.6.inc5
-rw-r--r--packages/linux/linux-handhelds-2.6_2.6.21-hh20.bb2
-rw-r--r--packages/rxtx/rxtx_2.1-7r2.bb13
-rw-r--r--packages/swt/swt-gtk.inc3
-rw-r--r--packages/xorg-driver/xf86-input-acecad_1.2.2.bb5
-rw-r--r--packages/xorg-driver/xf86-video-trident_1.2.4.bb5
-rw-r--r--packages/xorg-driver/xorg-driver-common.inc2
52 files changed, 1244 insertions, 330 deletions
diff --git a/classes/image.bbclass b/classes/image.bbclass
index ca9c9458e1..d70cfa5daf 100644
--- a/classes/image.bbclass
+++ b/classes/image.bbclass
@@ -90,6 +90,7 @@ fakeroot do_rootfs () {
${IMAGE_PREPROCESS_COMMAND}
export TOPDIR=${TOPDIR}
+ export DISTRO=${USERDISTRO}
export MACHINE=${MACHINE}
for type in ${IMAGE_FSTYPES}; do
diff --git a/conf/bitbake.conf b/conf/bitbake.conf
index ac2d281123..27a04a028c 100644
--- a/conf/bitbake.conf
+++ b/conf/bitbake.conf
@@ -529,6 +529,10 @@ OVERRIDES = "local:${MACHINE}:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUIL
include conf/site.conf
include conf/auto.conf
include conf/local.conf
+# USERDISTRO should always contain original DISTRO value as set by user
+# If a distro config overrides DISTRO for whatever reason (e.g. to get
+# overrides like it wants), USERDISTRO must be reassigned with := first
+USERDISTRO = "${DISTRO}"
include conf/build/${BUILD_SYS}.conf
include conf/target/${TARGET_SYS}.conf
include conf/machine/${MACHINE}.conf
@@ -541,7 +545,7 @@ require conf/sanity.conf
##################################################################
DL_DIR ?= "${TMPDIR}/downloads"
-IMAGE_FSTYPES ?= "jffs2"
+IMAGE_FSTYPES ?= "tar.gz"
PCMCIA_MANAGER ?= "pcmcia-cs"
DEFAULT_TASK_PROVIDER ?= "task-base"
MACHINE_TASK_PROVIDER ?= "${DEFAULT_TASK_PROVIDER}"
diff --git a/conf/distro/include/angstrom.inc b/conf/distro/include/angstrom.inc
index fe216800c3..6ba20c4830 100644
--- a/conf/distro/include/angstrom.inc
+++ b/conf/distro/include/angstrom.inc
@@ -2,6 +2,8 @@
#@NAME: Angstrom
#@DESCRIPTION: Release independent distribution configuration for Angstrom
+# Preserve original DISTRO value
+USERDISTRO := "${DISTRO}"
DISTRO = "angstrom"
DISTRO_NAME = "Angstrom"
diff --git a/conf/machine/davinci-sffsdr.conf b/conf/machine/davinci-sffsdr.conf
index ecff6fae13..faf86c5ed0 100644
--- a/conf/machine/davinci-sffsdr.conf
+++ b/conf/machine/davinci-sffsdr.conf
@@ -19,7 +19,7 @@ EXTRA_IMAGECMD_jffs2 = "--pad --little-endian --eraseblock=0x20000 -n"
#ROOT_FLASH_SIZE = "29"
-MACHINE_FEATURES = "kernel26 pcmcia usbhost alsa"
+MACHINE_FEATURES = "kernel26 serial"
require conf/machine/include/tune-arm926ejs.inc
diff --git a/packages/anki/.mtn2git_empty b/packages/anki/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/anki/.mtn2git_empty
diff --git a/packages/anki/anki.inc b/packages/anki/anki.inc
new file mode 100644
index 0000000000..e9a71c286b
--- /dev/null
+++ b/packages/anki/anki.inc
@@ -0,0 +1,15 @@
+DESCRIPTION = "Anki is a program designed to help you remember facts \
+(such as words and phrases in a foreign language) \
+as easily, quickly and efficiently as possible"
+HOMEPAGE = "http://ichi2.net/anki/"
+AUTHOR = "Damien Elmes"
+PRIORITY = "optional"
+LICENSE = "GPLv2"
+RDEPENDS = "python-pyqt"
+RRECOMMENDS = "kakasi virtual/japanese-font"
+
+SRC_URI = "http://ichi2.net/anki/download/anki-${PV}.tgz"
+
+inherit setuptools
+
+PACKAGE_ARCH = "all"
diff --git a/packages/anki/anki_0.4.3.bb b/packages/anki/anki_0.4.3.bb
new file mode 100644
index 0000000000..5d0c8fabe7
--- /dev/null
+++ b/packages/anki/anki_0.4.3.bb
@@ -0,0 +1,9 @@
+require anki.inc
+
+RDEPENDS += "libanki"
+PR = "r0"
+
+export PV
+
+SRC_URI += "file://no-need-for-pyqt-at-buildtime.patch;patch=1"
+S = "${WORKDIR}/anki-${PV}"
diff --git a/packages/anki/files/.mtn2git_empty b/packages/anki/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/anki/files/.mtn2git_empty
diff --git a/packages/anki/files/no-need-for-pyqt-at-buildtime.patch b/packages/anki/files/no-need-for-pyqt-at-buildtime.patch
new file mode 100644
index 0000000000..56cfec4999
--- /dev/null
+++ b/packages/anki/files/no-need-for-pyqt-at-buildtime.patch
@@ -0,0 +1,28 @@
+#
+# (C) Michael 'Mickey' Lauer <mlauer@vanille-media.de>
+#
+Index: anki-0.4.3/setup.py
+===================================================================
+--- anki-0.4.3.orig/setup.py 2008-02-12 19:17:56.000000000 +0000
++++ anki-0.4.3/setup.py 2008-02-12 19:19:29.000000000 +0000
+@@ -3,10 +3,8 @@
+ from setuptools import setup, find_packages
+ import sys, os
+
+-import ankiqt
+-
+ setup(name='ankiqt',
+- version=ankiqt.appVersion,
++ version=os.environ["PV"],
+ description='An intelligent spaced-repetition memory training program',
+ long_description="",
+ # Get strings from http://www.python.org/pypi?%3Aaction=list_classifiers
+@@ -24,7 +22,7 @@
+ license='GPLv2',
+ packages=find_packages(),
+ include_package_data=True,
+- install_requires = 'anki >= ' + ankiqt.appVersion,
++ install_requires = 'anki >= ' + os.environ["PV"],
+ zip_safe=False,
+ package_data={'ankiqt':
+ ['locale/*/*/*']},
diff --git a/packages/anki/libanki_0.4.3.bb b/packages/anki/libanki_0.4.3.bb
new file mode 100644
index 0000000000..ac33833790
--- /dev/null
+++ b/packages/anki/libanki_0.4.3.bb
@@ -0,0 +1,5 @@
+require anki.inc
+
+PR = "r0"
+
+S = "${WORKDIR}/anki-${PV}/libanki"
diff --git a/packages/gpe-login/files/gpe-xcalibrate-rises-from-dead.patch b/packages/gpe-login/files/gpe-xcalibrate-rises-from-dead.patch
index afad073acf..d1745f0897 100644
--- a/packages/gpe-login/files/gpe-xcalibrate-rises-from-dead.patch
+++ b/packages/gpe-login/files/gpe-xcalibrate-rises-from-dead.patch
@@ -1,3 +1,5 @@
+upstream: http://bugs.linuxtogo.org/show_bug.cgi?id=124
+
diff -r 976c01632fea gpe-login.keylaunchrc
--- a/gpe-login.keylaunchrc Sun Nov 25 22:39:23 2007 +0200
+++ b/gpe-login.keylaunchrc Mon Nov 26 01:12:14 2007 +0200
diff --git a/packages/gpe-login/files/lock-on-supend.patch b/packages/gpe-login/files/lock-on-supend.patch
index 2aeb20f1ea..29ccce5ae6 100644
--- a/packages/gpe-login/files/lock-on-supend.patch
+++ b/packages/gpe-login/files/lock-on-supend.patch
@@ -1,3 +1,5 @@
+upstream: http://bugs.linuxtogo.org/show_bug.cgi?id=125
+
Lock screen when device goes to suspend, not after some time has passed
since resume and they stole your data from the unprotected screen.
diff --git a/packages/gpe-login/files/size-autolock-properly.patch b/packages/gpe-login/files/size-autolock-properly.patch
index b8e2cd6f4f..cf2978f34d 100644
--- a/packages/gpe-login/files/size-autolock-properly.patch
+++ b/packages/gpe-login/files/size-autolock-properly.patch
@@ -1,3 +1,5 @@
+upstream: http://bugs.linuxtogo.org/show_bug.cgi?id=152
+
# HG changeset patch
# User "Paul Sokolovsky <pfalcon@users.sourceforge.net>"
# Date 1196345352 -7200
diff --git a/packages/keylaunch/files/unbreak-keyevents.patch b/packages/keylaunch/files/unbreak-keyevents.patch
index 0a2d58b16a..ee13cc9a63 100644
--- a/packages/keylaunch/files/unbreak-keyevents.patch
+++ b/packages/keylaunch/files/unbreak-keyevents.patch
@@ -1,3 +1,5 @@
+upstream: http://bugs.linuxtogo.org/show_bug.cgi?id=123
+
# HG changeset patch
# User "Paul Sokolovsky <pfalcon@users.sourceforge.net>"
# Date 1196027570 -7200
diff --git a/packages/libpcap/libpcap.inc b/packages/libpcap/libpcap.inc
new file mode 100644
index 0000000000..f2e5d3072b
--- /dev/null
+++ b/packages/libpcap/libpcap.inc
@@ -0,0 +1,33 @@
+DESCRIPTION = "Network Packet Capture Library"
+HOMEPAGE = "http://www.tcpdump.org/"
+SECTION = "libs/network"
+LICENSE = "BSD"
+DEPENDS = "flex-native bison-native"
+
+# Don't forget to edit shared.patch to have the correct version number inside
+SRC_URI = "http://www.tcpdump.org/release/libpcap-${PV}.tar.gz \
+ file://shared.patch;patch=1"
+
+inherit autotools
+
+EXTRA_OECONF = "--with-pcap=linux"
+
+CPPFLAGS_prepend = "-I${S} "
+CFLAGS_prepend = "-I${S} "
+CXXFLAGS_prepend = "-I${S} "
+
+do_configure_prepend () {
+ if [ ! -e acinclude.m4 ]; then
+ cat aclocal.m4 > acinclude.m4
+ fi
+}
+
+do_stage () {
+ install -m 0644 pcap.h ${STAGING_INCDIR}/pcap.h
+ install -m 0644 pcap-namedb.h ${STAGING_INCDIR}/pcap-namedb.h
+ install -m 0644 pcap-bpf.h ${STAGING_INCDIR}/pcap-bpf.h
+ oe_libinstall -a -so libpcap ${STAGING_LIBDIR}
+ install -d ${STAGING_INCDIR}/net
+ ln -sf ${STAGING_INCDIR}/pcap-bpf.h ${STAGING_INCDIR}/net/bpf.h
+ install -m 0644 acinclude.m4 ${STAGING_DATADIR}/aclocal/libpcap.m4
+}
diff --git a/packages/libpcap/libpcap_0.9.3.bb b/packages/libpcap/libpcap_0.9.3.bb
index 5d66687482..865e57ab93 100644
--- a/packages/libpcap/libpcap_0.9.3.bb
+++ b/packages/libpcap/libpcap_0.9.3.bb
@@ -1,32 +1,3 @@
-DESCRIPTION = "Network Packet Capture Library"
-HOMEPAGE = "http://www.tcpdump.org/"
-LICENSE = "BSD"
-SECTION = "libs/network"
-PR = "r1"
+require libpcap.inc
-SRC_URI = "http://www.tcpdump.org/release/libpcap-${PV}.tar.gz \
- file://shared.patch;patch=1"
-
-inherit autotools
-
-EXTRA_OECONF = "--with-pcap=linux"
-
-CPPFLAGS_prepend = "-I${S} "
-CFLAGS_prepend = "-I${S} "
-CXXFLAGS_prepend = "-I${S} "
-
-do_configure_prepend () {
- if [ ! -e acinclude.m4 ]; then
- cat aclocal.m4 > acinclude.m4
- fi
-}
-
-do_stage () {
- install -m 0644 pcap.h ${STAGING_INCDIR}/pcap.h
- install -m 0644 pcap-namedb.h ${STAGING_INCDIR}/pcap-namedb.h
- install -m 0644 pcap-bpf.h ${STAGING_INCDIR}/pcap-bpf.h
- oe_libinstall -a -so libpcap ${STAGING_LIBDIR}
- install -d ${STAGING_INCDIR}/net
- ln -sf ${STAGING_INCDIR}/pcap-bpf.h ${STAGING_INCDIR}/net/bpf.h
- install -m 0644 acinclude.m4 ${STAGING_DATADIR}/aclocal/libpcap.m4
-}
+PR = "r2"
diff --git a/packages/libpcap/libpcap_0.9.5.bb b/packages/libpcap/libpcap_0.9.5.bb
index 5d66687482..865e57ab93 100644
--- a/packages/libpcap/libpcap_0.9.5.bb
+++ b/packages/libpcap/libpcap_0.9.5.bb
@@ -1,32 +1,3 @@
-DESCRIPTION = "Network Packet Capture Library"
-HOMEPAGE = "http://www.tcpdump.org/"
-LICENSE = "BSD"
-SECTION = "libs/network"
-PR = "r1"
+require libpcap.inc
-SRC_URI = "http://www.tcpdump.org/release/libpcap-${PV}.tar.gz \
- file://shared.patch;patch=1"
-
-inherit autotools
-
-EXTRA_OECONF = "--with-pcap=linux"
-
-CPPFLAGS_prepend = "-I${S} "
-CFLAGS_prepend = "-I${S} "
-CXXFLAGS_prepend = "-I${S} "
-
-do_configure_prepend () {
- if [ ! -e acinclude.m4 ]; then
- cat aclocal.m4 > acinclude.m4
- fi
-}
-
-do_stage () {
- install -m 0644 pcap.h ${STAGING_INCDIR}/pcap.h
- install -m 0644 pcap-namedb.h ${STAGING_INCDIR}/pcap-namedb.h
- install -m 0644 pcap-bpf.h ${STAGING_INCDIR}/pcap-bpf.h
- oe_libinstall -a -so libpcap ${STAGING_LIBDIR}
- install -d ${STAGING_INCDIR}/net
- ln -sf ${STAGING_INCDIR}/pcap-bpf.h ${STAGING_INCDIR}/net/bpf.h
- install -m 0644 acinclude.m4 ${STAGING_DATADIR}/aclocal/libpcap.m4
-}
+PR = "r2"
diff --git a/packages/libpcap/libpcap_0.9.6.bb b/packages/libpcap/libpcap_0.9.6.bb
index 9822f38ada..865e57ab93 100644
--- a/packages/libpcap/libpcap_0.9.6.bb
+++ b/packages/libpcap/libpcap_0.9.6.bb
@@ -1,36 +1,3 @@
-# Copyright (C) 2007, Stelios Koroneos - Digital OPSiS, All Rights Reserved
-# Released under the MIT license (see packages/COPYING)
-DESCRIPTION = "Network Packet Capture Library"
-HOMEPAGE = "http://www.tcpdump.org/"
-LICENSE = "BSD"
-SECTION = "libs/network"
-PR = "r1"
+require libpcap.inc
-
-# Don't forget to edit shared.patch to have the correct version number inside
-SRC_URI = "http://www.tcpdump.org/release/libpcap-${PV}.tar.gz \
- file://shared.patch;patch=1"
-
-inherit autotools
-
-EXTRA_OECONF = "--with-pcap=linux"
-
-CPPFLAGS_prepend = "-I${S} "
-CFLAGS_prepend = "-I${S} "
-CXXFLAGS_prepend = "-I${S} "
-
-do_configure_prepend () {
- if [ ! -e acinclude.m4 ]; then
- cat aclocal.m4 > acinclude.m4
- fi
-}
-
-do_stage () {
- install -m 0644 pcap.h ${STAGING_INCDIR}/pcap.h
- install -m 0644 pcap-namedb.h ${STAGING_INCDIR}/pcap-namedb.h
- install -m 0644 pcap-bpf.h ${STAGING_INCDIR}/pcap-bpf.h
- oe_libinstall -a -so libpcap ${STAGING_LIBDIR}
- install -d ${STAGING_INCDIR}/net
- ln -sf ${STAGING_INCDIR}/pcap-bpf.h ${STAGING_INCDIR}/net/bpf.h
- install -m 0644 acinclude.m4 ${STAGING_DATADIR}/aclocal/libpcap.m4
-}
+PR = "r2"
diff --git a/packages/linux/linux-davinci/davinci-nand.patch b/packages/linux/linux-davinci/davinci-nand.patch
new file mode 100644
index 0000000000..33e53cf095
--- /dev/null
+++ b/packages/linux/linux-davinci/davinci-nand.patch
@@ -0,0 +1,905 @@
+Index: linux-davinci/drivers/mtd/nand/davinci_nand.c
+===================================================================
+--- /dev/null
++++ linux-davinci/drivers/mtd/nand/davinci_nand.c
+@@ -0,0 +1,638 @@
++/*
++ * linux/drivers/mtd/nand/davinci_nand.c
++ *
++ * NAND Flash Driver
++ *
++ * Copyright (C) 2006 Texas Instruments.
++ *
++ * ported to 2.6.23 (C) 2008 by
++ * Sander Huijsen <Shuijsen@optelecom-nkf.com>
++ * Troy Kisky <troy.kisky@boundarydevices.com>
++ * Dirk Behme <Dirk.Behme@gmail.com>
++ *
++ * --------------------------------------------------------------------------
++ *
++ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
++ * --------------------------------------------------------------------------
++ *
++ * Overview:
++ * This is a device driver for the NAND flash device found on the
++ * DaVinci board which utilizes the Samsung k9k2g08 part.
++ *
++ * Modifications:
++ * ver. 1.0: Feb 2005, Vinod/Sudhakar
++ */
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <linux/err.h>
++#include <linux/clk.h>
++#include <linux/io.h>
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/nand.h>
++#include <linux/mtd/partitions.h>
++
++#include <asm/arch/hardware.h>
++#include <asm/arch/nand.h>
++#include <asm/arch/mux.h>
++
++#include <asm/mach/flash.h>
++
++#ifdef CONFIG_NAND_FLASH_HW_ECC
++#define DAVINCI_NAND_ECC_MODE NAND_ECC_HW3_512
++#else
++#define DAVINCI_NAND_ECC_MODE NAND_ECC_SOFT
++#endif
++
++#define DRIVER_NAME "davinci_nand"
++
++static struct clk *nand_clock;
++static void __iomem *nand_vaddr;
++
++/*
++ * MTD structure for DaVinici board
++ */
++static struct mtd_info *nand_davinci_mtd;
++
++#ifdef CONFIG_MTD_PARTITIONS
++const char *part_probes[] = { "cmdlinepart", NULL };
++#endif
++
++static uint8_t scan_ff_pattern[] = { 0xff, 0xff };
++
++/* BB marker is byte 5 in OOB of page 0 */
++static struct nand_bbt_descr davinci_memorybased_small = {
++ .options = NAND_BBT_SCAN2NDPAGE,
++ .offs = 5,
++ .len = 1,
++ .pattern = scan_ff_pattern
++};
++
++/* BB marker is bytes 0-1 in OOB of page 0 */
++static struct nand_bbt_descr davinci_memorybased_large = {
++ .options = 0,
++ .offs = 0,
++ .len = 2,
++ .pattern = scan_ff_pattern
++};
++
++inline unsigned int davinci_nand_readl(int offset)
++{
++ return davinci_readl(DAVINCI_ASYNC_EMIF_CNTRL_BASE + offset);
++}
++
++inline void davinci_nand_writel(unsigned long value, int offset)
++{
++ davinci_writel(value, DAVINCI_ASYNC_EMIF_CNTRL_BASE + offset);
++}
++
++/*
++ * Hardware specific access to control-lines
++ */
++static void nand_davinci_hwcontrol(struct mtd_info *mtd, int cmd,
++ unsigned int ctrl)
++{
++ struct nand_chip *chip = mtd->priv;
++ u32 IO_ADDR_W = (u32)chip->IO_ADDR_W;
++
++ /* Did the control lines change? */
++ if (ctrl & NAND_CTRL_CHANGE) {
++ IO_ADDR_W &= ~(MASK_ALE|MASK_CLE);
++
++ if ((ctrl & NAND_CTRL_CLE) == NAND_CTRL_CLE)
++ IO_ADDR_W |= MASK_CLE;
++ else if ((ctrl & NAND_CTRL_ALE) == NAND_CTRL_ALE)
++ IO_ADDR_W |= MASK_ALE;
++
++ chip->IO_ADDR_W = (void __iomem *)IO_ADDR_W;
++ }
++
++ if (cmd != NAND_CMD_NONE)
++ writeb(cmd, chip->IO_ADDR_W);
++}
++
++static void nand_davinci_select_chip(struct mtd_info *mtd, int chip)
++{
++ /* do nothing */
++}
++
++#ifdef CONFIG_NAND_FLASH_HW_ECC
++static void nand_davinci_enable_hwecc(struct mtd_info *mtd, int mode)
++{
++ u32 retval;
++
++ /* Reset ECC hardware */
++ retval = davinci_nand_readl(NANDF1ECC_OFFSET);
++
++ /* Restart ECC hardware */
++ retval = davinci_nand_readl(NANDFCR_OFFSET);
++ retval |= (1 << 8);
++ davinci_nand_writel(retval, NANDFCR_OFFSET);
++}
++
++/*
++ * Read DaVinci ECC register
++ */
++static u32 nand_davinci_readecc(struct mtd_info *mtd)
++{
++ /* Read register ECC and clear it */
++ return davinci_nand_readl(NANDF1ECC_OFFSET);
++}
++
++/*
++ * Read DaVinci ECC registers and rework into MTD format
++ */
++static int nand_davinci_calculate_ecc(struct mtd_info *mtd,
++ const u_char *dat, u_char *ecc_code)
++{
++ unsigned int ecc_val = nand_davinci_readecc(mtd);
++ /* squeeze 0 middle bits out so that it fits in 3 bytes */
++ unsigned int tmp = (ecc_val&0x0fff)|((ecc_val&0x0fff0000)>>4);
++ /* invert so that erased block ecc is correct */
++ tmp = ~tmp;
++ ecc_code[0] = (u_char)(tmp);
++ ecc_code[1] = (u_char)(tmp >> 8);
++ ecc_code[2] = (u_char)(tmp >> 16);
++
++ return 0;
++}
++
++static int nand_davinci_correct_data(struct mtd_info *mtd, u_char *dat,
++ u_char *read_ecc, u_char *calc_ecc)
++{
++ struct nand_chip *chip = mtd->priv;
++ u_int32_t eccNand = read_ecc[0] | (read_ecc[1] << 8) |
++ (read_ecc[2] << 16);
++ u_int32_t eccCalc = calc_ecc[0] | (calc_ecc[1] << 8) |
++ (calc_ecc[2] << 16);
++ u_int32_t diff = eccCalc ^ eccNand;
++
++ if (diff) {
++ if ((((diff>>12)^diff) & 0xfff) == 0xfff) {
++ /* Correctable error */
++ if ((diff>>(12+3)) < chip->ecc.size) {
++ dat[diff>>(12+3)] ^= (1 << ((diff>>12)&7));
++ return 1;
++ } else {
++ return -1;
++ }
++ } else if (!(diff & (diff-1))) {
++ /* Single bit ECC error in the ECC itself,
++ nothing to fix */
++ return 1;
++ } else {
++ /* Uncorrectable error */
++ return -1;
++ }
++
++ }
++ return 0;
++}
++#endif
++
++/*
++ * Read OOB data from flash.
++ */
++static int read_oob_and_check(struct mtd_info *mtd, loff_t offs, uint8_t *buf,
++ struct nand_bbt_descr *bd)
++{
++ int i, ret;
++ int page;
++ struct nand_chip *chip = mtd->priv;
++
++ /* Calculate page address from offset */
++ page = (int)(offs >> chip->page_shift);
++ page &= chip->pagemask;
++
++ /* Read OOB data from flash */
++ ret = chip->ecc.read_oob(mtd, chip, page, 1);
++ if (ret < 0)
++ return ret;
++
++ /* Copy read OOB data to the buffer*/
++ memcpy(buf, chip->oob_poi, mtd->oobsize);
++
++ /* Check pattern against BBM in OOB area */
++ for (i = 0; i < bd->len; i++) {
++ if (buf[bd->offs + i] != bd->pattern[i])
++ return 1;
++ }
++ return 0;
++}
++
++/*
++ * Fill in the memory based Bad Block Table (BBT).
++ */
++static int nand_davinci_memory