merge of '1c7464901fc8ab3cb0e3ade6fdf445011603f0c4'
authorPaul Sokolovsky <pmiscml@gmail.com>
Thu, 15 Feb 2007 12:15:11 +0000 (12:15 +0000)
committerPaul Sokolovsky <pmiscml@gmail.com>
Thu, 15 Feb 2007 12:15:11 +0000 (12:15 +0000)
     and 'dfc0afa827cc70fb16b4745a4b47906239789d61'

497 files changed:
MAINTAINERS
classes/dsmg600-image.bbclass [new file with mode: 0644]
classes/kernel.bbclass
classes/linux-kernel-base.bbclass
classes/module.bbclass
classes/nas100d-image.bbclass [new file with mode: 0644]
classes/nslu2-image.bbclass [new file with mode: 0644]
classes/nslu2-jffs2-image.bbclass [deleted file]
classes/nslu2-ramdisk-image.bbclass [deleted file]
classes/openmoko-base.bbclass [new file with mode: 0644]
classes/openmoko-panel-plugin.bbclass [new file with mode: 0644]
classes/openmoko.bbclass [new file with mode: 0644]
classes/siteinfo.bbclass
conf/bitbake.conf
conf/distro/amsdelta-oe.conf
conf/distro/angstrom-2007.1.conf
conf/distro/debianslug.conf
conf/distro/include/angstrom.inc
conf/distro/include/debianslug-packages.inc [deleted file]
conf/distro/include/freeze.inc
conf/distro/include/openslug-native-packages.inc [deleted file]
conf/distro/include/openslug-packages.inc [deleted file]
conf/distro/include/slugos-packages.inc [deleted file]
conf/distro/include/slugos.inc
conf/distro/include/ucslugc-packages.inc [deleted file]
conf/distro/include/unslung-packages.inc [deleted file]
conf/distro/mokoslug.conf [new file with mode: 0644]
conf/distro/openslug-native.conf
conf/distro/openslug.conf
conf/distro/slugos-bag.conf [deleted file]
conf/distro/slugos-bau.conf [deleted file]
conf/distro/slugos-btu.conf [deleted file]
conf/distro/slugos-lag.conf [deleted file]
conf/distro/slugos-lau.conf [deleted file]
conf/distro/slugos-ltu.conf [deleted file]
conf/distro/slugos.conf [new file with mode: 0644]
conf/distro/ucslugc.conf
conf/distro/unslung.conf
conf/machine/efika.conf
conf/machine/fic-gta01.conf [new file with mode: 0644]
conf/machine/include/ixp4xx.conf
conf/machine/include/simpad-2.6.conf
conf/machine/ixp4xx.conf
conf/machine/ixp4xxbe.conf
conf/machine/ixp4xxle.conf
conf/machine/nslu2.conf
conf/machine/nslu2be.conf
conf/machine/nslu2le.conf
packages/abiword/abiword-2.5.inc
packages/abiword/abiword-plugins_2.4.5.bb
packages/abiword/abiword-plugins_2.4.6.bb
packages/abiword/abiword.inc
packages/angstrom/angstrom-mokogateway-image.bb [new file with mode: 0644]
packages/apache2/apache2_2.2.3.bb
packages/arm-kernel-shim/arm-kernel-shim_1.2.bb [deleted file]
packages/arm-kernel-shim/arm-kernel-shim_1.3.bb [new file with mode: 0644]
packages/arm-kernel-shim/files/cmdline_if_none.patch [new file with mode: 0644]
packages/arm-kernel-shim/files/config-dsmg600.h
packages/arm-kernel-shim/files/config-fsg3.h
packages/arm-kernel-shim/files/config-nas100d.h
packages/arm-kernel-shim/files/config-nslu2.h
packages/arm-kernel-shim/files/disable-commandline.patch [deleted file]
packages/arm-kernel-shim/files/passthrough-atags.patch [new file with mode: 0644]
packages/arm-kernel-shim/files/place-boot-section.patch [deleted file]
packages/base-files/base-files/angstrom/issue
packages/base-files/base-files/angstrom/issue.net
packages/base-files/base-files_3.0.14.bb
packages/beepmp/beepmp_0.9.7.bb
packages/blueprobe/blueprobe_svn.bb [new file with mode: 0644]
packages/blueprobe/files/.mtn2git_empty [moved from packages/madwifi/madwifi-ng-r1844-20061208/.mtn2git_empty with 100% similarity]
packages/blueprobe/files/blueprobe-svn-Makefile.patch [new file with mode: 0644]
packages/bluesnarfer/bluesnarfer.bb
packages/bluez/bluez-utils.inc
packages/bluez/bluez-utils_3.9.bb
packages/bmon/bmon_2.1.0.bb
packages/busybox/busybox.inc
packages/cairo/cairo_1.3.14.bb [moved from packages/cairo/cairo_1.3.12.bb with 95% similarity]
packages/ccxstream/ccxstream_1.0.15.bb
packages/cyrus-imapd/cyrus-imapd-2.2.12/remove-install-strip.patch [new file with mode: 0644]
packages/cyrus-imapd/cyrus-imapd_2.2.12.bb
packages/dcop/dcopidl-native_3.5.4.bb
packages/dcop/dcopidl2cpp-native_3.5.4.bb
packages/detect-stylus/detect-stylus_svn.bb [new file with mode: 0644]
packages/detect-stylus/files/.mtn2git_empty [moved from packages/mozilla/firefox-2.0/arm/.mtn2git_empty with 100% similarity]
packages/detect-stylus/files/detect-stylus-svn-build.patch [new file with mode: 0644]
packages/dhcdbd/dhcdbd_1.14.bb
packages/dhcdbd/dhcdbd_1.16.bb
packages/dhcdbd/dhcdbd_2.0.bb
packages/directfb/fusionsound_0.9.26+cvs20070207.bb [new file with mode: 0644]
packages/directfb/lite_0.9.26+cvs20070207.bb [new file with mode: 0644]
packages/e2fsprogs/e2fsprogs/e2fsprogs_1.34.bb
packages/e2fsprogs/e2fsprogs_1.38.bb
packages/enchant/enchant_1.1.3.bb
packages/enchant/enchant_1.2.5.bb
packages/fbvncserver/fbvncserver-kmodule_0.9.4.bb
packages/fftw/fftw_3.1.2.bb
packages/freeze/freeze.bb
packages/freeze/unfreeze.bb
packages/galago/eds-feed_0.3.2.bb
packages/galago/galago-daemon_0.3.4.bb
packages/ghettotooth/ghettotooth.bb
packages/glibc/glibc.inc
packages/glibc/glibc_2.2.5.bb
packages/glibc/glibc_2.3.2.bb
packages/glibc/glibc_2.3.3.bb
packages/gnuplot/qtplot_0.2.bb
packages/gpe-appmgr/files/svn-build.patch [new file with mode: 0644]
packages/gpe-appmgr/gpe-appmgr_svn.bb [new file with mode: 0644]
packages/gpe-autostarter/gpe-autostarter_svn.bb [new file with mode: 0644]
packages/gpe-autostarter/svn-build.patch [new file with mode: 0644]
packages/gpe-bluetooth/gpe-bluetooth_0.51.bb
packages/gpe-bluetooth/gpe-bluetooth_0.52.bb
packages/gpe-bluetooth/gpe-bluetooth_0.53.bb
packages/gpe-bluetooth/gpe-bluetooth_0.54.bb
packages/gpe-filemanager/gpe-filemanager_0.23.bb
packages/gpe-filemanager/gpe-filemanager_0.24.bb
packages/gpe-filemanager/gpe-filemanager_0.25.bb
packages/gpe-login/gpe-login_0.87.bb
packages/gpe-mini-browser/gpe-mini-browser_0.17.bb
packages/gpe-mini-browser/gpe-mini-browser_0.18.bb
packages/gpe-mini-browser/gpe-mini-browser_svn.bb
packages/gpe-shield/gpe-shield_0.9.bb
packages/gpe-themes/gpe-theme-clearlooks_0.2.bb
packages/gpe-themes/gpe-theme-clearlooks_0.3.bb
packages/gpe-themes/gpe-theme-industrial_0.2.bb
packages/gpe-todo/gpe-todo-hildon_0.54.bb
packages/gpe-todo/gpe-todo-hildon_0.55.bb
packages/gpe-what/gpe-what_cvs.bb
packages/gpephone/addressbook_0.1.bb
packages/gpephone/audioplayer_1.0.bb
packages/gpephone/calendar_1.0.bb
packages/gpephone/cms92init_0.1.bb
packages/gpephone/connect_0.1.bb
packages/gpephone/gloox_0.8.1.bb
packages/gpephone/gpe-applauncher_0.7.bb
packages/gpephone/gpe-phonepanel_0.7.bb
packages/gpephone/gsmmux_alpha-2.bb
packages/gpephone/iksemel_1.2.bb
packages/gpephone/libabenabler_0.1.bb
packages/gpephone/libcalenabler_1.0.bb
packages/gpephone/libchenabler_0.1.bb
packages/gpephone/libgemwidget_0.1.bb
packages/gpephone/libgpephone_0.3.bb
packages/gpephone/libiac_0.1.bb
packages/gpephone/libidn_0.5.19.bb
packages/gpephone/libim_0.1.bb
packages/gpephone/liblipsevent_0.1.bb
packages/gpephone/libmsgenabler_1.0.bb
packages/gpephone/librecord_0.1.bb
packages/gpephone/libvocenabler_0.1.bb
packages/gpephone/linphone_1.5.0.bb
packages/gpephone/phoneserver_1.0.bb
packages/gpephone/sms_1.0.bb
packages/gpephone/soundserver_1.0.bb
packages/gpephone/videoplayer_0.1.bb
packages/gpephone/voicecall_0.1.bb
packages/gpephone/xoo-theme-gpephone_1.0.bb
packages/gperiodic/gperiodic_1.3.3.bb
packages/gpsd/gpsd.inc
packages/gpsd/gpsd_2.34.bb [new file with mode: 0644]
packages/granule/granule.inc
packages/gsm/.mtn2git_empty [moved from packages/mozilla/firefox-2.0/powerpc/.mtn2git_empty with 100% similarity]
packages/gsm/libgsmd_svn.bb [new file with mode: 0644]
packages/gtk+/pixops-test.bb [new file with mode: 0644]
packages/gtk+/pixops-test/.mtn2git_empty [moved from packages/obsolete/nslu2/.mtn2git_empty with 100% similarity]
packages/gtk+/pixops-test/gtk-logo-rgb.gif [new file with mode: 0644]
packages/gtk+/pixops-test/pixops-test.c [new file with mode: 0644]
packages/gtk2-ssh-askpass/gtk2-ssh-askpass_0.3.bb
packages/hal/hal_0.5.7.bb
packages/id3lib/id3lib_3.8.3.bb
packages/images/openmoko-devel-image.bb [new file with mode: 0644]
packages/images/openmoko-image.bb [new file with mode: 0644]
packages/images/openmoko-sdk-image.bb [new file with mode: 0644]
packages/images/openprotium-image.bb
packages/images/slugos-image.bb
packages/images/slugos-imagename.bb [deleted file]
packages/images/unslung-image.bb
packages/ipkg/files/is-processing.patch [new file with mode: 0644]
packages/ipkg/ipkg_0.99.163.bb
packages/ipsec-tools/ipsec-tools_0.6.6.bb
packages/ixp4xx/ixp4xx-npe_2.3.bb
packages/js/files/arm/.mtn2git_empty [moved from packages/obsolete/nslu2/nslu2-kernel/.mtn2git_empty with 100% similarity]
packages/js/files/arm/jsautocfg.h [moved from packages/mozilla/firefox-1.5.0.6/jsautocfg.h with 88% similarity]
packages/js/files/powerpc/.mtn2git_empty [moved from packages/obsolete/nslu2/nslu2-kernel/2.6.11-mm/.mtn2git_empty with 100% similarity]
packages/js/files/powerpc/jsautocfg.h [moved from packages/mozilla/firefox-2.0/powerpc/jsautocfg.h with 100% similarity]
packages/js/js_1.5.bb
packages/kakasi/.mtn2git_empty [moved from packages/obsolete/nslu2/nslu2-kernel/2.6.12/.mtn2git_empty with 100% similarity]
packages/kakasi/files/.mtn2git_empty [moved from packages/obsolete/nslu2/nslu2-kernel/2.6.14-mm/.mtn2git_empty with 100% similarity]
packages/kakasi/files/makefile.patch [new file with mode: 0644]
packages/kakasi/kakasi-native_2.3.4.bb [new file with mode: 0644]
packages/kakasi/kakasi.inc [new file with mode: 0644]
packages/kakasi/kakasi_2.3.4.bb [new file with mode: 0644]
packages/libaal/libaal_1.0.4.bb
packages/libeventdb/libeventdb_0.19.bb
packages/libeventdb/libeventdb_0.21.bb
packages/libeventdb/libeventdb_0.30.bb
packages/libeventdb/libeventdb_svn.bb
packages/libgpelaunch/libgpelaunch_svn.bb [new file with mode: 0644]
packages/libgpepimc/libgpepimc-hildon_0.5.bb
packages/libgpepimc/libgpepimc.inc
packages/libgpepimc/libgpepimc_svn.bb [new file with mode: 0644]
packages/libgpeplugin/libgpeplugin_cvs.bb
packages/libgpeplugin/libgpeplugin_svn.bb [new file with mode: 0644]
packages/libgpevtype/libgpevtype_0.15.bb
packages/libgpevtype/libgpevtype_0.16.bb
packages/libgpevtype/libgpevtype_0.17.bb
packages/libgpevtype/libgpevtype_svn.bb
packages/libgpewidget/libgpewidget-hildon_0.102.bb
packages/libgpewidget/libgpewidget_0.114.bb
packages/libgpewidget/libgpewidget_svn.bb
packages/libgtkinput/libgtkinput_svn.bb [new file with mode: 0644]
packages/libgtkstylus/libgtkstylus_svn.bb [new file with mode: 0644]
packages/libhandoff/libhandoff_svn.bb [moved from packages/libhandoff/libhandoff_cvs.bb with 71% similarity]
packages/libidl/libidl_0.8.2.bb
packages/libidl/libidl_0.8.3.bb
packages/libidl/libidl_0.8.6.bb
packages/libschedule/libschedule_svn.bb [new file with mode: 0644]
packages/libtododb/libtododb_svn.bb [new file with mode: 0644]
packages/libxsettings-client/libxsettings-client_svn.bb [new file with mode: 0644]
packages/libxsettings/files/.mtn2git_empty [moved from packages/obsolete/nslu2/nslu2-kernel/2.6.14/.mtn2git_empty with 100% similarity]
packages/libxsettings/files/Makefile.dpkg_ipkg [new file with mode: 0644]
packages/libxsettings/files/Makefile.translation [new file with mode: 0644]
packages/libxsettings/files/libxsettings-svn-makefile-fix.patch [new file with mode: 0644]
packages/libxsettings/libxsettings_svn.bb [new file with mode: 0644]
packages/lighttpd/conf/etc/lighttpd.conf
packages/lighttpd/lighttpd_1.4.13.bb
packages/linphone/linphone_1.6.0.bb
packages/linux/ixp4xx-kernel.inc
packages/linux/ixp4xx-kernel/2.6.19/defconfig
packages/linux/ixp4xx-kernel/2.6.19/series
packages/linux/ixp4xx-kernel/2.6.20/defconfig
packages/linux/ixp4xx-kernel/2.6.20/series
packages/linux/ixp4xx-kernel_2.6.19.bb
packages/linux/ixp4xx-kernel_2.6.20.bb
packages/linux/linux/progear/progear_bl-r6.patch
packages/linux/linux/simpad/.mtn2git_empty [moved from packages/obsolete/nslu2/nslu2-kernel/2.6.15/.mtn2git_empty with 100% similarity]
packages/linux/linux/simpad/defconfig [new file with mode: 0644]
packages/linux/linux/simpad/linux-2.6.20.SIMpad.mq200.patch [new file with mode: 0644]
packages/linux/linux/simpad/linux-2.6.20.SIMpad.ucb1x00-switches.patch [new file with mode: 0644]
packages/linux/linux_2.6.20.bb
packages/madwifi/files/10-xscale-be-elf-copts.patch
packages/madwifi/files/10-xscale-le-elf-copts.patch
packages/madwifi/files/20-xscale-VFP-wackelf.patch [moved from packages/madwifi/files/slugos-VFP-wackelf.patch with 100% similarity]
packages/madwifi/files/slugos-xscale-be-elf-copts.patch [deleted file]
packages/madwifi/files/slugos-xscale-le-elf-copts.patch [deleted file]
packages/madwifi/madwifi-ng-r1844-20061208/10-xscale-be-elf-copts.patch [deleted file]
packages/madwifi/madwifi-ng-r1844-20061208/10-xscale-le-elf-copts.patch [deleted file]
packages/madwifi/madwifi-ng_r.inc
packages/madwifi/madwifi-ng_r1527-20060425.bb [deleted file]
packages/madwifi/madwifi-ng_r1692-20060723.bb [deleted file]
packages/madwifi/madwifi-ng_r2100-20070210.bb [moved from packages/madwifi/madwifi-ng_r1871-20061229.bb with 100% similarity]
packages/matchbox2/.mtn2git_empty [moved from packages/obsolete/nslu2/nslu2-kernel/2.6/.mtn2git_empty with 100% similarity]
packages/matchbox2/files/.mtn2git_empty [moved from packages/obsolete/nslu2/nslu2-kernel/files/.mtn2git_empty with 100% similarity]
packages/matchbox2/files/glib-2.8-backport.patch [new file with mode: 0644]
packages/matchbox2/matchbox-panel-2_svn.bb [new file with mode: 0644]
packages/mediatomb/mediatomb_svn.bb
packages/meta/slugos-native.bb
packages/meta/slugos-packages.bb
packages/mozilla/files/arm/.mtn2git_empty [moved from packages/sqlite/sqlite3-3.3.7/.mtn2git_empty with 100% similarity]
packages/mozilla/files/arm/jsautocfg.h [moved from packages/mozilla/firefox-2.0/arm/jsautocfg.h with 88% similarity]
packages/mozilla/files/powerpc/.mtn2git_empty [moved from packages/sqlite/sqlite3-3.3.9/.mtn2git_empty with 100% similarity]
packages/mozilla/files/powerpc/jsautocfg.h [moved from packages/mozilla/firefox-1.0.7/jsautocfg.h with 85% similarity]
packages/mozilla/firefox-2.0.0.1/.mtn2git_empty [new file with mode: 0644]
packages/mozilla/firefox-2.0.0.1/jsautocfg-dontoverwrite.patch [new file with mode: 0644]
packages/mozilla/firefox-2.0.0.1/jsdtoa-float-type.patch [new file with mode: 0644]
packages/mozilla/firefox-2.0.0.1/mozconfig [new file with mode: 0644]
packages/mozilla/firefox-2.0.0.1/mult-crash-fix.patch [new file with mode: 0644]
packages/mozilla/firefox-2.0.0.1/security-cross.patch [new file with mode: 0644]
packages/mozilla/firefox-2.0.0.1/xptcinvoke-arm.patch [new file with mode: 0644]
packages/mozilla/firefox-2.0.0.1/xptcstubs.patch [new file with mode: 0644]
packages/mozilla/firefox_2.0.0.1.bb [new file with mode: 0644]
packages/mrxvt/mrxvt_0.4.1.bb
packages/mtpaint/.mtn2git_empty [new file with mode: 0644]
packages/mtpaint/mtpaint_3.02.bb [new file with mode: 0644]
packages/musicpd/glurp_0.11.3.bb
packages/musicpd/gmpc_0.11.2.bb
packages/musicpd/gmpc_0.13.0.bb
packages/musicpd/gmpc_svn.bb
packages/musicpd/libmpd_svn.bb
packages/musicpd/mpc_0.11.2.bb
packages/musicpd/mpc_0.12.0.bb
packages/musicpd/mpd-alsa_0.11.5.bb
packages/musicpd/mpd_0.11.2.bb
packages/musicpd/mpd_0.11.5.bb
packages/musicpd/mpd_svn.bb
packages/musicpd/ncmpc_0.11.1.bb
packages/musicpd/py-libmpdclient_0.10.0.bb
packages/nasm/nasm_0.98.38.bb
packages/netcat/netcat_0.7.1.bb
packages/networkmanager/networkmanager_0.6.4.bb
packages/nis/nis-all.bb
packages/nis/nis.inc
packages/nonworking/bluez-bluefw/bluez-bluefw_0.9.bb
packages/nonworking/icecast/icecast_2.2.0.bb
packages/nonworking/lufs/lufs_0.9.7.bb
packages/nonworking/pixdev/pixdev-stable_0.1.bb
packages/nonworking/python/python-gsl_0.2.0.bb
packages/nonworking/qualendar/qualendar_0.8.0.bb
packages/nonworking/snmpz/snmpz_1.1.bb
packages/nonworking/unison/unison_2.9.1.bb
packages/nonworking/xfree86/xfree86_4.3.0.bb
packages/notification-daemon/notification-daemon_0.3.5.bb
packages/notification-daemon/notification-daemon_0.3.6.bb
packages/obsolete/nslu2/nslu2-kernel.inc [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.11-mm/bootramdisk.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.11-mm/defconfig [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.11-mm/reiser4.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.11-mm/x1205-rtc.c-mm.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.12/defconfig [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.12/disk_led_blinking.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.12/missing-exports.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.12/nslu2-arch.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.12/nslu2-setup.c [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.12/x1205-rtc.c-id.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14-mm/00-memory-h-page-shift.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14-mm/30-i2c-x1205-mm1.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14-mm/80-nslu2-class-device-create.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14-mm/defconfig [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14/10-ixp4xx-copy-from.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14/10-ixp4xx-le.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14/10-mtdpart-redboot-fis-byteswap.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14/15-ixp4xx-writesb-l-w.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14/18-ixp4xx-io-h-addr.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14/19-jffs2-force-be.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14/20-timer.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14/28-spinlock-up.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14/29-ipv4-route-c-spinlock.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14/30-i2c-x1205.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14/50-nslu2-arch.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14/55-nslu2-rtc.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14/60-nslu2-beeper.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14/70-nslu2-io.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14/75-nslu2-leds.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14/90-ixp4xx-pci-le.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14/90-pegasus.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.14/defconfig [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.15/00-memory-h-page-shift.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.15/10-mtdpart-redboot-fis-byteswap.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.15/15-jffs2-endian-config.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.15/40-rtc-class.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.15/60-nslu2-beeper.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.15/75-nslu2-leds.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.15/80-nslu2-io.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.15/85-timer.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6.15/defconfig [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6/40-scsi-idle.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6/91-maclist.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6/92-nslu2-maclist.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6/compile-switches.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6/ixp4xx-regs.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6/nslu2-io_rpbutton.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6/thumb-swi.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6/timer.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/2.6/x1205-rtc.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel/files/anonymiser.patch [deleted file]
packages/obsolete/nslu2/nslu2-kernel_2.6.14-mm1.bb [deleted file]
packages/obsolete/nslu2/nslu2-kernel_2.6.14.5.bb [deleted file]
packages/obsolete/nslu2/nslu2-kernel_2.6.15.bb [deleted file]
packages/openmoko-apps/.mtn2git_empty [new file with mode: 0644]
packages/openmoko-apps/openmoko-appmanager_svn.bb [new file with mode: 0644]
packages/openmoko-apps/openmoko-dialer_svn.bb [new file with mode: 0644]
packages/openmoko-apps/openmoko-footer_svn.bb [new file with mode: 0644]
packages/openmoko-apps/openmoko-mainmenu_svn.bb [new file with mode: 0644]
packages/openmoko-apps/openmoko-simplemediaplayer_svn.bb [new file with mode: 0644]
packages/openmoko-apps/openmoko-taskmanager_svn.bb [new file with mode: 0644]
packages/openmoko-base/.mtn2git_empty [new file with mode: 0644]
packages/openmoko-base/files/.mtn2git_empty [new file with mode: 0644]
packages/openmoko-base/files/session [new file with mode: 0644]
packages/openmoko-base/openmoko-common_svn.bb [new file with mode: 0644]
packages/openmoko-base/openmoko-libs_svn.bb [new file with mode: 0644]
packages/openmoko-base/openmoko-session_svn.bb [new file with mode: 0644]
packages/openmoko-base/openmoko-theme-standard_svn.bb [new file with mode: 0644]
packages/openmoko-examples/.mtn2git_empty [new file with mode: 0644]
packages/openmoko-examples/openmoko-finger-demo_svn.bb [new file with mode: 0644]
packages/openmoko-examples/openmoko-panel-demo-simple_svn.bb [new file with mode: 0644]
packages/openmoko-examples/openmoko-panel-demo_svn.bb [new file with mode: 0644]
packages/openmoko-examples/openmoko-stylus-demo-simple_svn.bb [new file with mode: 0644]
packages/openmoko-examples/openmoko-stylus-demo_svn.bb [new file with mode: 0644]
packages/openmoko-panel-plugins/.mtn2git_empty [new file with mode: 0644]
packages/openmoko-panel-plugins/openmoko-panel-battery_svn.bb [new file with mode: 0644]
packages/openmoko-panel-plugins/openmoko-panel-clock_svn.bb [new file with mode: 0644]
packages/openmoko-pim/.mtn2git_empty [new file with mode: 0644]
packages/openmoko-pim/openmoko-contacts/.mtn2git_empty [new file with mode: 0644]
packages/openmoko-pim/openmoko-contacts/index.theme [new file with mode: 0644]
packages/openmoko-pim/openmoko-contacts/intltool-update.in [new file with mode: 0644]
packages/openmoko-pim/openmoko-contacts/stock_contact.png [new file with mode: 0644]
packages/openmoko-pim/openmoko-contacts/stock_person.png [new file with mode: 0644]
packages/openmoko-pim/openmoko-contacts_svn.bb [new file with mode: 0644]
packages/openmoko-pim/openmoko-dates/.mtn2git_empty [new file with mode: 0644]
packages/openmoko-pim/openmoko-dates/compile-fix.patch [new file with mode: 0644]
packages/openmoko-pim/openmoko-dates_svn.bb [new file with mode: 0644]
packages/openmoko-tools/.mtn2git_empty [new file with mode: 0644]
packages/openmoko-tools/openmoko-chordmaster_svn.bb [new file with mode: 0644]
packages/ossie/ossie-channeldemo_svn.bb
packages/ossie/ossie-demo_svn.bb
packages/ossie/ossie-gpp-device_svn.bb
packages/ossie/ossie-interpolator_svn.bb
packages/ossie/ossie-modulator_svn.bb
packages/ossie/ossie-nodebooter_svn.bb
packages/ossie/ossie-randombits_svn.bb
packages/ossie/ossie-rxdemo_svn.bb
packages/ossie/ossie-sigproc_svn.bb
packages/ossie/ossie-soundout-device_svn.bb
packages/ossie/ossie-standardinterfaces_svn.bb
packages/ossie/ossie-tx-random-data_svn.bb
packages/ossie/ossie-usrp-device_svn.bb
packages/ossie/ossie-usrp-tx-control_svn.bb
packages/ossie/ossiecf_svn.bb
packages/pam/libpam_0.79.bb
packages/pciutils/pciutils-2.2.4/configure-uclibc.patch [new file with mode: 0644]
packages/pciutils/pciutils_2.2.4.bb
packages/poptop/poptop_1.3.0.bb
packages/pptp-linux/pptp-linux_1.5.0.bb
packages/qpe-games/hexatrolic_1.0beta3.bb
packages/qpe-games/labyrinth_0.7.bb
packages/qpf-fonts/terminus.bb
packages/radlib/radlib-common.inc
packages/reiser4progs/reiser4progs_1.0.4.bb
packages/shared-mime-info/shared-mime-info_0.20.bb [moved from packages/shared-mime-info/shared-mime-info_0.16.bb with 68% similarity]
packages/slugos-init/slugos-init_0.10.bb
packages/sqlite/sqlite3-3.3.12/.mtn2git_empty [new file with mode: 0644]
packages/sqlite/sqlite3-3.3.12/cross-compile.patch [moved from packages/sqlite/sqlite3-3.3.7/cross-compile.patch with 100% similarity]
packages/sqlite/sqlite3-3.3.12/ldflags.patch [moved from packages/sqlite/sqlite3-3.3.9/ldflags.patch with 100% similarity]
packages/sqlite/sqlite3-3.3.12/libtool.patch [moved from packages/sqlite/sqlite3-3.3.7/libtool.patch with 100% similarity]
packages/sqlite/sqlite3-3.3.7/ldflags.patch [deleted file]
packages/sqlite/sqlite3-3.3.9/cross-compile.patch [deleted file]
packages/sqlite/sqlite3-3.3.9/libtool.patch [deleted file]
packages/sqlite/sqlite3_3.3.12.bb [moved from packages/sqlite/sqlite3_3.3.7.bb with 66% similarity]
packages/sqlite/sqlite3_3.3.9.bb [deleted file]
packages/suspend-desktop/suspend-desktop_1.0.bb
packages/tasks/task-openmoko.bb [new file with mode: 0644]
packages/tasks/task-slugos.bb [new file with mode: 0644]
packages/texmaker/texmaker_1.3.bb
packages/tinymail/tinymail_svn.bb
packages/treecc/treecc_0.3.6.bb
packages/uboot-utils/uboot-utils_1.1.2.bb
packages/uboot/files/fix-arm920t-eabi.patch [new file with mode: 0644]
packages/uboot/files/gta01_nand.h [new file with mode: 0644]
packages/uboot/files/qt2410.h [new file with mode: 0644]
packages/uboot/files/qt2410_nand.h [new file with mode: 0644]
packages/uboot/files/qt2410_ram.h [new file with mode: 0644]
packages/uboot/files/u-boot-20060807-qt2410.patch [new file with mode: 0644]
packages/uboot/files/u-boot-20060807.tar.bz2 [new file with mode: 0644]
packages/uboot/files/u-boot-20060907-gta01.patch [new file with mode: 0644]
packages/uboot/files/u-boot-20060907.tar.bz2 [new file with mode: 0644]
packages/uboot/files/u-boot-20061030-ext2load_hex.patch [new file with mode: 0644]
packages/uboot/files/u-boot-20061030-gta01bv2.patch [new file with mode: 0644]
packages/uboot/files/u-boot-20061030-gta01v4.patch [new file with mode: 0644]
packages/uboot/files/u-boot-20061030-qt2410-gta01.patch [new file with mode: 0644]
packages/uboot/u-boot.inc [new file with mode: 0644]
packages/uboot/u-boot_1.1.2.bb
packages/uboot/u-boot_1.1.4.bb
packages/uboot/u-boot_1.1.6.bb
packages/uboot/u-boot_LABEL.2006.06.30.2020.bb
packages/uboot/u-boot_git.bb
packages/uboot/uboot-gta01_svn.bb [new file with mode: 0644]
packages/uboot/uboot-qt2410_0.0+cvs20061030.bb [new file with mode: 0644]
packages/uclibc/uclibc-0.9.28/powerpc/.mtn2git_empty [new file with mode: 0644]
packages/uclibc/uclibc-0.9.28/powerpc/uClibc.config [new file with mode: 0644]
packages/uclibc/uclibc-cvs/powerpc/.mtn2git_empty [new file with mode: 0644]
packages/uclibc/uclibc-cvs/powerpc/uClibc.config [new file with mode: 0644]
packages/upslug/upslug-native_1.0.bb
packages/upslug/upslug-native_cvs.bb
packages/xerces-c/xerces-c_2.6.0.bb
packages/xerces-c/xerces-c_2.7.0.bb
packages/xoo/files/.mtn2git_empty [new file with mode: 0644]
packages/xoo/files/gta01.png [new file with mode: 0644]
packages/xoo/files/gta01.xml [new file with mode: 0644]
packages/xoo/xoo_svn.bb
packages/xorg-app/mkfontdir-native_X11R7.0-1.0.1.bb
packages/xorg-app/mkfontdir-native_X11R7.1-1.0.2.bb
packages/xorg-app/mkfontscale-native_X11R7.0-1.0.1.bb
packages/xorg-app/xorg-app-common.inc
packages/xorg-app/xterm_207.bb
packages/xscreensaver/xscreensaver_4.16.bb
packages/xscreensaver/xscreensaver_4.22.bb
packages/xserver-kdrive-common/.mtn2git_empty [new file with mode: 0644]
packages/xserver-kdrive-common/xserver-kdrive-common/.mtn2git_empty [new file with mode: 0644]
packages/xserver-kdrive-common/xserver-kdrive-common/etc/.mtn2git_empty [new file with mode: 0644]
packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/.mtn2git_empty [new file with mode: 0644]
packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xdefaults [new file with mode: 0644]
packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xinit [new file with mode: 0644]
packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xserver [new file with mode: 0644]
packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession [new file with mode: 0644]
packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession.d/.mtn2git_empty [new file with mode: 0644]
packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession.d/30xTs_Calibrate [new file with mode: 0644]
packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession.d/60xXDefaults [new file with mode: 0644]
packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession.d/90xXWindowManager [new file with mode: 0644]
packages/xserver-kdrive-common/xserver-kdrive-common_0.1.bb [new file with mode: 0644]
packages/xserver-kdrive-common/xserver-nodm-init.bb [new file with mode: 0644]
packages/xserver-kdrive-common/xserver-nodm-init/.mtn2git_empty [new file with mode: 0644]
packages/xserver-kdrive-common/xserver-nodm-init/xserver-nodm [new file with mode: 0755]
packages/yeaphone/yeaphone_0.1.bb
packages/zsafe/zsafe_2.1.3.bb
site/arm-linux
site/common-glibc
site/powerpc-linux

index 054fc18..e34d154 100644 (file)
@@ -25,6 +25,10 @@ Machines:   storcenter
 Recipes:    apache2, apc, gallery, initscripts-openprotium, linux-storcenter*, 
 Recipes:    modphp, sccd, uboot-utils, xfsprogs
 
+Person:     Bernhard Guillon
+Mail:       Bernhard.Guillon@opensimpad.org
+Machines:   simpad
+
 Person:     Cliff Brake
 Mail:       cbrake@bec-systems.com
 Website:    http://bec-systems.com
@@ -114,10 +118,10 @@ Recipes:    mx31ads-kernel*
 Person:     Marcin Juszkiewicz
 Mail:       hrw@openembedded.org
 Website:    http://www.hrw.one.pl/
-Machines:   collie, spitz, tosa
+Machines:   collie, spitz, tosa, progear
 Distros:    OpenZaurus, celinux-test
 Interests:  WiFi, Opie, Qtopia fonts, Native SDK
-Recipes:    hostap*, orinoco*, wpa-supplicant*, wireless-tools, keymaps
+Recipes:    linux, hostap*, orinoco*, wpa-supplicant*, wireless-tools, keymaps
 Recipes:    linux-rp, kdepimpi, subapplet, corsair, gammu, iqnotes, zbedic
 Recipes:    ttf-fonts/* qpf-fonts/*
 
@@ -141,6 +145,12 @@ Machines:   omap5912osk
 Distros:    openomap
 Recipes:    xerces-c, omniorb
 
+Person:     Philippe De Swert
+Mail:       philippedeswert@scarlet.be
+Recipes:    gpe-*_svn, libgpe*_svn, libgtkstylus_svn, libtododb_svn
+Recipes:    libxsettings*_svn, libgtkinput_svn, libschedule_svn
+Recipes:    blueprobe_svn, detect-stylus_svn.
+
 Person:     Richard Purdie
 Mail:       rpurdie@rpsys.net
 Distros:    poky, openzaurus, Ã…ngström
diff --git a/classes/dsmg600-image.bbclass b/classes/dsmg600-image.bbclass
new file mode 100644 (file)
index 0000000..6920fe5
--- /dev/null
@@ -0,0 +1,19 @@
+dsmg600_pack_image () {
+       install -d ${DEPLOY_DIR_IMAGE}/firmupgrade
+       install -m 0755 ${DEPLOY_DIR_IMAGE}/zImage-dsmg600${SITEINFO_ENDIANESS} \
+               ${DEPLOY_DIR_IMAGE}/firmupgrade/ip-ramdisk
+       install -m 0644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
+               ${DEPLOY_DIR_IMAGE}/firmupgrade/rootfs.gz
+       touch ${DEPLOY_DIR_IMAGE}/firmupgrade/usr.cramfs
+       chmod 0644 ${DEPLOY_DIR_IMAGE}/firmupgrade/usr.cramfs
+       echo "hwid=1.0.1"      >${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
+       echo "model=dsm-g600" >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
+       echo "vendor=dlink"   >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
+       echo ""               >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
+       chmod 0744 ${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
+       tar -c -f ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-dsmg600.bin \
+               -C ${DEPLOY_DIR_IMAGE} firmupgrade
+       rm -rf ${DEPLOY_DIR_IMAGE}/firmupgrade
+}
+
+IMAGE_POSTPROCESS_COMMAND += "dsmg600_pack_image; "
index 21f441e..2434ca1 100644 (file)
@@ -307,10 +307,6 @@ python populate_packages_prepend () {
                                        continue
                                on = legitimize_package_name(m.group(1))
                                dependency_pkg = format % on
-                               v = bb.data.getVar("PARALLEL_INSTALL_MODULES", d, 1) or "0"
-                               if v == "1":
-                                       kv = bb.data.getVar("KERNEL_MAJOR_VERSION", d, 1)
-                                       dependency_pkg = "%s-%s" % (dependency_pkg, kv)
                                dependencies.append(dependency_pkg)
                        return dependencies
                return []
@@ -386,36 +382,4 @@ python populate_packages_prepend () {
        bb.data.setVar('DESCRIPTION_' + metapkg, 'Kernel modules meta package', d)
        packages.append(metapkg)
        bb.data.setVar('PACKAGES', ' '.join(packages), d)
-
-       v = bb.data.getVar("PARALLEL_INSTALL_MODULES", d, 1) or "0"
-       if v == "1":
-               kv = bb.data.getVar("KERNEL_MAJOR_VERSION", d, 1)
-               packages = bb.data.getVar("PACKAGES", d, 1).split()
-               module_re = re.compile("^kernel-module-")
-
-               newmetapkg = "kernel-modules-%s" % kv
-               bb.data.setVar('ALLOW_EMPTY_' + newmetapkg, "1", d)
-               bb.data.setVar('FILES_' + newmetapkg, "", d)
-
-               newmetapkg_rdepends = []
-
-               for p in packages:
-                       if not module_re.match(p):
-                               continue
-                       pkg = bb.data.getVar("PKG_%s" % p, d, 1) or p
-                       newpkg = "%s-%s" % (pkg, kv)
-                       bb.data.setVar("PKG_%s" % p, newpkg, d)
-                       rprovides = bb.data.getVar("RPROVIDES_%s" % p, d, 1)
-                       if rprovides:
-                               rprovides = "%s %s" % (rprovides, pkg)
-                       else:
-                               rprovides = pkg
-                       bb.data.setVar("RPROVIDES_%s" % p, rprovides, d)
-                       newmetapkg_rdepends.append(newpkg)
-
-               bb.data.setVar('RDEPENDS_' + newmetapkg, ' '.join(newmetapkg_rdepends), d)
-               bb.data.setVar('DESCRIPTION_' + newmetapkg, 'Kernel modules meta package', d)
-               packages.append(newmetapkg)
-               bb.data.setVar('PACKAGES', ' '.join(packages), d)
-
 }
index e58c228..4e2e2da 100644 (file)
@@ -32,10 +32,6 @@ def get_kernelmajorversion(p):
 def linux_module_packages(s, d):
        import bb, os.path
        suffix = ""
-       if (bb.data.getVar("PARALLEL_INSTALL_MODULES", d, 1) == "1"):
-               file = bb.data.expand('${STAGING_KERNEL_DIR}/kernel-abiversion', d)
-               if (os.path.exists(file)):
-                    suffix = "-%s" % (get_kernelmajorversion(base_read_file(file)))
        return " ".join(map(lambda s: "kernel-module-%s%s" % (s.lower().replace('_', '-').replace('@', '+'), suffix), s.split()))
 
 # that's all
index 6089f90..7eac001 100644 (file)
@@ -3,23 +3,6 @@ DEPENDS += "virtual/kernel"
 
 inherit module-base
 
-python populate_packages_prepend() {
-       v = bb.data.getVar("PARALLEL_INSTALL_MODULES", d, 1) or "0"
-       if v == "1":
-               kv = bb.data.getVar("KERNEL_VERSION", d, 1)
-               packages = bb.data.getVar("PACKAGES", d, 1)
-               for p in packages.split():
-                       pkg = bb.data.getVar("PKG_%s" % p, d, 1) or p
-                       newpkg = "%s-%s" % (pkg, kv)
-                       bb.data.setVar("PKG_%s" % p, newpkg, d)
-                       rprovides = bb.data.getVar("RPROVIDES_%s" % p, d, 1)
-                       if rprovides:
-                               rprovides = "%s %s" % (rprovides, pkg)
-                       else:
-                               rprovides = pkg
-                       bb.data.setVar("RPROVIDES_%s" % p, rprovides, d)
-}
-
 module_do_compile() {
        unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
        oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR}   \
diff --git a/classes/nas100d-image.bbclass b/classes/nas100d-image.bbclass
new file mode 100644 (file)
index 0000000..0d48ebd
--- /dev/null
@@ -0,0 +1,19 @@
+nas100d_pack_image () {
+       install -d ${DEPLOY_DIR_IMAGE}/firmupgrade
+       install -m 0755 ${DEPLOY_DIR_IMAGE}/zImage-nas100d${SITEINFO_ENDIANESS} \
+               ${DEPLOY_DIR_IMAGE}/firmupgrade/ip-ramdisk
+       install -m 0644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
+               ${DEPLOY_DIR_IMAGE}/firmupgrade/rootfs.gz
+       touch ${DEPLOY_DIR_IMAGE}/firmupgrade/usr.cramfs
+       chmod 0644 ${DEPLOY_DIR_IMAGE}/firmupgrade/usr.cramfs
+       echo "hwid=1.0.1"      >${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
+       echo "model=koala"    >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
+       echo "vendor=iomega"  >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
+       echo ""               >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
+       chmod 0744 ${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
+       tar -c -f ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-nas100d.bin \
+               -C ${DEPLOY_DIR_IMAGE} firmupgrade
+       rm -rf ${DEPLOY_DIR_IMAGE}/firmupgrade
+}
+
+IMAGE_POSTPROCESS_COMMAND += "nas100d_pack_image; "
diff --git a/classes/nslu2-image.bbclass b/classes/nslu2-image.bbclass
new file mode 100644 (file)
index 0000000..e1af34f
--- /dev/null
@@ -0,0 +1,20 @@
+nslu2_pack_image () {
+       install -d ${DEPLOY_DIR_IMAGE}/slug
+       install -m 0644 ${STAGING_LIBDIR}/nslu2-binaries/RedBoot \
+                       ${STAGING_LIBDIR}/nslu2-binaries/Trailer \
+                       ${STAGING_LIBDIR}/nslu2-binaries/SysConf \
+                       ${DEPLOY_DIR_IMAGE}/slug/
+       install -m 0644 ${DEPLOY_DIR_IMAGE}/zImage-nslu2${SITEINFO_ENDIANESS} \
+               ${DEPLOY_DIR_IMAGE}/slug/vmlinuz
+       install -m 0644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
+               ${DEPLOY_DIR_IMAGE}/slug/flashdisk.jffs2
+       install -m 0644 ${STAGING_FIRMWARE_DIR}/NPE-B ${DEPLOY_DIR_IMAGE}/slug/
+       cd ${DEPLOY_DIR_IMAGE}/slug
+       slugimage -p -b RedBoot -s SysConf -k vmlinuz \
+               -r Ramdisk:1,Flashdisk:flashdisk.jffs2 -m NPE-B -t Trailer \
+               -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-nslu2.bin
+       rm -rf ${DEPLOY_DIR_IMAGE}/slug
+}
+
+EXTRA_IMAGEDEPENDS += 'slugimage-native nslu2-linksys-firmware ixp4xx-npe upslug2-native'
+IMAGE_POSTPROCESS_COMMAND += "nslu2_pack_image; "
diff --git a/classes/nslu2-jffs2-image.bbclass b/classes/nslu2-jffs2-image.bbclass
deleted file mode 100644 (file)
index 56ad0f0..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-NSLU2_SLUGIMAGE_ARGS ?= ""
-
-nslu2_pack_image () {
-       install -d ${DEPLOY_DIR_IMAGE}/slug
-       install -m 0644 ${STAGING_LIBDIR}/nslu2-binaries/RedBoot \
-                       ${STAGING_LIBDIR}/nslu2-binaries/Trailer \
-                       ${STAGING_LIBDIR}/nslu2-binaries/SysConf \
-                       ${DEPLOY_DIR_IMAGE}/slug/
-       install -m 0644 ${DEPLOY_DIR_IMAGE}/zImage-${IMAGE_BASENAME} ${DEPLOY_DIR_IMAGE}/slug/vmlinuz
-       install -m 0644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 ${DEPLOY_DIR_IMAGE}/slug/flashdisk.jffs2
-       cd ${DEPLOY_DIR_IMAGE}/slug
-       slugimage -p -b RedBoot -s SysConf -r Ramdisk:1,Flashdisk:flashdisk.jffs2 -t Trailer \
-         -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.flashdisk.img ${NSLU2_SLUGIMAGE_ARGS}
-       rm -rf ${DEPLOY_DIR_IMAGE}/slug
-}
-
-EXTRA_IMAGEDEPENDS += 'slugimage-native nslu2-linksys-firmware'
-IMAGE_POSTPROCESS_COMMAND += "nslu2_pack_image; "
diff --git a/classes/nslu2-ramdisk-image.bbclass b/classes/nslu2-ramdisk-image.bbclass
deleted file mode 100644 (file)
index 0b54585..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-NSLU2_SLUGIMAGE_ARGS ?= ""
-
-nslu2_pack_image () {
-       install -d ${DEPLOY_DIR_IMAGE}/slug
-       install -m 0644 ${STAGING_LIBDIR}/nslu2-binaries/RedBoot \
-                       ${STAGING_LIBDIR}/nslu2-binaries/Trailer \
-                       ${STAGING_LIBDIR}/nslu2-binaries/SysConf \
-                       ${DEPLOY_DIR_IMAGE}/slug/
-       install -m 0644 ${DEPLOY_DIR_IMAGE}/zImage-${IMAGE_BASENAME} ${DEPLOY_DIR_IMAGE}/slug/vmlinuz
-       install -m 0644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext2.gz ${DEPLOY_DIR_IMAGE}/slug/ramdisk.ext2.gz
-       cd ${DEPLOY_DIR_IMAGE}/slug
-       slugimage -p -b RedBoot -s SysConf -r Ramdisk:ramdisk.ext2.gz -t Trailer \
-         -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.ramdisk.img ${NSLU2_SLUGIMAGE_ARGS}
-       rm -rf ${DEPLOY_DIR_IMAGE}/slug
-}
-
-EXTRA_IMAGEDEPENDS += 'slugimage-native nslu2-linksys-firmware'
-IMAGE_POSTPROCESS_COMMAND += "nslu2_pack_image; "
diff --git a/classes/openmoko-base.bbclass b/classes/openmoko-base.bbclass
new file mode 100644 (file)
index 0000000..35243c9
--- /dev/null
@@ -0,0 +1,19 @@
+HOMEPAGE = "http://www.openmoko.org"
+LICENSE ?= "GPL"
+OPENMOKO_RELEASE ?= "OM-2007"
+OPENMOKO_MIRROR ?= "svn://svn.openmoko.org/trunk"
+
+def openmoko_base_get_subdir(d):
+    import bb
+    openmoko, section = bb.data.getVar('SECTION', d, 1).split("/")
+    if section == 'base' or section == 'libs': return ""
+    elif section in 'apps tools pim'.split(): return "applications"
+    elif section == "panel-plugin": return "panel-plugins"
+    else: return section
+
+SUBDIR = "${@openmoko_base_get_subdir(d)}"
+
+SRC_URI := "${OPENMOKO_MIRROR}/src/target/${OPENMOKO_RELEASE}/${SUBDIR};module=${PN};proto=http"
+S = "${WORKDIR}/${PN}"
+
+FILES_${PN} += "${datadir}/icons"
diff --git a/classes/openmoko-panel-plugin.bbclass b/classes/openmoko-panel-plugin.bbclass
new file mode 100644 (file)
index 0000000..0494b41
--- /dev/null
@@ -0,0 +1,6 @@
+SECTION = "openmoko/panel-plugin"
+DEPENDS += "matchbox-panel-2"
+
+inherit openmoko
+
+FILES_${PN} = "${libdir}/matchbox-panel/lib*.so* ${datadir}"
diff --git a/classes/openmoko.bbclass b/classes/openmoko.bbclass
new file mode 100644 (file)
index 0000000..808ab8f
--- /dev/null
@@ -0,0 +1,3 @@
+inherit openmoko-base autotools pkgconfig
+
+DEPENDS_prepend = "${@["openmoko-libs ", ""][(bb.data.getVar('PN', d, 1) == 'openmoko-libs')]}"
index 5d6d564..80e6e32 100644 (file)
@@ -40,7 +40,8 @@ def get_siteinfo_list(d):
                "mipsel-linux":            "endian-little bit-32 common-glibc",\
                "mipsel-linux-uclibc":     "endian-little bit-32 common-uclibc",\
                "powerpc-darwin":          "endian-big bit-32 common-darwin",\
-               "powerpc-linux":           "endian-big bit-32 common-glibc",\
+               "ppc-linux":               "endian-big bit-32 common-glibc",\ 
+              "powerpc-linux":           "endian-big bit-32 common-glibc",\
                "powerpc-linux-uclibc":    "endian-big bit-32 common-uclibc",\
                "sh3-linux":               "endian-little bit-32 common-glibc sh-common",\
                "sh4-linux":               "endian-little bit-32 common-glibc sh-common",\
index f86dd4c..55c0e51 100644 (file)
@@ -324,6 +324,7 @@ SOURCEFORGE_MIRROR = "http://surfnet.dl.sourceforge.net"
 GPE_MIRROR = "http://gpe.linuxtogo.org/download/source"
 GPEPHONE_MIRROR = "http://gpephone.linuxtogo.org/download/gpephone"
 GPE_SVN = "svn://projects.linuxtogo.org/svn/gpe/trunk/base;module=${PN}"
+GPE_EXTRA_SVN = "svn://projects.linuxtogo.org/svn/gpe/trunk/extra;module=${PN}"
 GPEPHONE_SVN = "svn://projects.linuxtogo.org/svn/gpephone/trunk/source;module=${PN}"
 XLIBS_MIRROR = "http://xlibs.freedesktop.org/release"
 XORG_MIRROR = "http://xorg.freedesktop.org/releases"
index 362e6e5..6e7adda 100644 (file)
@@ -2,7 +2,7 @@ DISTRO = "amsdelta-oe"
 DISTRO_NAME = "AmsDelta Linux"
 DISTRO_VERSION = "unstable-${DATE}"
 
-require conf/distro/include/familiar.inc
+require conf/distro/ansgstrom-2007.1.conf
 
 
 DISTRO_TYPE = "debug"
@@ -10,33 +10,6 @@ DISTRO_TYPE = "debug"
 #!!!!! DON'T FORGET TO ENABLE ZAPROOTPASSWD !!!!!
 
 
-FEED_URIS += " \
-        base##http://familiar.handhelds.org/releases/${DISTRO_VERSION}/feed/base \
-        updates##http://familiar.handhelds.org/releases/${DISTRO_VERSION}/feed/updates"
-
-#SRCDATE = 20050331
-#SRCDATE = "now"
-
-PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc-initial:gcc-cross-initial"
-PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}gcc:gcc-cross"
-PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}g++:gcc-cross"
-
-PREFERRED_PROVIDER_virtual/libiconv="glibc"
-PREFERRED_PROVIDER_virtual/libintl="glibc"
-
-# The CSL compiler is unusable because
-# 1) certain programs stop to compile
-# 2) more programs segfault
-PREFERRED_VERSION_gcc ?= "3.4.4"
-PREFERRED_VERSION_gcc-cross ?= "3.4.4"
-PREFERRED_VERSION_gcc-cross-initial ?= "3.4.4"
-
-#
-# PIN the familiar build to a version
-#
-PREFERRED_VERSION_binutils-cross ?= "2.15.94.0.1"
-PREFERRED_VERSION_binutils ?= "2.15.94.0.1"
-
 #
 # Opie
 #
index 263673f..0fbe7d1 100644 (file)
@@ -97,10 +97,10 @@ PREFERRED_PROVIDER_esound           ?= "pulseaudio"
 
 
 PREFERRED_VERSION_fontconfig = "2.4.1"
-PREFERRED_VERSION_freetype = "2.2.1"
+PREFERRED_VERSION_freetype = "2.3.0"
 PREFERRED_VERSION_freetype-native = "2.2.1"
 #fix screen corruption issues
-PREFERRED_VERSION_cairo = "1.3.12"
+PREFERRED_VERSION_cairo = "1.3.14"
 
 #work around a segfault in gcc for armv4t
 PREFERRED_VERSION_glib-2.0_ep93xx = "2.12.3"
index 2a33ad4..59123fd 100644 (file)
 #@NAME: DebianSlug
 #@DESCRIPTION: DebianSlug Linux Distribution for the NSLU2
 
-#----------------------------------------------------------------------------------
-# STANDARD DebianSlug DEFINITIONS
-#----------------------------------------------------------------------------------
 DISTRO_NAME = "DebianSlug"
-# DISTRO_VERSION = "${SLUGOS_VERSION}${DISTRO_REVISION}-${DISTRO_TYPE}"
-# DISTRO_FEED = "unstable"
-DISTRO_TYPE = "beta"
-SLUGOS_IMAGENAME = "debianslug"
-SLUGOS_IMAGESEX  = "little-endian"
+IMAGE_BASENAME = "debianslug"
+TARGET_ARCH = "arm"
+ARM_INSTRUCTION_SET = "arm"
+TARGET_OS = "linux"
 
-# debianslug builds a complete image (not just the parts)
-SLUGOS_FLASH_IMAGE = "1"
-
-# NOTE: to build new packages set DEBIANSLUG_EXTRA_BBFILES to the full path name to
-# the .bb files for the packages to build - see debianslug-packages.conf in this
-# directory
-DEBIANSLUG_EXTRA_BBFILES ?= ""
-
-#----------------------------------------------------------------------------------
-# FIRMWARE CONFIGURATION
-#----------------------------------------------------------------------------------
-# EXTRA PACKAGES
-# --------------
-# Filesystem support modules are listed in here for easy removal,
-# as is the lrzsz serial package and other kernel modules which are
-# not absolutely required for boot.
-# NOTE: only jffs2 support is an absolute requirement of boot, even
-# the ext2/ext3 support is optional!
-DEBIANSLUG_EXT2_PROGS =  "e2fsprogs-mke2fs e2fsprogs-fsck e2fsprogs-e2fsck e2fsprogs-badblocks"
-
-# The standard firmware contents and additional packages built as requirements
-# of the firmware are defined here in DEBIANSLUG_STANDARD_RDEPENDS and
-# DEBIANSLUG_STANDARD_DEPENDS respectively.
-DEBIANSLUG_STANDARD_RDEPENDS = ""
-
-# Support for a variety of file systems is built in to the debianslug
-# image, programs to format disks with these file systems may be
-# added or removed.  By default ext2 and ext3 support
-# is included by the following lines.
-# 
-# These lines add support for formatting ext2 and ext3 file systems
-# on a hard disk attached to the NSLU2.  ext3 is the standard Linux
-# file system.
-DEBIANSLUG_STANDARD_RDEPENDS += "${DEBIANSLUG_EXT2_PROGS}"
-
-# These lines add support for an X/Y/ZModem package called lrzsz
-# (this is of use for people with modified NSLU2 hardware which
-# supports a serial port.)
-DEBIANSLUG_STANDARD_RDEPENDS += "lrzsz"
-
-# Filesystem selection.  Adding entries here adds the module to the
-# image.  The module must be built as part of nslu2-kernel (i.e. it
-# must be specified as a module in the defconfig file).  The NLS
-# support charset modules must be given explicitly and must match
-# the codepage/iocharset and NLS handling for the file systems which
-# require them.  The installed lanugage set is minimal but sufficient
-# for any file system (since it uses utf8).  See
-# http://www.nslu2-linux.orgwiki/HowTo/MountFATFileSystems
-# for more information on the language behaviour of the DOS file
-# systems.
-#
-# KERNEL LEVEL FILE SYSTEM SUPPORT
-# --------------------------------
-# NOTE: removing kernel-module-nfs from this list will prevent NFS
-# boot (however you can do a simple flash file system boot - no
-# attached disk - and install the nfs modules from ssh.)
-DEBIANSLUG_STANDARD_RDEPENDS += "\
-kernel-module-ext2 \
-kernel-module-jbd \
-kernel-module-ext3 \
-kernel-module-vfat \
-kernel-module-ntfs \
-kernel-module-isofs \
-kernel-module-udf \
-kernel-module-nls-cp437 \
-kernel-module-nls-utf8 \
-"
-
-# Add daemon required for HW RNG support
-DEBIANSLUG_STANDARD_RDEPENDS += "\
-rng-tools \
-"
-
-# Add modules required for usb support
-DEBIANSLUG_STANDARD_RDEPENDS += "\
-kernel-module-ohci-hcd \
-kernel-module-uhci-hcd \
-"
-
-# Add modules required for IDE support
-DEBIANSLUG_STANDARD_RDEPENDS += "\
-kernel-module-libata \
-kernel-module-pata-artop \
-"
-
-# Add modules required for Network support
-OPENSLUG_STANDARD_RDEPENDS += "\
-kernel-module-via-velocity \
-"
-
-# This documents other file systems which are built but not installed
-# by default in the flash image.
-#
-# kernel-module-msdos - mounts a FAT file system without long file names
-#                       (use kernel-module-vfat, it shows the long names
-#                       if present.)
-
-# The 'standard' values are the defaults for the 'extra' packages added
-# to the firmware image.  None of these things are requirements to have
-# a bootable, useable, system however they *are* expected to be present
-# in DebianSlug - see slugos-lag for a more minimal configuration and some
-# more instructions about how to make a non-debianslug image.
-DEBIANSLUG_EXTRA_RDEPENDS ?= ""
-SLUGOS_EXTRA_RDEPENDS = "${DEBIANSLUG_STANDARD_RDEPENDS} ${DEBIANSLUG_EXTRA_RDEPENDS}"
-
-#----------------------------------------------------------------------------------
-# PACKAGE VERSION CONTROL
-#----------------------------------------------------------------------------------
-PREFERRED_VERSION_nslu2-linksys-firmware ?= "2.3r63"
-
-#----------------------------------------------------------------------------------
-# BASE VERSION SELECTION
-#----------------------------------------------------------------------------------
-# l - little-endian
-# a - ARM instruction set
-# g - glibc
-#
-require conf/distro/slugos-lag.conf
+require conf/distro/slugos.conf
index 79ec27a..9efe1d5 100644 (file)
@@ -37,10 +37,6 @@ TARGET_FPU_arm ?= "soft"
 TARGET_FPU_armeb ?= "soft"
 TARGET_FPU_ixp4xx ?= "soft"
 
-
-#Make a LE jffs2 image
-SLUGOS_IMAGESEX = "little-endian"
-
 #Name the generated images in a sane way
 IMAGE_NAME = "${DISTRO_NAME}-${IMAGE_BASENAME}-${DISTRO_VERSION}-${MACHINE}"
 DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE}"
@@ -50,4 +46,4 @@ DISTRO_CHECK := "${@bb.data.getVar("DISTRO_VERSION",d,1) or bb.fatal('Remove thi
 
 # We want images supporting the following features (for task-base)
 DISTRO_FEATURES = "nfs smbfs wifi ppp alsa bluetooth ext2 irda pcmcia usbgadget usbhost pci"
-DISTRO_FEATURES_nslu2le = "nfs smbfs alsa bluetooth ext2 usbhost pci"
+DISTRO_FEATURES_nslu2 = "nfs smbfs alsa bluetooth ext2 usbhost pci"
diff --git a/conf/distro/include/debianslug-packages.inc b/conf/distro/include/debianslug-packages.inc
deleted file mode 100644 (file)
index a4b9a67..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-SLUGOS_EXTRA_BBFILES = "${DEBIANSLUG_EXTRA_BBFILES}"
-require conf/distro/include/slugos-packages.conf
index d41cb89..4c2c8b1 100644 (file)
@@ -14,12 +14,10 @@ FROZEN_DIR ?= "/non/-existent/-directory/-for/-security"
 
 # Pull in the frozen definitions (if they exist)  The multiple
 # includes allow the frozen file to be stored alongside local.conf
-# and in the conf/distro directory - the former take precedence over
-# the latter.
-require conf/distro/include/${DISTRO}-packages.inc
+# and in a distro-specific frozen directory - the former take
+# precedence over the latter.
 include conf/${DISTRO}-packages.conf
 include ${FROZEN_DIR}/${DISTRO}-packages.conf
 
-require conf/distro/include/${DISTRO}-bbfiles.inc
 include conf/${DISTRO}-bbfiles.conf
 include ${FROZEN_DIR}/${DISTRO}-bbfiles.conf
diff --git a/conf/distro/include/openslug-native-packages.inc b/conf/distro/include/openslug-native-packages.inc
deleted file mode 100644 (file)
index 7f7a448..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# automatically generated by bitbake freeze
-BBFILES := "\
-${PKGDIR}/packages/apache/*.bb \
-${PKGDIR}/packages/openssl/*.bb \
-${PKGDIR}/packages/ipkg-utils/*.bb \
-${PKGDIR}/packages/meta/package-index.bb \
-${PKGDIR}/packages/meta/openslug-native-packages.bb \
-${PKGDIR}/packages/freeze/*.bb \
-${PKGDIR}/packages/pcre/*.bb \
-${PKGDIR}/packages/expat/*.bb \
-${OPENSLUG_NATIVE_EXTRA_BBFILES}"
diff --git a/conf/distro/include/openslug-packages.inc b/conf/distro/include/openslug-packages.inc
deleted file mode 100644 (file)
index fe09a7b..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-SLUGOS_EXTRA_BBFILES = "${OPENSLUG_EXTRA_BBFILES}"
-require conf/distro/include/slugos-packages.conf
diff --git a/conf/distro/include/slugos-packages.inc b/conf/distro/include/slugos-packages.inc
deleted file mode 100644 (file)
index 650368a..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-BBFILES := "\
-${PKGDIR}/packages/alsa/*.bb \
-${PKGDIR}/packages/apr/*.bb \
-${PKGDIR}/packages/asterisk/*.bb \
-${PKGDIR}/packages/asterisk-sounds/*.bb \
-${PKGDIR}/packages/atftp/*.bb \
-${PKGDIR}/packages/audiofile/*.bb \
-${PKGDIR}/packages/aumix/*.bb \
-${PKGDIR}/packages/autoconf/*.bb \
-${PKGDIR}/packages/automake/*.bb \
-${PKGDIR}/packages/base-files/*.bb \
-${PKGDIR}/packages/base-passwd/*.bb \
-${PKGDIR}/packages/bash/*.bb \
-${PKGDIR}/packages/beep/*.bb \
-${PKGDIR}/packages/bind/*.bb \
-${PKGDIR}/packages/binutils/*.bb \
-${PKGDIR}/packages/bison/*.bb \
-${PKGDIR}/packages/bluez/*.bb \
-${PKGDIR}/packages/bogofilter/*.bb \
-${PKGDIR}/packages/boost/*.bb \
-${PKGDIR}/packages/bridge-utils/*.bb \
-${PKGDIR}/packages/btsco/*.bb \
-${PKGDIR}/packages/busybox/*.bb \
-${PKGDIR}/packages/bwmon/*.bb \
-${PKGDIR}/packages/bzip2/*.bb \
-${PKGDIR}/packages/ccxstream/*.bb \
-${PKGDIR}/packages/cdparanoia/*.bb \
-${PKGDIR}/packages/cdstatus/*.bb \
-${PKGDIR}/packages/cherokee/*.bb \
-${PKGDIR}/packages/coreutils/*.bb \
-${PKGDIR}/packages/cpio/*.bb \
-${PKGDIR}/packages/cron/*.bb \
-${PKGDIR}/packages/ctorrent/*.bb \
-${PKGDIR}/packages/ctrlproxy/*.bb \
-${PKGDIR}/packages/curl/*.bb \
-${PKGDIR}/packages/cvs/*.bb \
-${PKGDIR}/packages/cyrus-imapd/*.bb \
-${PKGDIR}/packages/cyrus-sasl/*.bb \
-${PKGDIR}/packages/davfs2/*.bb \
-${PKGDIR}/packages/db/*.bb \
-${PKGDIR}/packages/dbus/*.bb \
-${PKGDIR}/packages/devio/*.bb \
-${PKGDIR}/packages/device-mapper/*.bb \
-${PKGDIR}/packages/devlabel/*.bb \
-${PKGDIR}/packages/dhcp/*.bb \
-${PKGDIR}/packages/didiwiki/*.bb \
-${PKGDIR}/packages/diffstat/*.bb \
-${PKGDIR}/packages/diffutils/*.bb \
-${PKGDIR}/packages/dnsmasq/*.bb \
-${PKGDIR}/packages/docbook-utils/*.bb \
-${PKGDIR}/packages/dropbear/*.bb \
-${PKGDIR}/packages/dsniff/*.bb \
-${PKGDIR}/packages/e2fsprogs/*.bb \
-${PKGDIR}/packages/e2fsprogs-libs/*.bb \
-${PKGDIR}/packages/eciadsl/*.bb \
-${PKGDIR}/packages/expat/*.bb \
-${PKGDIR}/packages/ez-ipupdate/*.bb \
-${PKGDIR}/packages/fakeroot/*.bb \
-${PKGDIR}/packages/fetchmail/*.bb \
-${PKGDIR}/packages/file/*.bb \
-${PKGDIR}/packages/findutils/*.bb \
-${PKGDIR}/packages/flac/*.bb \
-${PKGDIR}/packages/flex/*.bb \
-${PKGDIR}/packages/freeze/*.bb \
-${PKGDIR}/packages/ftpd-topfield/*.bb \
-${PKGDIR}/packages/gawk/*.bb \
-${PKGDIR}/packages/gcc/*.bb \
-${PKGDIR}/packages/gd/*.bb \
-${PKGDIR}/packages/gdb/*.bb \
-${PKGDIR}/packages/gdbm/*.bb \
-${PKGDIR}/packages/gettext/*.bb \
-${PKGDIR}/packages/glib-1.2/*.bb \
-${PKGDIR}/packages/glib-2.0/*.bb \
-${PKGDIR}/packages/glibc/*.bb \
-${PKGDIR}/packages/gnu-config/*.bb \
-${PKGDIR}/packages/gnutls/*.bb \
-${PKGDIR}/packages/gphoto2/*.bb \
-${PKGDIR}/packages/gpsd/*.bb \
-${PKGDIR}/packages/grep/*.bb \
-${PKGDIR}/packages/groff/*.bb \
-${PKGDIR}/packages/gtk-doc/*.bb \
-${PKGDIR}/packages/gzip/*.bb \
-${PKGDIR}/packages/hal/*.bb \
-${PKGDIR}/packages/hotplug-ng/*.bb \
-${PKGDIR}/packages/icecast/*.bb \
-${PKGDIR}/packages/ifupdown/*.bb \
-${PKGDIR}/packages/initscripts/*.bb \
-${PKGDIR}/packages/install/*.bb \
-${PKGDIR}/packages/intltool/*.bb \
-${PKGDIR}/packages/iperf/*.bb \
-${PKGDIR}/packages/ipkg-utils/*.bb \
-${PKGDIR}/packages/ipkg/*.bb \
-${PKGDIR}/packages/iptables/*.bb \
-${PKGDIR}/packages/ircp/*.bb \
-${PKGDIR}/packages/irssi/*.bb \
-${PKGDIR}/packages/ixp425-eth/*.bb \
-${PKGDIR}/packages/ixp4xx/*.bb \
-${PKGDIR}/packages/joe/*.bb \
-${PKGDIR}/packages/jpeg/*.bb \
-${PKGDIR}/packages/lcdproc/*.bb \
-${PKGDIR}/packages/less/*.bb \
-${PKGDIR}/packages/libaal/*.bb \
-${PKGDIR}/packages/libao/*.bb \
-${PKGDIR}/packages/libdvb/*.bb \
-${PKGDIR}/packages/libexif/*.bb \
-${PKGDIR}/packages/libgcrypt/*.bb \
-${PKGDIR}/packages/libgpg-error/*.bb \
-${PKGDIR}/packages/libgphoto2/*.bb \
-${PKGDIR}/packages/libgsm/*.bb \
-${PKGDIR}/packages/libiconv/*.bb \
-${PKGDIR}/packages/libid3tag/*.bb \
-${PKGDIR}/packages/liblockfile/*.bb \
-${PKGDIR}/packages/libmad/*.bb \
-${PKGDIR}/packages/libmikmod/*.bb \
-${PKGDIR}/packages/libnet/*.bb \
-${PKGDIR}/packages/libnids/*.bb \
-${PKGDIR}/packages/libogg/*.bb \
-${PKGDIR}/packages/libol/*.bb \
-${PKGDIR}/packages/libpcap/*.bb \
-${PKGDIR}/packages/libpng/*.bb \
-${PKGDIR}/packages/libtiff/*.bb \
-${PKGDIR}/packages/libtool/*.bb \
-${PKGDIR}/packages/libusb/*.bb \
-${PKGDIR}/packages/libvorbis/*.bb \
-${PKGDIR}/packages/libxml/*.bb \
-${PKGDIR}/packages/libxslt/* \
-${PKGDIR}/packages/linux-libc-headers/*.bb \
-${PKGDIR}/packages/linux/*.bb \
-${PKGDIR}/packages/lirc/*.bb \
-${PKGDIR}/packages/lrzsz/*.bb \
-${PKGDIR}/packages/lsof/*.bb \
-${PKGDIR}/packages/lvm2/*.bb \
-${PKGDIR}/packages/lzo/*.bb \
-${PKGDIR}/packages/m4/*.bb \
-${PKGDIR}/packages/madplay/*.bb \
-${PKGDIR}/packages/madwifi/*.bb \
-${PKGDIR}/packages/mailx/*.bb \
-${PKGDIR}/packages/make/*.bb \
-${PKGDIR}/packages/makedevs/*.bb \
-${PKGDIR}/packages/man-pages/*.bb \
-${PKGDIR}/packages/man/*.bb \
-${PKGDIR}/packages/masqmail/*.bb \
-${PKGDIR}/packages/mdadm/*.bb \
-${PKGDIR}/packages/memtester/*.bb \
-${PKGDIR}/packages/meta/*.bb \
-${PKGDIR}/packages/mgetty/*.bb \
-${PKGDIR}/packages/miau/*.bb \
-${PKGDIR}/packages/microcom/*.bb \
-${PKGDIR}/packages/minicom/*.bb \
-${PKGDIR}/packages/module-init-tools/*.bb \
-${PKGDIR}/packages/modutils/*.bb \
-${PKGDIR}/packages/monotone/*.bb \
-${PKGDIR}/packages/motion/*.bb \
-${PKGDIR}/packages/mt-daapd/*.bb \
-${PKGDIR}/packages/mtd/*.bb \
-${PKGDIR}/packages/musicpd/*.bb \
-${PKGDIR}/packages/mutt/*.bb \
-${PKGDIR}/packages/mysql/*.bb \
-${PKGDIR}/packages/nail/*.bb \
-${PKGDIR}/packages/nano/*.bb \
-${PKGDIR}/packages/ncftp/*.bb \
-${PKGDIR}/packages/ncurses/*.bb \
-${PKGDIR}/packages/neon/*.bb \
-${PKGDIR}/packages/netbase/*.bb \
-${PKGDIR}/packages/netcat/*.bb \
-${PKGDIR}/packages/netpbm/*.bb \
-${PKGDIR}/packages/nfs-utils/*.bb \
-${PKGDIR}/packages/nis/*.bb \
-${PKGDIR}/packages/nmap/*.bb \
-${PKGDIR}/packages/nslu2-binary-only/*.bb \
-${PKGDIR}/packages/ntp/*.bb \
-${PKGDIR}/packages/obexftp/*.bb \
-${PKGDIR}/packages/openjade/*.bb \
-${PKGDIR}/packages/openldap/*.bb \
-${PKGDIR}/packages/openntpd/*.bb \
-${PKGDIR}/packages/openobex/*.bb \
-${PKGDIR}/packages/opensp/*.bb \
-${PKGDIR}/packages/openssh/*.bb \
-${PKGDIR}/packages/openssl/*.bb \
-${PKGDIR}/packages/openvpn/*.bb \
-${PKGDIR}/packages/pam/*.bb \
-${PKGDIR}/packages/patch/*.bb \
-${PKGDIR}/packages/patcher/*.bb \
-${PKGDIR}/packages/patchutils/*.bb \
-${PKGDIR}/packages/pciutils/*.bb \
-${PKGDIR}/packages/pcmcia-cs/*.bb \
-${PKGDIR}/packages/pcre/*.bb \
-${PKGDIR}/packages/perl/*.bb \
-${PKGDIR}/packages/php/*.bb \
-${PKGDIR}/packages/pkgconfig/*.bb \
-${PKGDIR}/packages/popt/*.bb \
-${PKGDIR}/packages/portmap/*.bb \
-${PKGDIR}/packages/postfix/*.bb \
-${PKGDIR}/packages/ppp/*.bb \
-${PKGDIR}/packages/procps/*.bb \
-${PKGDIR}/packages/psmisc/*.bb \
-${PKGDIR}/packages/puppy/*.bb \
-${PKGDIR}/packages/pvrusb2-mci/*.bb \
-${PKGDIR}/packages/pwc/*.bb \
-${PKGDIR}/packages/python/*.bb \
-${PKGDIR}/packages/qc-usb/*.bb \
-${PKGDIR}/packages/quilt/*.bb \
-${PKGDIR}/packages/radlib/*.bb \
-${PKGDIR}/packages/readline/*.bb \
-${PKGDIR}/packages/reiser4progs/*.bb \
-${PKGDIR}/packages/reiserfsprogs/*.bb \
-${PKGDIR}/packages/rsync/*.bb \
-${PKGDIR}/packages/samba/*.bb \
-${PKGDIR}/packages/sane-backends/*.bb \
-${PKGDIR}/packages/screen/*.bb \
-${PKGDIR}/packages/sed/*.bb \
-${PKGDIR}/packages/setpwc/*.bb \
-${PKGDIR}/packages/setserial/*.bb \
-${PKGDIR}/packages/sgml-common/*.bb \
-${PKGDIR}/packages/slugimage/*.bb \
-${PKGDIR}/packages/slugos-init/*.bb \
-${PKGDIR}/packages/spca5xx/*.bb \
-${PKGDIR}/packages/ssmtp/*.bb \
-${PKGDIR}/packages/strace/*.bb \
-${PKGDIR}/packages/streamripper/*.bb \
-${PKGDIR}/packages/subversion/*.bb \
-${PKGDIR}/packages/sudo/*.bb \
-${PKGDIR}/packages/sysfsutils/*.bb \
-${PKGDIR}/packages/syslog-ng/*.bb \
-${PKGDIR}/packages/sysvinit/*.bb \
-${PKGDIR}/packages/tar/*.bb \
-${PKGDIR}/packages/tcltk/*.bb \
-${PKGDIR}/packages/thttpd/*.bb \
-${PKGDIR}/packages/time/*.bb \
-${PKGDIR}/packages/timezones/*.bb \
-${PKGDIR}/packages/tinylogin/*.bb \
-${PKGDIR}/packages/uclibc/*.bb \
-${PKGDIR}/packages/udev/*.bb \
-${PKGDIR}/packages/unionfs/*.bb \
-${PKGDIR}/packages/unzip/*.bb \
-${PKGDIR}/packages/update-modules/*.bb \
-${PKGDIR}/packages/update-rc.d/*.bb \
-${PKGDIR}/packages/upslug/*.bb \
-${PKGDIR}/packages/usbutils/*.bb \
-${PKGDIR}/packages/util-linux/*.bb \
-${PKGDIR}/packages/vim/*.bb \
-${PKGDIR}/packages/vlan/*.bb \
-${PKGDIR}/packages/vpnc/*.bb \
-${PKGDIR}/packages/vsftpd/*.bb \
-${PKGDIR}/packages/w3cam/*.bb \
-${PKGDIR}/packages/wakelan/*.bb \
-${PKGDIR}/packages/wget/*.bb \
-${PKGDIR}/packages/whois/*.bb \
-${PKGDIR}/packages/wireless-tools/*.bb \
-${PKGDIR}/packages/wpa-supplicant/*.bb \
-${PKGDIR}/packages/wview/*.bb \
-${PKGDIR}/packages/xlibs/*.bb \
-${PKGDIR}/packages/xextensions/*.bb \
-${PKGDIR}/packages/xinetd/*.bb \
-${PKGDIR}/packages/xproto/*.bb \
-${PKGDIR}/packages/zd1211/*.bb \
-${PKGDIR}/packages/zip/*.bb \
-${PKGDIR}/packages/zlib/*.bb \
-${SLUGOS_EXTRA_BBFILES}"
index c0401d9..0a11c0e 100644 (file)
@@ -3,28 +3,7 @@
 #@DESCRIPTION: SlugOS Linux Distribution for the NSLU2
 
 # WARNING: this file should not be used directly, use one of
-# the supported slugos-???.conf instead:
-
-# Explanation of the naming
-#
-# slugos-dist - the base distro configuration for an NSLU2
-# slugos-[bl][at][gu] - a specific configuration encoded as follows:
-#
-#  b or l - big or little endian
-#
-#  a or t - ARM or Thumb instructions in the low level libraries
-#         set ARM_INSTRUCTION_SET to match
-#
-#  g or u - glibc or uclibc libc implementation
-#         set TARGET_OS to match
-#
-# The following names are deprecated:
-#
-# openslug - the historical name of a canonical slugos-bag distro
-#            also the name of a standard slugos-bag distro with a package feed
-# ucslugc  - the historical (and obsolete) name of slugos-btu
-#            also the name of a standard slugos-btu distro with a package feed
-#
+# the supported slugos-derived distributions instead.
 
 #----------------------------------------------------------------------------------
 # STANDARD SLUGOS DEFINITIONS
@@ -33,6 +12,8 @@
 #
 #DISTRO_NAME
 #DISTRO_TYPE
+#ARM_INSTRUCTION_SET "arm" or "thumb"
+#TARGET_OS "linux" or "linux-uclibc"
 
 # The following may be overridden to make sub-versions
 SLUGOS_VERSION = "4.3"
@@ -42,11 +23,7 @@ DISTRO_VERSION ?= "${SLUGOS_VERSION}${DISTRO_REVISION}-${DISTRO_TYPE}"
 # DISTRO_FEED ?= "${SLUGOS_VERSION}-${DISTRO_TYPE}"
 DISTRO_FEED ?= "unstable"
 
-# The following must also be set, they define the basic format of the build
-#
-#ARM_INSTRUCTION_SET "arm" or "thumb"
-#TARGET_OS "linux" or "linux-uclibc"
-#SLUGOS_IMAGESEX "big-endian" or "little-endian" (JFFS2 format)
+IMAGE_BASENAME = "${@['slugos${SITEINFO_ENDIANESS}', 'ucslugc'][bb.data.getVar('TARGET_OS', d, 1) == 'linux-uclibc']}"
 
 # The following need not be set, the defaults should be adequate
 #USE_NLS = "no" or "yes"
@@ -62,21 +39,17 @@ TARGET_FPU = "soft"
 # glib-2.0 builds require USE_NLS to be overridden
 USE_NLS_glib-2.0 = "yes"
 
-INHERIT += "package_ipk debian"
-
-DISTRO_BASE = ":slugos"
-
-# packages/meta/slugos-image.bb generates a binary image of the root file system
-# with a name controlled by the following setting - it defaults to the top level
-# ${DISTRO_NAME} and this should always be correct, but it may be too specific (e.g.
-# if you change the DISTRO from one of the standard ones in a way which does not
-# change the generated image).
-SLUGOS_IMAGENAME ?= "${DISTRO_NAME}"
+INHERIT += "package_ipk debian multimachine"
 
-# pull in the frozen list of bbfiles - this sets BBFILES and this will override any
-# setting in local.conf  Since this depends on ${DISTRO} it doesn't actually do
-# anything by default unless conf/distro/${DISTRO}-packages.conf exists.
-# require conf/distro/include/freeze.conf
+# FULL_OPTIMIZATION
+#    Optimization settings.  Os works fine and is significantly better than O2.
+#    The other settings are somewhat arbitrary.  The optimisations chosen here
+#    include the ones which 'break' symbolic debugging (because the compiler does
+#    not include enough information to allow the debugger to know where given
+#    values are.)  The -fno options are an attempt to cancel explicit use of space
+#    consuming options found in some packages (this isn't a complete list, this is
+#    just the ones which package writers seem to know about and abuse).
+FULL_OPTIMIZATION = "-Os -fomit-frame-pointer -frename-registers -fno-unroll-loops -fno-inline-functions -fweb -funit-at-a-time"
 
 #----------------------------------------------------------------------------------
 # FEEDS
@@ -84,21 +57,9 @@ SLUGOS_IMAGENAME ?= "${DISTRO_NAME}"
 #  when downloading new packages or updating existing packages.  Additional feeds
 #  (such as a local feed) can be defined in local.conf
 #----------------------------------------------------------------------------------
-# Add to the user's feeds from local.conf (there may be none).
-# In general slugos-[bl][at][gu] is sufficient to identify a set of packages which
-# will work on any derived distro.  The slugos-???.conf files set the FEED_URIS to
-# an appropriate ipkg.nslu2-linux.org default if nslu2-linux is actually building
-# such a feed:
 #
-#FEED_URIS_append += "cross##http://ipkg.nslu2-linux.org/feeds/${SLUGOS-foo}/cross/${DISTRO_FEED}"
-#FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/${SLUGOS-foo}/native/${DISTRO_FEED}"
-#
-# When such a feed exists the corresponding 'unstable' feed will normally also
-# exist - the packages in unstable are the latest but very unlikely to be the
-# greatest.  Use at your own risk!
-# 
-#FEED_URIS_append += "unstable_cross##http://ipkg.nslu2-linux.org/feeds/${SLUGOS-foo}/cross/unstable"
-#FEED_URIS_append += "unstable_native##http://ipkg.nslu2-linux.org/feeds/${SLUGOS-foo}/native/unstable"
+FEED_URIS_append += "cross##http://ipkg.nslu2-linux.org/feeds/${IMAGE_BASENAME}/cross/${DISTRO_FEED}"
+FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/${IMAGE_BASENAME}/native/${DISTRO_FEED}"
 
 #----------------------------------------------------------------------------------
 # FIRMWARE CONFIGURATION
@@ -111,20 +72,6 @@ SLUGOS_IMAGENAME ?= "${DISTRO_NAME}"
 # issues in the kernel need to cancel this (set CMDLINE_DEBUG empty in local.conf)
 CMDLINE_DEBUG = "noirqdebug"
 
-# Building a full image.  If you set SLUGOS_FLASH_IMAGE to "nslu2" a complete
-# 8MByte flash image will be built after the rootfs JFFS2 image.  Other options
-# may later be defined for other vendor-flashable image types.
-#
-# If you do this you will need to find a source for the LinkSys software to be
-# placed in the full image - 'RedBoot' (the boot loader), 'Trailer' (just a bunch
-# of bytes to flag the image as valid) and 'SysConf' (actually just a block of
-# unset data - you could modify this to pre-configure the SysConf partition of the
-# image).  If you own an NSLU2 then this data is already in the flash of the NSLU2
-# and you can download it (including new versions) from the LinkSys web site - see
-# packages/meta/slugos-image.bb for information about where to put the downloaded
-# data.
-SLUGOS_FLASH_IMAGE ?= "no"
-
 # EXTRA PACKAGES
 # --------------
 # SlugOS builds an image with no extra packages - to add packages to the
@@ -154,8 +101,7 @@ PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
 PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}depmod:module-init-tools-cross"
 PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}libc-for-gcc:glibc"
 
-# compiler/binary/library versions (unslung uses different ones so these
-# cannot be in ${MACHINE}.conf)
+# compiler/binary/library versions
 PREFERRED_VERSION_binutils ?= "2.16"
 PREFERRED_VERSION_binutils-cross ?= "2.16"
 PREFERRED_VERSION_gcc-cross-initial ?= "4.1.1"
@@ -189,6 +135,8 @@ SRCDATE_irssi ?= "20050930"
 CVS_TARBALL_STASH = "http://sources.nslu2-linux.org/sources/"
 INHERIT += "nslu2-mirrors"
 
+PREFERRED_VERSION_nslu2-linksys-firmware ?= "2.3r63"
+
 PREFERRED_VERSION_ipkg ?= "0.99.154"
 PREFERRED_VERSION_ipkg-native ?= "0.99.154"
 
diff --git a/conf/distro/include/ucslugc-packages.inc b/conf/distro/include/ucslugc-packages.inc
deleted file mode 100644 (file)
index 3b3e9fc..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-SLUGOS_EXTRA_BBFILES = "${UCSLUGC_EXTRA_BBFILES}"
-require conf/distro/include/slugos-packages.conf
diff --git a/conf/distro/include/unslung-packages.inc b/conf/distro/include/unslung-packages.inc
deleted file mode 100644 (file)
index e889a65..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-BBFILES := "\
-${PKGDIR}/packages/autoconf/*.bb \
-${PKGDIR}/packages/automake/*.bb \
-${PKGDIR}/packages/binutils/*.bb \
-${PKGDIR}/packages/bison/*.bb \
-${PKGDIR}/packages/busybox/*.bb \
-${PKGDIR}/packages/cpio/*.bb \
-${PKGDIR}/packages/devio/*.bb \
-${PKGDIR}/packages/fakeroot/*.bb \
-${PKGDIR}/packages/file/*.bb \
-${PKGDIR}/packages/findutils/*.bb \
-${PKGDIR}/packages/flex/*.bb \
-${PKGDIR}/packages/freeze/*.bb \
-${PKGDIR}/packages/gcc/*.bb \
-${PKGDIR}/packages/genext2fs/*.bb \
-${PKGDIR}/packages/gettext/*.bb \
-${PKGDIR}/packages/glibc/*.bb \
-${PKGDIR}/packages/gnu-config/*.bb \
-${PKGDIR}/packages/ipkg-utils/*.bb \
-${PKGDIR}/packages/ipkg/*.bb \
-${PKGDIR}/packages/libtool/*.bb \
-${PKGDIR}/packages/linux-libc-headers/*.bb \
-${PKGDIR}/packages/linux/*.bb \
-${PKGDIR}/packages/m4/*.bb \
-${PKGDIR}/packages/makedevs/*.bb \
-${PKGDIR}/packages/meta/*.bb \
-${PKGDIR}/packages/modutils/*.bb \
-${PKGDIR}/packages/mtd/*.bb \
-${PKGDIR}/packages/nslu2-binary-only/*.bb \
-${PKGDIR}/packages/pkgconfig/*.bb \
-${PKGDIR}/packages/portmap/*.bb \
-${PKGDIR}/packages/python/*.bb \
-${PKGDIR}/packages/quilt/*.bb \
-${PKGDIR}/packages/slugimage/*.bb \
-${PKGDIR}/packages/unzip/*.bb \
-${PKGDIR}/packages/update-modules/*.bb \
-${PKGDIR}/packages/wget/*.bb \
-${PKGDIR}/packages/wireless-tools/*.bb \
-${PKGDIR}/packages/zlib/*.bb \
-${PKGDIR}/packages/zd1211/*.bb \
-${UNSLUNG_EXTRA_BBFILES}"
diff --git a/conf/distro/mokoslug.conf b/conf/distro/mokoslug.conf
new file mode 100644 (file)
index 0000000..c2c6857
--- /dev/null
@@ -0,0 +1,20 @@
+#@--------------------------------------------------------------------
+#@TYPE: Distribution
+#@NAME: MokoSlug <http://www.nslu2-linux.org>
+#@DESCRIPTION: The Linux Server companion for OpenMoko phones
+#@MAINTAINER: Rod Whitby <rod@whitby.id.au>
+#@--------------------------------------------------------------------
+
+# MokoSlug is based on Angstrom, and would hopefully just be done by features one day ...
+require conf/distro/angstrom-2007.1.conf
+
+DISTRO = "mokoslug"
+DISTRO_NAME = "MokoSlug"
+DISTRO_VERSION = "1.0-alpha"
+DISTRO_REVISION = "1"
+DISTRO_TYPE = "debug"
+
+MACHINE_FEATURES_append_nslu2 = " bluetooth"
+
+# No room for debug apps in 8MB.
+DEBUG_APPS = ""
index 7452c26..ac77532 100644 (file)
@@ -1,6 +1,9 @@
+# Our build host is armeb, not armv5eb that the kernel reports
+BUILD_ARCH = "armeb"
+
 require conf/distro/openslug.conf
 
-# Corresponting packages should be in openslug-native.bb,
+# Corresponding packages should be in openslug-native.bb,
 # currently missing: ipkg-utils libtool quilt pkgconfig
 ASSUME_PROVIDED = "libtool-cross \
                   libtool-native \
@@ -15,6 +18,3 @@ ASSUME_PROVIDED = "libtool-cross \
                   update-rc.d \
                   "
 
-# Our build host is armeb, not armv5eb that the kernel reports
-BUILD_ARCH = "armeb"
-
index 02becf3..f03c4f6 100644 (file)
 #@NAME: OpenSlug
 #@DESCRIPTION: OpenSlug Linux Distribution for the NSLU2
 
-#----------------------------------------------------------------------------------
-# STANDARD OpenSlug DEFINITIONS
-#----------------------------------------------------------------------------------
 DISTRO_NAME = "OpenSlug"
-# DISTRO_VERSION = "${SLUGOS_VERSION}${DISTRO_REVISION}-${DISTRO_TYPE}"
-# DISTRO_FEED = "unstable"
-DISTRO_TYPE = "beta"
-SLUGOS_IMAGENAME = "openslug"
-SLUGOS_IMAGESEX  = "big-endian"
+IMAGE_BASENAME = "openslug"
+TARGET_ARCH = "armeb"
+ARM_INSTRUCTION_SET = "arm"
+TARGET_OS = "linux"
 
-# openslug builds a complete image (not just the parts)
-SLUGOS_FLASH_IMAGE = "1"
-
-# NOTE: to build new packages set OPENSLUG_EXTRA_BBFILES to the full path name to
-# the .bb files for the packages to build - see ucslugc-packages.conf in this
-# directory
-OPENSLUG_EXTRA_BBFILES ?= ""
-
-#----------------------------------------------------------------------------------
-# FIRMWARE CONFIGURATION
-#----------------------------------------------------------------------------------
-# EXTRA PACKAGES
-# --------------
-# Filesystem support modules are listed in here for easy removal,
-# as is the lrzsz serial package and other kernel modules which are
-# not absolutely required for boot.
-# NOTE: only jffs2 support is an absolute requirement of boot, even
-# the ext2/ext3 support is optional!
-OPENSLUG_EXT2_PROGS =  "e2fsprogs-mke2fs e2fsprogs-fsck e2fsprogs-e2fsck e2fsprogs-badblocks"
-
-# The standard firmware contents and additional packages built as requirements
-# of the firmware are defined here in OPENSLUG_STANDARD_RDEPENDS and
-# OPENSLUG_STANDARD_DEPENDS respectively.
-OPENSLUG_STANDARD_RDEPENDS = ""
-
-# Support for a variety of file systems is built in to the openslug
-# image, programs to format disks with these file systems may be
-# added or removed.  By default ext2 and ext3 support
-# is included by the following lines.
-# 
-# These lines add support for formatting ext2 and ext3 file systems
-# on a hard disk attached to the NSLU2.  ext3 is the standard Linux
-# file system.
-OPENSLUG_STANDARD_RDEPENDS += "${OPENSLUG_EXT2_PROGS}"
-
-# These lines add support for an X/Y/ZModem package called lrzsz
-# (this is of use for people with modified NSLU2 hardware which
-# supports a serial port.)
-OPENSLUG_STANDARD_RDEPENDS += "lrzsz"
-
-# Filesystem selection.  Adding entries here adds the module to the
-# image.  The module must be built as part of nslu2-kernel (i.e. it
-# must be specified as a module in the defconfig file).  The NLS
-# support charset modules must be given explicitly and must match
-# the codepage/iocharset and NLS handling for the file systems which
-# require them.  The installed lanugage set is minimal but sufficient
-# for any file system (since it uses utf8).  See
-# http://www.nslu2-linux.orgwiki/HowTo/MountFATFileSystems
-# for more information on the language behaviour of the DOS file
-# systems.
-#
-# KERNEL LEVEL FILE SYSTEM SUPPORT
-# --------------------------------
-# NOTE: removing kernel-module-nfs from this list will prevent NFS
-# boot (however you can do a simple flash file system boot - no
-# attached disk - and install the nfs modules from ssh.)
-OPENSLUG_STANDARD_RDEPENDS += "\
-kernel-module-ext2 \
-kernel-module-jbd \
-kernel-module-ext3 \
-kernel-module-vfat \
-kernel-module-ntfs \
-kernel-module-isofs \
-kernel-module-udf \
-kernel-module-nls-cp437 \
-kernel-module-nls-utf8 \
-"
-
-# Add daemon required for HW RNG support
-OPENSLUG_STANDARD_RDEPENDS += "\
-rng-tools \
-"
-
-# Add modules required for usb support
-OPENSLUG_STANDARD_RDEPENDS += "\
-kernel-module-ohci-hcd \
-kernel-module-uhci-hcd \
-"
-
-# Add modules required for IDE support
-OPENSLUG_STANDARD_RDEPENDS += "\
-kernel-module-libata \
-kernel-module-pata-artop \
-"
-
-# Add modules required for Network support
-OPENSLUG_STANDARD_RDEPENDS += "\
-kernel-module-via-velocity \
-"
-
-# This documents other file systems which are built but not installed
-# by default in the flash image.
-#
-# kernel-module-msdos - mounts a FAT file system without long file names
-#                       (use kernel-module-vfat, it shows the long names
-#                       if present.)
-
-# The 'standard' values are the defaults for the 'extra' packages added
-# to the firmware image.  None of these things are requirements to have
-# a bootable, useable, system however they *are* expected to be present
-# in OpenSlug - see nslu2-bag for a more minimal configuration and some
-# more instructions about how to make a non-openslug image.
-OPENSLUG_EXTRA_RDEPENDS ?= ""
-SLUGOS_EXTRA_RDEPENDS = "${OPENSLUG_STANDARD_RDEPENDS} ${OPENSLUG_EXTRA_RDEPENDS}"
-
-#----------------------------------------------------------------------------------
-# PACKAGE VERSION CONTROL
-#----------------------------------------------------------------------------------
-PREFERRED_VERSION_nslu2-linksys-firmware ?= "2.3r63"
-
-#----------------------------------------------------------------------------------
-# BASE VERSION SELECTION
-#----------------------------------------------------------------------------------
-# b - big-endian
-# a - ARM instruction set
-# g - glibc
-#
-require conf/distro/slugos-bag.conf
+require conf/distro/slugos.conf
diff --git a/conf/distro/slugos-bag.conf b/conf/distro/slugos-bag.conf
deleted file mode 100644 (file)
index 23e8690..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#@TYPE: Distribution
-#@NAME: SLUGOS-BAG
-#@DESCRIPTION: Linux Distribution for the NSLU2
-
-# See slugos.conf for an explanation of this file.
-
-# This slugos variant corresponds to OpenSlug
-DISTRO_NAME ?= "slugos-bag"
-# DISTRO_VERSION = "${SLUGOS_VERSION}${DISTRO_REVISION}-${DISTRO_TYPE}"
-# DISTRO_FEED ?= "unstable"
-DISTRO_TYPE ?= "beta"
-
-TARGET_ARCH = "armeb"
-ARM_INSTRUCTION_SET = "arm"
-TARGET_OS = "linux"
-SLUGOS_IMAGESEX  ?= "big-endian"
-
-FEED_URIS_append += "cross##http://ipkg.nslu2-linux.org/feeds/slugos-bag/cross/${DISTRO_FEED}"
-FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/slugos-bag/native/${DISTRO_FEED}"
-
-require conf/distro/include/slugos.inc
diff --git a/conf/distro/slugos-bau.conf b/conf/distro/slugos-bau.conf
deleted file mode 100644 (file)
index 5e461ff..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#@TYPE: Distribution
-#@NAME: SLUGOS-BAU
-#@DESCRIPTION: Linux Distribution for the NSLU2
-
-# See slugos.conf for an explanation of this file.
-
-# This slugos variant is not supported - there are no nslu2-linux.org
-# regular builds and there is no feed.
-DISTRO_NAME ?= "slugos-bau"
-# DISTRO_VERSION = "${SLUGOS_VERSION}${DISTRO_REVISION}-${DISTRO_TYPE}"
-# DISTRO_FEED ?= "unstable"
-DISTRO_TYPE ?= "alpha"
-
-TARGET_ARCH = "armeb"
-ARM_INSTRUCTION_SET = "arm"
-TARGET_OS = "linux-uclibc"
-SLUGOS_IMAGESEX  ?= "big-endian"
-
-require conf/distro/include/slugos.inc
diff --git a/conf/distro/slugos-btu.conf b/conf/distro/slugos-btu.conf
deleted file mode 100644 (file)
index 4fbdd9e..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#@TYPE: Distribution
-#@NAME: SLUGOS-BTU
-#@DESCRIPTION: Linux Distribution for the NSLU2
-
-# See slugos.conf for an explanation of this file.
-
-# This slugos variant corresponds to UcSlugC
-DISTRO_NAME ?= "slugos-btu"
-# DISTRO_VERSION = "${SLUGOS_VERSION}${DISTRO_REVISION}-${DISTRO_TYPE}"
-# DISTRO_FEED ?= "unstable"
-DISTRO_TYPE ?= "beta"
-
-TARGET_ARCH = "armeb"
-ARM_INSTRUCTION_SET = "thumb"
-TARGET_OS = "linux-uclibc"
-SLUGOS_IMAGESEX  ?= "big-endian"
-
-FEED_URIS_append += "cross##http://ipkg.nslu2-linux.org/feeds/slugos-btu/cross/${DISTRO_FEED}"
-FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/slugos-btu/native/${DISTRO_FEED}"
-
-require conf/distro/include/slugos.inc
diff --git a/conf/distro/slugos-lag.conf b/conf/distro/slugos-lag.conf
deleted file mode 100644 (file)
index 838d6cf..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#@TYPE: Distribution
-#@NAME: SLUGOS-LAG
-#@DESCRIPTION: Linux Distribution for the NSLU2
-
-# See slugos.conf for an explanation of this file.
-
-# This slugos variant corresponds to DebianSlug
-DISTRO_NAME ?= "slugos-lag"
-# DISTRO_VERSION = "${SLUGOS_VERSION}${DISTRO_REVISION}-${DISTRO_TYPE}"
-# DISTRO_FEED ?= "unstable"
-DISTRO_TYPE ?= "beta"
-
-TARGET_ARCH = "arm"
-ARM_INSTRUCTION_SET = "arm"
-TARGET_OS = "linux"
-SLUGOS_IMAGESEX  ?= "big-endian"
-
-FEED_URIS_append += "cross##http://ipkg.nslu2-linux.org/feeds/slugos-lag/cross/${DISTRO_FEED}"
-FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/slugos-lag/native/${DISTRO_FEED}"
-
-
-require conf/distro/include/slugos.inc
diff --git a/conf/distro/slugos-lau.conf b/conf/distro/slugos-lau.conf
deleted file mode 100644 (file)
index 7294c1d..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#@TYPE: Distribution
-#@NAME: SLUGOS-LAU
-#@DESCRIPTION: Linux Distribution for the NSLU2
-
-# This slugos variant is not supported - there are no nslu2-linux.org
-# regular builds and there is no feed.
-DISTRO_NAME ?= "slugos-lau"
-# DISTRO_VERSION = "${SLUGOS_VERSION}${DISTRO_REVISION}-${DISTRO_TYPE}"
-# DISTRO_FEED ?= "unstable"
-DISTRO_TYPE ?= "alpha"
-
-TARGET_ARCH = "arm"
-ARM_INSTRUCTION_SET = "arm"
-TARGET_OS = "linux-uclibc"
-SLUGOS_IMAGESEX  ?= "big-endian"
-
-# no feeds
-
-require conf/distro/include/slugos.inc
diff --git a/conf/distro/slugos-ltu.conf b/conf/distro/slugos-ltu.conf
deleted file mode 100644 (file)
index 53fbb40..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#@TYPE: Distribution
-#@NAME: SLUGOS-LTU
-#@DESCRIPTION: Linux Distribution for the NSLU2
-
-# See slugos.conf for an explanation of this file.
-
-DISTRO_NAME ?= "slugos-ltu"
-# DISTRO_VERSION = "${SLUGOS_VERSION}${DISTRO_REVISION}-${DISTRO_TYPE}"
-# DISTRO_FEED ?= "unstable"
-DISTRO_TYPE ?= "beta"
-
-TARGET_ARCH = "arm"
-ARM_INSTRUCTION_SET = "thumb"
-TARGET_OS = "linux-uclibc"
-SLUGOS_IMAGESEX  ?= "big-endian"
-
-FEED_URIS_append += "cross##http://ipkg.nslu2-linux.org/feeds/slugos-ltu/cross/${DISTRO_FEED}"
-FEED_URIS_append += "native##http://ipkg.nslu2-linux.org/feeds/slugos-ltu/native/${DISTRO_FEED}"
-
-
-require conf/distro/include/slugos.inc
diff --git a/conf/distro/slugos.conf b/conf/distro/slugos.conf
new file mode 100644 (file)
index 0000000..32b047a
--- /dev/null
@@ -0,0 +1,110 @@
+#@TYPE: Distribution
+#@NAME: SlugOS
+#@DESCRIPTION: SlugOS Linux Distribution for the NSLU2
+
+#----------------------------------------------------------------------------------
+# STANDARD SlugOS/BE DEFINITIONS
+#----------------------------------------------------------------------------------
+DISTRO_NAME = "SlugOS"
+# DISTRO_VERSION = "${SLUGOS_VERSION}${DISTRO_REVISION}-${DISTRO_TYPE}"
+# DISTRO_FEED = "unstable"
+DISTRO_TYPE = "beta"
+TARGET_ARCH ?= "armeb"
+ARM_INSTRUCTION_SET = "arm"
+TARGET_OS = "linux"
+
+#----------------------------------------------------------------------------------
+# FIRMWARE CONFIGURATION
+#----------------------------------------------------------------------------------
+# EXTRA PACKAGES
+# --------------
+# Filesystem support modules are listed in here for easy removal,
+# as is the lrzsz serial package and other kernel modules which are
+# not absolutely required for boot.
+# NOTE: only jffs2 support is an absolute requirement of boot, even
+# the ext2/ext3 support is optional!
+SLUGOS_EXT2_PROGS =  "e2fsprogs-mke2fs e2fsprogs-fsck e2fsprogs-e2fsck e2fsprogs-badblocks"
+
+# The standard firmware contents and additional packages built as requirements
+# of the firmware are defined here in SLUGOS_STANDARD_RDEPENDS.
+SLUGOS_STANDARD_RDEPENDS = ""
+
+# Support for a variety of file systems is built in to the slugos
+# image, programs to format disks with these file systems may be
+# added or removed.  By default ext2 and ext3 support
+# is included by the following lines.
+# 
+# These lines add support for formatting ext2 and ext3 file systems
+# on a hard disk attached to the NSLU2.  ext3 is the standard Linux
+# file system.
+SLUGOS_STANDARD_RDEPENDS += "${SLUGOS_EXT2_PROGS}"
+
+# These lines add support for an X/Y/ZModem package called lrzsz
+# (this is of use for people with modified NSLU2 hardware which
+# supports a serial port.)
+SLUGOS_STANDARD_RDEPENDS += "lrzsz"
+
+# Filesystem selection.  Adding entries here adds the module to the
+# image.  The module must be built as part of nslu2-kernel (i.e. it
+# must be specified as a module in the defconfig file).  The NLS
+# support charset modules must be given explicitly and must match
+# the codepage/iocharset and NLS handling for the file systems which
+# require them.  The installed lanugage set is minimal but sufficient
+# for any file system (since it uses utf8).  See
+# http://www.nslu2-linux.orgwiki/HowTo/MountFATFileSystems
+# for more information on the language behaviour of the DOS file
+# systems.
+#
+# KERNEL LEVEL FILE SYSTEM SUPPORT
+# --------------------------------
+# NOTE: removing kernel-module-nfs from this list will prevent NFS
+# boot (however you can do a simple flash file system boot - no
+# attached disk - and install the nfs modules from ssh.)
+SLUGOS_STANDARD_RDEPENDS += "\
+kernel-module-ext2 \
+kernel-module-jbd \
+kernel-module-ext3 \
+kernel-module-vfat \
+kernel-module-ntfs \
+kernel-module-isofs \
+kernel-module-udf \
+kernel-module-nls-cp437 \
+kernel-module-nls-utf8 \
+"
+
+# Add daemon required for HW RNG support
+SLUGOS_STANDARD_RDEPENDS += "\
+rng-tools \
+"
+
+# Add modules required for usb support
+SLUGOS_STANDARD_RDEPENDS += "\
+kernel-module-ohci-hcd \
+kernel-module-uhci-hcd \
+"
+
+# Add modules required for IDE support
+SLUGOS_STANDARD_RDEPENDS += "\
+kernel-module-libata \
+kernel-module-pata-artop \
+"
+
+# Add modules required for Network support
+SLUGOS_STANDARD_RDEPENDS += "\
+kernel-module-via-velocity \
+"
+
+# This documents other file systems which are built but not installed
+# by default in the flash image.
+#
+# kernel-module-msdos - mounts a FAT file system without long file names
+#                       (use kernel-module-vfat, it shows the long names
+#                       if present.)
+
+# The 'standard' values are the defaults for the 'extra' packages added
+# to the firmware image.  None of these things are requirements to have
+# a bootable, useable, system however they *are* expected to be present
+# in SlugOS.
+SLUGOS_EXTRA_RDEPENDS = "${SLUGOS_STANDARD_RDEPENDS}"
+
+require conf/distro/include/slugos.inc
index 81d5ea7..8b64746 100644 (file)
@@ -2,29 +2,14 @@
 #@NAME: UcSlugC
 #@DESCRIPTION: UcSlugC Linux Distribution for the NSLU2
 
-# This is SLUGOS-BTU with a different name...
 DISTRO_NAME = "UcSlugC"
-# DISTRO_VERSION = "${SLUGOS_VERSION}${DISTRO_REVISION}-${DISTRO_TYPE}"
-# DISTRO_FEED = "unstable"
-DISTRO_TYPE = "beta"
-SLUGOS_IMAGENAME = "ucslugc"
-SLUGOS_IMAGESEX  = "big-endian"
+IMAGE_BASENAME = "ucslugc"
+TARGET_ARCH = "armeb"
+ARM_INSTRUCTION_SET = "thumb"
+TARGET_OS = "linux-uclibc"
 
 PREFERRED_VERSION_gcc-cross-initial = "3.4.4"
 PREFERRED_VERSION_gcc-cross = "3.4.4"
 PREFERRED_VERSION_gcc = "3.4.4"
 
-# NOTE: to build new packages set UCSLUGC_EXTRA_BBFILES to the full path name to
-# the .bb files for the packages to build - see ucslugc-packages.conf in this
-# directory
-UCSLUGC_EXTRA_BBFILES ?= ""
-
-# For compatibility with the old way of overriding these settings names with the
-# prefix UCSLUGC_ are used here to default the values of the corresponding NSLU2_
-# setting - either may be set in local.conf to override these values.
-UCSLUGC_EXTRA_RDEPENDS ?= ""
-
-#
-SLUGOS_EXTRA_RDEPENDS ?= "${UCSLUGC_EXTRA_RDEPENDS}"
-
-require conf/distro/slugos-btu.conf
+require conf/distro/include/slugos.inc
index b25b94d..de64aa8 100644 (file)
@@ -10,10 +10,6 @@ FEED_URIS  = "cross##http://ipkg.nslu2-linux.org/feeds/optware/nslu2/cross/stabl
 FEED_URIS += "native##http://ipkg.nslu2-linux.org/feeds/optware/nslu2/native/stable"
 FEED_URIS += "oe##http://ipkg.nslu2-linux.org/feeds/unslung/modules/cross/stable"
 
-# pull in the frozen list of bbfiles
-# UNSLUNG_EXTRA_BBFILES ?= ""
-# require conf/distro/include/freeze.inc
-
 TARGET_FPU = "soft"
 TARGET_OS = "linux"
 
@@ -25,13 +21,15 @@ THUMB_INTERWORK = "no"
 # to armeb - this makes this stuff independent of changes in machine/nslu2.conf
 TARGET_ARCH = "armeb"
 PACKAGE_ARCH = "${TARGET_ARCH}"
-# PACKAGE_EXTRA_ARCHS has the full list of supported architectures (from nslu2.conf)
+# PACKAGE_EXTRA_ARCHS has the full list of supported architectures (from nslu2be.conf).
+# We need "nslu2" added for backwards compatibility.
+PACKAGE_EXTRA_ARCHS += "nslu2"
 
 # match the optimisation settings to that which has traditionally been used
 # in unslung
 FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2"
 
-INHERIT += " package_ipk nslu2-jffs2-image"
+INHERIT += " package_ipk"
 
 IMAGE_FSTYPES = "jffs2"
 UNSLUNG_DEVICE_TABLE = "${@bb.which(bb.data.getVar('BBPATH', d, 1), 'files/device_table-unslung.txt')}"
index 6701df6..2e3524c 100644 (file)
@@ -11,8 +11,6 @@ PREFERRED_PROVIDER_virtual/kernel = "linux-${MACHINE}"
 MACHINE_FEATURES = "kernel26 usbhost ext2 alsa"
 MACHINE_TASK_PROVIDER = "task-base"
 
-PREFERRED_PROVIDER_virtual/kernel = "linux-${MACHINE}"
-
 #don't try to access tty1
 USE_VT = "0"
 
diff --git a/conf/machine/fic-gta01.conf b/conf/machine/fic-gta01.conf
new file mode 100644 (file)
index 0000000..b47c81d
--- /dev/null
@@ -0,0 +1,38 @@
+#-----------------------------------------------------------------------------
+#@TYPE: Machine
+#@NAME: FIC GTA01 (Neo1973)
+#@DESCRIPTION: Machine configuration for the FIC Neo1973 GSM phone
+#-----------------------------------------------------------------------------
+
+TARGET_ARCH = "arm"
+PACKAGE_EXTRA_ARCHS = "armv4t"
+
+PREFERRED_PROVIDER_virtual/kernel = "gta01-kernel"
+
+MACHINE_FEATURES = "kernel26 apm alsa bluetooth usbgadget usbhost"
+
+MACHINE_EXTRA_RDEPENDS = ""
+
+# package gta01 specific modules
+MACHINE_EXTRA_RRECOMMENDS = "\
+  kernel-module-gta01-pm-bt  \
+  kernel-module-gta01-pm-gps \
+  kernel-module-gta01-pm-gsm \
+  kernel-module-gta01kbd "
+
+MACHINE_TASK_PROVIDER = "task-base"
+
+# used by sysvinit_2
+SERIAL_CONSOLE = "115200 ttySAC0"
+
+# used by some images
+ROOT_FLASH_SIZE = "60M"
+
+# extra jffs2 tweaks
+EXTRA_IMAGECMD_jffs2 = "--eraseblock=0x4000 --pad -n"
+
+# build tools
+EXTRA_IMAGEDEPENDS += "sjf2410-linux-native"
+
+# tune for S3C24x0
+include conf/machine/include/tune-arm920t.conf
index 0558e03..1bab2f5 100644 (file)
@@ -4,56 +4,10 @@
 
 MACHINE_FEATURES = "kernel26 usbhost ext2"
 
-EXTRA_IMAGECMD_jffs2 = "--pad --eraseblock=0x20000 --faketime -n"
+EXTRA_IMAGECMD_jffs2 = "--pad --eraseblock=0x20000 -n"
 
 PREFERRED_PROVIDER_virtual/kernel ?= "ixp4xx-kernel"
 
-#-------------------------------------------------------------------------------
-# INPUTS
-#-------------------------------------------------------------------------------
-# conf/${DISTRO}.conf is included after this file and should be used to modify
-# variables identified as 'INPUTS' to the required values for the DISTRO, this
-# will cause the board specific settings (which depend for the most part on the
-# exact CPU used) to be set correctly within this file.  The results are the
-# variables identifies here as 'OUTPUTS'
-#
-#variable = "default"
-# <possible values>
-#    description
-
-ARM_INSTRUCTION_SET = "arm"
-# "arm" "thumb"
-#    The instruction set the compiler should use when generating application
-#    code.  The kernel is always compiled with arm code at present.  arm code
-#    is the original 32 bit ARM instruction set, thumb code is the 16 bit
-#    encoded RISC sub-set.  Thumb code is smaller (maybe 70% of the ARM size)
-#    but requires more instructions (140% for 70% smaller code) so may be
-#    slower.
-
-THUMB_INTERWORK = "yes"
-# "yes" "no"
-#    Whether to compile with code to allow interworking between the two
-#    instruction sets.  This allows thumb code to be executed on a primarily
-#    arm system and vice versa.  It is strongly recommended that DISTROs not
-#    turn this off - the actual cost is very small.
-
-DISTRO_BASE = ""
-# "" ":<base>"
-#    If given this must be the name of a 'distro' to add to the bitbake OVERRIDES
-#    after ${DISTRO}, this allows different distros to share a common base of
-#    overrides.  The value given must include a leading ':' or chaos will result.
-
-#-------------------------------------------------------------------------------
-# OUTPUTS
-#-------------------------------------------------------------------------------
-
-#OVERRIDES
-#    The standard ':' separated list of overrides used by bitbake - see the
-#    basic setting in bitbake.conf.  This list is based on that used for the
-#    standard setting however :<base> will be
-#    inserted at appropriate points if a base distro is enabled in the inputs.
-OVERRIDES = "local:${MACHINE}:ixp4xx:${DISTRO}${DISTRO_BASE}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:fail-fast"
-
 require conf/machine/include/tune-xscale.conf
 require conf/machine/include/tune-thumb.conf
 
@@ -65,16 +19,3 @@ require conf/machine/include/tune-thumb.conf
 SERIAL_CONSOLE = "115200 ttyS0"
 KERNEL_CONSOLE = "ttyS0,115200n8"
 USE_VT = "0"
-
-# FULL_OPTIMIZATION
-#    Optimization settings.  Os works fine and is significantly better than O2.
-#    The other settings are somewhat arbitrary.  The optimisations chosen here
-#    include the ones which 'break' symbolic debugging (because the compiler does
-#    not include enough information to allow the debugger to know where given
-#    values are.)  The -fno options are an attempt to cancel explicit use of space
-#    consuming options found in some packages (this isn't a complete list, this is
-#    just the ones which package writers seem to know about and abuse).
-FULL_OPTIMIZATION = "-Os -fomit-frame-pointer -frename-registers \
-       -fno-unroll-loops -fno-inline-functions \
-       -fweb -funit-at-a-time"
-
index 45ddac1..69f04f0 100644 (file)
@@ -1,4 +1,4 @@
-PREFERRED_PROVIDER_virtual/kernel = "linux-handhelds-2.6"
+PREFERRED_PROVIDER_virtual/kernel = "linux"
 PREFERRED_PROVIDERS += "virtual/${TARGET_PREFIX}depmod-2.6:module-init-tools-cross"
 
 BOOTSTRAP_EXTRA_RDEPENDS += "udev module-init-tools"
index 3397d17..0a1e54c 100644 (file)
@@ -2,4 +2,4 @@
 #@NAME: Generic IXP4XX kernel
 #@DESCRIPTION: Machine configuration for a generic ixp4xx board
 
-require conf/machine/include/ixp4xx.conf
+MACHINE_CHECK := ${@bb.fatal('You must set MACHINE to ixp4xxle or ixp4xxbe.')}
index d9737c9..f208852 100644 (file)
@@ -3,10 +3,8 @@
 #@DESCRIPTION: Machine configuration for a generic ixp4xx board in big-endian mode
 
 TARGET_ARCH = "armeb"
-# PACKAGE_ARCH is set in tune-xscale.conf
-PACKAGE_EXTRA_ARCHS = "armv4b armv4tb armv5eb armv5teb"
 
-MACHINE_ARCH = "ixp4xxbe"
+PACKAGE_EXTRA_ARCHS = "armv4b armv4tb armv5eb armv5teb"
 
 require conf/machine/include/ixp4xx.conf
 
index 4747fa5..d39fa1f 100644 (file)
@@ -3,10 +3,8 @@
 #@DESCRIPTION: Machine configuration for a generic ixp4xx board in little-endian mode
 
 TARGET_ARCH = "arm"
-# PACKAGE_ARCH is set in tune-xscale.conf
-PACKAGE_EXTRA_ARCHS = "armv4 armv4t armv5e armv5te"
 
-MACHINE_ARCH = "ixp4xxle"
+PACKAGE_EXTRA_ARCHS = "armv4 armv4t armv5e armv5te"
 
 require conf/machine/include/ixp4xx.conf
 
index 966334a..7e45825 100644 (file)
@@ -2,20 +2,4 @@
 #@NAME: Linksys NSLU2
 #@DESCRIPTION: Machine configuration for the Linksys NSLU2 product
 
-# Note that TARGET_ARCH gets set by the DISTRO for the "nslu2" machine.
-# (Yes, this was a mistake, but it's legacy and can't be easily changed now.)
-# The "nslu2" machine is deprecated - use "nslu2le" or "nslu2be" instead.
-
-require conf/machine/include/ixp4xx.conf
-
-# This should eventually be removed (when we move from nslu2 to nslu2le/nslu2be).
-MACHINE_ARCH = "${@['ixp4xxbe', 'ixp4xxle'][bb.data.getVar('SITEINFO_ENDIANESS', d, 1) == 'le']}"
-
-# This should eventually be removed (when we move from nslu2 to nslu2le/nslu2be).
-PACKAGE_ARCH = "${@['armeb', 'arm'][bb.data.getVar('SITEINFO_ENDIANESS', d, 1) == 'le']}"
-
-# This should eventually be removed (when we move from nslu2 to nslu2le/nslu2be).
-PACKAGE_EXTRA_ARCHS = "${@['ixp4xxbe nslu2be', 'ixp4xxle nslu2le'][bb.data.getVar('SITEINFO_ENDIANESS', d, 1) == 'le']}"
-
-# This should eventually be removed (when we move from nslu2 to nslu2le/nslu2be).
-EXTRA_IMAGECMD_jffs2 += "${@['--big-endian', '--little-endian'][bb.data.getVar('SITEINFO_ENDIANESS', d, 1) == 'le']}"
+MACHINE_CHECK := ${@bb.fatal('You must set MACHINE to nslu2le or nslu2be.')}
index 7cbdd80..16d1ed8 100644 (file)
@@ -2,8 +2,15 @@
 #@NAME: Linksys NSLU2 (big-endian)
 #@DESCRIPTION: Machine configuration for an NSLU2 in big-endian mode
 
-require conf/machine/ixp4xxbe.conf
+TARGET_ARCH = "armeb"
+
+PACKAGE_EXTRA_ARCHS = "armv4b armv4tb armv5eb armv5teb ixp4xxbe"
 
 MACHINE_ARCH = "ixp4xxbe"
+IXP4XX_MACHINE_OVERRIDE = ":nslu2:ixp4xx"
+
+require conf/machine/include/ixp4xx.conf
+
+EXTRA_IMAGECMD_jffs2 += "--big-endian"
 
-PACKAGE_EXTRA_ARCHS += "ixp4xxbe"
+OVERRIDES = "local:${MACHINE}:nslu2:ixp4xx:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:fail-fast:pn-${PN}"
index cc8e8b8..1dd1dda 100644 (file)
@@ -2,8 +2,15 @@
 #@NAME: Linksys NSLU2 (little-endian)
 #@DESCRIPTION: Machine configuration for an NSLU2 in little-endian mode
 
-require conf/machine/ixp4xxle.conf
+TARGET_ARCH = "arm"
+
+PACKAGE_EXTRA_ARCHS = "armv4 armv4t armv5e armv5te ixp4xxle"
 
 MACHINE_ARCH = "ixp4xxle"
 
-PACKAGE_EXTRA_ARCHS += "ixp4xxle"
+require conf/machine/include/ixp4xx.conf
+
+EXTRA_IMAGECMD_jffs2 += "--little-endian"
+
+OVERRIDES = "local:${MACHINE}:nslu2:ixp4xx:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:fail-fast:pn-${PN}"
+
index cd95777..3184be7 100644 (file)
@@ -1,8 +1,7 @@
 DESCRIPTION = "AbiWord is free word processing program similar to Microsoft(r) Word"
-SECTION = "gnome/office"
 HOMEPAGE = "http://www.abiword.org""
+SECTION = "x11/office"
 LICENSE = "GPLv2"
-
 DEPENDS     = "perl-native wv libgsf libgnomeprint libgnomeprintui libglade libfribidi enchant jpeg libpng libxml2"
 RDEPENDS    = "enchant glibc-gconv-ibm850 glibc-gconv-cp1252 \
                glibc-gconv-iso8859-15 glibc-gconv-iso8859-1"
index d488820..0715026 100644 (file)
@@ -1,15 +1,14 @@
-DESCRIPTION ="AbiWord is free word processing program similar to Microsoft(r) Word""
-SECTION = "gnome/office"
-HOMEPAGE="http://www.abiword.org""
-LICENSE="GPLv2"
-
-DEPENDS     = "libwpd librsvg goffice poppler"
-PR="r1"
+DESCRIPTION = "AbiWord is a free word processing program similar to Microsoft(r) Word""
+HOMEPAGE = "http://www.abiword.org""
+SECTION = "x11/office"
+LICENSE = "GPLv2"
+DEPENDS = "libwpd librsvg goffice poppler"
+RDEPENDS='abiword'
+PR = "r1"
 
 SRC_URI = "http://www.abiword.org/downloads/abiword/${PV}/source/abiword-${PV}.tar.gz \
            file://abiword-plugin-pdf-poppler.patch;patch=1;pnum=2"
 S = "${WORKDIR}/abiword-${PV}/abiword-plugins"
-RDEPENDS='abiword'
 
 inherit autotools
 
index 28d076a..21ac8ea 100644 (file)
@@ -1,15 +1,13 @@
-DESCRIPTION ="AbiWord is free word processing program similar to Microsoft(r) Word""
-SECTION = "gnome/office"
-HOMEPAGE="http://www.abiword.org""
-LICENSE="GPLv2"
-
-DEPENDS     = "libwpd librsvg goffice poppler"
-PR="r0"
+DESCRIPTION = "AbiWord is a free word processing program similar to Microsoft(r) Word""
+HOMEPAGE = "http://www.abiword.org""
+SECTION = "x11/office"
+LICENSE = "GPLv2"
+DEPENDS = "libwpd librsvg goffice poppler"
+RDEPENDS = "abiword"
 
 SRC_URI = "http://www.abiword.org/downloads/abiword/${PV}/source/abiword-${PV}.tar.gz \
            file://abiword-plugin-pdf-poppler.patch;patch=1;pnum=2"
 S = "${WORKDIR}/abiword-${PV}/abiword-plugins"
-RDEPENDS='abiword'
 
 inherit autotools
 
index c8f3243..8569845 100644 (file)
@@ -1,8 +1,7 @@
-DESCRIPTION = "AbiWord is free word processing program similar to Microsoft(r) Word"
-SECTION = "gnome/office"
+DESCRIPTION = "AbiWord is a free word processing program similar to Microsoft(r) Word"
 HOMEPAGE = "http://www.abiword.org""
+SECTION = "x11/office"
 LICENSE = "GPLv2"
-
 DEPENDS     = "perl-native libgsf libgnomeprint libgnomeprintui libglade libfribidi enchant jpeg libpng libxml2"
 RDEPENDS    = "enchant glibc-gconv-ibm850 glibc-gconv-cp1252 \
                glibc-gconv-iso8859-15 glibc-gconv-iso8859-1"
diff --git a/packages/angstrom/angstrom-mokogateway-image.bb b/packages/angstrom/angstrom-mokogateway-image.bb
new file mode 100644 (file)
index 0000000..80673f6
--- /dev/null
@@ -0,0 +1,35 @@
+#Angstrom moko gateway image
+# tries to be a companion for openmoko based phones
+LICENSE = "MIT"
+PR = "r0"
+
+ANGSTROM_EXTRA_INSTALL ?= ""
+
+DEPENDS = "task-base"
+RDEPENDS = "task-base-core-default \
+           task-base \
+           bluez-utils \
+           blue-probe \
+          "
+RRECOMMENDS = " \
+    kernel-module-bluetooth \
+    kernel-module-l2cap \
+    kernel-module-rfcomm \
+    kernel-module-hci-vhci \
+    kernel-module-bnep \
+    kernel-module-hidp \
+    kernel-module-hci-uart \
+    kernel-module-sco \
+    ${@base_contains("COMBINED_FEATURES", "usbhost", "kernel-module-hci-usb", "",d)} \
+    ${@base_contains("COMBINED_FEATURES", "pcmcia", "kernel-module-bluetooth3c-cs", "",d)} \
+    ${@base_contains("COMBINED_FEATURES", "pcmcia", "kernel-module-bluecard-cs", "",d)} \
+    ${@base_contains("COMBINED_FEATURES", "pcmcia", "kernel-module-bluetoothuart-cs", "",d)} \
+    ${@base_contains("COMBINED_FEATURES", "pcmcia", "kernel-module-dtl1-cs", "",d)} \
+   "
+
+export IMAGE_BASENAME = "mokogateway-image"
+export IMAGE_LINGUAS = ""
+export PACKAGE_INSTALL = "${RDEPENDS}"
+
+inherit image
+
index aaf5ab4..df043d0 100644 (file)
@@ -1,5 +1,5 @@
-SECTION = "net"
 DESCRIPTION = "The apache v2 web server"
+SECTION = "net"
 DEPENDS = "apache2-native openssl expat pcre"
 RDEPENDS += "openssl"
 
diff --git a/packages/arm-kernel-shim/arm-kernel-shim_1.2.bb b/packages/arm-kernel-shim/arm-kernel-shim_1.2.bb
deleted file mode 100644 (file)
index aa7c7cd..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-DESCRIPTION = "ARM Kernel Shim"
-SECTION = ""
-PRIORITY = "optional"
-HOMEPAGE = "http://wiki.buici.com/twiki/bin/view/Main/ApexBootloader"
-LICENSE = "GPL"
-PR = "r1"
-
-COMPATIBLE_MACHINE = "(ixp4xx|nslu2)"
-
-SRC_URI = "ftp://ftp.buici.com/pub/arm/arm-kernel-shim/arm-kernel-shim-${PV}.tar.gz \
-          file://place-boot-section.patch;patch=1 \
-          file://config-nslu2.h \
-          file://config-nas100d.h \
-          file://config-dsmg600.h \
-          file://config-fsg3.h"
-
-S = ${WORKDIR}/arm-kernel-shim-${PV}
-
-EXTRA_OEMAKE_append = " CROSS_COMPILE=${CROSS_DIR}/bin/${HOST_PREFIX}"
-
-oe_runmake() {
-       mv ${S}/config.h ${S}/config.h.orig
-       # NSLU2
-       cp ${WORKDIR}/config-nslu2.h ${S}/config.h
-       rm -f ${S}/main.o
-       oenote make ${PARALLEL_MAKE} TOOLS=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-nslu2
-       make ${PARALLEL_MAKE} TOOLS=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-nslu2 || die "oe_runmake failed"
-       # NAS100d
-       cp ${WORKDIR}/config-nas100d.h ${S}/config.h
-       rm -f ${S}/main.o
-       oenote make ${PARALLEL_MAKE} TOOLS=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-nas100d
-       make ${PARALLEL_MAKE} TOOLS=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-nas100d || die "oe_runmake failed"
-       # DSMG-600
-       cp ${WORKDIR}/config-dsmg600.h ${S}/config.h
-       rm -f ${S}/main.o
-       oenote make ${PARALLEL_MAKE} TOOLS=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-dsmg600
-       make ${PARALLEL_MAKE} TOOLS=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-dsmg600 || die "oe_runmake failed"
-       # FSG-3
-       cp ${WORKDIR}/config-fsg3.h ${S}/config.h
-       rm -f ${S}/main.o
-       oenote make ${PARALLEL_MAKE} TOOLS=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-fsg3
-       make ${PARALLEL_MAKE} TOOLS=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-fsg3 || die "oe_runmake failed"
-       mv ${S}/config.h.orig ${S}/config.h
-}
-
-do_populate_staging() {
-       install -d ${STAGING_LOADER_DIR}
-       cp ${S}/arm-kernel-shim-nslu2.bin ${STAGING_LOADER_DIR}/
-       cp ${S}/arm-kernel-shim-nas100d.bin ${STAGING_LOADER_DIR}/
-       cp ${S}/arm-kernel-shim-dsmg600.bin ${STAGING_LOADER_DIR}/
-       cp ${S}/arm-kernel-shim-fsg3.bin ${STAGING_LOADER_DIR}/
-}
diff --git a/packages/arm-kernel-shim/arm-kernel-shim_1.3.bb b/packages/arm-kernel-shim/arm-kernel-shim_1.3.bb
new file mode 100644 (file)
index 0000000..4014d9e
--- /dev/null
@@ -0,0 +1,77 @@
+DESCRIPTION = "ARM Kernel Shim"
+SECTION = ""
+PRIORITY = "optional"
+HOMEPAGE = "http://wiki.buici.com/twiki/bin/view/Main/ApexBootloader"
+LICENSE = "GPL"
+PR = "r4"
+
+COMPATIBLE_MACHINE = "(ixp4xx|nslu2)"
+
+SRC_URI = "ftp://ftp.buici.com/pub/arm/arm-kernel-shim/arm-kernel-shim-${PV}.tar.gz \
+          file://passthrough-atags.patch;patch=1 \
+          file://cmdline_if_none.patch;patch=1 \
+          file://config-nslu2.h \
+          file://config-nas100d.h \
+          file://config-dsmg600.h \
+          file://config-fsg3.h"
+
+S = ${WORKDIR}/arm-kernel-shim-${PV}/${PV}
+
+EXTRA_OEMAKE_append = " CROSS_COMPILE=${CROSS_DIR}/bin/${HOST_PREFIX}"
+
+oe_runmake() {
+       mv ${S}/config.h ${S}/config.h.orig
+       # NSLU2
+       if [ ${SITEINFO_ENDIANESS} == "be" ] ; then
+               sed -e 's|//#define FORCE_BIGENDIAN|#define FORCE_BIGENDIAN|' \
+                       ${WORKDIR}/config-nslu2.h > ${S}/config.h
+       else
+               sed -e 's|//#define FORCE_LITTLEENDIAN|#define FORCE_LITTLEENDIAN|' \
+                       ${WORKDIR}/config-nslu2.h > ${S}/config.h
+       fi
+       rm -f ${S}/main.o
+       oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-nslu2
+       make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-nslu2 || die "oe_runmake failed"
+       # NAS100d
+       if [ ${SITEINFO_ENDIANESS} == "be" ] ; then
+               sed -e 's|//#define FORCE_BIGENDIAN|#define FORCE_BIGENDIAN|' \
+                       ${WORKDIR}/config-nas100d.h > ${S}/config.h
+       else
+               sed -e 's|//#define FORCE_LITTLEENDIAN|#define FORCE_LITTLEENDIAN|' \
+                       ${WORKDIR}/config-nas100d.h > ${S}/config.h
+       fi
+       rm -f ${S}/main.o
+       oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-nas100d
+       make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-nas100d || die "oe_runmake failed"
+       # DSMG-600
+       if [ ${SITEINFO_ENDIANESS} == "be" ] ; then
+               sed -e 's|//#define FORCE_BIGENDIAN|#define FORCE_BIGENDIAN|' \
+                       ${WORKDIR}/config-dsmg600.h > ${S}/config.h
+       else
+               sed -e 's|//#define FORCE_LITTLEENDIAN|#define FORCE_LITTLEENDIAN|' \
+                       ${WORKDIR}/config-dsmg600.h > ${S}/config.h
+       fi
+       rm -f ${S}/main.o
+       oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-dsmg600
+       make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-dsmg600 || die "oe_runmake failed"
+       # FSG-3
+       if [ ${SITEINFO_ENDIANESS} == "be" ] ; then
+               sed -e 's|//#define FORCE_BIGENDIAN|#define FORCE_BIGENDIAN|' \
+                       ${WORKDIR}/config-fsg3.h > ${S}/config.h
+       else
+               sed -e 's|//#define FORCE_LITTLEENDIAN|#define FORCE_LITTLEENDIAN|' \
+                       ${WORKDIR}/config-fsg3.h > ${S}/config.h
+       fi
+       rm -f ${S}/main.o
+       oenote make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-fsg3
+       make ${PARALLEL_MAKE} CROSS_COMPILE=${CROSS_DIR}/bin/${TARGET_PREFIX} PACKAGE=arm-kernel-shim-fsg3 || die "oe_runmake failed"
+       mv ${S}/config.h.orig ${S}/config.h
+}
+
+do_populate_staging() {
+       install -d ${STAGING_LOADER_DIR}
+       cp ${S}/arm-kernel-shim-nslu2.bin ${STAGING_LOADER_DIR}/
+       cp ${S}/arm-kernel-shim-nas100d.bin ${STAGING_LOADER_DIR}/
+       cp ${S}/arm-kernel-shim-dsmg600.bin ${STAGING_LOADER_DIR}/
+       cp ${S}/arm-kernel-shim-fsg3.bin ${STAGING_LOADER_DIR}/
+}
diff --git a/packages/arm-kernel-shim/files/cmdline_if_none.patch b/packages/arm-kernel-shim/files/cmdline_if_none.patch
new file mode 100644 (file)
index 0000000..460f7be
--- /dev/null
@@ -0,0 +1,45 @@
+--- arm-kernel-shim-1.3/main.c.orig    2007-02-14 19:05:35.000000000 -0600
++++ arm-kernel-shim-1.3/main.c 2007-02-14 22:48:06.000000000 -0600
+@@ -153,6 +153,42 @@
+   p->hdr.tag          = ATAG_NONE;
+   p->hdr.size         = 0;
++#else
++
++#ifdef CMDLINE_IF_NONE
++
++  /* Walk over the ATAG list, we need to find the end of the list.
++   * If we find a command line tag, stash away the pointer to the
++   * actual command line itself.  Note that the implementation
++   * below assumes a single ATAG_CMDLINE passed in from the
++   * bootloader, which may not be a good assumption in all cases.
++   */
++  {
++    char *c = 0;
++    for_each_tag(p, (struct tag*) PHYS_PARAMS)
++      if (p->hdr.tag == ATAG_CMDLINE) c = p->u.cmdline.cmdline;
++
++  /* p -> final tag (ATAG_NONE), and c -> command line if found */
++  /* if no ATAG_CMDLINE, or command line is empty, add the default one. */
++
++    if ((c == 0) || (*c == 0)) {
++      p->hdr.tag = ATAG_CMDLINE;
++      p->hdr.size = tag_size (tag_cmdline)
++        + (sizeof (cmdline)+3)/4 - 1;
++      {
++        const char* sz = cmdline + offset;
++        int i;
++        for (i = 0; i < sizeof (cmdline); ++i)
++          p->u.cmdline.cmdline[i] = sz[i];
++      }
++      p = tag_next (p);
++      p->hdr.tag = ATAG_NONE;
++      p->hdr.size = 0;
++    }
++  }
++
++#endif
++
+ #endif
+       /* Pass control to the kernel */
index cd33115..3203052 100644 (file)
 
 #define PHYS_PARAMS       0x00000100 /* Address for the parameter list */
 
-#define RAM_BANK0_START           0x00000000
-#define RAM_BANK0_LENGTH   0x04000000
+//#define RAM_BANK0_START         0x00000000
+//#define RAM_BANK0_LENGTH   0x04000000
 
 //#define RAM_BANK1_START         0xd0000000
 //#define RAM_BANK1_LENGTH   0x10000000
 
-//#define COMMANDLINE\
-// "console=ttyAMA0 root=/dev/memblk0 rootfstype=jffs"
+#define COMMANDLINE \
+ "init=/linuxrc root=/dev/mtdblock2 rootfstype=jffs2 rw noirqdebug console=ttyS0,115200n8"
 
 #define MACH_TYPE                 964
 
+/* The DSM-G600 RedBoot sets up the ATAGs correctly */
+#define PASSTHROUGH_ATAGS
+
+/* but if the command line passed in is empty, use the default above. */
+#define CMDLINE_IF_NONE
+
+/* Uncomment one of these if you need to switch the CPU into a
+   specific mode. */
+//#define FORCE_LITTLEENDIAN
+//#define FORCE_BIGENDIAN
+
 #endif  /* __CONFIG_H__ */
index e2cdf8a..08684d7 100644 (file)
@@ -27,4 +27,9 @@
 
 #define MACH_TYPE                 1091
 
+/* Uncomment one of these if you need to switch the CPU into a
+   specific mode. */
+//#define FORCE_LITTLEENDIAN
+//#define FORCE_BIGENDIAN
+
 #endif  /* __CONFIG_H__ */
index 4389644..846161d 100644 (file)
 //#define RAM_BANK1_LENGTH   0x10000000
 
 #define COMMANDLINE\
- "init=/linuxrc root=/dev/mtdblock2 rootfstype=jffs rw noirqdebug console=ttyS0,115200n8"
+ "init=/linuxrc root=/dev/mtdblock2 rootfstype=jffs2 rw noirqdebug console=ttyS0,115200n8"
 
 #define MACH_TYPE                 865
 
+/* Uncomment one of these if you need to switch the CPU into a
+   specific mode. */
+//#define FORCE_LITTLEENDIAN
+//#define FORCE_BIGENDIAN
+
 #endif  /* __CONFIG_H__ */
index 2262b57..d641523 100644 (file)
 //#define RAM_BANK1_LENGTH   0x10000000
 
 #define COMMANDLINE\
- "init=/linuxrc root=/dev/mtdblock4 rootfstype=jffs rw noirqdebug console=ttyS0,115200n8"
+ "init=/linuxrc root=/dev/mtdblock4 rootfstype=jffs2 rw noirqdebug console=ttyS0,115200n8"
 
 #define MACH_TYPE                 597
 
+/* Uncomment one of these if you need to switch the CPU into a
+   specific mode. */
+//#define FORCE_LITTLEENDIAN
+//#define FORCE_BIGENDIAN
+
 #endif  /* __CONFIG_H__ */
diff --git a/packages/arm-kernel-shim/files/disable-commandline.patch b/packages/arm-kernel-shim/files/disable-commandline.patch
deleted file mode 100644 (file)
index d8c59f1..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
---- arm-kernel-shim/main.c~    2006-07-21 11:12:07.000000000 +0930
-+++ arm-kernel-shim/main.c     2007-01-28 11:56:35.000000000 +1030
-@@ -47,7 +47,9 @@
- #define NAKED         __attribute__((naked))
-+#if defined (COMMANDLINE)
- const char __attribute__((section(".rodata"))) cmdline[] = COMMANDLINE;
-+#endif
- void NAKED __attribute__((section(".boot"))) boot (u32 r0, u32 r1, u32 r2)
- {
-@@ -82,6 +84,7 @@
-   pv += H_SIZE(pv)*4;
- #endif
-+#if defined (COMMANDLINE)
-       /* Command line */
-   H_SIZE(pv)          = tag_size(tag_cmdline) + (sizeof (cmdline)+1+3)/4;
-   H_TAG(pv)           = ATAG_CMDLINE;
-@@ -91,6 +94,7 @@
-       P_CMDLINE(pv)->cmdline[i] = cmdline[i];
-   }
-   pv += H_SIZE(pv)*4;
-+#endif
-       /* End */
-   H_SIZE(pv)          = 0;
diff --git a/packages/arm-kernel-shim/files/passthrough-atags.patch b/packages/arm-kernel-shim/files/passthrough-atags.patch
new file mode 100644 (file)
index 0000000..194279d
--- /dev/null
@@ -0,0 +1,20 @@
+--- arm-kernel-shim-1.3/main.c~        2007-02-11 05:52:32.000000000 +1030
++++ arm-kernel-shim-1.3/main.c 2007-02-14 16:39:40.000000000 +1030
+@@ -100,6 +100,8 @@
+                 :  "+r" (offset)
+                 :: "lr", "cc");
++#if !defined (PASSTHROUGH_ATAGS)
++
+   p = (struct tag*) PHYS_PARAMS;
+       /* Always start with the CORE tag */
+@@ -151,6 +153,8 @@
+   p->hdr.tag          = ATAG_NONE;
+   p->hdr.size         = 0;
++#endif
++
+       /* Pass control to the kernel */
+   boot (0, MACH_TYPE, PHYS_PARAMS);
+ }
diff --git a/packages/arm-kernel-shim/files/place-boot-section.patch b/packages/arm-kernel-shim/files/place-boot-section.patch
deleted file mode 100644 (file)
index 6e6c946..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
---- arm-kernel-shim-1.2/Makefile~      2007-02-06 16:44:31.000000000 +1030
-+++ arm-kernel-shim-1.2/Makefile       2007-02-06 16:56:12.000000000 +1030
-@@ -9,7 +9,8 @@
- OBJCOPY=$(TOOLS)objcopy
- CFLAGS:=-g -Os -nostartfiles -nostdlib
--LDFLAGS:= -g -X -Map shim.map -Ttext 0
-+# LDFLAGS:= -g -X -Map shim.map -Ttext 0
-+LDFLAGS:= -g -X -Map shim.map -Ttext 0 --section-start .boot=1fb
- SRCS:= shim.lds main.c
- OBJS:=$(SRCS:.c=.o)
index c322134..302ba10 100644 (file)
@@ -1,2 +1,11 @@
+.-------.                                           
+|       |                  .-.                      
+|   |   |-----.-----.-----.| |   .----..-----.-----.
+|       |     | __  |  ---'| '--.|  .-'|     |     |
+|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |
+'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'
+                -'  |
+                '---'
+
 The Angstrom Distribution \n \l
 
index 554e604..182fc83 100644 (file)
@@ -1,3 +1,12 @@
+.-------.                                           
+|       |                  .-.                      
+|   |   |-----.-----.-----.| |   .----..-----.-----.
+|       |     | __  |  ---'| '--.|  .-'|     |     |
+|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |
+'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'
+                -'  |
+                '---'
+
 The Angstrom Distribution %h
 
 
index c149fd9..3c4ed7e 100644 (file)
@@ -1,7 +1,7 @@
 DESCRIPTION = "Miscellaneous files for the base system."
 SECTION = "base"
 PRIORITY = "required"
-PR = "r58"
+PR = "r59"
 LICENSE = "GPL"
 
 SRC_URI = " \
index e83237a..6eb86fa 100644 (file)
@@ -3,7 +3,7 @@
 # Released under the MIT license (see packages/COPYING)
 
 DESCRIPTION = "A GTK2 based media player that looks alot like XMMS"
-SECTION  =  "x11/multimedia"
+SECTION = "x11/multimedia"
 HOMEPAGE = "http://beepmp.sourceforge.net"
 LICENSE = "GPL"
 
diff --git a/packages/blueprobe/blueprobe_svn.bb b/packages/blueprobe/blueprobe_svn.bb
new file mode 100644 (file)
index 0000000..5ef2dfc
--- /dev/null
@@ -0,0 +1,13 @@
+PV = "0.18+svn${SRCDATE}"
+PR = "r0"
+
+inherit pkgconfig gpe autotools
+
+SRC_URI = "${GPE_SVN} \
+           file://blueprobe-svn-Makefile.patch;patch=1"
+
+S = "${WORKDIR}/${PN}"
+
+require blueprobe.inc
+
+DEFAULT_PREFERENCE = "-1"
diff --git a/packages/blueprobe/files/blueprobe-svn-Makefile.patch b/packages/blueprobe/files/blueprobe-svn-Makefile.patch
new file mode 100644 (file)
index 0000000..b51b465
--- /dev/null
@@ -0,0 +1,250 @@
+diff -Naur blueprobe.orig/Makefile blueprobe/Makefile
+--- blueprobe.orig/Makefile    2007-02-10 16:23:12.158675487 +0200
++++ blueprobe/Makefile 2007-02-10 16:27:53.906731396 +0200
+@@ -1,7 +1,7 @@
+ PREFIX = /usr/local
+ PACKAGE = blueprobe
+ DEBUG = no
+-CVSBUILD = yes
++CVSBUILD = no
+ VERSION = 0.18
+ MEMBERS = blueprobe
+@@ -17,7 +17,7 @@
+ ifeq ($(CVSBUILD),yes)
+ BUILD = ../build
+ else
+-BUILD = build
++BUILD = .
+ endif
+ all: $(PACKAGE)
+diff -Naur blueprobe.orig/Makefile.dpkg_ipkg blueprobe/Makefile.dpkg_ipkg
+--- blueprobe.orig/Makefile.dpkg_ipkg  1970-01-01 02:00:00.000000000 +0200
++++ blueprobe/Makefile.dpkg_ipkg       2007-02-10 16:28:13.211831530 +0200
+@@ -0,0 +1,114 @@
++## Please read the README in this directory to see how to use this
++## Makefile snippet
++
++# Let's use whatever clean target the specific app provides
++
++CONTROL = `if test -e familiar/control1; then echo control1; else echo control; fi`
++
++# URL to source tarball
++SOURCE = http://gpe.linuxtogo.org/download/source/$(PACKAGE)-$(VERSION).tar.gz
++
++# can change this to e.g. /var/tmp/deb
++DEB_PATH = ../deb
++
++ifeq ($(CVSBUILD),yes)
++LIBGPEWIDGET_PC = libgpewidget-uninstalled
++PC_EXTRA=PKG_CONFIG_PATH=../../base/libgpewidget
++else
++LIBGPEWIDGET_PC = libgpewidget
++endif
++
++ifeq ($(IN_LIBGPEWIDGET),)
++GPECFLAGS = $(shell $(PC_EXTRA) pkg-config --cflags $(LIBGPEWIDGET_PC))
++GPELIBS = $(shell $(PC_EXTRA) pkg-config --libs $(LIBGPEWIDGET_PC))
++endif
++
++GTKCFLAGS = $(shell pkg-config --cflags gtk+-2.0)
++GTKLIBS = $(shell pkg-config --libs gtk+-2.0)
++
++STANDARD_CPPFLAGS = -D_GNU_SOURCE -DPACKAGE=\"$(PACKAGE)\" -DPREFIX=\"$(PREFIX)\" -DPACKAGE_LOCALE_DIR=\"$(PREFIX)/share/locale\"
++STANDARD_CFLAGS = -MD -Wall
++
++ifeq ($(DEBUG),yes)
++CFLAGS += -O2 -g
++LDFLAGS = -g
++else
++CFLAGS += -Os -fomit-frame-pointer
++endif
++
++dist: check-source clean dist-prep
++      rm -rf ../$(PACKAGE)-$(VERSION)
++      mkdir ../$(PACKAGE)-$(VERSION)
++      ( tar cf - --exclude "*/CVS" --exclude CVS --exclude "*~" --exclude "#*#" --exclude "debian" --exclude ".*" --exclude "*.ipk" --exclude "*.ipk.*" --exclude "*.mo" --exclude "*.batch" --exclude "translation-ipkgs.txt" * ) | (cd ../$(PACKAGE)-$(VERSION); tar xf -)
++      ( if [ -f linguas ]; then LINGUAS=`cat linguas`; PATCH_LINGUAS="s:^LINGUAS =.*:LINGUAS = $${LINGUAS}:"; fi; cd ../$(PACKAGE)-$(VERSION) && mkdir build && cp $(BUILD)/Makefile.dpkg_ipkg $(BUILD)/Makefile.translation build/ && sed "s:^CVSBUILD =.*:CVSBUILD = no:;s:^DEBUG =.*:DEBUG = no:;s:Makefile.translation-auto-linguas:Makefile.translation:;$${PATCH_LINGUAS}" < Makefile > Makefile.new && mv Makefile.new Makefile )
++      ( cd .. ; tar cf - $(PACKAGE)-$(VERSION) | gzip -9 >$(PACKAGE)-$(VERSION).tar.gz )
++      rm -rf ../$(PACKAGE)-$(VERSION)
++      $(MAKE) printinfo
++
++dist-upload: dist
++      scp ../$(PACKAGE)-$(VERSION).tar.gz $(USER)@linuxtogo.org:/media/data/projects/gpe/source/
++
++dist-prep:
++ipkg-prep:
++install-mo:
++# empty, can be filled in Makefile.translation
++
++install: install-program install-mo
++
++clean-dist:
++      rm -rf familiar/dist familiar/dist.list
++
++clean: clean-dist
++
++check-source:
++      @if [ -f familiar/$(CONTROL) ] && ! grep -q '^Source:' familiar/$(CONTROL); then echo -e "\nNo Source: field in control file.  Aborting.\n"; exit 1; fi
++
++ipkg: check-source ipkg-prep clean
++      rm -rf familiar/dist
++      mkdir -p familiar/dist/CONTROL
++      sed 's:VERSION:$(VERSION):;s$$SOURCE$$$(SOURCE)$$' < familiar/$(CONTROL) > familiar/dist/CONTROL/control
++      if test -e familiar/conffiles; then install -m 644 familiar/conffiles familiar/dist/CONTROL; fi
++      if test -e familiar/preinst;   then install familiar/preinst   familiar/dist/CONTROL; fi
++      if test -e familiar/postinst;  then install familiar/postinst  familiar/dist/CONTROL; fi
++      if test -e familiar/prerm;     then install familiar/prerm     familiar/dist/CONTROL; fi
++      if test -e familiar/postrm;    then install familiar/postrm    familiar/dist/CONTROL; fi
++      $(MAKE) DESTDIR=`pwd`/familiar/dist PREFIX=/usr prefix=/usr DEBUG=no install-program
++      rm -rf familiar/dist.list
++      ipkg-build -o 0 -g 0 familiar/dist | sed 's/^Packaged .*into //; t 1; d; : 1; s:.*/::' >> familiar/dist.list
++      if [ "x$(LINGUAS)" != "x" ]; then make translation-ipkg; tr ' ' '\n' < translation-ipkgs.txt >> familiar/dist.list; fi
++      md5sum `cat familiar/dist.list` > $(PACKAGE)_$(VERSION).batch
++      rm -rf familiar/dist familiar/dist.list
++      $(MAKE) printinfo
++
++dpkg: dist
++      mkdir -p $(DEB_PATH)
++      ( olddir=`pwd`; cd $(DEB_PATH); rm -rf $(PACKAGE)-$(VERSION); ln -s $$olddir/../$(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)_$(VERSION).orig.tar.gz ; tar xzf $(PACKAGE)_$(VERSION).orig.tar.gz )
++      mkdir -p $(DEB_PATH)/$(PACKAGE)-$(VERSION)/debian
++      for i in debian/*; do if test -f $$i; then cp $$i $(DEB_PATH)/$(PACKAGE)-$(VERSION)/debian/; fi; done
++
++CVSTAG := $(shell echo $(PACKAGE)-$(VERSION) | tr [a-z.] [A-Z_])
++printinfo:
++      @printf '-------------------------------------------------------------------------------\n'
++      @printf "If this becomes a package release, please add a CVS tag.\n"
++      @printf "You can use 'make tag' for that, it will execute\n"
++      @printf "   cvs tag %s\n" $(CVSTAG)
++      @printf "Please upload a tarball (created with 'make dist') to\n"
++      @printf "   ftp://ftp.handhelds.org/pub/projects/gpe/\n"
++      @printf "   (handhelds.org:~ftp/pub/projects/gpe/source)\n"
++      @printf "You can use 'make dist-upload' to do that.\n"
++      @printf "You are currently known as USER %s.\n" $(USER)
++      @printf '-------------------------------------------------------------------------------\n'
++
++tag: check-source
++      cvs tag $(CVSTAG)
++
++retag: check-source
++      cvs tag -F $(CVSTAG)
++
++source: tag dist-upload
++
++%.pc: %.pc.in
++      sed 's:PREFIX:$(PREFIX):;s:BUILDDIR:$(shell pwd):;s:VERSION:$(VERSION):' < $< > $@
++
++.c.o:;
++      $(CC) $(CFLAGS) $(CPPFLAGS) $(PACKAGE_CFLAGS) $(PACKAGE_CPPFLAGS) -c $< -o $@
+diff -Naur blueprobe.orig/Makefile.translation blueprobe/Makefile.translation
+--- blueprobe.orig/Makefile.translation        1970-01-01 02:00:00.000000000 +0200
++++ blueprobe/Makefile.translation     2007-02-10 16:28:17.996104169 +0200
+@@ -0,0 +1,107 @@
++.SUFFIXES: .mo .po .pot .po8
++
++CONTROL = `if test -e familiar/control1; then echo control1; else echo control; fi`
++
++# use ipkg-build or ipkg-deb-build
++IPKG_BUILD := ipkg-build
++
++TRANSLATION_SITE := http://www.iro.umontreal.ca/~gnutra/maint
++
++ifeq ($(DIR_PO),)
++DIR_PO := po
++endif
++
++ifeq ($(BINPACKAGE),)
++BINPACKAGE := $(PACKAGE)
++endif
++
++mo-files = $(patsubst %,$(DIR_PO)/%.mo,$(LINGUAS))
++po-files = $(patsubst %,$(DIR_PO)/%.po,$(LINGUAS))
++
++ifeq ($(shell if [ -f $(PACKAGE).desktop.in ]; then echo present; fi;),present)
++desktop-files += $(PACKAGE).desktop
++endif
++
++ifneq ($(EXTRA_DESKTOPS),)
++desktop-files += $(patsubst %.desktop.in,%.desktop,$(EXTRA_DESKTOPS))
++endif
++
++all-mo: $(mo-files)
++
++all-desktop: $(desktop-files)
++
++install-mo: all-mo
++      if [ "$(ENABLE_NLS)" != "no" ]; then \
++              if [ "x$(LINGUAS)" != "x" ]; then \
++                      for i in $(LINGUAS); do mkdir -p $(DESTDIR)$(PREFIX)/share/locale/$$i/LC_MESSAGES; install -m 644 $(DIR_PO)/$$i.mo $(DESTDIR)$(PREFIX)/share/locale/$$i/LC_MESSAGES/$(PACKAGE).mo; done \
++              fi; \
++      fi;
++
++.po8.mo:;
++      if [ "$(ENABLE_NLS)" != "no" ]; then \
++              msgfmt -o $@ $<; \
++      fi;
++
++.po.po8:;
++      CTYPE=`grep "^\"Content-Type:" $< | sed 's/^.*charset=//;s/\\\\.*//'`; sed "s/\(Content-Type: .*=\)$$CTYPE/\1UTF-8/" < $< | iconv -f $${CTYPE} -t UTF-8 >$@
++
++update-po: $(po-files) extract-po
++
++dist-prep: update-po freshen-po
++# empty
++
++ifeq ($(CVSBUILD),yes)
++ipkg-prep: freshen-po
++# empty
++endif
++
++extract-po:
++      mkdir -p $(DIR_PO)
++      ( SOURCES="$(SOURCES)"; for DESK in $(PACKAGE).desktop.in $(EXTRA_DESKTOPS); do if [ -f $$DESK ]; then intltool-extract --type=gettext/ini $$DESK; SOURCES="$$SOURCES $${DESK}.h"; fi; done; if [ "x$$SOURCES" != "x" ]; then xgettext --add-comments=TRANSLATORS: -k_ -kN_ -o $(DIR_PO)/$(PACKAGE).pot.new $$SOURCES; fi )
++      if [ -f $(DIR_PO)/$(PACKAGE).pot.new ]; then if cmp -s $(DIR_PO)/$(PACKAGE).pot.new $(PACKAGE).pot; then rm $(DIR_PO)/$(PACKAGE).pot.new; else mv $(DIR_PO)/$(PACKAGE).pot.new $(DIR_PO)/$(PACKAGE).pot; fi; fi
++
++clean: clean-po clean-dist-translation
++
++clean-po:
++      rm -rf $(DIR_PO)/*.mo
++      for i in $(desktop-files); do if [ -f $$i.in ]; then rm -f $$i; rm -f $$i.in.h; fi; done
++
++%.desktop: %.desktop.in $(patsubst %,$(DIR_PO)/%.po,$(LINGUAS))
++      intltool-merge -u -d $(DIR_PO) $< $@
++
++freshen-po:
++      rm -rf tmp-po
++      mkdir tmp-po
++      cd tmp-po; for LANG in $(LINGUAS); do wget $(TRANSLATION_SITE)/$(PACKAGE)/$$LANG.po; done
++      for LANG in $(LINGUAS); do if [ ! -f $(DIR_PO)/$$LANG.po ] || ! cmp -s $(DIR_PO)/$$LANG.po tmp-po/$$LANG.po ; then mv tmp-po/$$LANG.po $(DIR_PO)/$$LANG.po; echo "Updated $$LANG translation"; fi; done
++      rm -rf tmp-po
++
++# ------------------------------------------------------------------------
++
++MAINTAINER = $(shell grep 'Maintainer: ' familiar/$(CONTROL) | cut -d ' ' -f 2-)
++
++ifndef BUILD
++BUILD = ../build
++endif
++
++transdist := familiar/dist-translation
++templates := $(BUILD)/familiar
++ipkglist  := translation-ipkgs.txt
++
++clean-dist-translation:
++      rm -rf $(transdist) $(ipkglist)
++
++real-translation-package: all-mo
++      rm -rf $(transdist) $(ipkglist)
++      for LINGUA in $(LINGUAS); do \
++              i=$$(echo $$LINGUA | tr '[A-Z_]' '[a-z+]'); \
++              mkdir -p $(transdist)/$$i/CONTROL; \
++              mkdir -p $(transdist)/$$i$(PREFIX)/share/locale/$$LINGUA/LC_MESSAGES; \
++              install -m 644 po/$$LINGUA.mo $(transdist)/$$i$(PREFIX)/share/locale/$$LINGUA/LC_MESSAGES/$(PACKAGE).mo; \
++              sed -e "s/<maintainer>/$(MAINTAINER)/;s/<package>/$(BINPACKAGE)/;s/<version>/$(VERSION)/;s/<language>/$$i/;s!<source>!$(SOURCE)!" $(templates)/control.translation > $(transdist)/$$i/CONTROL/control; \
++              install $(templates)/postinst.translation $(transdist)/$$i/CONTROL/postinst; \
++              $(IPKG_BUILD) -g 0 -o 0 $(transdist)/$$i | sed 's/^Packaged .*into //; t 1; d; : 1; s:.*/::' >> $(ipkglist); \
++      done
++
++translation-ipkg:
++      make PREFIX=/usr real-translation-package
index 43d807f..8ba346e 100644 (file)
@@ -1,4 +1,4 @@
-SECTION = "net/misc"
+SECTION = "network/misc"
 DESCRIPTION = "Bluetooth cellphone information gatherer"
 PV = "0.1"
 SRC_URI = "http://www.remote-exploit.org/images/a/a0/Bluesnarfer.tar.gz"
index 21cbea1..a22431e 100644 (file)
@@ -42,6 +42,7 @@ do_install_append() {
        chmod u+s ${D}${base_sbindir}/hciattach ${D}${base_sbindir}/hciconfig
        install -m 0644 ${WORKDIR}/hcid.conf ${D}${sysconfdir}/bluetooth/
        install -m 0755 ${WORKDIR}/02dtl1_cs.sh ${D}${sysconfdir}/apm/event.d/
+        install -m 0755 ${S}/daemon/.libs/passkey-agent ${D}${base_bindir}/
 }
 
 CONFFILES_${PN} = "${sysconfdir}/bluetooth/hcid.conf ${sysconfdir}/bluetooth/rfcomm.conf \
index 9346fff..36410ee 100644 (file)
@@ -1,3 +1,3 @@
 require bluez-utils.inc
 
-PR = "r1"
+PR = "r2"
index 32e956f..d6cd03f 100644 (file)
@@ -1,10 +1,9 @@
 DESCRIPTION = "Portable Bandwidth Monitor and rate estimator"
 HOMEPAGE = "http://people.suug.ch/~tgr/bmon/"
-SECTION = "console/utilities"
+SECTION = "console/utils"
 LICENSE = "MIT"
 # only works with libnl-0.5.0
 DEPENDS = "libnl"
-PR = "r0"
 
 SRC_URI = "http://people.suug.ch/~tgr/bmon/files/bmon-2.1.0.tar.gz \
            file://no-strip.patch;patch=1"
index 37a9676..ab17d96 100644 (file)
@@ -42,8 +42,8 @@ INITSCRIPT_NAME_${PN}-udhcpd = "busybox-udhcpd"
 INITSCRIPT_NAME_${PN} = "syslog"
 CONFFILES_${PN} = "${sysconfdir}/syslog.conf"
 
-# This disables the syslog startup links in openslug (see openslug-init)
-INITSCRIPT_PARAMS_${PN}_openslug = "start 20 ."
+# This disables the syslog startup links in slugos (see slugos-init)
+INITSCRIPT_PARAMS_${PN}_slugos = "start 20 ."
 
 inherit cml1 update-rc.d
 
similarity index 95%
rename from packages/cairo/cairo_1.3.12.bb
rename to packages/cairo/cairo_1.3.14.bb
index cb83b8e..6bc0cb3 100644 (file)
@@ -6,5 +6,5 @@ require cairo.inc
 SRC_URI = "http://cairographics.org/snapshots/cairo-${PV}.tar.gz \
            file://cairo-surface-cache-3.patch;patch=1"
 
-PR = "r2"
+PR = "r0"
 
index cc42d89..466a116 100644 (file)
@@ -1,6 +1,6 @@
 DESCRIPTION = "XStream Server"
 DEPENDS = "readline"
-LICENSE = "GPL-2"
+LICENSE = "GPLv2"
 PR = "r2"
 
 SRC_URI = "http://surfnet.dl.sourceforge.net/sourceforge/xbplayer/${P}.tar.gz \
diff --git a/packages/cyrus-imapd/cyrus-imapd-2.2.12/remove-install-strip.patch b/packages/cyrus-imapd/cyrus-imapd-2.2.12/remove-install-strip.patch
new file mode 100644 (file)
index 0000000..bb43d16
--- /dev/null
@@ -0,0 +1,45 @@
+---
+ cyrus-imapd-2.2.12/imtest/Makefile.in       |    2 +-
+ cyrus-imapd-2.2.12/installsieve/Makefile.in |    2 +-
+ cyrus-imapd-2.2.12/netnews/Makefile.in      |    2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+Index: cyrus-imapd-2.2.12/imtest/Makefile.in
+===================================================================
+--- cyrus-imapd-2.2.12.orig/imtest/Makefile.in
++++ cyrus-imapd-2.2.12/imtest/Makefile.in
+@@ -72,7 +72,7 @@
+ all: imtest
+ install:
+-      $(INSTALL) -s -m 755 imtest $(DESTDIR)$(exec_prefix)/bin
++      $(INSTALL) -m 755 imtest $(DESTDIR)$(exec_prefix)/bin
+       ln -f $(DESTDIR)$(exec_prefix)/bin/imtest $(DESTDIR)$(exec_prefix)/bin/pop3test
+       ln -f $(DESTDIR)$(exec_prefix)/bin/imtest $(DESTDIR)$(exec_prefix)/bin/nntptest
+       ln -f $(DESTDIR)$(exec_prefix)/bin/imtest $(DESTDIR)$(exec_prefix)/bin/lmtptest
+Index: cyrus-imapd-2.2.12/installsieve/Makefile.in
+===================================================================
+--- cyrus-imapd-2.2.12.orig/installsieve/Makefile.in
++++ cyrus-imapd-2.2.12/installsieve/Makefile.in
+@@ -66,7 +66,7 @@
+ all: installsieve
+ install:
+-      $(INSTALL) -s -m 755 installsieve $(DESTDIR)$(exec_prefix)/bin
++      $(INSTALL) -m 755 installsieve $(DESTDIR)$(exec_prefix)/bin
+ OBJS=lex.o mystring.o request.o isieve.o
+Index: cyrus-imapd-2.2.12/netnews/Makefile.in
+===================================================================
+--- cyrus-imapd-2.2.12.orig/netnews/Makefile.in
++++ cyrus-imapd-2.2.12/netnews/Makefile.in
+@@ -69,7 +69,7 @@
+ all: remotepurge
+ install:
+-      $(INSTALL) -s -m 755 remotepurge $(DESTDIR)$(service_path)
++      $(INSTALL) -m 755 remotepurge $(DESTDIR)$(service_path)
+ .c.o:
+       $(CC) -c $(CPPFLAGS) $(DEFS) $(CFLAGS) $<
index e72253d..8167719 100644 (file)
@@ -1,7 +1,7 @@
 SECTION = "console/network"
 DEPENDS = "cyrus-sasl virtual/db"
 LICENSE = "BSD"
-PR = "r10"
+PR = "r11"
 DEPENDS += "install-native"
 
 SRC_URI = "ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-imapd-${PV}.tar.gz \
@@ -13,6 +13,7 @@ SRC_URI = "ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-imapd-${PV}.tar.gz \
           file://cyrus.conf_2.2 \
           file://imapd.conf_2.2 \
           file://volatiles \
+           file://remove-install-strip.patch;patch=1 \
           "
 
 inherit autotools update-rc.d
index 820700d..5f47eff 100644 (file)
@@ -1,15 +1,13 @@
 DESCRIPTION = "DCOP IDL parser"
-SECTION     = "kde/dev"
+SECTION = "kde/devel"
 PRIORITY    = "optional"
 LICENSE     = "GPL"
 DEPENDS     = "uicmoc3-native"
 
-
 SRC_URI     = "svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/kdelibs/dcop/;module=dcopidl \
              file://dcopidl-compile.patch;patch=1 "
 S           = "${WORKDIR}/dcopidl"
 
-
 inherit native qmake qt3e
 
 export OE_QMAKE_LINK="${CXX}"
index 29a4f71..2b5cd12 100644 (file)
@@ -1,16 +1,14 @@
 DESCRIPTION = "DCOP IDL parser"
-SECTION     = "kde/dev"
+SECTION = "kde/devel"
 PRIORITY    = "optional"
 LICENSE     = "GPL"
 DEPENDS     = "uicmoc3-native"
 
-
 SRC_URI     = "svn://anonsvn.kde.org/home/kde/branches/KDE/3.5/kdelibs/dcop/;module=dcopidl2cpp "
 #\
 #            file://dcopidl-compile.patch;patch=1 "
 S           = "${WORKDIR}/dcopidl2cpp"
 
-
 inherit native qmake qt3e
 
 export OE_QMAKE_LINK="${CXX}"
diff --git a/packages/detect-stylus/detect-stylus_svn.bb b/packages/detect-stylus/detect-stylus_svn.bb
new file mode 100644 (file)
index 0000000..7f43854
--- /dev/null
@@ -0,0 +1,18 @@
+DESCRIPTION = "Touchscreen detection utility"
+SECTION = "gpe"
+LICENSE = "GPL"
+DEPENDS = "virtual/libx11 xcursor-transparent-theme xrdb"
+RDEPENDS = "xrdb"
+PV = "0.13+svn${SRCDATE}"
+PR = "r0"
+
+inherit gpe pkgconfig
+
+SRC_URI = "${GPE_SVN} \
+           file://detect-stylus-svn-build.patch;patch=1"
+
+S = "${WORKDIR}/${PN}"
+
+export CVSBUILD="no"
+
+DEFAULT_PREFERENCE = "-1"
diff --git a/packages/detect-stylus/files/detect-stylus-svn-build.patch b/packages/detect-stylus/files/detect-stylus-svn-build.patch
new file mode 100644 (file)
index 0000000..ea1d67a
--- /dev/null
@@ -0,0 +1,229 @@
+diff -Naur detect-stylus.orig/build/Makefile.dpkg_ipkg detect-stylus/build/Makefile.dpkg_ipkg
+--- detect-stylus.orig/build/Makefile.dpkg_ipkg        1970-01-01 02:00:00.000000000 +0200
++++ detect-stylus/build/Makefile.dpkg_ipkg     2007-02-10 17:21:40.154584782 +0200
+@@ -0,0 +1,114 @@
++## Please read the README in this directory to see how to use this
++## Makefile snippet
++
++# Let's use whatever clean target the specific app provides
++
++CONTROL = `if test -e familiar/control1; then echo control1; else echo control; fi`
++
++# URL to source tarball
++SOURCE = http://gpe.linuxtogo.org/download/source/$(PACKAGE)-$(VERSION).tar.gz
++
++# can change this to e.g. /var/tmp/deb
++DEB_PATH = ../deb
++
++ifeq ($(CVSBUILD),yes)
++LIBGPEWIDGET_PC = libgpewidget-uninstalled
++PC_EXTRA=PKG_CONFIG_PATH=../../base/libgpewidget
++else
++LIBGPEWIDGET_PC = libgpewidget
++endif
++
++ifeq ($(IN_LIBGPEWIDGET),)
++GPECFLAGS = $(shell $(PC_EXTRA) pkg-config --cflags $(LIBGPEWIDGET_PC))
++GPELIBS = $(shell $(PC_EXTRA) pkg-config --libs $(LIBGPEWIDGET_PC))
++endif
++
++GTKCFLAGS = $(shell pkg-config --cflags gtk+-2.0)
++GTKLIBS = $(shell pkg-config --libs gtk+-2.0)
++
++STANDARD_CPPFLAGS = -D_GNU_SOURCE -DPACKAGE=\"$(PACKAGE)\" -DPREFIX=\"$(PREFIX)\" -DPACKAGE_LOCALE_DIR=\"$(PREFIX)/share/locale\"
++STANDARD_CFLAGS = -MD -Wall
++
++ifeq ($(DEBUG),yes)
++CFLAGS += -O2 -g
++LDFLAGS = -g
++else
++CFLAGS += -Os -fomit-frame-pointer
++endif
++
++dist: check-source clean dist-prep
++      rm -rf ../$(PACKAGE)-$(VERSION)
++      mkdir ../$(PACKAGE)-$(VERSION)
++      ( tar cf - --exclude "*/CVS" --exclude CVS --exclude "*~" --exclude "#*#" --exclude "debian" --exclude ".*" --exclude "*.ipk" --exclude "*.ipk.*" --exclude "*.mo" --exclude "*.batch" --exclude "translation-ipkgs.txt" * ) | (cd ../$(PACKAGE)-$(VERSION); tar xf -)
++      ( if [ -f linguas ]; then LINGUAS=`cat linguas`; PATCH_LINGUAS="s:^LINGUAS =.*:LINGUAS = $${LINGUAS}:"; fi; cd ../$(PACKAGE)-$(VERSION) && mkdir build && cp $(BUILD)/Makefile.dpkg_ipkg $(BUILD)/Makefile.translation build/ && sed "s:^CVSBUILD =.*:CVSBUILD = no:;s:^DEBUG =.*:DEBUG = no:;s:Makefile.translation-auto-linguas:Makefile.translation:;$${PATCH_LINGUAS}" < Makefile > Makefile.new && mv Makefile.new Makefile )
++      ( cd .. ; tar cf - $(PACKAGE)-$(VERSION) | gzip -9 >$(PACKAGE)-$(VERSION).tar.gz )
++      rm -rf ../$(PACKAGE)-$(VERSION)
++      $(MAKE) printinfo
++
++dist-upload: dist
++      scp ../$(PACKAGE)-$(VERSION).tar.gz $(USER)@linuxtogo.org:/media/data/projects/gpe/source/
++
++dist-prep:
++ipkg-prep:
++install-mo:
++# empty, can be filled in Makefile.translation
++
++install: install-program install-mo
++
++clean-dist:
++      rm -rf familiar/dist familiar/dist.list
++
++clean: clean-dist
++
++check-source:
++      @if [ -f familiar/$(CONTROL) ] && ! grep -q '^Source:' familiar/$(CONTROL); then echo -e "\nNo Source: field in control file.  Aborting.\n"; exit 1; fi
++
++ipkg: check-source ipkg-prep clean
++      rm -rf familiar/dist
++      mkdir -p familiar/dist/CONTROL
++      sed 's:VERSION:$(VERSION):;s$$SOURCE$$$(SOURCE)$$' < familiar/$(CONTROL) > familiar/dist/CONTROL/control
++      if test -e familiar/conffiles; then install -m 644 familiar/conffiles familiar/dist/CONTROL; fi
++      if test -e familiar/preinst;   then install familiar/preinst   familiar/dist/CONTROL; fi
++      if test -e familiar/postinst;  then install familiar/postinst  familiar/dist/CONTROL; fi
++      if test -e familiar/prerm;     then install familiar/prerm     familiar/dist/CONTROL; fi
++      if test -e familiar/postrm;    then install familiar/postrm    familiar/dist/CONTROL; fi
++      $(MAKE) DESTDIR=`pwd`/familiar/dist PREFIX=/usr prefix=/usr DEBUG=no install-program
++      rm -rf familiar/dist.list
++      ipkg-build -o 0 -g 0 familiar/dist | sed 's/^Packaged .*into //; t 1; d; : 1; s:.*/::' >> familiar/dist.list
++      if [ "x$(LINGUAS)" != "x" ]; then make translation-ipkg; tr ' ' '\n' < translation-ipkgs.txt >> familiar/dist.list; fi
++      md5sum `cat familiar/dist.list` > $(PACKAGE)_$(VERSION).batch
++      rm -rf familiar/dist familiar/dist.list
++      $(MAKE) printinfo
++
++dpkg: dist
++      mkdir -p $(DEB_PATH)
++      ( olddir=`pwd`; cd $(DEB_PATH); rm -rf $(PACKAGE)-$(VERSION); ln -s $$olddir/../$(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)_$(VERSION).orig.tar.gz ; tar xzf $(PACKAGE)_$(VERSION).orig.tar.gz )
++      mkdir -p $(DEB_PATH)/$(PACKAGE)-$(VERSION)/debian
++      for i in debian/*; do if test -f $$i; then cp $$i $(DEB_PATH)/$(PACKAGE)-$(VERSION)/debian/; fi; done
++
++CVSTAG := $(shell echo $(PACKAGE)-$(VERSION) | tr [a-z.] [A-Z_])
++printinfo:
++      @printf '-------------------------------------------------------------------------------\n'
++      @printf "If this becomes a package release, please add a CVS tag.\n"
++      @printf "You can use 'make tag' for that, it will execute\n"
++      @printf "   cvs tag %s\n" $(CVSTAG)
++      @printf "Please upload a tarball (created with 'make dist') to\n"
++      @printf "   ftp://ftp.handhelds.org/pub/projects/gpe/\n"
++      @printf "   (handhelds.org:~ftp/pub/projects/gpe/source)\n"
++      @printf "You can use 'make dist-upload' to do that.\n"
++      @printf "You are currently known as USER %s.\n" $(USER)
++      @printf '-------------------------------------------------------------------------------\n'
++
++tag: check-source
++      cvs tag $(CVSTAG)
++
++retag: check-source
++      cvs tag -F $(CVSTAG)
++
++source: tag dist-upload
++
++%.pc: %.pc.in
++      sed 's:PREFIX:$(PREFIX):;s:BUILDDIR:$(shell pwd):;s:VERSION:$(VERSION):' < $< > $@
++
++.c.o:;
++      $(CC) $(CFLAGS) $(CPPFLAGS) $(PACKAGE_CFLAGS) $(PACKAGE_CPPFLAGS) -c $< -o $@
+diff -Naur detect-stylus.orig/build/Makefile.translation detect-stylus/build/Makefile.translation
+--- detect-stylus.orig/build/Makefile.translation      1970-01-01 02:00:00.000000000 +0200
++++ detect-stylus/build/Makefile.translation   2007-02-10 17:21:46.170927636 +0200
+@@ -0,0 +1,107 @@
++.SUFFIXES: .mo .po .pot .po8
++
++CONTROL = `if test -e familiar/control1; then echo control1; else echo control; fi`
++
++# use ipkg-build or ipkg-deb-build
++IPKG_BUILD := ipkg-build
++
++TRANSLATION_SITE := http://www.iro.umontreal.ca/~gnutra/maint
++
++ifeq ($(DIR_PO),)
++DIR_PO := po
++endif
++
++ifeq ($(BINPACKAGE),)
++BINPACKAGE := $(PACKAGE)
++endif
++
++mo-files = $(patsubst %,$(DIR_PO)/%.mo,$(LINGUAS))
++po-files = $(patsubst %,$(DIR_PO)/%.po,$(LINGUAS))
++
++ifeq ($(shell if [ -f $(PACKAGE).desktop.in ]; then echo present; fi;),present)
++desktop-files += $(PACKAGE).desktop
++endif
++
++ifneq ($(EXTRA_DESKTOPS),)
++desktop-files += $(patsubst %.desktop.in,%.desktop,$(EXTRA_DESKTOPS))
++endif
++
++all-mo: $(mo-files)
++
++all-desktop: $(desktop-files)
++
++install-mo: all-mo
++      if [ "$(ENABLE_NLS)" != "no" ]; then \
++              if [ "x$(LINGUAS)" != "x" ]; then \
++                      for i in $(LINGUAS); do mkdir -p $(DESTDIR)$(PREFIX)/share/locale/$$i/LC_MESSAGES; install -m 644 $(DIR_PO)/$$i.mo $(DESTDIR)$(PREFIX)/share/locale/$$i/LC_MESSAGES/$(PACKAGE).mo; done \
++              fi; \
++      fi;
++
++.po8.mo:;
++      if [ "$(ENABLE_NLS)" != "no" ]; then \
++              msgfmt -o $@ $<; \
++      fi;
++
++.po.po8:;
++      CTYPE=`grep "^\"Content-Type:" $< | sed 's/^.*charset=//;s/\\\\.*//'`; sed "s/\(Content-Type: .*=\)$$CTYPE/\1UTF-8/" < $< | iconv -f $${CTYPE} -t UTF-8 >$@
++
++update-po: $(po-files) extract-po
++
++dist-prep: update-po freshen-po
++# empty
++
++ifeq ($(CVSBUILD),yes)
++ipkg-prep: freshen-po
++# empty
++endif
++
++extract-po:
++      mkdir -p $(DIR_PO)
++      ( SOURCES="$(SOURCES)"; for DESK in $(PACKAGE).desktop.in $(EXTRA_DESKTOPS); do if [ -f $$DESK ]; then intltool-extract --type=gettext/ini $$DESK; SOURCES="$$SOURCES $${DESK}.h"; fi; done; if [ "x$$SOURCES" != "x" ]; then xgettext --add-comments=TRANSLATORS: -k_ -kN_ -o $(DIR_PO)/$(PACKAGE).pot.new $$SOURCES; fi )
++      if [ -f $(DIR_PO)/$(PACKAGE).pot.new ]; then if cmp -s $(DIR_PO)/$(PACKAGE).pot.new $(PACKAGE).pot; then rm $(DIR_PO)/$(PACKAGE).pot.new; else mv $(DIR_PO)/$(PACKAGE).pot.new $(DIR_PO)/$(PACKAGE).pot; fi; fi
++
++clean: clean-po clean-dist-translation
++
++clean-po:
++      rm -rf $(DIR_PO)/*.mo
++      for i in $(desktop-files); do if [ -f $$i.in ]; then rm -f $$i; rm -f $$i.in.h; fi; done
++
++%.desktop: %.desktop.in $(patsubst %,$(DIR_PO)/%.po,$(LINGUAS))
++      intltool-merge -u -d $(DIR_PO) $< $@
++
++freshen-po:
++      rm -rf tmp-po
++      mkdir tmp-po
++      cd tmp-po; for LANG in $(LINGUAS); do wget $(TRANSLATION_SITE)/$(PACKAGE)/$$LANG.po; done
++      for LANG in $(LINGUAS); do if [ ! -f $(DIR_PO)/$$LANG.po ] || ! cmp -s $(DIR_PO)/$$LANG.po tmp-po/$$LANG.po ; then mv tmp-po/$$LANG.po $(DIR_PO)/$$LANG.po; echo "Updated $$LANG translation"; fi; done
++      rm -rf tmp-po
++
++# ------------------------------------------------------------------------
++
++MAINTAINER = $(shell grep 'Maintainer: ' familiar/$(CONTROL) | cut -d ' ' -f 2-)
++
++ifndef BUILD
++BUILD = ../build
++endif
++
++transdist := familiar/dist-translation
++templates := $(BUILD)/familiar
++ipkglist  := translation-ipkgs.txt
++
++clean-dist-translation:
++      rm -rf $(transdist) $(ipkglist)
++
++real-translation-package: all-mo
++      rm -rf $(transdist) $(ipkglist)
++      for LINGUA in $(LINGUAS); do \
++              i=$$(echo $$LINGUA | tr '[A-Z_]' '[a-z+]'); \
++              mkdir -p $(transdist)/$$i/CONTROL; \
++              mkdir -p $(transdist)/$$i$(PREFIX)/share/locale/$$LINGUA/LC_MESSAGES; \
++              install -m 644 po/$$LINGUA.mo $(transdist)/$$i$(PREFIX)/share/locale/$$LINGUA/LC_MESSAGES/$(PACKAGE).mo; \
++              sed -e "s/<maintainer>/$(MAINTAINER)/;s/<package>/$(BINPACKAGE)/;s/<version>/$(VERSION)/;s/<language>/$$i/;s!<source>!$(SOURCE)!" $(templates)/control.translation > $(transdist)/$$i/CONTROL/control; \
++              install $(templates)/postinst.translation $(transdist)/$$i/CONTROL/postinst; \
++              $(IPKG_BUILD) -g 0 -o 0 $(transdist)/$$i | sed 's/^Packaged .*into //; t 1; d; : 1; s:.*/::' >> $(ipkglist); \
++      done
++
++translation-ipkg:
++      make PREFIX=/usr real-translation-package
index 8c05470..2da37f4 100644 (file)
@@ -1,16 +1,15 @@
-DESCRIPTION="DBus-enabled dhcp client"
-SECTION="net"
-LICENSE="GPL"
-HOMEPAGE="http://people.redhat.com/jvdias/dhcdbd/"
-
+DESCRIPTION = "DBus-enabled dhcp client"
+HOMEPAGE = "http://people.redhat.com/jvdias/dhcdbd/"
+SECTION = "net"
+LICENSE = "GPL"
 DEPENDS = "dbus"
 
 PR = "r1"
 
-SRC_URI="http://people.redhat.com/jvdias/dhcdbd/dhcdbd-${PV}.tar.gz \
-         file://dhcdbd-1.14-pkgconfig_dbus.patch;patch=1 \
-        file://dbus-api-fix.patch;patch=1 \
-        file://dhcdbd"
+SRC_URI = "http://people.redhat.com/jvdias/dhcdbd/dhcdbd-${PV}.tar.gz \
+           file://dhcdbd-1.14-pkgconfig_dbus.patch;patch=1 \
+           file://dbus-api-fix.patch;patch=1 \
+           file://dhcdbd"
 
 do_compile() {
        CC=${TARGET_SYS}-gcc DESTDIR=${prefix} make
index a510c49..d2ef728 100644 (file)
@@ -1,15 +1,12 @@
-DESCRIPTION="DBus-enabled dhcp client"
-SECTION="net"
-LICENSE="GPL"
-HOMEPAGE="http://people.redhat.com/jvdias/dhcdbd/"
-
+DESCRIPTION = "DBus-enabled dhcp client"
+HOMEPAGE = "http://people.redhat.com/jvdias/dhcdbd/"
+SECTION = "net"
+LICENSE = "GPL"
 DEPENDS = "dbus"
 
-PR = "r0"
-
-SRC_URI="http://people.redhat.com/dcantrel/dhcdbd/dhcdbd-${PV}.tar.gz \
-         file://dhcdbd-1.14-pkgconfig_dbus.patch;patch=1 \
-        file://dhcdbd"
+SRC_URI = "http://people.redhat.com/dcantrel/dhcdbd/dhcdbd-${PV}.tar.gz \
+           file://dhcdbd-1.14-pkgconfig_dbus.patch;patch=1 \
+           file://dhcdbd"
 
 do_compile() {
        CC=${TARGET_SYS}-gcc DESTDIR=${prefix} make
index de9e24a..8495275 100644 (file)
@@ -1,16 +1,13 @@
-DESCRIPTION="DBus-enabled dhcp client"
-SECTION="net"
-LICENSE="GPL"
-HOMEPAGE="http://people.redhat.com/jvdias/dhcdbd/"
-
+DESCRIPTION = "DBus-enabled dhcp client"
+HOMEPAGE = "http://people.redhat.com/jvdias/dhcdbd/"
+SECTION = "net"
+LICENSE = "GPL"
 DEPENDS = "dbus"
 RDEPENDS = "dhcp-client"
 
-PR = "r0"
-
-SRC_URI="http://people.redhat.com/dcantrel/dhcdbd/dhcdbd-${PV}.tar.bz2 \
-         file://no-ext-options.patch;patch=1 \
-         file://dhcdbd"
+SRC_URI = "http://people.redhat.com/dcantrel/dhcdbd/dhcdbd-${PV}.tar.bz2 \
+           file://no-ext-options.patch;patch=1 \
+           file://dhcdbd"
 
 do_compile() {
        CC=${TARGET_SYS}-gcc DESTDIR=${prefix} make
diff --git a/packages/directfb/fusionsound_0.9.26+cvs20070207.bb b/packages/directfb/fusionsound_0.9.26+cvs20070207.bb
new file mode 100644 (file)
index 0000000..fe04a19
--- /dev/null
@@ -0,0 +1,37 @@
+DESCRIPTION = "FusionSound for DirectFB"
+DEPENDS = "directfb"
+SECTION = "libs"
+LICENSE = "LGPL"
+
+# this is a CVS only release
+
+SRC_URI = "cvs://anonymous@cvs.directfb.org/cvs/directfb;method=pserver;module=FusionSound;date=${@bb.data.getVar('PV', d, 1)[9:]}"
+
+S = "${WORKDIR}/FusionSound"
+
+inherit autotools pkgconfig
+
+do_configure_append() {
+    find ${S} -type f | xargs sed -i 's:I/usr/include:I${STAGING_INCDIR}:g'
+}
+
+do_stage() {
+        autotools_stage_all
+}
+
+do_install() {
+        oe_runmake 'DESTDIR=${D}' install
+}
+
+FILES_fusionsound-dbg_append = " ${libdir}/directfb-1.0-0/*/*/.debug/*.so \
+                              ${libdir}/directfb-1.0-0/*/.debug/*.so \
+                          "
+
+FILES_fusionsound-dev_append = " ${libdir}/directfb-1.0-0/interfaces/*/*.la \
+                                ${libdir}/directfb-1.0-0/snddrivers/*.la \
+                              "
+
+FILES_fusionsound_append = " ${libdir}/directfb-1.0-0/interfaces/*/*.so \
+                             ${libdir}/directfb-1.0-0/snddrivers/*.so \
+                          "
+
diff --git a/packages/directfb/lite_0.9.26+cvs20070207.bb b/packages/directfb/lite_0.9.26+cvs20070207.bb
new file mode 100644 (file)
index 0000000..2f43627
--- /dev/null
@@ -0,0 +1,40 @@
+DESCRIPTION = "LiTE stands for Lightweight Toolkit Enabler. Its role is to \
+               facilitate the functions of DirectFB so that a toolbox could \
+                be written on top of DirectFB with less effort. As such LiTE \
+                has abstractions for the underlying graphics and event systems."
+
+DEPENDS = "directfb"
+SECTION = "libs"
+LICENSE = "LGPL"
+
+# this is a CVS only release
+
+SRC_URI = "cvs://anonymous@cvs.directfb.org/cvs/directfb;method=pserver;module=lite;date=${@bb.data.getVar('PV', d, 1)[9:]}"
+
+S = "${WORKDIR}/lite"
+
+inherit autotools pkgconfig
+
+do_configure_append() {
+    find ${S} -type f | xargs sed -i 's:I/usr/include:I${STAGING_INCDIR}:g'
+}
+
+do_stage() {
+        autotools_stage_all
+}
+
+do_install() {
+        oe_runmake 'DESTDIR=${D}' install
+}
+
+FILES_lite-dbg_append = " ${libdir}/directfb-1.0-0/*/*/.debug/*.so \
+                          ${libdir}/directfb-1.0-0/*/.debug/*.so \
+                        "
+FILES_lite-dev_append = " ${libdir}/directfb-1.0-0/interfaces/*/*.la \
+                       "
+
+FILES_lite_append = " ${libdir}/directfb-1.0-0/interfaces/*/*.so \
+                      ${datadir}/LiTE/* \
+                     ${datadir}/fonts/truetype/* \
+                   "
+
index a0a4490..6558236 100644 (file)
@@ -1,14 +1,14 @@
-DESCRIPTION="EXT2 Filesystem Utilities"
-SECTION="base"
-PRIORITY="optional"
-RDEPENDS="libc6"
-DEPENDS=virtual/libc
+DESCRIPTION = "EXT2 Filesystem Utilities"
+SECTION = "base"
+PRIORITY = "optional"
+DEPENDS = "virtual/libc"
+RDEPENDS = "libc6"
 
-SRC_URI=${SOURCEFORGE_MIRROR}/e2fsprogs/e2fsprogs-${PV}.tar.gz \
-       file://${FILESDIR}/ln.patch;patch=1 \
-       file://${FILESDIR}/configure.patch;patch=1 \
-       file://${FILESDIR}/compile-subst.patch;patch=1 \
-       file://${FILESDIR}/m4.patch;patch=1
+SRC_URI = "${SOURCEFORGE_MIRROR}/e2fsprogs/e2fsprogs-${PV}.tar.gz \
+          file://${FILESDIR}/ln.patch;patch=1 \
+          file://${FILESDIR}/configure.patch;patch=1 \
+          file://${FILESDIR}/compile-subst.patch;patch=1 \
+          file://${FILESDIR}/m4.patch;patch=1
 
 inherit autotools
 
index 4e30385..32e5f7b 100644 (file)
@@ -1,6 +1,6 @@
 require e2fsprogs.inc
 
-PR = "r7"
+PR = "r8"
 
 SRC_URI += "file://no-hardlinks.patch;patch=1"
 S = "${WORKDIR}/e2fsprogs-${PV}"
@@ -41,8 +41,51 @@ RDEPENDS_e2fsprogs = "e2fsprogs-blkid e2fsprogs-uuidgen e2fsprogs-badblocks"
 PACKAGES =+ "e2fsprogs-blkid e2fsprogs-uuidgen e2fsprogs-e2fsck e2fsprogs-mke2fs e2fsprogs-fsck e2fsprogs-tune2fs e2fsprogs-badblocks"
 FILES_e2fsprogs-blkid = "${base_sbindir}/blkid"
 FILES_e2fsprogs-uuidgen = "${bindir}/uuidgen"
-FILES_e2fsprogs-fsck = "${base_sbindir}/fsck"
-FILES_e2fsprogs-e2fsck = "${base_sbindir}/e2fsck ${base_sbindir}/fsck.ext*"
-FILES_e2fsprogs-mke2fs = "${base_sbindir}/mke2fs ${base_sbindir}/mkfs.ext*"
+FILES_e2fsprogs-fsck = "${base_sbindir}/fsck.${PN}"
+FILES_e2fsprogs-e2fsck = "${base_sbindir}/e2fsck.${PN} ${base_sbindir}/fsck.ext*.${PN}"
+FILES_e2fsprogs-mke2fs = "${base_sbindir}/mke2fs.${PN} ${base_sbindir}/mkfs.ext*.${PN}"
 FILES_e2fsprogs-tune2fs = "${base_sbindir}/tune2fs ${base_sbindir}/e2label ${base_sbindir}/findfs"
 FILES_e2fsprogs-badblocks = "${base_sbindir}/badblocks"
+
+do_install_append () {
+       mv ${D}${base_sbindir}/fsck ${D}${base_sbindir}/fsck.${PN}
+       mv ${D}${base_sbindir}/e2fsck ${D}${base_sbindir}/e2fsck.${PN}
+       mv ${D}${base_sbindir}/fsck.ext2 ${D}${base_sbindir}/fsck.ext2.${PN}
+       mv ${D}${base_sbindir}/fsck.ext3 ${D}${base_sbindir}/fsck.ext3.${PN}
+       mv ${D}${base_sbindir}/mke2fs ${D}${base_sbindir}/mke2fs.${PN}
+       mv ${D}${base_sbindir}/mkfs.ext2 ${D}${base_sbindir}/mkfs.ext2.${PN}
+       mv ${D}${base_sbindir}/mkfs.ext3 ${D}${base_sbindir}/mkfs.ext3.${PN}
+}
+
+pkg_postinst_e2fsprogs-fsck () {
+       update-alternatives --install ${base_sbindir}/fsck fsck fsck.${PN} 100
+}
+
+pkg_prerm_e2fsprogs-fsck () {
+       update-alternatives --remove fsck fsck.${PN}
+}
+
+pkg_postinst_e2fsprogs-e2fsck () {
+       update-alternatives --install ${base_sbindir}/e2fsck e2fsck e2fsck.${PN} 100
+       update-alternatives --install ${base_sbindir}/fsck.ext2 fsck.ext2 fsck.ext2.${PN} 100
+       update-alternatives --install ${base_sbindir}/fsck.ext3 fsck.ext3 fsck.ext3.${PN} 100
+}
+
+pkg_prerm_e2fsprogs-e2fsck () {
+       update-alternatives --remove e2fsck e2fsck.${PN}
+       update-alternatives --remove fsck.ext2 fsck.ext2.${PN}
+       update-alternatives --remove fsck.ext3 fsck.ext3.${PN}
+}
+
+pkg_postinst_e2fsprogs-mke2fs () {
+       update-alternatives --install ${base_sbindir}/mke2fs mke2fs mke2fs.${PN} 100
+       update-alternatives --install ${base_sbindir}/mkfs.ext2 mkfs.ext2 mkfs.ext2.${PN} 100
+       update-alternatives --install ${base_sbindir}/mkfs.ext3 mkfs.ext3 mkfs.ext3.${PN} 100
+}
+
+pkg_prerm_e2fsprogs-mke2fs () {
+       update-alternatives --remove mke2fs mke2fs.${PN}
+       update-alternatives --remove mkfs.ext2 mkfs.ext2.${PN}
+       update-alternatives --remove mkfs.ext3 mkfs.ext3.${PN}
+}
+
index a1e7085..c33a1a3 100644 (file)
@@ -1,6 +1,6 @@
 DESCRIPTION = "Enchant Spell checker API Library"
 PRIORITY    = "optional"
-SECTION     = "libs"
+SECTION = "libs"
 
 DEPENDS     = "aspell"
 RDEPENDS    = "aspell"
index 5045a76..5896d12 100644 (file)
@@ -1,6 +1,6 @@
 DESCRIPTION = "Enchant Spell checker API Library"
 PRIORITY    = "optional"
-SECTION     = "libs"
+SECTION = "libs"
 LICENSE     = "LGPL"
 DEPENDS     = "aspell"
 RDEPENDS    = "aspell"
index 9e1fc13..4abdb6c 100644 (file)
@@ -1,5 +1,5 @@
 DESCRIPTION = "Framebuffer VNC server keyboard events module"
-SECTION = "kernel/module"
+SECTION = "kernel/modules"
 LICENSE = "GPL"
 PR = "r1"
 
index e6bc885..58603ef 100644 (file)
@@ -1,8 +1,7 @@
 DESCRIPTION = "FFTW"
-SECTION =  "libs"
+SECTION = "libs"
 PRIORITY = "optional"
 LICENSE = "GPL"
-PR = "r0"
 
 SRC_URI = "http://www.fftw.org/fftw-${PV}.tar.gz"
 
index 48a0ba6..fa11fec 100644 (file)
@@ -13,7 +13,7 @@
 # as appropriate, directory is the sub-directory of 'packages'.
 #
 DESCRIPTION = "Freeze the bitbake files in the build"
-SECTION = "console/networking"
+SECTION = "console/network"
 PRIORITY = "optional"
 LICENSE = "MIT"
 PR = "r1"
index ff280de..f2232c3 100644 (file)
@@ -2,7 +2,7 @@
 # configuration fails empty (they just contain a comment).
 #
 DESCRIPTION = "Unfreeze the bitbake files in the build"
-SECTION = "console/networking"
+SECTION = "console/network"
 PRIORITY = "optional"
 LICENSE = "MIT"
 PR = "r1"
index 5ad9a82..59dc914 100644 (file)
@@ -1,11 +1,11 @@
-DESCRIPTION =   "Galago linkage to the Evolution Data Server."
-HOMEPAGE =      "http://www.galago-project.org/"
-LICENSE =       "GPL"
-DEPENDS =       "gettext libgalago dbus glib-2.0 eds-dbus"
-
-SRC_URI =       "http://www.galago-project.org/files/releases/source/${PN}/${P}.tar.gz \
-                 file://disable-bonobo.patch;patch=1"
-#                 file://no-check.patch;patch=1"
+DESCRIPTION = "Galago linkage to the Evolution Data Server."
+HOMEPAGE = "http://www.galago-project.org/"
+LICENSE = "GPL"
+DEPENDS = "gettext libgalago dbus glib-2.0 eds-dbus"
+
+SRC_URI = "http://www.galago-project.org/files/releases/source/${PN}/${P}.tar.gz \
+           file://disable-bonobo.patch;patch=1"
+#           file://no-check.patch;patch=1"
 #EXTRA_OECONF =        "--disable-binreloc"
 
 FILES_${PN} += "${libdir}/galago/eds-feed"
index 9e27f72..243e42d 100644 (file)
@@ -1,11 +1,11 @@
-DESCRIPTION =   "Galago is a desktop presence framework, designed to transmit presence information between programs."
-HOMEPAGE =      "http://www.galago-project.org/"
-LICENSE =       "GPL"
-DEPENDS =       "gettext libgalago dbus glib-2.0"
+DESCRIPTION = "Galago is a desktop presence framework, designed to transmit presence information between programs."
+HOMEPAGE = "http://www.galago-project.org/"
+LICENSE = "GPL"
+DEPENDS = "gettext libgalago dbus glib-2.0"
 PR = "r1"
 
-SRC_URI =       "http://www.galago-project.org/files/releases/source/${PN}/${P}.tar.gz \
-                 file://no-check.patch;patch=1"
+SRC_URI = "http://www.galago-project.org/files/releases/source/${PN}/${P}.tar.gz \
+           file://no-check.patch;patch=1"
 EXTRA_OECONF = "--disable-binreloc"
 
 FILES_${PN} += "${datadir}/dbus-1/services/"
index 413d81a..426a657 100644 (file)
@@ -1,4 +1,4 @@
-SECTION = "net/misc"
+SECTION = "network/misc"
 DESCRIPTION = "Bluetooth scanner"
 LICENSE = "GPL"
 RDEPENDS = "perl"
index 4e785d8..7078a1c 100644 (file)
@@ -3,3 +3,7 @@ HOMEPAGE = "http://www.gnu.org/software/libc/libc.html"
 SECTION = "libs"
 PRIORITY = "required"
 LICENSE = "LGPL"
+PACKAGES = "glibc catchsegv sln nscd ldd localedef glibc-utils glibc-dev glibc-doc glibc-locale libsegfault glibc-extra-nss glibc-thread-db glibc-pcprofile"
+
+#this leads to circular deps, so lets not add it yet
+#RDEPENDS_ldd += " bash"
index 6f00011..75f08be 100644 (file)
@@ -24,8 +24,6 @@ python __anonymous () {
                                    bb.data.getVar('TARGET_OS', d, 1))
 }
 
-PACKAGES = "glibc catchsegv sln nscd ldd localedef glibc-utils glibc-dev glibc-doc glibc-locale libsegfault glibc-extra-nss glibc-thread-db glibc-pcprofile"
-
 # nptl needs unwind support in gcc, which can't be built without glibc.
 PROVIDES = "virtual/libc ${@['virtual/${TARGET_PREFIX}libc-for-gcc', '']['nptl' in '${GLIBC_ADDONS}']}"
 PROVIDES_unslung = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
index 12db192..1dba326 100644 (file)
@@ -23,7 +23,6 @@ python __anonymous () {
                                    bb.data.getVar('TARGET_OS', d, 1))
 }
 
-PACKAGES = "glibc catchsegv sln nscd ldd localedef glibc-utils glibc-dev glibc-doc glibc-locale libsegfault glibc-extra-nss glibc-thread-db glibc-pcprofile"
 PROVIDES += "virtual/libintl virtual/libiconv"
 
 # nptl needs unwind support in gcc, which can't be built without glibc.
index 7c2bf09..0db2616 100644 (file)
@@ -26,8 +26,6 @@ python __anonymous () {
                                    bb.data.getVar('TARGET_OS', d, 1))
 }
 
-PACKAGES = "glibc catchsegv sln nscd ldd localedef glibc-utils glibc-dev glibc-doc glibc-locale libsegfault glibc-extra-nss glibc-thread-db glibc-pcprofile"
-
 # nptl needs unwind support in gcc, which can't be built without glibc.
 PROVIDES = "virtual/libc ${@['virtual/${TARGET_PREFIX}libc-for-gcc', '']['nptl' in '${GLIBC_ADDONS}']}"
 PROVIDES += "virtual/libintl virtual/libiconv"
index 8b22c0e..80b3e4a 100644 (file)
@@ -1,6 +1,6 @@
 DESCRIPTION = "QT Gnuplot is a front end for Gnuplot. Install Opie-Embedded \
 console to enable the Launch Gnuplot menu option."
-SECTION    = "opie/applications"
+SECTION = "opie/applications"
 PRIORITY   = "optional"
 LICENSE    = "GPL"
 PRIORITY   = "optional"
diff --git a/packages/gpe-appmgr/files/svn-build.patch b/packages/gpe-appmgr/files/svn-build.patch
new file mode 100644 (file)
index 0000000..ea1d67a
--- /dev/null
@@ -0,0 +1,229 @@
+diff -Naur detect-stylus.orig/build/Makefile.dpkg_ipkg detect-stylus/build/Makefile.dpkg_ipkg
+--- detect-stylus.orig/build/Makefile.dpkg_ipkg        1970-01-01 02:00:00.000000000 +0200
++++ detect-stylus/build/Makefile.dpkg_ipkg     2007-02-10 17:21:40.154584782 +0200
+@@ -0,0 +1,114 @@
++## Please read the README in this directory to see how to use this
++## Makefile snippet
++
++# Let's use whatever clean target the specific app provides
++
++CONTROL = `if test -e familiar/control1; then echo control1; else echo control; fi`
++
++# URL to source tarball
++SOURCE = http://gpe.linuxtogo.org/download/source/$(PACKAGE)-$(VERSION).tar.gz
++
++# can change this to e.g. /var/tmp/deb
++DEB_PATH = ../deb
++
++ifeq ($(CVSBUILD),yes)
++LIBGPEWIDGET_PC = libgpewidget-uninstalled
++PC_EXTRA=PKG_CONFIG_PATH=../../base/libgpewidget
++else
++LIBGPEWIDGET_PC = libgpewidget
++endif
++
++ifeq ($(IN_LIBGPEWIDGET),)
++GPECFLAGS = $(shell $(PC_EXTRA) pkg-config --cflags $(LIBGPEWIDGET_PC))
++GPELIBS = $(shell $(PC_EXTRA) pkg-config --libs $(LIBGPEWIDGET_PC))
++endif
++
++GTKCFLAGS = $(shell pkg-config --cflags gtk+-2.0)
++GTKLIBS = $(shell pkg-config --libs gtk+-2.0)
++
++STANDARD_CPPFLAGS = -D_GNU_SOURCE -DPACKAGE=\"$(PACKAGE)\" -DPREFIX=\"$(PREFIX)\" -DPACKAGE_LOCALE_DIR=\"$(PREFIX)/share/locale\"
++STANDARD_CFLAGS = -MD -Wall
++
++ifeq ($(DEBUG),yes)
++CFLAGS += -O2 -g
++LDFLAGS = -g
++else
++CFLAGS += -Os -fomit-frame-pointer
++endif
++
++dist: check-source clean dist-prep
++      rm -rf ../$(PACKAGE)-$(VERSION)
++      mkdir ../$(PACKAGE)-$(VERSION)
++      ( tar cf - --exclude "*/CVS" --exclude CVS --exclude "*~" --exclude "#*#" --exclude "debian" --exclude ".*" --exclude "*.ipk" --exclude "*.ipk.*" --exclude "*.mo" --exclude "*.batch" --exclude "translation-ipkgs.txt" * ) | (cd ../$(PACKAGE)-$(VERSION); tar xf -)
++      ( if [ -f linguas ]; then LINGUAS=`cat linguas`; PATCH_LINGUAS="s:^LINGUAS =.*:LINGUAS = $${LINGUAS}:"; fi; cd ../$(PACKAGE)-$(VERSION) && mkdir build && cp $(BUILD)/Makefile.dpkg_ipkg $(BUILD)/Makefile.translation build/ && sed "s:^CVSBUILD =.*:CVSBUILD = no:;s:^DEBUG =.*:DEBUG = no:;s:Makefile.translation-auto-linguas:Makefile.translation:;$${PATCH_LINGUAS}" < Makefile > Makefile.new && mv Makefile.new Makefile )
++      ( cd .. ; tar cf - $(PACKAGE)-$(VERSION) | gzip -9 >$(PACKAGE)-$(VERSION).tar.gz )
++      rm -rf ../$(PACKAGE)-$(VERSION)
++      $(MAKE) printinfo
++
++dist-upload: dist
++      scp ../$(PACKAGE)-$(VERSION).tar.gz $(USER)@linuxtogo.org:/media/data/projects/gpe/source/
++
++dist-prep:
++ipkg-prep:
++install-mo:
++# empty, can be filled in Makefile.translation
++
++install: install-program install-mo
++
++clean-dist:
++      rm -rf familiar/dist familiar/dist.list
++
++clean: clean-dist
++
++check-source:
++      @if [ -f familiar/$(CONTROL) ] && ! grep -q '^Source:' familiar/$(CONTROL); then echo -e "\nNo Source: field in control file.  Aborting.\n"; exit 1; fi
++
++ipkg: check-source ipkg-prep clean
++      rm -rf familiar/dist
++      mkdir -p familiar/dist/CONTROL
++      sed 's:VERSION:$(VERSION):;s$$SOURCE$$$(SOURCE)$$' < familiar/$(CONTROL) > familiar/dist/CONTROL/control
++      if test -e familiar/conffiles; then install -m 644 familiar/conffiles familiar/dist/CONTROL; fi
++      if test -e familiar/preinst;   then install familiar/preinst   familiar/dist/CONTROL; fi
++      if test -e familiar/postinst;  then install familiar/postinst  familiar/dist/CONTROL; fi
++      if test -e familiar/prerm;     then install familiar/prerm     familiar/dist/CONTROL; fi
++      if test -e familiar/postrm;    then install familiar/postrm    familiar/dist/CONTROL; fi
++      $(MAKE) DESTDIR=`pwd`/familiar/dist PREFIX=/usr prefix=/usr DEBUG=no install-program
++      rm -rf familiar/dist.list
++      ipkg-build -o 0 -g 0 familiar/dist | sed 's/^Packaged .*into //; t 1; d; : 1; s:.*/::' >> familiar/dist.list
++      if [ "x$(LINGUAS)" != "x" ]; then make translation-ipkg; tr ' ' '\n' < translation-ipkgs.txt >> familiar/dist.list; fi
++      md5sum `cat familiar/dist.list` > $(PACKAGE)_$(VERSION).batch
++      rm -rf familiar/dist familiar/dist.list
++      $(MAKE) printinfo
++
++dpkg: dist
++      mkdir -p $(DEB_PATH)
++      ( olddir=`pwd`; cd $(DEB_PATH); rm -rf $(PACKAGE)-$(VERSION); ln -s $$olddir/../$(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)_$(VERSION).orig.tar.gz ; tar xzf $(PACKAGE)_$(VERSION).orig.tar.gz )
++      mkdir -p $(DEB_PATH)/$(PACKAGE)-$(VERSION)/debian
++      for i in debian/*; do if test -f $$i; then cp $$i $(DEB_PATH)/$(PACKAGE)-$(VERSION)/debian/; fi; done
++
++CVSTAG := $(shell echo $(PACKAGE)-$(VERSION) | tr [a-z.] [A-Z_])
++printinfo:
++      @printf '-------------------------------------------------------------------------------\n'
++      @printf "If this becomes a package release, please add a CVS tag.\n"
++      @printf "You can use 'make tag' for that, it will execute\n"
++      @printf "   cvs tag %s\n" $(CVSTAG)
++      @printf "Please upload a tarball (created with 'make dist') to\n"
++      @printf "   ftp://ftp.handhelds.org/pub/projects/gpe/\n"
++      @printf "   (handhelds.org:~ftp/pub/projects/gpe/source)\n"
++      @printf "You can use 'make dist-upload' to do that.\n"
++      @printf "You are currently known as USER %s.\n" $(USER)
++      @printf '-------------------------------------------------------------------------------\n'
++
++tag: check-source
++      cvs tag $(CVSTAG)
++
++retag: check-source
++      cvs tag -F $(CVSTAG)
++
++source: tag dist-upload
++
++%.pc: %.pc.in
++      sed 's:PREFIX:$(PREFIX):;s:BUILDDIR:$(shell pwd):;s:VERSION:$(VERSION):' < $< > $@
++
++.c.o:;
++      $(CC) $(CFLAGS) $(CPPFLAGS) $(PACKAGE_CFLAGS) $(PACKAGE_CPPFLAGS) -c $< -o $@
+diff -Naur detect-stylus.orig/build/Makefile.translation detect-stylus/build/Makefile.translation
+--- detect-stylus.orig/build/Makefile.translation      1970-01-01 02:00:00.000000000 +0200
++++ detect-stylus/build/Makefile.translation   2007-02-10 17:21:46.170927636 +0200
+@@ -0,0 +1,107 @@
++.SUFFIXES: .mo .po .pot .po8
++
++CONTROL = `if test -e familiar/control1; then echo control1; else echo control; fi`
++
++# use ipkg-build or ipkg-deb-build
++IPKG_BUILD := ipkg-build
++
++TRANSLATION_SITE := http://www.iro.umontreal.ca/~gnutra/maint
++
++ifeq ($(DIR_PO),)
++DIR_PO := po
++endif
++
++ifeq ($(BINPACKAGE),)
++BINPACKAGE := $(PACKAGE)
++endif
++
++mo-files = $(patsubst %,$(DIR_PO)/%.mo,$(LINGUAS))
++po-files = $(patsubst %,$(DIR_PO)/%.po,$(LINGUAS))
++
++ifeq ($(shell if [ -f $(PACKAGE).desktop.in ]; then echo present; fi;),present)
++desktop-files += $(PACKAGE).desktop
++endif
++
++ifneq ($(EXTRA_DESKTOPS),)
++desktop-files += $(patsubst %.desktop.in,%.desktop,$(EXTRA_DESKTOPS))
++endif
++
++all-mo: $(mo-files)
++
++all-desktop: $(desktop-files)
++
++install-mo: all-mo
++      if [ "$(ENABLE_NLS)" != "no" ]; then \
++              if [ "x$(LINGUAS)" != "x" ]; then \
++                      for i in $(LINGUAS); do mkdir -p $(DESTDIR)$(PREFIX)/share/locale/$$i/LC_MESSAGES; install -m 644 $(DIR_PO)/$$i.mo $(DESTDIR)$(PREFIX)/share/locale/$$i/LC_MESSAGES/$(PACKAGE).mo; done \
++              fi; \
++      fi;
++
++.po8.mo:;
++      if [ "$(ENABLE_NLS)" != "no" ]; then \
++              msgfmt -o $@ $<; \
++      fi;
++
++.po.po8:;
++      CTYPE=`grep "^\"Content-Type:" $< | sed 's/^.*charset=//;s/\\\\.*//'`; sed "s/\(Content-Type: .*=\)$$CTYPE/\1UTF-8/" < $< | iconv -f $${CTYPE} -t UTF-8 >$@
++
++update-po: $(po-files) extract-po
++
++dist-prep: update-po freshen-po
++# empty
++
++ifeq ($(CVSBUILD),yes)
++ipkg-prep: freshen-po
++# empty
++endif
++
++extract-po:
++      mkdir -p $(DIR_PO)
++      ( SOURCES="$(SOURCES)"; for DESK in $(PACKAGE).desktop.in $(EXTRA_DESKTOPS); do if [ -f $$DESK ]; then intltool-extract --type=gettext/ini $$DESK; SOURCES="$$SOURCES $${DESK}.h"; fi; done; if [ "x$$SOURCES" != "x" ]; then xgettext --add-comments=TRANSLATORS: -k_ -kN_ -o $(DIR_PO)/$(PACKAGE).pot.new $$SOURCES; fi )
++      if [ -f $(DIR_PO)/$(PACKAGE).pot.new ]; then if cmp -s $(DIR_PO)/$(PACKAGE).pot.new $(PACKAGE).pot; then rm $(DIR_PO)/$(PACKAGE).pot.new; else mv $(DIR_PO)/$(PACKAGE).pot.new $(DIR_PO)/$(PACKAGE).pot; fi; fi
++
++clean: clean-po clean-dist-translation
++
++clean-po:
++      rm -rf $(DIR_PO)/*.mo
++      for i in $(desktop-files); do if [ -f $$i.in ]; then rm -f $$i; rm -f $$i.in.h; fi; done
++
++%.desktop: %.desktop.in $(patsubst %,$(DIR_PO)/%.po,$(LINGUAS))
++      intltool-merge -u -d $(DIR_PO) $< $@
++
++freshen-po:
++      rm -rf tmp-po
++      mkdir tmp-po
++      cd tmp-po; for LANG in $(LINGUAS); do wget $(TRANSLATION_SITE)/$(PACKAGE)/$$LANG.po; done
++      for LANG in $(LINGUAS); do if [ ! -f $(DIR_PO)/$$LANG.po ] || ! cmp -s $(DIR_PO)/$$LANG.po tmp-po/$$LANG.po ; then mv tmp-po/$$LANG.po $(DIR_PO)/$$LANG.po; echo "Updated $$LANG translation"; fi; done
++      rm -rf tmp-po
++
++# ------------------------------------------------------------------------
++
++MAINTAINER = $(shell grep 'Maintainer: ' familiar/$(CONTROL) | cut -d ' ' -f 2-)
++
++ifndef BUILD
++BUILD = ../build
++endif
++
++transdist := familiar/dist-translation
++templates := $(BUILD)/familiar
++ipkglist  := translation-ipkgs.txt
++
++clean-dist-translation:
++      rm -rf $(transdist) $(ipkglist)
++
++real-translation-package: all-mo
++      rm -rf $(transdist) $(ipkglist)
++      for LINGUA in $(LINGUAS); do \
++              i=$$(echo $$LINGUA | tr '[A-Z_]' '[a-z+]'); \
++              mkdir -p $(transdist)/$$i/CONTROL; \
++              mkdir -p $(transdist)/$$i$(PREFIX)/share/locale/$$LINGUA/LC_MESSAGES; \
++              install -m 644 po/$$LINGUA.mo $(transdist)/$$i$(PREFIX)/share/locale/$$LINGUA/LC_MESSAGES/$(PACKAGE).mo; \
++              sed -e "s/<maintainer>/$(MAINTAINER)/;s/<package>/$(BINPACKAGE)/;s/<version>/$(VERSION)/;s/<language>/$$i/;s!<source>!$(SOURCE)!" $(templates)/control.translation > $(transdist)/$$i/CONTROL/control; \
++              install $(templates)/postinst.translation $(transdist)/$$i/CONTROL/postinst; \
++              $(IPKG_BUILD) -g 0 -o 0 $(transdist)/$$i | sed 's/^Packaged .*into //; t 1; d; : 1; s:.*/::' >> $(ipkglist); \
++      done
++
++translation-ipkg:
++      make PREFIX=/usr real-translation-package
diff --git a/packages/gpe-appmgr/gpe-appmgr_svn.bb b/packages/gpe-appmgr/gpe-appmgr_svn.bb
new file mode 100644 (file)
index 0000000..25492b1
--- /dev/null
@@ -0,0 +1,17 @@
+DESCRIPTION = "GPE application launcher"
+SECTION = "gpe"
+LICENSE = "GPL"
+DEPENDS = "libgpewidget libgpelaunch cairo libxsettings-client"
+PV = "2.8+svn${SRCDATE}"
+PR = "r0"
+
+inherit gpe
+
+SRC_URI = "${GPE_SVN} \
+           file://svn-build.patch;patch=1"
+
+S = "${WORKDIR}/${PN}"
+
+export CVSBUILD="no"
+
+DEFAULT_PREFERENCE = "-1"
diff --git a/packages/gpe-autostarter/gpe-autostarter_svn.bb b/packages/gpe-autostarter/gpe-autostarter_svn.bb
new file mode 100644 (file)
index 0000000..2742952
--- /dev/null
@@ -0,0 +1,15 @@
+SECTION = "gpe"
+LICENSE = "GPL"
+DEPENDS = "glib-2.0 dbus-glib hotplug-dbus virtual/libx11"
+RDEPENDS = "hotplug-dbus"
+
+inherit gpe
+
+SRC_URI = "${GPE_SVN} \
+           file://svn-build.patch;patch=1"
+
+S = "${WORKDIR}/${PN}"
+
+export CVSBUILD="no"
+
+DEFAULT_PREFERENCE = "-1"
diff --git a/packages/gpe-autostarter/svn-build.patch b/packages/gpe-autostarter/svn-build.patch
new file mode 100644 (file)
index 0000000..ea1d67a
--- /dev/null
@@ -0,0 +1,229 @@
+diff -Naur detect-stylus.orig/build/Makefile.dpkg_ipkg detect-stylus/build/Makefile.dpkg_ipkg
+--- detect-stylus.orig/build/Makefile.dpkg_ipkg        1970-01-01 02:00:00.000000000 +0200
++++ detect-stylus/build/Makefile.dpkg_ipkg     2007-02-10 17:21:40.154584782 +0200
+@@ -0,0 +1,114 @@
++## Please read the README in this directory to see how to use this
++## Makefile snippet
++
++# Let's use whatever clean target the specific app provides
++
++CONTROL = `if test -e familiar/control1; then echo control1; else echo control; fi`
++
++# URL to source tarball
++SOURCE = http://gpe.linuxtogo.org/download/source/$(PACKAGE)-$(VERSION).tar.gz
++
++# can change this to e.g. /var/tmp/deb
++DEB_PATH = ../deb
++
++ifeq ($(CVSBUILD),yes)
++LIBGPEWIDGET_PC = libgpewidget-uninstalled
++PC_EXTRA=PKG_CONFIG_PATH=../../base/libgpewidget
++else
++LIBGPEWIDGET_PC = libgpewidget
++endif
++
++ifeq ($(IN_LIBGPEWIDGET),)
++GPECFLAGS = $(shell $(PC_EXTRA) pkg-config --cflags $(LIBGPEWIDGET_PC))
++GPELIBS = $(shell $(PC_EXTRA) pkg-config --libs $(LIBGPEWIDGET_PC))
++endif
++
++GTKCFLAGS = $(shell pkg-config --cflags gtk+-2.0)
++GTKLIBS = $(shell pkg-config --libs gtk+-2.0)
++
++STANDARD_CPPFLAGS = -D_GNU_SOURCE -DPACKAGE=\"$(PACKAGE)\" -DPREFIX=\"$(PREFIX)\" -DPACKAGE_LOCALE_DIR=\"$(PREFIX)/share/locale\"
++STANDARD_CFLAGS = -MD -Wall
++
++ifeq ($(DEBUG),yes)
++CFLAGS += -O2 -g
++LDFLAGS = -g
++else
++CFLAGS += -Os -fomit-frame-pointer
++endif
++
++dist: check-source clean dist-prep
++      rm -rf ../$(PACKAGE)-$(VERSION)
++      mkdir ../$(PACKAGE)-$(VERSION)
++      ( tar cf - --exclude "*/CVS" --exclude CVS --exclude "*~" --exclude "#*#" --exclude "debian" --exclude ".*" --exclude "*.ipk" --exclude "*.ipk.*" --exclude "*.mo" --exclude "*.batch" --exclude "translation-ipkgs.txt" * ) | (cd ../$(PACKAGE)-$(VERSION); tar xf -)
++      ( if [ -f linguas ]; then LINGUAS=`cat linguas`; PATCH_LINGUAS="s:^LINGUAS =.*:LINGUAS = $${LINGUAS}:"; fi; cd ../$(PACKAGE)-$(VERSION) && mkdir build && cp $(BUILD)/Makefile.dpkg_ipkg $(BUILD)/Makefile.translation build/ && sed "s:^CVSBUILD =.*:CVSBUILD = no:;s:^DEBUG =.*:DEBUG = no:;s:Makefile.translation-auto-linguas:Makefile.translation:;$${PATCH_LINGUAS}" < Makefile > Makefile.new && mv Makefile.new Makefile )
++      ( cd .. ; tar cf - $(PACKAGE)-$(VERSION) | gzip -9 >$(PACKAGE)-$(VERSION).tar.gz )
++      rm -rf ../$(PACKAGE)-$(VERSION)
++      $(MAKE) printinfo
++
++dist-upload: dist
++      scp ../$(PACKAGE)-$(VERSION).tar.gz $(USER)@linuxtogo.org:/media/data/projects/gpe/source/
++
++dist-prep:
++ipkg-prep:
++install-mo:
++# empty, can be filled in Makefile.translation
++
++install: install-program install-mo
++
++clean-dist:
++      rm -rf familiar/dist familiar/dist.list
++
++clean: clean-dist
++
++check-source:
++      @if [ -f familiar/$(CONTROL) ] && ! grep -q '^Source:' familiar/$(CONTROL); then echo -e "\nNo Source: field in control file.  Aborting.\n"; exit 1; fi
++
++ipkg: check-source ipkg-prep clean
++      rm -rf familiar/dist
++      mkdir -p familiar/dist/CONTROL
++      sed 's:VERSION:$(VERSION):;s$$SOURCE$$$(SOURCE)$$' < familiar/$(CONTROL) > familiar/dist/CONTROL/control
++      if test -e familiar/conffiles; then install -m 644 familiar/conffiles familiar/dist/CONTROL; fi
++      if test -e familiar/preinst;   then install familiar/preinst   familiar/dist/CONTROL; fi
++      if test -e familiar/postinst;  then install familiar/postinst  familiar/dist/CONTROL; fi
++      if test -e familiar/prerm;     then install familiar/prerm     familiar/dist/CONTROL; fi
++      if test -e familiar/postrm;    then install familiar/postrm    familiar/dist/CONTROL; fi
++      $(MAKE) DESTDIR=`pwd`/familiar/dist PREFIX=/usr prefix=/usr DEBUG=no install-program
++      rm -rf familiar/dist.list
++      ipkg-build -o 0 -g 0 familiar/dist | sed 's/^Packaged .*into //; t 1; d; : 1; s:.*/::' >> familiar/dist.list
++      if [ "x$(LINGUAS)" != "x" ]; then make translation-ipkg; tr ' ' '\n' < translation-ipkgs.txt >> familiar/dist.list; fi
++      md5sum `cat familiar/dist.list` > $(PACKAGE)_$(VERSION).batch
++      rm -rf familiar/dist familiar/dist.list
++      $(MAKE) printinfo
++
++dpkg: dist
++      mkdir -p $(DEB_PATH)
++      ( olddir=`pwd`; cd $(DEB_PATH); rm -rf $(PACKAGE)-$(VERSION); ln -s $$olddir/../$(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)_$(VERSION).orig.tar.gz ; tar xzf $(PACKAGE)_$(VERSION).orig.tar.gz )
++      mkdir -p $(DEB_PATH)/$(PACKAGE)-$(VERSION)/debian
++      for i in debian/*; do if test -f $$i; then cp $$i $(DEB_PATH)/$(PACKAGE)-$(VERSION)/debian/; fi; done
++
++CVSTAG := $(shell echo $(PACKAGE)-$(VERSION) | tr [a-z.] [A-Z_])
++printinfo:
++      @printf '-------------------------------------------------------------------------------\n'
++      @printf "If this becomes a package release, please add a CVS tag.\n"
++      @printf "You can use 'make tag' for that, it will execute\n"
++      @printf "   cvs tag %s\n" $(CVSTAG)
++      @printf "Please upload a tarball (created with 'make dist') to\n"
++      @printf "   ftp://ftp.handhelds.org/pub/projects/gpe/\n"
++      @printf "   (handhelds.org:~ftp/pub/projects/gpe/source)\n"
++      @printf "You can use 'make dist-upload' to do that.\n"
++      @printf "You are currently known as USER %s.\n" $(USER)
++      @printf '-------------------------------------------------------------------------------\n'
++
++tag: check-source
++      cvs tag $(CVSTAG)
++
++retag: check-source
++      cvs tag -F $(CVSTAG)
++
++source: tag dist-upload
++
++%.pc: %.pc.in
++      sed 's:PREFIX:$(PREFIX):;s:BUILDDIR:$(shell pwd):;s:VERSION:$(VERSION):' < $< > $@
++
++.c.o:;
++      $(CC) $(CFLAGS) $(CPPFLAGS) $(PACKAGE_CFLAGS) $(PACKAGE_CPPFLAGS) -c $< -o $@
+diff -Naur detect-stylus.orig/build/Makefile.translation detect-stylus/build/Makefile.translation
+--- detect-stylus.orig/build/Makefile.translation      1970-01-01 02:00:00.000000000 +0200
++++ detect-stylus/build/Makefile.translation   2007-02-10 17:21:46.170927636 +0200
+@@ -0,0 +1,107 @@
++.SUFFIXES: .mo .po .pot .po8
++
++CONTROL = `if test -e familiar/control1; then echo control1; else echo control; fi`
++
++# use ipkg-build or ipkg-deb-build
++IPKG_BUILD := ipkg-build
++
++TRANSLATION_SITE := http://www.iro.umontreal.ca/~gnutra/maint
++
++ifeq ($(DIR_PO),)
++DIR_PO := po
++endif
++
++ifeq ($(BINPACKAGE),)
++BINPACKAGE := $(PACKAGE)
++endif
++
++mo-files = $(patsubst %,$(DIR_PO)/%.mo,$(LINGUAS))
++po-files = $(patsubst %,$(DIR_PO)/%.po,$(LINGUAS))
++
++ifeq ($(shell if [ -f $(PACKAGE).desktop.in ]; then echo present; fi;),present)
++desktop-files += $(PACKAGE).desktop
++endif
++
++ifneq ($(EXTRA_DESKTOPS),)
++desktop-files += $(patsubst %.desktop.in,%.desktop,$(EXTRA_DESKTOPS))
++endif
++
++all-mo: $(mo-files)
++
++all-desktop: $(desktop-files)
++
++install-mo: all-mo
++      if [ "$(ENABLE_NLS)" != "no" ]; then \
++              if [ "x$(LINGUAS)" != "x" ]; then \
++                      for i in $(LINGUAS); do mkdir -p $(DESTDIR)$(PREFIX)/share/locale/$$i/LC_MESSAGES; install -m 644 $(DIR_PO)/$$i.mo $(DESTDIR)$(PREFIX)/share/locale/$$i/LC_MESSAGES/$(PACKAGE).mo; done \
++              fi; \
++      fi;
++
++.po8.mo:;
++      if [ "$(ENABLE_NLS)" != "no" ]; then \
++              msgfmt -o $@ $<; \
++      fi;
++
++.po.po8:;
++      CTYPE=`grep "^\"Content-Type:" $< | sed 's/^.*charset=//;s/\\\\.*//'`; sed "s/\(Content-Type: .*=\)$$CTYPE/\1UTF-8/" < $< | iconv -f $${CTYPE} -t UTF-8 >$@
++
++update-po: $(po-files) extract-po
++
++dist-prep: update-po freshen-po
++# empty
++
++ifeq ($(CVSBUILD),yes)
++ipkg-prep: freshen-po
++# empty
++endif
++
++extract-po:
++      mkdir -p $(DIR_PO)
++      ( SOURCES="$(SOURCES)"; for DESK in $(PACKAGE).desktop.in $(EXTRA_DESKTOPS); do if [ -f $$DESK ]; then intltool-extract --type=gettext/ini $$DESK; SOURCES="$$SOURCES $${DESK}.h"; fi; done; if [ "x$$SOURCES" != "x" ]; then xgettext --add-comments=TRANSLATORS: -k_ -kN_ -o $(DIR_PO)/$(PACKAGE).pot.new $$SOURCES; fi )
++      if [ -f $(DIR_PO)/$(PACKAGE).pot.new ]; then if cmp -s $(DIR_PO)/$(PACKAGE).pot.new $(PACKAGE).pot; then rm $(DIR_PO)/$(PACKAGE).pot.new; else mv $(DIR_PO)/$(PACKAGE).pot.new $(DIR_PO)/$(PACKAGE).pot; fi; fi
++
++clean: clean-po clean-dist-translation
++
++clean-po:
++      rm -rf $(DIR_PO)/*.mo
++      for i in $(desktop-files); do if [ -f $$i.in ]; then rm -f $$i; rm -f $$i.in.h; fi; done
++
++%.desktop: %.desktop.in $(patsubst %,$(DIR_PO)/%.po,$(LINGUAS))
++      intltool-merge -u -d $(DIR_PO) $< $@
++
++freshen-po:
++      rm -rf tmp-po
++      mkdir tmp-po
++      cd tmp-po; for LANG in $(LINGUAS); do wget $(TRANSLATION_SITE)/$(PACKAGE)/$$LANG.po; done
++      for LANG in $(LINGUAS); do if [ ! -f $(DIR_PO)/$$LANG.po ] || ! cmp -s $(DIR_PO)/$$LANG.po tmp-po/$$LANG.po ; then mv tmp-po/$$LANG.po $(DIR_PO)/$$LANG.po; echo "Updated $$LANG translation"; fi; done
++      rm -rf tmp-po
++
++# ------------------------------------------------------------------------
++
++MAINTAINER = $(shell grep 'Maintainer: ' familiar/$(CONTROL) | cut -d ' ' -f 2-)
++
++ifndef BUILD
++BUILD = ../build
++endif
++
++transdist := familiar/dist-translation
++templates := $(BUILD)/familiar
++ipkglist  := translation-ipkgs.txt
++
++clean-dist-translation:
++      rm -rf $(transdist) $(ipkglist)
++
++real-translation-package: all-mo
++      rm -rf $(transdist) $(ipkglist)
++      for LINGUA in $(LINGUAS); do \
++              i=$$(echo $$LINGUA | tr '[A-Z_]' '[a-z+]'); \
++              mkdir -p $(transdist)/$$i/CONTROL; \
++              mkdir -p $(transdist)/$$i$(PREFIX)/share/locale/$$LINGUA/LC_MESSAGES; \
++              install -m 644 po/$$LINGUA.mo $(transdist)/$$i$(PREFIX)/share/locale/$$LINGUA/LC_MESSAGES/$(PACKAGE).mo; \
++              sed -e "s/<maintainer>/$(MAINTAINER)/;s/<package>/$(BINPACKAGE)/;s/<version>/$(VERSION)/;s/<language>/$$i/;s!<source>!$(SOURCE)!" $(templates)/control.translation > $(transdist)/$$i/CONTROL/control; \
++              install $(templates)/postinst.translation $(transdist)/$$i/CONTROL/postinst; \
++              $(IPKG_BUILD) -g 0 -o 0 $(transdist)/$$i | sed 's/^Packaged .*into //; t 1; d; : 1; s:.*/::' >> $(ipkglist); \
++      done
++
++translation-ipkg:
++      make PREFIX=/usr real-translation-package
index 2eaa992..15d8cca 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "GPL"
 DESCRIPTION = "GPE bluetooth support user interface tool."
-SECTION     = "gpe"
+SECTION = "gpe"
 PRIORITY    = "optional"
 PR          = "r1"
 
index 7720647..b6dcfcc 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "GPL"
 DESCRIPTION = "GPE bluetooth support user interface tool."
-SECTION     = "gpe"
+SECTION = "gpe"
 PRIORITY    = "optional"
 PR          = "r0"
 
index 7720647..b6dcfcc 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "GPL"
 DESCRIPTION = "GPE bluetooth support user interface tool."
-SECTION     = "gpe"
+SECTION = "gpe"
 PRIORITY    = "optional"
 PR          = "r0"
 
index 24d3ff4..e664f51 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "GPL"
 DESCRIPTION = "GPE bluetooth support user interface tool."
-SECTION     = "gpe"
+SECTION = "gpe"
 PRIORITY    = "optional"
 PR          = "r1"
 
index 5d0fe7a..e2da603 100644 (file)
@@ -5,7 +5,7 @@ PR          = "r0"
 LICENSE     = "GPL"
 DESCRIPTION = "GPE file manager"
 DEPENDS     = "libgpewidget gnome-vfs dbus-glib"
-SECTION     = "gpe"
+SECTION = "gpe"
 RDEPENDS    = "gpe-icons"
 RRECOMMENDS = "gnome-vfs-plugin-file"
 
index 5d0fe7a..e2da603 100644 (file)
@@ -5,7 +5,7 @@ PR          = "r0"
 LICENSE     = "GPL"
 DESCRIPTION = "GPE file manager"
 DEPENDS     = "libgpewidget gnome-vfs dbus-glib"
-SECTION     = "gpe"
+SECTION = "gpe"
 RDEPENDS    = "gpe-icons"
 RRECOMMENDS = "gnome-vfs-plugin-file"
 
index 1ccb811..ac91df6 100644 (file)
@@ -5,7 +5,7 @@ PR          = "r1"
 LICENSE     = "GPL"
 DESCRIPTION = "GPE file manager"
 DEPENDS     = "libgpewidget gnome-vfs dbus-glib"
-SECTION     = "gpe"
+SECTION = "gpe"
 RDEPENDS    = "gpe-icons"
 RRECOMMENDS = "gnome-vfs-plugin-file gnome-vfs-plugin-smb gnome-vfs-plugin-ftp gnome-vfs-plugin-computer gnome-vfs-plugin-network gnome-vfs-plugin-sftp gnome-vfs-plugin-http"
 
index 1674e0c..04839a4 100644 (file)
@@ -2,7 +2,7 @@ LICENSE = "GPL"
 inherit gpe
 
 DESCRIPTION = "GPE user login screen"
-SECTION     = "gpe"
+SECTION = "gpe"
 PRIORITY    = "optional"
 DEPENDS     = "gtk+ libgpewidget gpe-ownerinfo xkbd"
 RDEPENDS    = "xkbd"
index 99523c0..b8146ed 100644 (file)
@@ -2,7 +2,7 @@ require gpe-mini-browser.inc
 
 SRC_URI = "ftp://ftp.handhelds.org/projects/gpe/source/gpe-mini-browser-${PV}.tar.gz"
 DEPENDS = "osb-nrcit sqlite libgpewidget"
-RRECOMMENDS =   "gdk-pixbuf-loader-gif gdk-pixbuf-loader-png gdk-pixbuf-loader-jpeg"
+RRECOMMENDS = "gdk-pixbuf-loader-gif gdk-pixbuf-loader-png gdk-pixbuf-loader-jpeg"
 
 
 S = "${WORKDIR}/gpe-mini-browser-${PV}"
index 99523c0..b8146ed 100644 (file)
@@ -2,7 +2,7 @@ require gpe-mini-browser.inc
 
 SRC_URI = "ftp://ftp.handhelds.org/projects/gpe/source/gpe-mini-browser-${PV}.tar.gz"
 DEPENDS = "osb-nrcit sqlite libgpewidget"
-RRECOMMENDS =   "gdk-pixbuf-loader-gif gdk-pixbuf-loader-png gdk-pixbuf-loader-jpeg"
+RRECOMMENDS = "gdk-pixbuf-loader-gif gdk-pixbuf-loader-png gdk-pixbuf-loader-jpeg"
 
 
 S = "${WORKDIR}/gpe-mini-browser-${PV}"
index 369ea51..67c1686 100644 (file)
@@ -1,18 +1,13 @@
-require gpe-mini-browser.inc
-
-DEFAULT_PREFERENCE = "-1"
-
 DEPENDS = "sqlite gettext gtk+ glib-2.0 osb-nrcit libgpewidget"
 RRECOMMENDS = "gdk-pixbuf-loader-gif gdk-pixbuf-loader-png gdk-pixbuf-loader-jpeg"
-
-PV = "0.19+svn${SRCDATE}"
+PV = "0.20+svn${SRCDATE}"
 PR = "r0"
 
-SRC_URI = "svn://projects.linuxtogo.org/svn/gpe/trunk/extra;module=${PN}"
+inherit autotools
 
-S = "${WORKDIR}/gpe-mini-browser"
+SRC_URI = "${GPE_EXTRA_SVN}"
 
-inherit autotools
+S = "${WORKDIR}/gpe-mini-browser"
 
 do_install() {
                 install -d ${D}/usr/share/applications
@@ -39,7 +34,6 @@ pkg_postinst_${PN}-doc () {
         fi
         fi
 }
-
 pkg_postrm_${PN}-doc () {
         #!/bin/sh
         if [ -e /etc/gpe/gpe-help.conf ]; then
@@ -54,3 +48,6 @@ pkg_postrm_${PN}-doc () {
         fi
 }
 
+require gpe-mini-browser.inc
+
+DEFAULT_PREFERENCE = "-1"
index c47e00d..aac8899 100644 (file)
@@ -1,5 +1,5 @@
 DESCRIPTION = "GPE network security tool"
-SECTION     = "gpe"
+SECTION = "gpe"
 LICENSE     = "GPL"
 
 DEPENDS     = "libgpewidget iptables virtual/kernel"
index 796fc0c..77f8289 100644 (file)
@@ -1,14 +1,13 @@
-DESCRIPTION =  "GTK+ clearlooks theme adjusted for GPE"
-LICENSE =       "GPL"
-
-PR=            "r1"
+DESCRIPTION = "GTK+ clearlooks theme adjusted for GPE"
+LICENSE = "GPL"
+PR = "r1"
 
 #it doesn't really depends on it, but it's nice to make OE build it
-DEPENDS =              "gtk-engines"
-RDEPENDS =             "gtk-engine-clearlooks"
+DEPENDS = "gtk-engines"
+RDEPENDS = "gtk-engine-clearlooks"
 
-FILES_${PN} =  "${datadir}/themes/"
-SRC_URI =              "http://dominion.kabel.utwente.nl/koen/pda/files/${P}.tar.gz"
+FILES_${PN} = "${datadir}/themes/"
+SRC_URI = "http://dominion.kabel.utwente.nl/koen/pda/files/${P}.tar.gz"
 
 do_install() {
 install -d ${D}${datadir}/themes/
index 8af15be..0ec4e10 100644 (file)
@@ -1,14 +1,12 @@
-DESCRIPTION =  "GTK+ clearlooks theme adjusted for GPE"
-LICENSE =       "GPL"
-
-PR=            "r0"
+DESCRIPTION = "GTK+ clearlooks theme adjusted for GPE"
+LICENSE = "GPL"
 
 #it doesn't really depends on it, but it's nice to make OE build it
-DEPENDS =              "gtk-engines"
-RDEPENDS =             "gtk-engine-clearlooks"
+DEPENDS = "gtk-engines"
+RDEPENDS = "gtk-engine-clearlooks"
 
-FILES_${PN} =  "${datadir}/themes/"
-SRC_URI =              "http://dominion.kabel.utwente.nl/koen/pda/files/${P}.tar.gz"
+FILES_${PN} = "${datadir}/themes/"
+SRC_URI = "http://dominion.kabel.utwente.nl/koen/pda/files/${P}.tar.gz"
 
 do_install() {
 install -d ${D}${datadir}/themes/
index 1a0b8f4..02b7a62 100644 (file)
@@ -1,14 +1,12 @@
-DESCRIPTION =  "GTK+ industrial theme adjusted for GPE"
-LICENSE =       "GPL"
-
-PR=            "r0"
+DESCRIPTION = "GTK+ industrial theme adjusted for GPE"
+LICENSE = "GPL"
 
 #it doesn't really depends on it, but it's nice to make OE build it
-DEPENDS =              "gtk-engines"
-RDEPENDS =             "gtk-engine-industrial"
+DEPENDS = "gtk-engines"
+RDEPENDS = "gtk-engine-industrial"
 
-FILES_${PN} =  "${datadir}/themes/"
-SRC_URI =              "http://dominion.kabel.utwente.nl/koen/pda/files/${P}.tar.gz"
+FILES_${PN} = "${datadir}/themes/"
+SRC_URI = "http://dominion.kabel.utwente.nl/koen/pda/files/${P}.tar.gz"
 
 do_install() {
 install -d ${D}${datadir}/themes/
index 8fa3756..9c75dec 100644 (file)
@@ -3,7 +3,7 @@ PR          = "r0"
 DESCRIPTION = "GPE to-do list"
 DEPENDS     = "libgpewidget-hildon libgpepimc-hildon libtododb sdk-default-icons libosso"
 RDEPENDS    = "sdk-default-icons"
-SECTION     = "gpe"
+SECTION = "gpe"
 PRIORITY    = "optional"
 
 inherit gpe autotools pkgconfig
index 8fa3756..9c75dec 100644 (file)
@@ -3,7 +3,7 @@ PR          = "r0"
 DESCRIPTION = "GPE to-do list"
 DEPENDS     = "libgpewidget-hildon libgpepimc-hildon libtododb sdk-default-icons libosso"
 RDEPENDS    = "sdk-default-icons"
-SECTION     = "gpe"
+SECTION = "gpe"
 PRIORITY    = "optional"
 
 inherit gpe autotools pkgconfig
index bd83a42..4572d46 100644 (file)
@@ -3,11 +3,10 @@ LICENSE = "GPL"
 DEFAULT_PREFERENCE = "-1"
 S = "${WORKDIR}/${PN}"
 PV = "0.41+cvs${SRCDATE}"
-PR = "r0"
 
 inherit autotools gpe
 
-SRC_URI =   "${HANDHELDS_CVS};module=gpe/base/${PN}"
+SRC_URI = "${HANDHELDS_CVS};module=gpe/base/${PN}"
 
 DESCRIPTION = "GPE modal help"
 DEPENDS = "virtual/libx11 gtk+"
index 71764de..21fd95f 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LiPS"
 DESCRIPTION = "LiPS address book"
-SECTION     = "gpe"
+SECTION = "gpe"
 PRIORITY    = "optional"
 PR          = "r0"
 
index e79b294..7773724 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LiPS"
 DESCRIPTION = "An audio player for GPE phone edition."
-SECTION     = "gpe"
+SECTION = "gpe"
 PRIORITY    = "optional"
 PR          = "r0"
 
index 342f81e..c78979e 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LiPS"
 DESCRIPTION = "Calendar application for GPE Phone Edition"
-SECTION     = "gpe"
+SECTION = "gpe"
 PRIORITY    = "optional"
 PR          = "r0"
 
index aaa0799..ab0388a 100644 (file)
@@ -1,6 +1,6 @@
 DESCRIPTION = "GSM/GPRS mux initializer"
 LICENSE  = "GPL"
-SECTION  = "gpe"
+SECTION = "gpe"
 PRIORITY = "optional"
 DEPENDS  = "glibc"
 PR = "r0"
index 3e14f78..c5ce0a0 100644 (file)
@@ -1,6 +1,6 @@
 DESCRIPTION = "GSM/GPRS mux tools"
 LICENSE  = "GPL"
-SECTION  = "gpe"
+SECTION = "gpe"
 PRIORITY = "optional"
 DEPENDS  = "glibc"
 PR = "r0"
index e6d6e50..09004a8 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "GPL"
 DESCRIPTION = "full-featured Jabber/XMPP client library."
-SECTION     = "networking"
+SECTION = "networking"
 PRIORITY    = "optional"
 PR          = "r0"
 
index 6b6d08d..ae6cd31 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "GPL"
 DESCRIPTION = "A cellphone application launcher."
-SECTION     = "gpe"
+SECTION = "gpe"
 PRIORITY    = "optional"
 PR          = "r0"
 
index 770b028..1a2f4a2 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "GPL"
 DESCRIPTION = "A cellphone status panel to be used with gpe-applauncher."
-SECTION     = "gpe"
+SECTION = "gpe"
 PRIORITY    = "optional"
 PR          = "r0"
 
index 3354acd..9a6433a 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "GPL"
 DESCRIPTION = "A GSM (De-)Multiplexer."
-SECTION     = "gsm"
+SECTION = "gsm"
 PRIORITY    = "optional"
 PR          = "r0"
 
index 69cc98e..40ad32c 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LGPL"
 DESCRIPTION = "A simple, powerful XML-parsing library written in C."
-SECTION     = "libs"
+SECTION = "libs"
 PRIORITY    = "optional"
 DEPENDS     = "glibc"
 PR          = "r0"
index 84afecb..7a8efb8 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LGPL"
 DESCRIPTION = "LiPS event model library."
-SECTION     = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY    = "optional"
 DEPENDS     = "glib-2.0 librecord liblipsevent libim sqlite3"
 PR          = "r1"
index fc53679..f4be780 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LiPS"
 DESCRIPTION = "LiPS event model library."
-SECTION     = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY    = "optional"
 DEPENDS     = "glib-2.0 e2fsprogs-libs sqlite3"
 PR          = "r1"
index dfc3539..740ed21 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LiPS"
 DESCRIPTION = "LiPS voice call library."
-SECTION     = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY    = "optional"
 DEPENDS     = "glib-2.0 sqlite3 librecord"
 PR          = "r0"
index 88a7e62..40264b9 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LiPS"
 DESCRIPTION = "Extended widget library for GPE phone environment."
-SECTION     = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY    = "optional"
 DEPENDS     = "gtk+ libiac"
 PR          = "r1"
index 48a5148..9a78fd9 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LGPL"
 DESCRIPTION = "Base library for GPE phone environment."
-SECTION     = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY    = "optional"
 DEPENDS     = "gtk+ gtk-doc dbus-glib"
 PR          = "r1"
index 42e9fc7..940b1ec 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LiPS"
 DESCRIPTION = "LiPS IPC library."
-SECTION     = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY    = "optional"
 DEPENDS     = "gtk+ gtk-doc"
 PR          = "r1"
index 9c37e01..4254ef4 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LGPL"
 DESCRIPTION = "Implementation of the Stringprep, Punycode and IDNA specifications defined by the IETF Internationalized Domain Names (IDN) working group."
-SECTION     = "libs"
+SECTION = "libs"
 PRIORITY    = "optional"
 DEPENDS     = "glibc"
 PR          = "r0"
index f4524de..4d59957 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LGPL"
 DESCRIPTION = "LiPS event model library."
-SECTION     = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY    = "optional"
 DEPENDS     = "glib-2.0 libgpg-error libgcrypt gnutls libidn iksemel gloox dbus-glib liblipsevent"
 PR          = "r0"
index 0951b6b..2618bf6 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LiPS"
 DESCRIPTION = "LiPS event model library."
-SECTION     = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY    = "optional"
 DEPENDS     = "glib-2.0"
 PR          = "r0"
index 84c3b79..385501c 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LiPS"
 DESCRIPTION = "LiPS event model library."
-SECTION     = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY    = "optional"
 DEPENDS     = "glib-2.0 dbus-glib librecord sqlite3"
 PR          = "r0"
index f13e810..532cc26 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LiPS"
 DESCRIPTION = "LiPS database API."
-SECTION     = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY    = "optional"
 DEPENDS     = "glib-2.0 e2fsprogs-libs sqlite3"
 PR          = "r0"
index f0b86ee..0b2d237 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LiPS"
 DESCRIPTION = "LiPS voice call  library."
-SECTION     = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY    = "optional"
 DEPENDS     = "glib-2.0 dbus-glib linphone"
 PR          = "r0"
index 3720512..bef090e 100644 (file)
@@ -1,7 +1,7 @@
 
 DESCRIPTION = "SIP-based IP phone"
 HOMEPAGE = "http://www.linphone.org/?lang=us"
-LICENSE = "GPL-2"
+LICENSE = "GPLv2"
 DEPENDS = "libosip2 speex libogg alsa-lib readline"
 PR = "r0"
 
index d9ee660..522d31c 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LiPS"
 DESCRIPTION = "Phone services server"
-SECTION     = "gpe"
+SECTION = "gpe"
 PRIORITY    = "optional"
 PR          = "r1"
 
index 12cd8b4..1718483 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LiPS"
 DESCRIPTION = "GSM Short message application"
-SECTION     = "gpe"
+SECTION = "gpe"
 PRIORITY    = "optional"
 PR          = "r0"
 
index bf45c2e..5d47d9a 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LiPS"
 DESCRIPTION = "Cellphone alarm daemon"
-SECTION     = "gpe"
+SECTION = "gpe"
 PRIORITY    = "optional"
 PR          = "r0"
 
index 0cff5c3..7036192 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LiPS"
 DESCRIPTION = "Video player application"
-SECTION     = "gpe"
+SECTION = "gpe"
 PRIORITY    = "optional"
 PR          = "r0"
 
index 2594991..82bebf9 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LiPS"
 DESCRIPTION = "Voice call application (with wifi support)"
-SECTION     = "gpe"
+SECTION = "gpe"
 PRIORITY    = "optional"
 PR          = "r0"
 
index 7bcd34e..0441e3e 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LiPS"
 DESCRIPTION = "A neutral cellphone theme for Xoo."
-SECTION     = "gpe"
+SECTION = "gpe"
 PRIORITY    = "optional"
 PR          = "r0"
 
index 3202fc2..427f315 100644 (file)
@@ -4,7 +4,7 @@ and view detailed information on each of the elements. \
 118 elements are currently listed."
 LICENSE = "GPL"
 HOMEPAGE = "http://gperiodic.seul.org"
-SECTION = "x11/apps"
+SECTION = "x11/applications"
 DEPENDS = "gtk+-1.2"
 
 SRC_URI = "http://gperiodic.seul.org/downloads/gperiodic-${PV}.tar.gz"
index e23167c..1f48fe0 100644 (file)
@@ -2,13 +2,14 @@ DESCRIPTION = "A TCP/IP Daemon simplifying the communication with GPS devices"
 SECTION = "console/network"
 PRIORITY = "optional"
 LICENSE = "GPL"
-DEPENDS = "dbus-0.23.4 ncurses"
+DEPENDS = "dbus-glib ncurses"
 
 EXTRA_OECONF = "--x-includes=${STAGING_INCDIR}/X11  \
-               --x-libraries=${STAGING_LIBDIR}"
+               --x-libraries=${STAGING_LIBDIR} \
+                --enable-dbus"
 
 SRC_URI = "http://download.berlios.de/gpsd/gpsd-${PV}.tar.gz \
-       file://gpsd"
+           file://gpsd"
 
 inherit autotools update-rc.d
 
diff --git a/packages/gpsd/gpsd_2.34.bb b/packages/gpsd/gpsd_2.34.bb
new file mode 100644 (file)
index 0000000..58e9ebe
--- /dev/null
@@ -0,0 +1,3 @@
+require gpsd.inc
+
+PR = "r0"
index 7f211b3..4fa2db9 100644 (file)
@@ -1,7 +1,7 @@
 DESCRIPTION = "Generic memory training with flash cards.  Automatic scheduling algorithm."
 AUTHOR = "Vladislav Grinchenko <vlg@users.sourceforge.net>"
 HOMEPAGE = "http://granule.sf.net"
-SECTION = "x11/apps"
+SECTION = "x11/applications"
 PRIORITY = "optional"
 LICENSE = "GPLv2"
 DEPENDS = "glib-2.0-native intltool-native gtkmm libxml2 libassa"
diff --git a/packages/gsm/libgsmd_svn.bb b/packages/gsm/libgsmd_svn.bb
new file mode 100644 (file)
index 0000000..e43c19f
--- /dev/null
@@ -0,0 +1,24 @@
+DESCRIPTION = "GSM libraries and daemons implementing the 07.10 specification"
+HOMEPAGE = "http://www.openmoko.org"
+LICENSE = "GPL"
+SECTION = "libs/gsm"
+PROVIDES += "gsmd"
+PV = "0.0+svn${SRCDATE}"
+PR = "r1"
+
+SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gsm;proto=http"
+S = "${WORKDIR}/gsm"
+
+inherit autotools pkgconfig
+
+do_stage() {
+    autotools_stage_all
+}
+
+PACKAGES =+ "${PN}-tools gsmd"
+RDEPENDS_${PN} = "gsmd"
+FILES_${PN}-tools = "${bindir}"
+FILES_gsmd = "${sbindir}/gsmd"
+
+PACKAGES_DYNAMIC = "libgsmd* gsmd"
+
diff --git a/packages/gtk+/pixops-test.bb b/packages/gtk+/pixops-test.bb
new file mode 100644 (file)
index 0000000..79bc33a
--- /dev/null
@@ -0,0 +1,25 @@
+DESCRIPTION = "Productive gtk+ devel prodder"
+DEPENDS = "gtk+"
+
+PR = "r2"
+
+inherit pkgconfig
+
+SRC_URI = "file://pixops-test.c \
+           file://gtk-logo-rgb.gif"
+
+do_configure() {
+       cp ${WORKDIR}/pixops-test.c ${S}
+       cp ${WORKDIR}/gtk-logo-rgb.gif ${S}
+}
+
+do_compile() {
+       ${CC} `pkg-config gtk+-2.0 --libs --cflags` `pkg-config pango --libs --cflags` -lXfixes -lz -lpangoft2-1.0 -lgpg-error -lXdmcp -lXcursor -lexpat -lXau -lgcrypt -lXext -lXinerama -lXrandr -o pixops-test pixops-test.c         
+}
+
+do_install() {
+       install -d ${D}${bindir}
+       install -d ${D}${datadir}/pixops-test
+       install -m 755 pixops-test ${D}${bindir}
+       install -m 644 gtk-logo-rgb.gif ${D}${datadir}/pixops-test
+}
diff --git a/packages/gtk+/pixops-test/gtk-logo-rgb.gif b/packages/gtk+/pixops-test/gtk-logo-rgb.gif
new file mode 100644 (file)
index 0000000..f6e934d
Binary files /dev/null and b/packages/gtk+/pixops-test/gtk-logo-rgb.gif differ
diff --git a/packages/gtk+/pixops-test/pixops-test.c b/packages/gtk+/pixops-test/pixops-test.c
new file mode 100644 (file)
index 0000000..f8906df
--- /dev/null
@@ -0,0 +1,69 @@
+#include <gtk/gtk.h>
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#include <stdlib.h>
+
+static gdouble total_seconds = 0.0;
+
+/* randomly colour each pixel */
+static void
+fill_pixbuf (GdkPixbuf *buf)
+{
+       int width, height, rowstride, n_channels;
+       int x,y,n;
+       guchar *pixels, *p;
+
+       g_assert (gdk_pixbuf_get_bits_per_sample (buf) == 8);
+
+       n_channels = gdk_pixbuf_get_n_channels (buf);
+       width = gdk_pixbuf_get_width (buf);
+       height = gdk_pixbuf_get_height (buf);
+       rowstride = gdk_pixbuf_get_rowstride (buf);
+       pixels = gdk_pixbuf_get_pixels (buf);
+
+       for (x=0; x<width; x++) {
+               for (y=0; y<height; y++) {
+                       p = pixels + (y*rowstride) + (x*n_channels);
+                       for (n=0; n<n_channels; n++) {
+                               p[n] = (random()*255)/RAND_MAX;
+                       }
+               }
+       }
+}
+
+int
+main (int argc, char **argv)
+{
+        GTimer *timer;
+       int i,j;
+
+        gtk_init (&argc, &argv);
+
+
+       GdkPixbuf *pixbuf[4], *ret;
+       pixbuf[0] = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, 400, 600);
+       pixbuf[1] = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, 40, 60);
+       pixbuf[2] = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, 400, 600);
+       pixbuf[3] = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, 40, 60);
+
+       for (j=0; j<4; j++)
+               fill_pixbuf (pixbuf[j]);
+
+       timer = g_timer_new ();
+       g_timer_start (timer);
+
+       for (i = 0; i < 10 ; i++) {
+               for (j=0; j<4; j++) {
+                       ret = gdk_pixbuf_scale_simple (pixbuf[j], 700, 900, GDK_INTERP_BILINEAR);
+                       gdk_pixbuf_unref (ret);
+                       ret = gdk_pixbuf_scale_simple (pixbuf[j], 20, 50, GDK_INTERP_BILINEAR);
+                       gdk_pixbuf_unref (ret);
+               }
+       }
+       g_timer_stop (timer);
+
+       total_seconds += g_timer_elapsed (timer, NULL);
+        
+        g_print ("time spent scaling (in seconds): %lf\n",  total_seconds );
+
+        return 0;
+}
index 8c5efa8..3c4eb9a 100644 (file)
@@ -5,7 +5,7 @@
 DESCRIPTION="GTK2 ssh askpass utility"
 HOMEPAGE="http://www.cgabriel.org/sw/gtk2-ssh-askpass/"
 LICENSE = "GPL"
-SECTION = "net-misc"
+SECTION = "network/misc"
 
 SRC_URI="http://src.gentoo.pl/distfiles/gtk2-ssh-askpass-${PV}.tar.gz \
        file://makefile.patch;patch=1"
index c6ca7f7..5933676 100644 (file)
@@ -1,12 +1,11 @@
-SECTION = "unknown"
 DESCRIPTION = "Hardware Abstraction Layer"
+HOMEPAGE = "http://freedesktop.org/Software/hal"
+SECTION = "unknown"
+LICENSE = "GPL LGPL AFL"
 DEPENDS = "dbus expat libusb"
 RDEPENDS += "hotplug"
 #RDEPENDS_hal-device-manager = "python hal python-pygnome"
 RRECOMMENDS = "udev-utils"
-HOMEPAGE = "http://freedesktop.org/Software/hal"
-LICENSE = "GPL LGPL AFL"
-PR = "r0"
 
 SRC_URI = "http://freedesktop.org/~david/dist/hal-${PV}.tar.gz \
            file://dbus-fix-api.patch;patch=1"
@@ -28,19 +27,19 @@ do_stage() {
 }
 
 #PACKAGES += "hal-device-manager"
-FILES_${PN} =  "${sysconfdir} \
-               ${bindir}/lshal \
-               ${bindir}/hal-find-by-capability \
-               ${bindir}/hal-find-by-property \
-               ${bindir}/hal-device  \
-               ${bindir}/hal-get-property \
-               ${bindir}/hal-set-property  \
-               ${sbindir} \
-               ${libdir}/libhal.so* \
-               ${libdir}/libhal-storage.so* \
-               ${libexecdir} \
-               ${datadir}/hal/fdi \
-               ${datadir}/hal/scripts"
+FILES_${PN} = "${sysconfdir} \
+               ${bindir}/lshal \
+               ${bindir}/hal-find-by-capability \
+               ${bindir}/hal-find-by-property \
+               ${bindir}/hal-device  \
+               ${bindir}/hal-get-property \
+               ${bindir}/hal-set-property  \
+               ${sbindir} \
+               ${libdir}/libhal.so* \
+               ${libdir}/libhal-storage.so* \
+               ${libexecdir} \
+               ${datadir}/hal/fdi \
+               ${datadir}/hal/scripts"
 #FILES_hal-device-manager = " \
 #              ${datadir}/hal/device-manager/ \
 #              ${bindir}/hal-device-manager"
index d631062..76134bc 100644 (file)
@@ -1,19 +1,15 @@
 DESCRIPTION = "Library for interacting with ID3 tags."
-SECTION = "libs"
+SECTION = "libs/multimedia"
 PRIORITY = "optional"
 DEPENDS = "zlib"
-DESCRIPTION = "Library for interacting with ID3 tags."
 LICENSE = "GPL"
+PR = "r1"
 
 inherit autotools
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/id3lib/id3lib-${PV}.tar.gz"
 S = "${WORKDIR}/id3lib-${PV}"
 
-do_configure() {
-       oe_runconf
-}
-
 do_stage() {
        oe_libinstall -a -so -C src libid3 ${STAGING_LIBDIR}
        install -m 0644 include/id3.h ${STAGING_INCDIR}
diff --git a/packages/images/openmoko-devel-image.bb b/packages/images/openmoko-devel-image.bb
new file mode 100644 (file)
index 0000000..3f23819
--- /dev/null
@@ -0,0 +1,6 @@
+require openmoko-image.bb
+
+export PACKAGE_INSTALL += "\
+  task-openmoko-demo \
+  task-openmoko-debug \
+"
diff --git a/packages/images/openmoko-image.bb b/packages/images/openmoko-image.bb
new file mode 100644 (file)
index 0000000..0ebddcb
--- /dev/null
@@ -0,0 +1,27 @@
+#------------------------------------------------------
+# OpenMoko Image Recipe
+#------------------------------------------------------
+
+export IMAGE_BASENAME = "${PN}"
+export IMAGE_LINGUAS = ""
+
+export PACKAGE_INSTALL = "\
+  ${MACHINE_TASK_PROVIDER} \
+  task-openmoko-linux \
+  task-openmoko-net \
+  task-openmoko-ui \
+  task-openmoko-base \
+  task-openmoko-phone \
+  task-openmoko-finger \
+  task-openmoko-pim \
+"
+DEPENDS = "\
+  ${MACHINE_TASK_PROVIDER} \
+  task-openmoko \
+"
+
+RDEPENDS = "${PACKAGE_INSTALL}"
+
+inherit image
+
+LICENSE = MIT
diff --git a/packages/images/openmoko-sdk-image.bb b/packages/images/openmoko-sdk-image.bb
new file mode 100644 (file)
index 0000000..5358616
--- /dev/null
@@ -0,0 +1,5 @@
+require openmoko-devel-image.bb
+
+export PACKAGE_INSTALL += "\
+  task-openmoko-native-sdk \
+"
index faec266..472000f 100644 (file)
@@ -4,8 +4,6 @@ LICENSE = "MIT"
 PR = "r0"
 
 DEPENDS = "${MACHINE_TASK_PROVIDER}"
-# SLUGOS_IMAGENAME defines the name of the image to be build, if it
-# is not set this package will be skipped!
 EXTRA_IMAGECMD_jffs2 = "--pad --big-endian --eraseblock=0x10000 -D ${SLUGOS_DEVICE_TABLE}"
 IMAGE_LINGUAS = ""
 
index 5d7fed7..3a275b1 100644 (file)
@@ -6,16 +6,13 @@
 DESCRIPTION = "Generic SlugOS image"
 HOMEPAGE = "http://www.nslu2-linux.org"
 LICENSE = "MIT"
-PR = "r44"
+PR = "r46"
 
 COMPATIBLE_MACHINE = "nslu2"
 
-# SLUGOS_IMAGENAME defines the name of the image to be build, if it
-# is not set this package will be skipped!
-IMAGE_BASENAME = "${SLUGOS_IMAGENAME}"
-IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DISTRO_VERSION}"
+IMAGE_NAME = "${IMAGE_BASENAME}-${DISTRO_VERSION}"
 IMAGE_FSTYPES = "jffs2"
-EXTRA_IMAGECMD_jffs2 = "--pad --${SLUGOS_IMAGESEX} --eraseblock=0x20000 -D ${SLUGOS_DEVICE_TABLE}"
+EXTRA_IMAGECMD_jffs2 += " -D ${SLUGOS_DEVICE_TABLE}"
 IMAGE_LINGUAS = ""
 
 # Setting USE_DEVFS prevents *any* entries being created initially
@@ -34,140 +31,11 @@ SLUGOS_DEVICE_TABLE = "${@bb.which(bb.data.getVar('BBPATH', d, 1), 'files/device
 IMAGE_PREPROCESS_COMMAND += "rm ${IMAGE_ROOTFS}/boot/zImage*;"
 IMAGE_PREPROCESS_COMMAND += "install -c -m 644 ${SLUGOS_DEVICE_TABLE} ${IMAGE_ROOTFS}/etc/device_table;"
 
-# Building a full image.  If required do a post-process command which builds
-# the full flash image using slugimage.  At present this only works for NSLU2 images.
-PACK_IMAGE = ""
-IMAGE_POSTPROCESS_COMMAND += "${PACK_IMAGE}"
-PACK_IMAGE_DEPENDS = ""
-EXTRA_IMAGEDEPENDS += "${PACK_IMAGE_DEPENDS}"
+SLUGOS_EXTRA_INSTALL ?= ""
 
-# This hack removes '${MACHINE}' from the end of the arch.conf for ipk,
-# preventing _mach.ipk (with no byte sex) taking precedence over everything
-# else.
-ROOTFS_POSTPROCESS_COMMAND += "sed -i '$d' '${IMAGE_ROOTFS}/etc/ipkg/arch.conf';"
-
-# These depends define native utilities - they do not get put in the flash and
-# are not required to build the image.
-IMAGE_TOOLS = ""
-EXTRA_IMAGEDEPENDS += "${IMAGE_TOOLS}"
-
-# CONFIG:
-# SLUGOS_EXTRA_RDEPENDS: set in conf, things to add to the image
-# SLUGOS_SUPPORT:        set here, see below, added to the image.
-# SLUGOS_KERNEL:         set here, kernel modules added to the image
-#
-# Do not override the last two unless you really know what you
-# are doing - there is more information below.
-
-# diff, cpio and find are required for reflash and turnup ram.
-# Removing these probably leaves the system bootable, but standard
-# openslug and ucslugc stuff won't work, so only take these out in
-# very non-standard turnkey slugos builds.
-#
-# udev is the default way of handling devices, there is no guarantee
-# that the static device table is completely correct (it is just
-# known to be sufficient for boot.)
-SLUGOS_SUPPORT ?= "diffutils cpio findutils udev"
-
-SLUGOS_KERNEL ?= ""
-
-SLUGOS_EXTRA_RDEPENDS ?= ""
-
-RDEPENDS = "kernel ixp4xx-npe \
-       base-files base-passwd netbase \
-        busybox initscripts-slugos slugos-init \
-        update-modules sysvinit tinylogin \
-       module-init-tools modutils-initscripts \
-        ipkg-collateral ipkg ipkg-link \
-       portmap \
-       dropbear \
-       beep \
-       e2fsprogs-blkid \
-       util-linux-mount \
-       util-linux-umount \
-       util-linux-swaponoff \
-       util-linux-losetup \
-       ${SLUGOS_SUPPORT} \
-       ${SLUGOS_KERNEL} \
-       ${SLUGOS_EXTRA_RDEPENDS}"
+DEPENDS = "task-slugos"
+RDEPENDS = "task-slugos ${SLUGOS_EXTRA_INSTALL}"
 
 PACKAGE_INSTALL = "${RDEPENDS}"
 
-inherit image
-
-python () {
-    # Don't build slugos images unless the configuration is set up
-    # for an image build!
-    if bb.data.getVar("SLUGOS_IMAGENAME", d, 1) == '' or bb.data.getVar("SLUGOS_IMAGESEX", d, 1) == '':
-        raise bb.parse.SkipPackage("absent or broken SlugOS configuration")
-}
-
-#--------------------------------------------------------------------------------
-# NSLU2 specific
-#
-#NOTE: you do not actually need the boot loader in normal use because it is
-# *not* overwritten by a standard upslug upgrade, so you can make an image with
-# just non-LinkSys software which can be flashed into the NSLU2.  Because
-# LinkSys have made "EraseAll" available, however, (this does overwrite RedBoot)
-# it is a bad idea to produce flash images without a valid RedBoot - that allows
-# an innocent user upgrade attempt to instantly brick the NSLU2.
-PACK_IMAGE += "${@['', 'slugos_pack_image;'][bb.data.getVar('SLUGOS_FLASH_IMAGE', d, 1) == '1']}"
-PACK_IMAGE_DEPENDS += "${@['', 'slugimage-native nslu2-linksys-firmware ixp4xx-npe'][bb.data.getVar('SLUGOS_FLASH_IMAGE', d, 1) == '1']}"
-
-NSLU2_SLUGIMAGE_ARGS ?= ""
-
-slugos_pack_image() {
-       install -d ${DEPLOY_DIR_IMAGE}/slug
-       install -m 0644 ${STAGING_LIBDIR}/nslu2-binaries/RedBoot \
-                       ${STAGING_LIBDIR}/nslu2-binaries/Trailer \
-                       ${STAGING_LIBDIR}/nslu2-binaries/SysConf \
-                       ${DEPLOY_DIR_IMAGE}/slug/
-       install -m 0644 ${DEPLOY_DIR_IMAGE}/zImage-nslu2${SITEINFO_ENDIANESS} \
-               ${DEPLOY_DIR_IMAGE}/slug/vmlinuz
-       install -m 0644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
-               ${DEPLOY_DIR_IMAGE}/slug/flashdisk.jffs2
-       install -m 0644 ${STAGING_FIRMWARE_DIR}/NPE-B ${DEPLOY_DIR_IMAGE}/slug/
-       cd ${DEPLOY_DIR_IMAGE}/slug
-       slugimage -p -b RedBoot -s SysConf -k vmlinuz \
-               -r Ramdisk:1,Flashdisk:flashdisk.jffs2 -m NPE-B -t Trailer \
-               -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-nslu2.bin \
-               ${NSLU2_SLUGIMAGE_ARGS}
-       rm -rf ${DEPLOY_DIR_IMAGE}/slug
-
-       # Create an image for the DSM-G600 as well
-       install -d ${DEPLOY_DIR_IMAGE}/firmupgrade
-       install -m 0755 ${DEPLOY_DIR_IMAGE}/zImage-dsmg600${SITEINFO_ENDIANESS} \
-               ${DEPLOY_DIR_IMAGE}/firmupgrade/ip-ramdisk
-       install -m 0644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
-               ${DEPLOY_DIR_IMAGE}/firmupgrade/rootfs.gz
-       touch ${DEPLOY_DIR_IMAGE}/firmupgrade/usr.cramfs
-       chmod 0644 ${DEPLOY_DIR_IMAGE}/firmupgrade/usr.cramfs
-       echo "hwid=1.0.1"      >${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
-       echo "model=dsm-g600" >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
-       echo "vendor=dlink"   >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
-       echo ""               >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
-       chmod 0744 ${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
-       tar -c -f ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-dsmg600.bin \
-               -C ${DEPLOY_DIR_IMAGE} firmupgrade
-       rm -rf ${DEPLOY_DIR_IMAGE}/firmupgrade
-
-       # Create an image for the NAS 100d as well
-       install -d ${DEPLOY_DIR_IMAGE}/firmupgrade
-       install -m 0755 ${DEPLOY_DIR_IMAGE}/zImage-nas100d${SITEINFO_ENDIANESS} \
-               ${DEPLOY_DIR_IMAGE}/firmupgrade/ip-ramdisk
-       install -m 0644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 \
-               ${DEPLOY_DIR_IMAGE}/firmupgrade/rootfs.gz
-       touch ${DEPLOY_DIR_IMAGE}/firmupgrade/usr.cramfs
-       chmod 0644 ${DEPLOY_DIR_IMAGE}/firmupgrade/usr.cramfs
-       echo "hwid=1.0.1"      >${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
-       echo "model=koala"    >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
-       echo "vendor=iomega"  >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
-       echo ""               >>${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
-       chmod 0744 ${DEPLOY_DIR_IMAGE}/firmupgrade/version.msg
-       tar -c -f ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-nas100d.bin \
-               -C ${DEPLOY_DIR_IMAGE} firmupgrade
-       rm -rf ${DEPLOY_DIR_IMAGE}/firmupgrade
-}
-
-# upslug2 (in tmp/work/upslug2-native-*) is the program to write the NSLU2 flash
-IMAGE_TOOLS_nslu2 = "upslug2-native"
+inherit image nslu2-image dsmg600-image nas100d-image
diff --git a/packages/images/slugos-imagename.bb b/packages/images/slugos-imagename.bb
deleted file mode 100644 (file)
index 61629d4..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-# This is an inglorious hack to provide a package to match
-# ${SLUGOS_IMAGENAME}-image
-LICENSE = "MIT"
-PN = "${SLUGOS_IMAGENAME}-image"
-PV = "0"
-PR = "r0"
-DEPENDS = "slugos-image"
-PACKAGES = ""
-INHIBIT_DEFAULT_DEPS = "1"
-
-SLUGOS_IMAGENAME ?= "slugos"
-COMPATIBLE_MACHINE = "nslu2"
-
-do_fetch() {
-}
-do_unpack() {
-}
-do_patch() {
-}
-do_configure() {
-}
-do_compile() {
-}
-do_install() {
-}
-do_stage() {
-}
-do_build() {
-}
index b56f007..897fb13 100644 (file)
@@ -120,3 +120,20 @@ unslung_clean_image () {
 #      #### End of Hack!
 
 }
+
+nslu2_pack_image () {
+       install -d ${DEPLOY_DIR_IMAGE}/slug
+       install -m 0644 ${STAGING_LIBDIR}/nslu2-binaries/RedBoot \
+                       ${STAGING_LIBDIR}/nslu2-binaries/Trailer \
+                       ${STAGING_LIBDIR}/nslu2-binaries/SysConf \
+                       ${DEPLOY_DIR_IMAGE}/slug/
+       install -m 0644 ${DEPLOY_DIR_IMAGE}/zImage-${IMAGE_BASENAME} ${DEPLOY_DIR_IMAGE}/slug/vmlinuz
+       install -m 0644 ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 ${DEPLOY_DIR_IMAGE}/slug/flashdisk.jffs2
+       cd ${DEPLOY_DIR_IMAGE}/slug
+       slugimage -p -b RedBoot -s SysConf -r Ramdisk:1,Flashdisk:flashdisk.jffs2 -t Trailer \
+         -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.flashdisk.img
+       rm -rf ${DEPLOY_DIR_IMAGE}/slug
+}
+
+EXTRA_IMAGEDEPENDS += 'slugimage-native nslu2-linksys-firmware'
+IMAGE_POSTPROCESS_COMMAND += "nslu2_pack_image; "
diff --git a/packages/ipkg/files/is-processing.patch b/packages/ipkg/files/is-processing.patch
new file mode 100644 (file)
index 0000000..779933b
--- /dev/null
@@ -0,0 +1,127 @@
+diff -Nur ipkg-0.99.163.orig/ipkg_install.c ipkg-0.99.163/ipkg_install.c
+--- ipkg-0.99.163.orig/ipkg_install.c  2006-03-30 21:50:24.000000000 +0800
++++ ipkg-0.99.163/ipkg_install.c       2006-08-10 09:30:40.000000000 +0800
+@@ -211,6 +211,7 @@
+       anyone ever wants to make a nice libipkg. */
+      ipkg_message(conf, IPKG_DEBUG2,"Function: %s calling ipkg_install_pkg \n",__FUNCTION__);
++     new->is_processing = 1;
+      return ipkg_install_pkg(conf, new,0);
+ }
+diff -Nur ipkg-0.99.163.orig/pkg.c ipkg-0.99.163/pkg.c
+--- ipkg-0.99.163.orig/pkg.c   2006-04-21 04:29:28.000000000 +0800
++++ ipkg-0.99.163/pkg.c        2006-08-10 09:35:06.000000000 +0800
+@@ -33,6 +33,7 @@
+ #include "xsystem.h"
+ #include "ipkg_conf.h"
++
+ typedef struct enum_map enum_map_t;
+ struct enum_map
+ {
+@@ -522,6 +523,10 @@
+      strncat(buff ,line, strlen(line));
+      free(line);
++     line = pkg_formatted_field(pkg, "Installed-Size");
++     strncat(buff ,line, strlen(line));
++     free(line);
++     
+      return buff;
+ }
+@@ -542,7 +547,6 @@
+      }
+      temp[0]='\0'; 
+-
+      switch (field[0])
+      {
+      case 'a':
+@@ -690,13 +694,42 @@
+      case 'I': {
+         if (strcasecmp(field, "Installed-Size") == 0) {
+              /* Installed-Size */
+-               temp = (char *)realloc(temp,strlen(pkg->installed_size)+17);
+-               if ( temp == NULL ){
+-                 fprintf(stderr, "%s: out of memory\n", __FUNCTION__);
+-                 return NULL;
+-               }
+-               temp[0]='\0';
+-               snprintf(temp, (strlen(pkg->installed_size)+17), "Installed-Size: %s\n", pkg->installed_size);
++             if (pkg->installed_size) {
++                  temp = (char *)realloc(temp,strlen(pkg->installed_size)+18);
++                  if ( temp == NULL ){
++                   fprintf(stderr, "%s: out of memory\n", __FUNCTION__);
++                   return NULL;
++                  }
++                  temp[0]='\0';
++                  snprintf(temp, (strlen(pkg->installed_size)+18), "Installed-Size: %s\n", pkg->installed_size);
++             } else {
++                /* Caculate installed files size */
++                str_list_elt_t *iter;
++                struct stat buf;
++                int installed_files_length = 0;
++                if (pkg->installed_files == NULL)
++                   break;
++
++                if (pkg->is_processing!=1) 
++                   break;
++                
++                for (iter = pkg->installed_files->head; iter; iter = iter->next) {
++                   memset(&buf, 0, sizeof(struct stat));
++                   stat(iter->data, &buf);
++                   if (S_ISREG(buf.st_mode))
++                      installed_files_length += buf.st_size;
++                }
++                /*printf("installed_files_length:%d\n", installed_files_length);*/
++                
++                sprintf_alloc(&pkg->installed_size, "%d", installed_files_length);
++                  temp = (char *)realloc(temp,strlen(pkg->installed_size)+18);
++                  if ( temp == NULL ){
++                   fprintf(stderr, "%s: out of memory\n", __FUNCTION__);
++                   return NULL;
++                  }
++                  temp[0]='\0';
++                  snprintf(temp, (strlen(pkg->installed_size)+18), "Installed-Size: %s\n", pkg->installed_size);
++             }
+         } else if (strcasecmp(field, "Installed-Time") == 0 && pkg->installed_time) {
+                temp = (char *)realloc(temp,29);
+                if ( temp == NULL ){
+@@ -720,7 +753,7 @@
+                     return NULL;
+                    }
+                    temp[0]='\0';
+-                   snprintf(temp, (strlen(pkg->maintainer)+14), "maintainer: %s\n", pkg->maintainer);
++                   snprintf(temp, (strlen(pkg->maintainer)+14), "Maintainer: %s\n", pkg->maintainer);
+              }
+         } else if (strcasecmp(field, "MD5sum") == 0) {
+              /* MD5sum */
+@@ -1016,6 +1049,12 @@
+      pkg_print_field(pkg, file, "Essential"); /* @@@@ should be removed in future release. */
+      pkg_print_field(pkg, file, "Architecture");
+      pkg_print_field(pkg, file, "Conffiles");
++     pkg_print_field(pkg, file, "Description");
++     pkg_print_field(pkg, file, "Maintainer");
++     pkg_print_field(pkg, file, "Section");
++     pkg_print_field(pkg, file, "Size");
++     pkg_print_field(pkg, file, "Filename");
++     pkg_print_field(pkg, file, "Installed-Size");
+      pkg_print_field(pkg, file, "Installed-Time");
+      fputs("\n", file);
+ }
+diff -Nur ipkg-0.99.163.orig/pkg.h ipkg-0.99.163/pkg.h
+--- ipkg-0.99.163.orig/pkg.h   2006-05-30 16:31:08.000000000 +0800
++++ ipkg-0.99.163/pkg.h        2006-08-10 09:19:14.000000000 +0800
+@@ -176,6 +176,10 @@
+      int arch_priority;
+ /* Adding this flag, to "force" ipkg to choose a "provided_by_hand" package, if there are multiple choice */
+      int provided_by_hand;
++
++     /* Check whether this pkg is being removed or installed */
++     int is_processing;
++     
+ };
+ pkg_t *pkg_new(void);
index c2ac30e..de3562d 100644 (file)
@@ -1,11 +1,11 @@
 include ipkg.inc
-PR = "r1"
+PR = "r2"
 
 S = "${WORKDIR}/ipkg-${PV}"
 
 SRC_URI = "http://www.handhelds.org/pub/packages/ipkg/ipkg-${PV}.tar.gz \
        file://terse.patch;patch=1 \
-       file://patch-ipkg-localfilename;patch=0"
+       file://is-processing.patch;patch=1"
 
 do_stage() {
        oe_libinstall -so libipkg ${STAGING_LIBDIR}
index 0e2a82e..9b0676a 100644 (file)
@@ -1,10 +1,9 @@
 DESCRIPTION = "IPsec-Tools is a port of KAME's IPsec utilities to the \
 Linux-2.6 IPsec implementation."
 HOMEPAGE = "http://ipsec-tools.sourceforge.net/"
-SECTION = "console/net"
+SECTION = "console/network"
 LICENSE = "BSD"
 DEPENDS = "virtual/kernel openssl readline flex"
-PR = "r0"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/ipsec-tools/ipsec-tools-${PV}.tar.bz2 \
            file://racoon-search-missing.patch;patch=1"
index c6d91ff..ef422e2 100644 (file)
@@ -3,7 +3,12 @@ LICENSE = "Intel Public Licence"
 PR = "r8"
 DEPENDS = "ixp4xx-npe-native"
 
-SRC_URI = "http://www.intel.com/Please-Read-The-BB-File/IPL_ixp400NpeLibrary-2_3.zip"
+# You need to download the IPL_ixp400NpeLibrary-2_3.zip file (without crypto) from:
+# http://www.intel.com/design/network/products/npfamily/ixp400_current.htm
+# and put it in your downloads directory so bitbake will find it.
+# Make sure you *read* and accept the license - it is not a standard one.
+
+SRC_URI = "http://You-Have-To-Download-The-Microcode-Manually-So-Please-Read-ixp4xx-npe_2.3.bb-For-Instructions/IPL_ixp400NpeLibrary-2_3.zip"
 S = "${WORKDIR}/ixp400_xscale_sw/src/npeDl"
 
 COMPATIBLE_MACHINE = "(nslu2|ixp4xx)"
similarity index 88%
rename from packages/mozilla/firefox-1.5.0.6/jsautocfg.h
rename to packages/js/files/arm/jsautocfg.h
index 05f3dad..7e8171f 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef js_cpucfg___
 #define js_cpucfg___
 
-/* Lovingly crafted by hand avoiding Mozilla stupidity */
+/* AUTOMATICALLY GENERATED - DO NOT EDIT */
 
 #define IS_LITTLE_ENDIAN 1
 #undef  IS_BIG_ENDIAN
 #define JS_ALIGN_OF_SHORT   2L
 #define JS_ALIGN_OF_INT     4L
 #define JS_ALIGN_OF_LONG    4L
-#define JS_ALIGN_OF_INT64   4L
+#define JS_ALIGN_OF_INT64   8L
 #define JS_ALIGN_OF_FLOAT   4L
-#define JS_ALIGN_OF_DOUBLE  4L
+#define JS_ALIGN_OF_DOUBLE  8L
 #define JS_ALIGN_OF_POINTER 4L
 #define JS_ALIGN_OF_WORD    4L
 
 #define JS_BYTES_PER_WORD_LOG2   2L
 #define JS_BYTES_PER_DWORD_LOG2  3L
-#define JS_WORDS_PER_DWORD_LOG2  2L
+#define JS_WORDS_PER_DWORD_LOG2  1L
 
 #define JS_STACK_GROWTH_DIRECTION (-1)
 
index cb353d9..f53a4f8 100644 (file)
@@ -3,6 +3,8 @@ LICENSE = "GPL"
 SECTION = "libs/network"
 DEPENDS = "readline"
 
+PR = "r1"
+
 SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/js/older-packages/js-1.5.tar.gz \
            file://jsautocfg.h"
 S = "${WORKDIR}/js/src"
diff --git a/packages/kakasi/files/makefile.patch b/packages/kakasi/files/makefile.patch
new file mode 100644 (file)
index 0000000..4373a49
--- /dev/null
@@ -0,0 +1,11 @@
+--- kakasi-2.3.4/Makefile.am.old       2006-04-23 18:11:57.000000000 +0200
++++ kakasi-2.3.4/Makefile.am   2006-04-23 18:12:07.000000000 +0200
+@@ -17,7 +17,7 @@
+ kanwadict:
+       if test -f kakasidict; then \
+-          ITAIJIDICT="itaijidict" src/mkkanwa$(EXEEXT) $@ kakasidict; \
++          ITAIJIDICT="itaijidict" mkkanwa$(EXEEXT) $@ kakasidict; \
+       fi
+ dist-hook:
diff --git a/packages/kakasi/kakasi-native_2.3.4.bb b/packages/kakasi/kakasi-native_2.3.4.bb
new file mode 100644 (file)
index 0000000..86a4c81
--- /dev/null
@@ -0,0 +1,11 @@
+require kakasi.inc
+
+inherit native
+
+S = "${WORKDIR}/kakasi-${PV}"
+
+do_stage() {
+        install src/mkkanwa ${STAGING_BINDIR}
+}
+
+
diff --git a/packages/kakasi/kakasi.inc b/packages/kakasi/kakasi.inc
new file mode 100644 (file)
index 0000000..b931a84
--- /dev/null
@@ -0,0 +1,9 @@
+DESCRIPTION = "Kanji Kana Simple Inverter"
+HOMEPAGE = "http://kakasi.namazu.org/"
+LICENSE = "GPL"
+
+SRC_URI = "http://kakasi.namazu.org/stable/kakasi-${PV}.tar.gz"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = " --enable-shared"
diff --git a/packages/kakasi/kakasi_2.3.4.bb b/packages/kakasi/kakasi_2.3.4.bb
new file mode 100644 (file)
index 0000000..aabfd20
--- /dev/null
@@ -0,0 +1,14 @@
+require kakasi.inc
+
+SECTION = "utils"
+DEPENDS = "kakasi-native"
+
+SRC_URI += "file://makefile.patch;patch=1"
+
+do_stage () {
+        install -m 0644 lib/*.h ${STAGING_INCDIR}
+       install lib/.libs/libkakasi.so* ${STAGING_LIBDIR}
+}
+
+
+
index 0acfccc..af847f5 100644 (file)
@@ -5,7 +5,7 @@ PR = "r1"
 DESCRIPTION = "Library for user-level code accessing Reiser4 filesystems"
 HOMEPAGE = "http://www.namesys.com"
 SECTION = "base"
-LICENSE = "GPL-2"
+LICENSE = "GPLv2"
 
 SRC_URI = "ftp://ftp.namesys.com/pub/reiser4progs/old-versions/${P}.tar.gz"
 
index b8318bd..52e44ec 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LGPL"
 DESCRIPTION = "Database access library for GPE calendar"
-SECTION  = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY = "optional"
 DEPENDS  = "libgpewidget libgpepimc sqlite"
 
index b8318bd..52e44ec 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LGPL"
 DESCRIPTION = "Database access library for GPE calendar"
-SECTION  = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY = "optional"
 DEPENDS  = "libgpewidget libgpepimc sqlite"
 
index f125653..d93766a 100644 (file)
@@ -2,7 +2,7 @@ DEFAULT_PREFERENCE = "-1"
 
 LICENSE     = "LGPL"
 DESCRIPTION = "Database access library for GPE calendar"
-SECTION  = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY = "optional"
 DEPENDS  = "libgpewidget libgpepimc sqlite"
 
index 4f00f4a..c18d28d 100644 (file)
@@ -1,6 +1,6 @@
 DESCRIPTION = "Database access library for GPE calendar"
 LICENSE     = "LGPL"
-SECTION  = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY = "optional"
 
 DEPENDS  = "libgpewidget libgpepimc sqlite"
diff --git a/packages/libgpelaunch/libgpelaunch_svn.bb b/packages/libgpelaunch/libgpelaunch_svn.bb
new file mode 100644 (file)
index 0000000..c7c3c8e
--- /dev/null
@@ -0,0 +1,20 @@
+DESCRIPTION = "GPE program launcher library"
+SECTION = "libs"
+LICENSE = "LGPL"
+DEPENDS = "gtk+ startup-notification"
+PV = "0.14+svn${SRCDATE}"
+PR = "r0"
+
+inherit autotools pkgconfig
+
+SRC_URI = "${GPE_SVN}"
+
+S = "${WORKDIR}/${PN}"
+
+do_stage() {
+ autotools_stage_all
+}
+
+FILES_${PN}-dbg += "${libexecdir}/libgpelaunch/.debug"
+
+DEFAULT_PREFERENCE = "-1"
index 9872228..ccd8aca 100644 (file)
@@ -1,7 +1,7 @@
 LICENSE     = "LGPL"
 PR          = "r0"
 DESCRIPTION = "Common code for GPE PIMs (hildon UI version)"
-SECTION     = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY    = "optional"
 DEPENDS     = "libgpewidget-hildon gtk+ sqlite hildon-lgpl"
 PROVIDES    = "libgepepimc"
index 8894ff6..ef4b443 100644 (file)
@@ -1,7 +1,7 @@
 LICENSE     = "LGPL"
 PR          = "r0"
 DESCRIPTION = "Common code for GPE PIMs"
-SECTION     = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY    = "optional"
 DEPENDS     = "libgpewidget gtk+ sqlite"
 PROVIDES    = "libgepepimc"
diff --git a/packages/libgpepimc/libgpepimc_svn.bb b/packages/libgpepimc/libgpepimc_svn.bb
new file mode 100644 (file)
index 0000000..b195837
--- /dev/null
@@ -0,0 +1,27 @@
+DESCRIPTION = "Common code for GPE PIMs"
+SECTION = "gpe/libs"
+PRIORITY = "optional"
+LICENSE = "LGPL"
+DEPENDS = "libgpewidget gtk+ sqlite"
+PROVIDES = "libgepepimc"
+RPROVIDES = "libgepepimc"
+PV = "0.8+svn${SRCDATE}"
+PR = "r0"
+
+inherit pkgconfig autotools
+
+SRC_URI = "${GPE_SVN}"
+
+S = "${WORKDIR}/${PN}"
+
+do_stage () {
+        oe_libinstall -so libgpepimc ${STAGING_LIBDIR}
+        mkdir -p ${STAGING_INCDIR}/gpe
+        for h in ${headers}; do
+                install -m 0644 ${S}/gpe/$h ${STAGING_INCDIR}/gpe/$h
+        done
+}
+
+headers = "pim-categories.h pim-categories-ui.h"
+
+DEFAULT_PREFERENCE = "-1"
index e00a114..80fc6ec 100644 (file)
@@ -3,16 +3,14 @@ AUTHOR = "Luce DeCicco <ldecicco@gmail.com>"
 
 DEPENDS = "gtk+ libgpewidget"
 PV = "0.0+cvs${SRCDATE}"
-PR = "r0"
 
 #put examples in a seperate package
 PACKAGES += "${PN}-examples"
 FILES_${PN}-examples = "${bindir}/* ${libexecdir}/*"
 FILES_${PN} = "${libdir}/*.so.*"
 
-
-SRC_URI =       "${HANDHELDS_CVS};module=gpe/base/${PN}"
-S =                            "${WORKDIR}/${PN}"
+SRC_URI = "${HANDHELDS_CVS};module=gpe/base/${PN}"
+S = "${WORKDIR}/${PN}"
 
 inherit autotools pkgconfig
 
diff --git a/packages/libgpeplugin/libgpeplugin_svn.bb b/packages/libgpeplugin/libgpeplugin_svn.bb
new file mode 100644 (file)
index 0000000..91eca5a
--- /dev/null
@@ -0,0 +1,21 @@
+DESCRIPTION = "Plugin system for GPE applications"
+AUTHOR = "Luce DeCicco <ldecicco@gmail.com>"
+DEPENDS = "gtk+ libgpewidget"
+PV = "0.0+svn${SRCDATE}"
+PR = "r0"
+
+inherit autotools pkgconfig
+
+SRC_URI = "${GPE_SVN}"
+
+S = "${WORKDIR}/${PN}"
+
+do_stage() {
+      autotools_stage_all
+}
+
+#put examples in a seperate package
+PACKAGES += "${PN}-examples"
+
+FILES_${PN}-examples = "${bindir}/* ${libexecdir}/*"
+FILES_${PN} = "${libdir}/*.so.*"
index 5f5de2e..3f8af85 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LGPL"
 DESCRIPTION = "Data interchange library for GPE"
-SECTION     = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY    = "optional"
 DEPENDS     = "libmimedir libeventdb"
 PR          = "r0"
index 5f5de2e..74f7bf3 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LGPL"
 DESCRIPTION = "Data interchange library for GPE"
-SECTION     = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY    = "optional"
 DEPENDS     = "libmimedir libeventdb"
 PR          = "r0"
@@ -9,16 +9,7 @@ inherit pkgconfig gpe autotools
 
 SRC_URI = "${GPE_MIRROR}/${PN}-${PV}.tar.bz2"
 
-headers = "tag-db.h vcard.h vevent.h vtodo.h"
-
-
 do_stage () {
-       oe_libinstall -so libgpevtype ${STAGING_LIBDIR}
-
-       mkdir -p ${STAGING_INCDIR}/gpe
-       for h in ${headers}; do
-               install -m 0644 ${S}/gpe/$h ${STAGING_INCDIR}/gpe/${h}
-       done
+       autotools_stage_all
 }
 
-
index 3338923..7c2ebf6 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LGPL"
 DESCRIPTION = "Data interchange library for GPE"
-SECTION     = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY    = "optional"
 DEPENDS     = "libmimedir libeventdb"
 PR          = "r0"
@@ -15,12 +15,7 @@ headers = "tag-db.h vcard.h vevent.h vtodo.h"
 
 
 do_stage () {
-       oe_libinstall -so libgpevtype ${STAGING_LIBDIR}
-
-       mkdir -p ${STAGING_INCDIR}/gpe
-       for h in ${headers}; do
-               install -m 0644 ${S}/gpe/$h ${STAGING_INCDIR}/gpe/${h}
-       done
+       autotools_stage_all
 }
 
 
index 235a131..213c009 100644 (file)
@@ -1,30 +1,20 @@
-LICENSE =      "LGPL"
-DESCRIPTION =  "Data interchange library for GPE"
-SECTION =      "gpe/libs"
-PRIORITY =     "optional"
-DEPENDS =      "libmimedir"
-
-DEFAULT_PREFERENCE = "-1"
-
-S = "${WORKDIR}/${PN}"
+DESCRIPTION = "Data interchange library for GPE"
+SECTION = "gpe/libs"
+PRIORITY = "optional"
+LICENSE = "LGPL"
+DEPENDS = "libmimedir libeventdb"
 PV = "0.17+svn${SRCDATE}"
-PR = "r0"
+PR = "r1"
 
 inherit pkgconfig gpe autotools
 
 SRC_URI = "${GPE_SVN}"
 
-
-headers = "tag-db.h vcard.h vevent.h vtodo.h"
-
+S = "${WORKDIR}/${PN}"
 
 do_stage () {
-       oe_libinstall -so libgpevtype ${STAGING_LIBDIR}
-
-       mkdir -p ${STAGING_INCDIR}/gpe
-       for h in ${headers}; do
-               install -m 0644 ${S}/gpe/$h ${STAGING_INCDIR}/gpe/${h}
-       done
+       autotools_stage_all
 }
 
 
+DEFAULT_PREFERENCE = "-1"
index 6327341..854d0ea 100644 (file)
@@ -1,7 +1,7 @@
 LICENSE     = "LGPL"
 PR          = "r0"
 DESCRIPTION = "libgpewidget contains a collection of widgets and other common code shared by many GPE applications."
-SECTION     = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY    = "optional"
 DEPENDS     = "gtk+ libxrender gtk-doc intltool-native sdk-default-icons"
 RDEPENDS    = "sdk-default-icons"
index 059ec61..d79beeb 100644 (file)
@@ -1,6 +1,6 @@
 LICENSE     = "LGPL"
 DESCRIPTION = "libgpewidget contains a collection of widgets and other common code shared by many GPE applications."
-SECTION     = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY    = "optional"
 DEPENDS     = "gtk+ cairo libxrender gtk-doc"
 PR          = "r1"
index 1da0a94..8b6d0ea 100644 (file)
@@ -1,15 +1,13 @@
 DESCRIPTION = "libgpewidget contains a collection of widgets and other common code shared by many GPE applications."
 SECTION = "gpe/libs"
+LICENSE = "LGPL"
 PRIORITY = "optional"
 DEPENDS = "gtk+ cairo libxrender gtk-doc"
 
-
-LICENSE = "LGPL"
 DEFAULT_PREFERENCE = "-1"
 
-S =  "${WORKDIR}/${PN}"
+S = "${WORKDIR}/${PN}"
 PV = "0.114+svn${SRCDATE}"
-PR = "r0"
 
 inherit gpe autotools pkgconfig
 
diff --git a/packages/libgtkinput/libgtkinput_svn.bb b/packages/libgtkinput/libgtkinput_svn.bb
new file mode 100644 (file)
index 0000000..b8fcc8c
--- /dev/null
@@ -0,0 +1,18 @@
+LICENSE = "LGPL"
+PV = "0.3+svn${SRCDATE}"
+
+inherit gpe autotools
+
+SRC_URI = "${GPE_SVN} \
+           file://gtkinput.sh"
+
+S = "${WORKDIR}/${PN}"
+
+do_install_append() {
+        install -d ${D}/${sysconfdir}/X11/Xsession.d
+        install -m 755 ${WORKDIR}/gtkinput.sh ${D}/${sysconfdir}/X11/Xsession.d/46gtkinput
+}
+
+FILES_${PN} += "${libdir}"
+
+DEFAULT_PREFERENCE = "-1"
diff --git a/packages/libgtkstylus/libgtkstylus_svn.bb b/packages/libgtkstylus/libgtkstylus_svn.bb
new file mode 100644 (file)
index 0000000..3312234
--- /dev/null
@@ -0,0 +1,21 @@
+DESCRIPTION = "GTK plugin for stylus based systems"
+SECTION = "libs"
+LICENSE = "LGPL"
+DEPENDS = "gtk+"
+PV = "0.3+svn${SRCDATE}"
+PR = "r5"
+
+inherit autotools
+
+SRC_URI = "${GPE_SVN}"
+
+S = "${WORKDIR}/${PN}"
+
+do_install_append() {
+       install -d ${D}/${sysconfdir}/X11/Xsession.d
+       install -m 755 ${S}/gtkstylus.sh ${D}/${sysconfdir}/X11/Xsession.d/45gtkstylus
+}
+
+FILES_${PN} = "/etc ${libdir}/gtk-2.0/*/modules/*.so*"
+
+DEFAULT_PREFERENCE = "-1"
similarity index 71%
rename from packages/libhandoff/libhandoff_cvs.bb
rename to packages/libhandoff/libhandoff_svn.bb
index bdac607..c545d92 100644 (file)
@@ -1,15 +1,15 @@
 LICENSE     = "GPL"
 DESCRIPTION = "handoff library for GPE calendar"
-SECTION  = "gpe/libs"
+SECTION = "gpe/libs"
 PRIORITY = "optional"
 DEPENDS  = "glib-2.0"
-PV = "0.1+cvs${SRCDATE}"
+PV = "0.1+svn${SRCDATE}"
 PR = "r0"
 DEFAULT_PREFERENCE = "-1"
 
 inherit pkgconfig gpe autotools
 
-SRC_URI = "${HANDHELDS_CVS};module=gpe/base/${PN}"
+SRC_URI = "${GPE_SVN}"
 
 S = "${WORKDIR}/${PN}"
 
index b8c5ec6..85114d6 100644 (file)
@@ -1,5 +1,5 @@
+SECTION = "x11/gnome/libs"
 LICENSE = "LGPL"
-SECTION = "libs"
 SRC_URI = "ftp://ftp.gnome.org/pub/GNOME/sources/libIDL/0.8/libIDL-0.8.2.tar.bz2"
 S = "${WORKDIR}/libIDL-${PV}"
 
index 2ca114b..7a5a0d4 100644 (file)
@@ -1,6 +1,6 @@
-LICENSE = "LGPL"
 DESCRIPTION = "Library for parsing CORBA IDL files"
-SECTION = "gnome/libs"
+SECTION = "x11/gnome/libs"
+LICENSE = "LGPL"
 DEPENDS = "glib-2.0"
 PR = "r2"
 
index 916bfb6..ccc93e2 100644 (file)
@@ -1,6 +1,6 @@
-LICENSE = "LGPL"
 DESCRIPTION = "Library for parsing CORBA IDL files"
-SECTION = "gnome/libs"
+SECTION = "x11/gnome/libs"
+LICENSE = "LGPL"
 DEPENDS = "glib-2.0 libidl-native"
 PR = "r2"
 
diff --git a/packages/libschedule/libschedule_svn.bb b/packages/libschedule/libschedule_svn.bb
new file mode 100644 (file)
index 0000000..1095c2d
--- /dev/null
@@ -0,0 +1,19 @@
+DESCRIPTION = "RTC alarm handling library for GPE"
+SECTION = "gpe/libs"
+PRIORITY = "optional"
+LICENSE = "LGPL"
+DEPENDS = "glib-2.0 sqlite libgpewidget"
+PV = "0.16+svn${SRCDATE}"
+PR = "r0"
+
+inherit autotools pkgconfig gpe
+
+SRC_URI = "${GPE_SVN}"
+
+S = "${WORKDIR}/${PN}"
+
+do_stage () {
+        autotools_stage_all
+}
+
+DEFAULT_PREFERENCE = "-1"
diff --git a/packages/libtododb/libtododb_svn.bb b/packages/libtododb/libtododb_svn.bb
new file mode 100644 (file)
index 0000000..a0263f2
--- /dev/null
@@ -0,0 +1,29 @@
+DESCRIPTION = "Database access for GPE to-do list"
+SECTION = "gpe/libs"
+PRIORITY = "optional"
+LICENSE = "LGPL"
+DEPENDS = "libgpewidget libgpepimc sqlite"
+PV = "0.10+svn${SRCDATE}"
+PR = "r0"
+
+inherit pkgconfig gpe autotools
+
+SRC_URI = "${GPE_SVN}"
+
+S = "${WORKDIR}/${PN}"
+
+do_install () {
+        gpe_do_install
+#       oe_runmake PREFIX=${prefix} DESTDIR=${D} install-devel
+}
+do_stage () {
+        oe_libinstall -so libtododb ${STAGING_LIBDIR}
+        mkdir -p ${STAGING_INCDIR}/gpe
+        for h in ${headers}; do
+                install -m 0644 ${S}/gpe/$h ${STAGING_INCDIR}/gpe/$h
+        done
+}
+
+headers = "todo-db.h"
+
+DEFAULT_PREFERENCE = "-1"
diff --git a/packages/libxsettings-client/libxsettings-client_svn.bb b/packages/libxsettings-client/libxsettings-client_svn.bb
new file mode 100644 (file)
index 0000000..111c692
--- /dev/null
@@ -0,0 +1,26 @@
+SECTION = "gpe/libs"
+PRIORITY = "optional"
+LICENSE = "BSD-X"
+DEPENDS = "libxsettings virtual/libx11 libxt gtk-doc"
+PV = "0.17+svn${SRCDATE}"
+# libxt is required to stop configure breaking builds by
+# including system paths to find it if it isn't present.
+PR = "r0"
+
+inherit autotools pkgconfig gpe
+
+SRC_URI = "${GPE_SVN}"
+
+S = "${WORKDIR}/${PN}"
+
+do_stage () {
+        oe_libinstall -so libXsettings-client ${STAGING_LIBDIR}
+        mkdir -p ${STAGING_INCDIR}
+        for h in ${headers}; do
+               install -m 0644 ${S}/$h ${STAGING_INCDIR}/$h
+        done
+}
+
+headers = "xsettings-client.h xsettings-common.h"
+
+DEFAULT_PREFERENCE = "-1"
diff --git a/packages/libxsettings/files/Makefile.dpkg_ipkg b/packages/libxsettings/files/Makefile.dpkg_ipkg
new file mode 100644 (file)
index 0000000..76c5321
--- /dev/null
@@ -0,0 +1,114 @@
+## Please read the README in this directory to see how to use this
+## Makefile snippet
+
+# Let's use whatever clean target the specific app provides
+
+CONTROL = `if test -e familiar/control1; then echo control1; else echo control; fi`
+
+# URL to source tarball
+SOURCE = http://gpe.linuxtogo.org/download/source/$(PACKAGE)-$(VERSION).tar.gz
+
+# can change this to e.g. /var/tmp/deb
+DEB_PATH = ../deb
+
+ifeq ($(CVSBUILD),yes)
+LIBGPEWIDGET_PC = libgpewidget-uninstalled
+PC_EXTRA=PKG_CONFIG_PATH=../../base/libgpewidget
+else
+LIBGPEWIDGET_PC = libgpewidget
+endif
+
+ifeq ($(IN_LIBGPEWIDGET),)
+GPECFLAGS = $(shell $(PC_EXTRA) pkg-config --cflags $(LIBGPEWIDGET_PC))
+GPELIBS = $(shell $(PC_EXTRA) pkg-config --libs $(LIBGPEWIDGET_PC))
+endif
+
+GTKCFLAGS = $(shell pkg-config --cflags gtk+-2.0)
+GTKLIBS = $(shell pkg-config --libs gtk+-2.0)
+
+STANDARD_CPPFLAGS = -D_GNU_SOURCE -DPACKAGE=\"$(PACKAGE)\" -DPREFIX=\"$(PREFIX)\" -DPACKAGE_LOCALE_DIR=\"$(PREFIX)/share/locale\"
+STANDARD_CFLAGS = -MD -Wall
+
+ifeq ($(DEBUG),yes)
+CFLAGS += -O2 -g
+LDFLAGS = -g
+else
+CFLAGS += -Os -fomit-frame-pointer
+endif
+
+dist: check-source clean dist-prep
+       rm -rf ../$(PACKAGE)-$(VERSION)
+       mkdir ../$(PACKAGE)-$(VERSION)
+       ( tar cf - --exclude "*/CVS" --exclude CVS --exclude "*~" --exclude "#*#" --exclude "debian" --exclude ".*" --exclude "*.ipk" --exclude "*.ipk.*" --exclude "*.mo" --exclude "*.batch" --exclude "translation-ipkgs.txt" * ) | (cd ../$(PACKAGE)-$(VERSION); tar xf -)
+       ( if [ -f linguas ]; then LINGUAS=`cat linguas`; PATCH_LINGUAS="s:^LINGUAS =.*:LINGUAS = $${LINGUAS}:"; fi; cd ../$(PACKAGE)-$(VERSION) && mkdir build && cp $(BUILD)/Makefile.dpkg_ipkg $(BUILD)/Makefile.translation build/ && sed "s:^CVSBUILD =.*:CVSBUILD = no:;s:^DEBUG =.*:DEBUG = no:;s:Makefile.translation-auto-linguas:Makefile.translation:;$${PATCH_LINGUAS}" < Makefile > Makefile.new && mv Makefile.new Makefile )
+       ( cd .. ; tar cf - $(PACKAGE)-$(VERSION) | gzip -9 >$(PACKAGE)-$(VERSION).tar.gz )
+       rm -rf ../$(PACKAGE)-$(VERSION)
+       $(MAKE) printinfo
+
+dist-upload: dist
+       scp ../$(PACKAGE)-$(VERSION).tar.gz $(USER)@linuxtogo.org:/media/data/projects/gpe/source/
+
+dist-prep:
+ipkg-prep:
+install-mo:
+# empty, can be filled in Makefile.translation
+
+install: install-program install-mo
+
+clean-dist:
+       rm -rf familiar/dist familiar/dist.list
+
+clean: clean-dist
+
+check-source:
+       @if [ -f familiar/$(CONTROL) ] && ! grep -q '^Source:' familiar/$(CONTROL); then echo -e "\nNo Source: field in control file.  Aborting.\n"; exit 1; fi
+
+ipkg: check-source ipkg-prep clean
+       rm -rf familiar/dist
+       mkdir -p familiar/dist/CONTROL
+       sed 's:VERSION:$(VERSION):;s$$SOURCE$$$(SOURCE)$$' < familiar/$(CONTROL) > familiar/dist/CONTROL/control
+       if test -e familiar/conffiles; then install -m 644 familiar/conffiles familiar/dist/CONTROL; fi
+       if test -e familiar/preinst;   then install familiar/preinst   familiar/dist/CONTROL; fi
+       if test -e familiar/postinst;  then install familiar/postinst  familiar/dist/CONTROL; fi
+       if test -e familiar/prerm;     then install familiar/prerm     familiar/dist/CONTROL; fi
+       if test -e familiar/postrm;    then install familiar/postrm    familiar/dist/CONTROL; fi
+       $(MAKE) DESTDIR=`pwd`/familiar/dist PREFIX=/usr prefix=/usr DEBUG=no install-program
+       rm -rf familiar/dist.list
+       ipkg-build -o 0 -g 0 familiar/dist | sed 's/^Packaged .*into //; t 1; d; : 1; s:.*/::' >> familiar/dist.list
+       if [ "x$(LINGUAS)" != "x" ]; then make translation-ipkg; tr ' ' '\n' < translation-ipkgs.txt >> familiar/dist.list; fi
+       md5sum `cat familiar/dist.list` > $(PACKAGE)_$(VERSION).batch
+       rm -rf familiar/dist familiar/dist.list
+       $(MAKE) printinfo
+
+dpkg: dist
+       mkdir -p $(DEB_PATH)
+       ( olddir=`pwd`; cd $(DEB_PATH); rm -rf $(PACKAGE)-$(VERSION); ln -s $$olddir/../$(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)_$(VERSION).orig.tar.gz ; tar xzf $(PACKAGE)_$(VERSION).orig.tar.gz )
+       mkdir -p $(DEB_PATH)/$(PACKAGE)-$(VERSION)/debian
+       for i in debian/*; do if test -f $$i; then cp $$i $(DEB_PATH)/$(PACKAGE)-$(VERSION)/debian/; fi; done
+
+CVSTAG := $(shell echo $(PACKAGE)-$(VERSION) | tr [a-z.] [A-Z_])
+printinfo:
+       @printf '-------------------------------------------------------------------------------\n'
+       @printf "If this becomes a package release, please add a CVS tag.\n"
+       @printf "You can use 'make tag' for that, it will execute\n"
+       @printf "   cvs tag %s\n" $(CVSTAG)
+       @printf "Please upload a tarball (created with 'make dist') to\n"
+       @printf "   ftp://ftp.handhelds.org/pub/projects/gpe/\n"
+       @printf "   (handhelds.org:~ftp/pub/projects/gpe/source)\n"
+       @printf "You can use 'make dist-upload' to do that.\n"
+       @printf "You are currently known as USER %s.\n" $(USER)
+       @printf '-------------------------------------------------------------------------------\n'
+
+tag: check-source
+       cvs tag $(CVSTAG)
+
+retag: check-source
+       cvs tag -F $(CVSTAG)
+
+source: tag dist-upload
+
+%.pc: %.pc.in
+       sed 's:PREFIX:$(PREFIX):;s:BUILDDIR:$(shell pwd):;s:VERSION:$(VERSION):' < $< > $@
+
+.c.o:;
+       $(CC) $(CFLAGS) $(CPPFLAGS) $(PACKAGE_CFLAGS) $(PACKAGE_CPPFLAGS) -c $< -o $@
diff --git a/packages/libxsettings/files/Makefile.translation b/packages/libxsettings/files/Makefile.translation
new file mode 100644 (file)
index 0000000..1ca7d64
--- /dev/null
@@ -0,0 +1,107 @@
+.SUFFIXES: .mo .po .pot .po8
+
+CONTROL = `if test -e familiar/control1; then echo control1; else echo control; fi`
+
+# use ipkg-build or ipkg-deb-build
+IPKG_BUILD := ipkg-build
+
+TRANSLATION_SITE := http://www.iro.umontreal.ca/~gnutra/maint
+
+ifeq ($(DIR_PO),)
+DIR_PO := po
+endif
+
+ifeq ($(BINPACKAGE),)
+BINPACKAGE := $(PACKAGE)
+endif
+
+mo-files = $(patsubst %,$(DIR_PO)/%.mo,$(LINGUAS))
+po-files = $(patsubst %,$(DIR_PO)/%.po,$(LINGUAS))
+
+ifeq ($(shell if [ -f $(PACKAGE).desktop.in ]; then echo present; fi;),present)
+desktop-files += $(PACKAGE).desktop
+endif
+
+ifneq ($(EXTRA_DESKTOPS),)
+desktop-files += $(patsubst %.desktop.in,%.desktop,$(EXTRA_DESKTOPS))
+endif
+
+all-mo: $(mo-files)
+
+all-desktop: $(desktop-files)
+
+install-mo: all-mo
+       if [ "$(ENABLE_NLS)" != "no" ]; then \
+               if [ "x$(LINGUAS)" != "x" ]; then \
+                       for i in $(LINGUAS); do mkdir -p $(DESTDIR)$(PREFIX)/share/locale/$$i/LC_MESSAGES; install -m 644 $(DIR_PO)/$$i.mo $(DESTDIR)$(PREFIX)/share/locale/$$i/LC_MESSAGES/$(PACKAGE).mo; done \
+               fi; \
+       fi;
+
+.po8.mo:;
+       if [ "$(ENABLE_NLS)" != "no" ]; then \
+               msgfmt -o $@ $<; \
+       fi;
+
+.po.po8:;
+       CTYPE=`grep "^\"Content-Type:" $< | sed 's/^.*charset=//;s/\\\\.*//'`; sed "s/\(Content-Type: .*=\)$$CTYPE/\1UTF-8/" < $< | iconv -f $${CTYPE} -t UTF-8 >$@
+
+update-po: $(po-files) extract-po
+
+dist-prep: update-po freshen-po
+# empty
+
+ifeq ($(CVSBUILD),yes)
+ipkg-prep: freshen-po
+# empty
+endif
+
+extract-po:
+       mkdir -p $(DIR_PO)
+       ( SOURCES="$(SOURCES)"; for DESK in $(PACKAGE).desktop.in $(EXTRA_DESKTOPS); do if [ -f $$DESK ]; then intltool-extract --type=gettext/ini $$DESK; SOURCES="$$SOURCES $${DESK}.h"; fi; done; if [ "x$$SOURCES" != "x" ]; then xgettext --add-comments=TRANSLATORS: -k_ -kN_ -o $(DIR_PO)/$(PACKAGE).pot.new $$SOURCES; fi )
+       if [ -f $(DIR_PO)/$(PACKAGE).pot.new ]; then if cmp -s $(DIR_PO)/$(PACKAGE).pot.new $(PACKAGE).pot; then rm $(DIR_PO)/$(PACKAGE).pot.new; else mv $(DIR_PO)/$(PACKAGE).pot.new $(DIR_PO)/$(PACKAGE).pot; fi; fi
+
+clean: clean-po clean-dist-translation
+
+clean-po:
+       rm -rf $(DIR_PO)/*.mo
+       for i in $(desktop-files); do if [ -f $$i.in ]; then rm -f $$i; rm -f $$i.in.h; fi; done
+
+%.desktop: %.desktop.in $(patsubst %,$(DIR_PO)/%.po,$(LINGUAS))
+       intltool-merge -u -d $(DIR_PO) $< $@
+
+freshen-po:
+       rm -rf tmp-po
+       mkdir tmp-po
+       cd tmp-po; for LANG in $(LINGUAS); do wget $(TRANSLATION_SITE)/$(PACKAGE)/$$LANG.po; done
+       for LANG in $(LINGUAS); do if [ ! -f $(DIR_PO)/$$LANG.po ] || ! cmp -s $(DIR_PO)/$$LANG.po tmp-po/$$LANG.po ; then mv tmp-po/$$LANG.po $(DIR_PO)/$$LANG.po; echo "Updated $$LANG translation"; fi; done
+       rm -rf tmp-po
+
+# ------------------------------------------------------------------------
+
+MAINTAINER = $(shell grep 'Maintainer: ' familiar/$(CONTROL) | cut -d ' ' -f 2-)
+
+ifndef BUILD
+BUILD = ../build
+endif
+
+transdist := familiar/dist-translation
+templates := $(BUILD)/familiar
+ipkglist  := translation-ipkgs.txt
+
+clean-dist-translation:
+       rm -rf $(transdist) $(ipkglist)
+
+real-translation-package: all-mo
+       rm -rf $(transdist) $(ipkglist)
+       for LINGUA in $(LINGUAS); do \
+               i=$$(echo $$LINGUA | tr '[A-Z_]' '[a-z+]'); \
+               mkdir -p $(transdist)/$$i/CONTROL; \
+               mkdir -p $(transdist)/$$i$(PREFIX)/share/locale/$$LINGUA/LC_MESSAGES; \
+               install -m 644 po/$$LINGUA.mo $(transdist)/$$i$(PREFIX)/share/locale/$$LINGUA/LC_MESSAGES/$(PACKAGE).mo; \
+               sed -e "s/<maintainer>/$(MAINTAINER)/;s/<package>/$(BINPACKAGE)/;s/<version>/$(VERSION)/;s/<language>/$$i/;s!<source>!$(SOURCE)!" $(templates)/control.translation > $(transdist)/$$i/CONTROL/control; \
+               install $(templates)/postinst.translation $(transdist)/$$i/CONTROL/postinst; \
+               $(IPKG_BUILD) -g 0 -o 0 $(transdist)/$$i | sed 's/^Packaged .*into //; t 1; d; : 1; s:.*/::' >> $(ipkglist); \
+       done
+
+translation-ipkg:
+       make PREFIX=/usr real-translation-package
diff --git a/packages/libxsettings/files/libxsettings-svn-makefile-fix.patch b/packages/libxsettings/files/libxsettings-svn-makefile-fix.patch
new file mode 100644 (file)
index 0000000..52d15a6
--- /dev/null
@@ -0,0 +1,20 @@
+--- libxsettings/Makefile.orig 2007-02-10 00:45:33.452674544 +0200
++++ libxsettings/Makefile      2007-02-10 00:52:09.003215686 +0200
+@@ -1,7 +1,7 @@
+ PREFIX = /usr/local
+ PACKAGE = libxsettings
+ DEBUG = no
+-CVSBUILD = yes
++CVSBUILD = no
+ VERSION = 0.11
+ .SUFFIXES: .os
+@@ -20,7 +20,7 @@
+ ifeq ($(CVSBUILD),yes)
+ BUILD = ../build
+ else
+-BUILD = build
++BUILD = ..
+ endif
+ .c.os:;
diff --git a/packages/libxsettings/libxsettings_svn.bb b/packages/libxsettings/libxsettings_svn.bb
new file mode 100644 (file)
index 0000000..dd1e7fc
--- /dev/null
@@ -0,0 +1,32 @@
+DESCRIPTION = "Common code for XSETTINGS"
+SECTION = "gpe/libs"
+PRIORITY = "optional"
+LICENSE = "BSD-X"
+DEPENDS = "virtual/libx11"
+PV = "0.11+svn${SRCDATE}"
+PR = "r0"
+
+inherit gpe
+
+SRC_URI = "${GPE_SVN} \
+           file://libxsettings-svn-makefile-fix.patch;patch=1 \
+           file://Makefile.dpkg_ipkg \
+           file://Makefile.translation"
+
+S = "${WORKDIR}/${PN}"
+
+do_install () {
+        gpe_do_install
+        oe_runmake PREFIX=${prefix} DESTDIR=${D} install-devel
+}
+do_stage () {
+        oe_libinstall -so libXsettings ${STAGING_LIBDIR}
+        mkdir -p ${STAGING_INCDIR}/gpe
+        for h in ${headers}; do
+                install -m 0644 ${S}/$h ${STAGING_INCDIR}/$h
+        done
+}
+
+headers = "xsettings-common.h"
+
+DEFAULT_PREFERENCE = "-1"
index 1536083..5642e31 100644 (file)
 # - saves memory
 server.modules              = (
 #                               "mod_rewrite",
-                                "mod_redirect",
+#                               "mod_redirect",
 #                               "mod_alias",
                                 "mod_access",
 #                               "mod_cml",
 #                               "mod_trigger_b4_dl",
-                                "mod_auth",
+#                               "mod_auth",
 #                               "mod_status",
 #                               "mod_setenv",
 #                               "mod_fastcgi",
@@ -33,7 +33,7 @@ server.modules              = (
 #                               "mod_expire",
 #                               "mod_secdownload",
 #                               "mod_rrdtool",
-                               "mod_webdav",
+#                                                              "mod_webdav",
                                 "mod_accesslog" )
 
 ## a static document-root, for virtual-hosting take look at the
@@ -131,12 +131,6 @@ $HTTP["url"] =~ "\.pdf$" {
   server.range-requests = "disable"
 }
 
-$HTTP["url"] =~ "^/dav($|/)" {
-  webdav.activate = "enable"
-  webdav.is-readonly = "disable"
-  webdav.sqlite-db-name = "/www/var/lighttpd.webdav_lock.db"
-}
-
 ##
 # which extensions should not be handle via static-file transfer
 #
@@ -267,8 +261,6 @@ static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
 #url.rewrite                = ( "^/$"             => "/server-status" )
 #url.redirect               = ( "^/wishlist/(.+)" => "http://www.123.org/$1" )
 
-url.redirect                = ( "^/DAV($|/)" => "http://cmx270/dav" )
-
 #### both rewrite/redirect support back reference to regex conditional using %n
 #$HTTP["host"] =~ "^www\.(.*)" {
 #  url.redirect            = ( "^/(.*)" => "http://%1/$1" )
index d56132e..9cb3d26 100644 (file)
@@ -2,7 +2,7 @@ DESCRIPTION = "Web server"
 SECTION = "net"
 DEPENDS = "sqlite3 libpcre libxml2"
 LICENSE = "BSD"
-PR = "r3"
+PR = "r4"
 
 SRC_URI = "http://www.lighttpd.net/download/lighttpd-1.4.13.tar.gz \
           file://${PV}/configure.in.patch;patch=1;pnum=2 \
index 43b8daa..563f214 100644 (file)
@@ -1,7 +1,7 @@
 DESCRIPTION = "SIP-based IP phone (console edition)"
 HOMEPAGE = "http://www.linphone.org/?lang=us"
 SECTION = "x11/utils"
-LICENSE = "GPL-2"
+LICENSE = "GPLv2"
 
 DEPENDS = "intltool libosip2 speex libogg alsa-lib readline"
 DEPENDS_${PN} = "liblinphone"
index 3a80703..d848427 100644 (file)
@@ -26,6 +26,8 @@ SECTION = "kernel"
 DESCRIPTION = "Linux kernel for the Intel IXP4xx device"
 LICENSE = "GPL"
 
+DEPENDS = "arm-kernel-shim devio-native"
+
 # Linux kernel source has the general form linux-X.Y.Z-patchP,
 # X.Y is the major version number, Z (which may have multiple
 # parts) is a sub-version and 'patch' is something like 'mm' or
@@ -298,12 +300,8 @@ pkg_postrm_kernel-image-fsg3 () {
        update-alternatives --remove ${KERNEL_IMAGETYPE} /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-fsg3${SITEINFO_ENDIANESS}-${KERNEL_VERSION} || true
 }
 
-#FIXUP: the correct instructions to copy the kernel prepended with the le fixup
-#FIXME: do a fixup for BE too...
-FIXUP_armeb = "cp$"
-FIXUP_arm   = "wb 0xee110f10,4;wb 0xe3c00080,4;wb 0xee010f10,4;xp $,4"
-
-DEPENDS += "devio-native"
+BYTESWAP_armeb = "cp$"
+BYTESWAP_arm   = "xp $,4"
 
 # We need the alternatives to happen in the kernel-image packages, not in
 # the kernel package, because only the images know the name of the kernel.
@@ -312,22 +310,23 @@ pkg_postinst_kernel () {
 pkg_postrm_kernel () {
 }
 
-# copy_image <dest> <cmdline> <machine-id>
+# copy_image <dest> <machine>
 #      copy the zImage and append the appropriate shim
 #  dest:       where to copy to
-#  cmdline:    command line to pass to image
-#  machine-id: decimal machine id to prepend, empty for none
+#  machine:    machine shim to prepend, empty for none
 copy_image() {
-       local setmach
+       local shim
 
-       setmach=""
-       test -n "$2" && setmach="wb $2 . 256/ 255& 0xe3a01c00+, 4; wb 255& 0xe3811000+, 4;"
+       shim="/dev/null"
+       test -n "$2" && shim="${STAGING_LOADER_DIR}/arm-kernel-shim-$2.bin"
 
-       rm -f "$1".new
-       devio '<<${KERNEL_OUTPUT}' >"$1".new "$setmach"'${FIXUP}' || {
+       rm -f "$1".new "$1".shimmed
+       cat $shim ${KERNEL_OUTPUT} > "$1".shimmed
+       devio '<<'"$1"'.shimmed' >"$1".new '${BYTESWAP}' || {
                echo 'ERROR: ${KERNEL_OUTPUT}: failed to copy zImage' >&2
                return 1
        }
+       rm -f "$1".shimmed
        mv "$1".new "$1"
 }
 
@@ -342,10 +341,10 @@ do_install_append() {
        install_image '${MACHINE_ARCH}'
 
        # Add the machine specific images, with appropriate suffixes
-       install_image 'nslu2${SITEINFO_ENDIANESS}' '${nslu2_MACHID}'
-       install_image 'nas100d${SITEINFO_ENDIANESS}' '${nas100d_MACHID}'
-       install_image 'dsmg600${SITEINFO_ENDIANESS}' '${dsmg600_MACHID}'
-       install_image 'fsg3${SITEINFO_ENDIANESS}' '${fsg3_MACHID}'
+       install_image 'nslu2${SITEINFO_ENDIANESS}' 'nslu2'
+       install_image 'nas100d${SITEINFO_ENDIANESS}' 'nas100d'
+       install_image 'dsmg600${SITEINFO_ENDIANESS}' 'dsmg600'
+       install_image 'fsg3${SITEINFO_ENDIANESS}' 'fsg3'
 }
 
 do_deploy[dirs] = "${S}"
@@ -359,10 +358,10 @@ do_deploy() {
        deploy_image '${MACHINE_ARCH}'
 
        # And the machine specific images
-       deploy_image 'nslu2${SITEINFO_ENDIANESS}' '${nslu2_MACHID}'
-       deploy_image 'nas100d${SITEINFO_ENDIANESS}' '${nas100d_MACHID}'
-       deploy_image 'dsmg600${SITEINFO_ENDIANESS}' '${dsmg600_MACHID}'
-       deploy_image 'fsg3${SITEINFO_ENDIANESS}' '${fsg3_MACHID}'
+       deploy_image 'nslu2${SITEINFO_ENDIANESS}' 'nslu2'
+       deploy_image 'nas100d${SITEINFO_ENDIANESS}' 'nas100d'
+       deploy_image 'dsmg600${SITEINFO_ENDIANESS}' 'dsmg600'
+       deploy_image 'fsg3${SITEINFO_ENDIANESS}' 'fsg3'
 }
 
 addtask deploy before do_build after do_compile
index 00750f8..58d6a39 100644 (file)
@@ -189,7 +189,8 @@ CONFIG_PCI=y
 CONFIG_PREEMPT=y
 # CONFIG_NO_IDLE_HZ is not set
 CONFIG_HZ=100
-# CONFIG_AEABI is not set
+CONFIG_AEABI=y
+CONFIG_OABI_COMPAT=y
 # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
 CONFIG_SELECT_MEMORY_MODEL=y
 CONFIG_FLATMEM_MANUAL=y
@@ -512,7 +513,7 @@ CONFIG_MTD_PARTITIONS=y
 CONFIG_MTD_REDBOOT_PARTS=y
 CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
 CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
-CONFIG_MTD_REDBOOT_PARTS_READONLY=y
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
 # CONFIG_MTD_CMDLINE_PARTS is not set
 # CONFIG_MTD_AFS_PARTS is not set
 
index ec0e7a8..e7ef308 100644 (file)
@@ -39,8 +39,6 @@ squashfs/squashfs-Makefile.patch
 86-nas100d-rtc-fixup.patch
 87-dsmg600-rtc-fixup.patch
 88-dsmg600-dflt-cmdline.patch
-88-nas100d-dflt-cmdline.patch
-88-nslu2-dflt-cmdline.patch
 95-pata-ixp4xx.patch
 96-fsg3-support.patch
 97-avila-setup-pata.patch
index a7cdacc..d9a1bbc 100644 (file)
@@ -196,7 +196,8 @@ CONFIG_PCI=y
 CONFIG_PREEMPT=y
 # CONFIG_NO_IDLE_HZ is not set
 CONFIG_HZ=100
-# CONFIG_AEABI is not set
+CONFIG_AEABI=y
+CONFIG_OABI_COMPAT=y
 # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
 CONFIG_SELECT_MEMORY_MODEL=y
 CONFIG_FLATMEM_MANUAL=y
@@ -528,7 +529,7 @@ CONFIG_MTD_PARTITIONS=y
 CONFIG_MTD_REDBOOT_PARTS=y
 CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
 CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
-CONFIG_MTD_REDBOOT_PARTS_READONLY=y
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
 # CONFIG_MTD_CMDLINE_PARTS is not set
 # CONFIG_MTD_AFS_PARTS is not set
 
index 71c1794..7100d2f 100644 (file)
@@ -9,10 +9,10 @@ squashfs/squashfs-force-O2.patch
 squashfs/squashfs-lzma.patch
 squashfs/squashfs-Kconfig.patch
 squashfs/squashfs-Makefile.patch
+00-fix-redboot-bad-code.patch
 07-remove-avila-ixdp425-setup.patch
 08-avila-loft-setup.patch
 09-avila-setup-pata.patch
-11-mtdpart-redboot-config-byteswap.patch
 30-ixp4xx-npe-driver-0.3.1.patch
 37-ixp4xx-net-driver-improve-mac-handling.patch
 39-ixp4xx-net-driver-mtd-load-fw.patch
@@ -36,8 +36,6 @@ squashfs/squashfs-Makefile.patch
 86-nas100d-rtc-fixup.patch
 87-dsmg600-rtc-fixup.patch
 88-dsmg600-dflt-cmdline.patch
-88-nas100d-dflt-cmdline.patch
-88-nslu2-dflt-cmdline.patch
 96-fsg3-support.patch
 98-sata_via-pata-support-upstream.patch
 99-avila-mtd-microcode.patch
index f10af6c..293f06a 100644 (file)
@@ -6,7 +6,7 @@
 # http://trac.nslu2-linux.org/kernel/
 #
 # The revision that is pulled from SVN is specified below
-IXP4XX_KERNEL_SVN_REV = "683"
+IXP4XX_KERNEL_SVN_REV = "698"
 #
 # The directory containing the patches to be applied is
 # specified below
@@ -23,16 +23,3 @@ require ixp4xx-kernel-svnpatch.inc
 
 SRC_URI += "file://defconfig"
 SRC_URI += "file://series"
-
-# Remove the specific cmdline hacking patches if we are not building for nslu2.
-addtask remove_cmdline_hacks before do_patch after do_unpack
-do_remove_cmdline_hacks() {
-
-#      if [ "${MACHINE}" != "nslu2" ] ; then
-               sed     -e '/88-nas100d-dflt-cmdline.patch/d' \
-                       -e '/88-nslu2-dflt-cmdline.patch/d' \
-                       '${WORKDIR}/series' > '${WORKDIR}/series.new'
-               mv '${WORKDIR}/series.new' '${WORKDIR}/series'
-#      fi
-
-}
index 2d05779..434fed2 100644 (file)
@@ -6,7 +6,7 @@
 # http://trac.nslu2-linux.org/kernel/
 #
 # The revision that is pulled from SVN is specified below
-IXP4XX_KERNEL_SVN_REV = "683"
+IXP4XX_KERNEL_SVN_REV = "698"
 #
 # The directory containing the patches to be applied is
 # specified below
@@ -23,16 +23,3 @@ require ixp4xx-kernel-svnpatch.inc
 
 SRC_URI += "file://defconfig"
 SRC_URI += "file://series"
-
-# Remove the specific cmdline hacking patches if we are not building for nslu2.
-addtask remove_cmdline_hacks before do_patch after do_unpack
-do_remove_cmdline_hacks() {
-
-       if [ "${MACHINE}" != "nslu2" ] ; then
-               sed     -e '/88-nas100d-dflt-cmdline.patch/d' \
-                       -e '/88-nslu2-dflt-cmdline.patch/d' \
-                       '${WORKDIR}/series' > '${WORKDIR}/series.new'
-               mv '${WORKDIR}/series.new' '${WORKDIR}/series'
-       fi
-
-}
index 5ef7469..6ac0171 100644 (file)
@@ -7,35 +7,34 @@ driver by M Schacht.
 Signed-Off-By: Marcin Juszkiewicz <openembedded@hrw.one.pl>
 
 ---
-Patch follow kernel version 2.6.19-rc6
+Patch follow kernel version 2.6.20
 
  Kconfig      |    8 +++
- Makefile     |    1
- progear_bl.c |  155 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 164 insertions(+)
+ Makefile     |    1 
+ progear_bl.c |  154 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 163 insertions(+)
 
-
-Index: linux-2.6.20/drivers/video/backlight/Kconfig
+Index: git/drivers/video/backlight/Kconfig
 ===================================================================
---- linux-2.6.20.orig/drivers/video/backlight/Kconfig  2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20/drivers/video/backlight/Kconfig       2007-02-05 16:13:13.000000000 +0100
+--- git.orig/drivers/video/backlight/Kconfig   2006-12-29 17:31:36.511043439 +0100
++++ git/drivers/video/backlight/Kconfig        2007-02-07 08:57:31.020095845 +0100
 @@ -66,3 +66,11 @@
          If you have a HP Jornada 680, say y to enable the
          backlight driver.
  
 +config BACKLIGHT_PROGEAR
 +       tristate "Frontpath ProGear Backlight Driver"
-+       depends on BACKLIGHT_DEVICE && PCI
++       depends on BACKLIGHT_DEVICE && PCI && X86
 +       default y
 +       help
 +         If you have a Frontpath ProGear say Y to enable the
 +         backlight driver.
 +
-Index: linux-2.6.20/drivers/video/backlight/progear_bl.c
+Index: git/drivers/video/backlight/progear_bl.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.20/drivers/video/backlight/progear_bl.c  2007-02-05 16:29:14.000000000 +0100
-@@ -0,0 +1,157 @@
++++ git/drivers/video/backlight/progear_bl.c   2007-02-07 08:55:46.813993140 +0100
+@@ -0,0 +1,154 @@
 +/*
 + *  Backlight Driver for Frontpath ProGear HX1050+
 + *
@@ -68,123 +67,120 @@ Index: linux-2.6.20/drivers/video/backlight/progear_bl.c
 +#define HW_LEVEL_MAX           0x77
 +#define HW_LEVEL_MIN           0x4f
 +
-+static int progearbl_intensity;
-+static struct backlight_properties progearbl_data;
-+static struct backlight_device *progear_backlight_device;
-+
 +static struct pci_dev *pmu_dev = NULL;
 +static struct pci_dev *sb_dev = NULL;
 +
-+static int progearbl_send_intensity(struct backlight_device *bd)
++static int progearbl_set_intensity(struct backlight_device *bd)
 +{
-+       int intensity = bd->props->brightness;
++      int intensity = bd->props->brightness;
 +
-+       if (bd->props->power != FB_BLANK_UNBLANK)
-+               intensity = 0;
-+       if (bd->props->fb_blank != FB_BLANK_UNBLANK)
-+               intensity = 0;
++      if (bd->props->power != FB_BLANK_UNBLANK)
++              intensity = 0;
++      if (bd->props->fb_blank != FB_BLANK_UNBLANK)
++              intensity = 0;
 +
-+       pci_write_config_byte(pmu_dev, PMU_LPCR, intensity + HW_LEVEL_MIN);
++      pci_write_config_byte(pmu_dev, PMU_LPCR, intensity + HW_LEVEL_MIN);
 +
-+       progearbl_intensity = intensity;
-+
-+       return 0;
++      return 0;
 +}
 +
 +static int progearbl_get_intensity(struct backlight_device *bd)
 +{
-+       return progearbl_intensity;
-+}
-+
-+static int progearbl_set_intensity(struct backlight_device *bd)
-+{
-+       progearbl_send_intensity(progear_backlight_device);
++      u8 intensity;
++      pci_read_config_byte(pmu_dev, PMU_LPCR, &intensity);
 +
-+       return 0;
++      return intensity - HW_LEVEL_MIN;
 +}
 +
 +static struct backlight_properties progearbl_data = {
-+       .owner = THIS_MODULE,
-+       .get_brightness = progearbl_get_intensity,
-+       .update_status = progearbl_set_intensity,
++      .owner = THIS_MODULE,
++      .get_brightness = progearbl_get_intensity,
++      .update_status = progearbl_set_intensity,
 +};
 +
 +static int progearbl_probe(struct platform_device *pdev)
 +{
-+       u8 temp;
-+
-+       pmu_dev = pci_get_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M7101, 0);
-+       if (!pmu_dev) {
-+               printk("ALI M7101 PMU not found.\n");
-+               return -ENODEV;
-+       }
-+
-+       sb_dev = pci_get_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, 0);
-+       if (!sb_dev) {
-+               printk("ALI 1533 SB not found.\n");
-+               pci_dev_put(pmu_dev);
-+               return -ENODEV;
-+       }
-+
-+       /*     Set SB_MPS1 to enable brightness control. */
-+       pci_read_config_byte(sb_dev, SB_MPS1, &temp);
-+       pci_write_config_byte(sb_dev, SB_MPS1, temp | 0x20);
-+
-+       progear_backlight_device = backlight_device_register("progear-bl",
-+                         &pdev->dev, NULL, &progearbl_data);
-+       if (IS_ERR(progear_backlight_device))
-+               return PTR_ERR(progear_backlight_device);
-+
-+       progearbl_data.power = FB_BLANK_UNBLANK;
-+       progearbl_data.brightness = HW_LEVEL_MAX - HW_LEVEL_MIN;
-+       progearbl_data.max_brightness = HW_LEVEL_MAX - HW_LEVEL_MIN;
-+       progearbl_send_intensity(progear_backlight_device);
-+
-+       return 0;
++      u8 temp;
++      struct backlight_device *progear_backlight_device;
++
++      pmu_dev = pci_get_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M7101, 0);
++      if (!pmu_dev) {
++              printk("ALI M7101 PMU not found.\n");
++              return -ENODEV;
++      }
++
++      sb_dev = pci_get_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, 0);
++      if (!sb_dev) {
++              printk("ALI 1533 SB not found.\n");
++              pci_dev_put(pmu_dev);
++              return -ENODEV;
++      }
++
++      /*     Set SB_MPS1 to enable brightness control. */
++      pci_read_config_byte(sb_dev, SB_MPS1, &temp);
++      pci_write_config_byte(sb_dev, SB_MPS1, temp | 0x20);
++
++      progear_backlight_device = backlight_device_register("progear-bl",
++                                                           &pdev->dev, NULL,
++                                                           &progearbl_data);
++      if (IS_ERR(progear_backlight_device))
++              return PTR_ERR(progear_backlight_device);
++
++      platform_set_drvdata(pdev, progear_backlight_device);
++
++      progearbl_data.power = FB_BLANK_UNBLANK;
++      progearbl_data.brightness = HW_LEVEL_MAX - HW_LEVEL_MIN;
++      progearbl_data.max_brightness = HW_LEVEL_MAX - HW_LEVEL_MIN;
++      progearbl_set_intensity(progear_backlight_device);
++
++      return 0;
 +}
 +
-+static int progearbl_remove(struct platform_device *dev)
++static int progearbl_remove(struct platform_device *pdev)
 +{
-+       backlight_device_unregister(progear_backlight_device);
++      struct backlight_device *bd = platform_get_drvdata(pdev);
++      backlight_device_unregister(bd);
 +
-+       return 0;
++      return 0;
 +}
 +
 +static struct platform_driver progearbl_driver = {
-+       .probe = progearbl_probe,
-+       .remove = progearbl_remove,
-+       .driver = {
-+                  .name = "progear-bl",
-+                  },
++      .probe = progearbl_probe,
++      .remove = progearbl_remove,
++      .driver = {
++                 .name = "progear-bl",
++                 },
 +};
 +
 +static struct platform_device *progearbl_device;
 +
 +static int __init progearbl_init(void)
 +{
-+       int ret = platform_driver_register(&progearbl_driver);
-+       if (!ret) {
-+               progearbl_device = platform_device_alloc("progear-bl", -1);
-+               if (!progearbl_device)
-+                       return -ENOMEM;
-+
-+               ret = platform_device_add(progearbl_device);
-+
-+               if (ret) {
-+                       platform_device_put(progearbl_device);
-+                       platform_driver_unregister(&progearbl_driver);
-+               }
-+       }
-+       return ret;
++      int ret = platform_driver_register(&progearbl_driver);
++
++      if (!ret) {
++              progearbl_device = platform_device_alloc("progear-bl", -1);
++              if (!progearbl_device)
++                      return -ENOMEM;
++
++              ret = platform_device_add(progearbl_device);
++
++              if (ret) {
++                      platform_device_put(progearbl_device);
++                      platform_driver_unregister(&progearbl_driver);
++              }
++      }
++
++      return ret;
 +}
 +
 +static void __exit progearbl_exit(void)
 +{
-+       pci_dev_put(pmu_dev);
-+       pci_dev_put(sb_dev);
++      pci_dev_put(pmu_dev);
++      pci_dev_put(sb_dev);
 +
-+       platform_device_unregister(progearbl_device);
-+       platform_driver_unregister(&progearbl_driver);
++      platform_device_unregister(progearbl_device);
++      platform_driver_unregister(&progearbl_driver);
 +}
 +
 +module_init(progearbl_init);
@@ -193,10 +189,10 @@ Index: linux-2.6.20/drivers/video/backlight/progear_bl.c
 +MODULE_AUTHOR("Marcin Juszkiewicz <linux@hrw.one.pl>");
 +MODULE_DESCRIPTION("ProGear Backlight Driver");
 +MODULE_LICENSE("GPL");
-Index: linux-2.6.20/drivers/video/backlight/Makefile
+Index: git/drivers/video/backlight/Makefile
 ===================================================================
---- linux-2.6.20.orig/drivers/video/backlight/Makefile 2007-02-04 19:44:54.000000000 +0100
-+++ linux-2.6.20/drivers/video/backlight/Makefile      2007-02-05 16:13:13.000000000 +0100
+--- git.orig/drivers/video/backlight/Makefile  2006-12-29 17:31:36.511043439 +0100
++++ git/drivers/video/backlight/Makefile       2007-02-06 21:34:54.503712923 +0100
 @@ -5,3 +5,4 @@
  obj-$(CONFIG_BACKLIGHT_CORGI) += corgi_bl.o
  obj-$(CONFIG_BACKLIGHT_HP680) += hp680_bl.o
diff --git a/packages/linux/linux/simpad/defconfig b/packages/linux/linux/simpad/defconfig
new file mode 100644 (file)
index 0000000..a718a46
--- /dev/null
@@ -0,0 +1,1167 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.20
+# Mon Feb 12 16:35:21 2007
+#
+CONFIG_ARM=y
+# CONFIG_GENERIC_TIME is not set
+CONFIG_MMU=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_MTD_XIP=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_LOCK_KERNEL=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION="oe1"
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_IPC_NS is not set
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_UTS_NS is not set
+# CONFIG_AUDIT is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_SYSFS_DEPRECATED=y
+# CONFIG_RELAY is not set
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+CONFIG_KALLSYMS_ALL=y
+CONFIG_KALLSYMS_EXTRA_PASS=y
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SHMEM=y
+CONFIG_SLAB=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+# CONFIG_SLOB is not set
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+# CONFIG_MODULE_UNLOAD is not set
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# Block layer
+#
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_AS is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+
+#
+# System Type
+#
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+CONFIG_ARCH_SA1100=y
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_OMAP is not set
+
+#
+# SA11x0 Implementations
+#
+# CONFIG_SA1100_ASSABET is not set
+# CONFIG_SA1100_CERF is not set
+# CONFIG_SA1100_COLLIE is not set
+# CONFIG_SA1100_H3100 is not set
+# CONFIG_SA1100_H3600 is not set
+# CONFIG_SA1100_H3800 is not set
+# CONFIG_SA1100_BADGE4 is not set
+# CONFIG_SA1100_JORNADA720 is not set
+# CONFIG_SA1100_HACKKIT is not set
+# CONFIG_SA1100_LART is not set
+# CONFIG_SA1100_PLEB is not set
+# CONFIG_SA1100_SHANNON is not set
+CONFIG_SA1100_SIMPAD=y
+# CONFIG_SA1100_SSP is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_SA1100=y
+CONFIG_CPU_32v4=y
+CONFIG_CPU_ABRT_EV4=y
+CONFIG_CPU_CACHE_V4WB=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_TLB_V4WB=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+
+#
+# Bus support
+#
+CONFIG_ISA=y
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+CONFIG_PCCARD=y
+# CONFIG_PCMCIA_DEBUG is not set
+CONFIG_PCMCIA=y
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_PCMCIA_IOCTL=y
+
+#
+# PC-card bridges
+#
+# CONFIG_I82365 is not set
+# CONFIG_TCIC is not set
+CONFIG_PCMCIA_SA1100=y
+
+#
+# Kernel Features
+#
+CONFIG_PREEMPT=y
+# CONFIG_NO_IDLE_HZ is not set
+CONFIG_HZ=100
+# CONFIG_AEABI is not set
+CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
+CONFIG_NODES_SHIFT=2
+CONFIG_SELECT_MEMORY_MODEL=y
+# CONFIG_FLATMEM_MANUAL is not set
+CONFIG_DISCONTIGMEM_MANUAL=y
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_DISCONTIGMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_NEED_MULTIPLE_NODES=y
+# CONFIG_SPARSEMEM_STATIC is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4096
+# CONFIG_RESOURCES_64BIT is not set
+CONFIG_LEDS=y
+CONFIG_LEDS_TIMER=y
+# CONFIG_LEDS_CPU is not set
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="mtdparts=sa1100:512k(boot),1m(kernel),-(root) console=ttySA0 root=1f02 noinitrd mem=64M jffs2_orphaned_inodes=delete rootfstype=jffs2"
+# CONFIG_XIP_KERNEL is not set
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_FPE_NWFPE=y
+# CONFIG_FPE_NWFPE_XP is not set
+# CONFIG_FPE_FASTFPE is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+CONFIG_BINFMT_MISC=m
+# CONFIG_ARTHUR is not set
+
+#
+# Power management options
+#
+CONFIG_PM=y
+# CONFIG_PM_LEGACY is not set
+# CONFIG_PM_DEBUG is not set
+# CONFIG_PM_SYSFS_DEPRECATED is not set
+CONFIG_APM=y
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+# CONFIG_NETDEBUG is not set
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+
+#
+# DCCP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP is not set
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+
+#
+# TIPC Configuration (EXPERIMENTAL)
+#
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+# CONFIG_IRDA_ULTRA is not set
+
+#
+# IrDA options
+#
+# CONFIG_IRDA_CACHE_LAST_LSAP is not set
+# CONFIG_IRDA_FAST_RR is not set
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+CONFIG_IRTTY_SIR=m
+
+#
+# Dongle support
+#
+# CONFIG_DONGLE is not set
+
+#
+# Old SIR device drivers
+#
+CONFIG_IRPORT_SIR=m
+
+#
+# Old Serial dongle support
+#
+# CONFIG_DONGLE_OLD is not set
+
+#
+# FIR device drivers
+#
+CONFIG_SA1100_FIR=m
+CONFIG_BT=m
+CONFIG_BT_L2CAP=m
+CONFIG_BT_SCO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+# CONFIG_BT_HIDP is not set
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_BT_HCIUART is not set
+# CONFIG_BT_HCIDTL1 is not set
+# CONFIG_BT_HCIBT3C is not set
+# CONFIG_BT_HCIBLUECARD is not set
+# CONFIG_BT_HCIBTUART is not set
+# CONFIG_BT_HCIVHCI is not set
+# CONFIG_IEEE80211 is not set
+CONFIG_WIRELESS_EXT=y
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_SYS_HYPERVISOR is not set
+
+#
+# Connector - unified userspace <-> kernelspace linker
+#
+# CONFIG_CONNECTOR is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_CONCAT=y
+CONFIG_MTD_PARTITIONS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_AFS_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=y
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+CONFIG_MTD_JEDECPROBE=y
+CONFIG_MTD_GEN_PROBE=y
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_NOSWAP=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+CONFIG_MTD_CFI_GEOMETRY=y
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+# CONFIG_MTD_CFI_I2 is not set
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_OTP is not set
+CONFIG_MTD_CFI_INTELEXT=y
+# CONFIG_MTD_CFI_AMDSTD is not set
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+CONFIG_MTD_RAM=y
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+# CONFIG_MTD_OBSOLETE_CHIPS is not set
+# CONFIG_MTD_XIP is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PHYSMAP is not set
+# CONFIG_MTD_ARM_INTEGRATOR is not set
+CONFIG_MTD_SA1100=y
+# CONFIG_MTD_IMPA7 is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+
+#
+# NAND Flash Device Drivers
+#
+# CONFIG_MTD_NAND is not set
+
+#
+# OneNAND Flash Device Drivers
+#
+# CONFIG_MTD_ONENAND is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+# CONFIG_PNP is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
+# CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_NETLINK is not set
+
+#
+# Serial ATA (prod) and Parallel ATA (experimental) drivers
+#
+# CONFIG_ATA is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# I2O device support
+#
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+CONFIG_DUMMY=y
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+
+#
+# PHY device support
+#
+# CONFIG_PHYLIB is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=m
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_NET_VENDOR_SMC is not set
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+# CONFIG_NET_VENDOR_RACAL is not set
+# CONFIG_AT1700 is not set
+# CONFIG_DEPCA is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_ISA is not set
+CONFIG_NET_PCI=y
+# CONFIG_AC3200 is not set
+# CONFIG_APRICOT is not set
+# CONFIG_CS89x0 is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+
+#
+# Ethernet (10000 Mbit)
+#
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+# CONFIG_NET_WIRELESS_RTNETLINK is not set
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
+# CONFIG_STRIP is not set
+# CONFIG_ARLAN is not set
+# CONFIG_WAVELAN is not set
+CONFIG_PCMCIA_WAVELAN=m
+# CONFIG_PCMCIA_NETWAVE is not set
+
+#
+# Wireless 802.11 Frequency Hopping cards support
+#
+# CONFIG_PCMCIA_RAYCS is not set
+
+#
+# Wireless 802.11b ISA/PCI cards support
+#
+# CONFIG_HERMES is not set
+# CONFIG_ATMEL is not set
+
+#
+# Wireless 802.11b Pcmcia/Cardbus cards support
+#
+# CONFIG_AIRO_CS is not set
+# CONFIG_PCMCIA_WL3501 is not set
+# CONFIG_HOSTAP is not set
+CONFIG_NET_WIRELESS=y
+
+#
+# PCMCIA network device support
+#
+CONFIG_NET_PCMCIA=y
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_3C574=m
+# CONFIG_PCMCIA_FMVJ18X is not set
+CONFIG_PCMCIA_PCNET=m
+# CONFIG_PCMCIA_NMCLAN is not set
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_XIRC2PS=m
+# CONFIG_PCMCIA_AXNET is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+# CONFIG_PPP_MPPE is not set
+CONFIG_PPPOE=m
+# CONFIG_SLIP is not set
+CONFIG_SLHC=m
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=800
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=600
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_TSDEV=y
+CONFIG_INPUT_TSDEV_SCREEN_X=800
+CONFIG_INPUT_TSDEV_SCREEN_Y=600
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=y
+
+#
+# Input Device Drivers
+#
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=m
+CONFIG_SERIO_SERPORT=m
+# CONFIG_SERIO_LIBPS2 is not set
+# CONFIG_SERIO_RAW is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_SA1100=y
+CONFIG_SERIAL_SA1100_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_NVRAM is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+
+#
+# PCMCIA character devices
+#
+# CONFIG_SYNCLINK_CS is not set
+# CONFIG_CARDMAN_4000 is not set
+# CONFIG_CARDMAN_4040 is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# SPI support
+#
+# CONFIG_SPI is not set
+# CONFIG_SPI_MASTER is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Hardware Monitoring support
+#
+CONFIG_HWMON=y
+# CONFIG_HWMON_VID is not set
+# CONFIG_SENSORS_ABITUGURU is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Misc devices
+#
+# CONFIG_TIFM_CORE is not set
+
+#
+# Multimedia Capabilities Port drivers
+#
+CONFIG_MCP=y
+CONFIG_MCP_SA11X0=y
+CONFIG_MCP_UCB1200=y
+CONFIG_MCP_UCB1200_TS=y
+CONFIG_MCP_UCB1200_SWITCHES=y
+
+#
+# LED devices
+#
+# CONFIG_NEW_LEDS is not set
+
+#
+# LED drivers
+#
+
+#
+# LED Triggers
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FB=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_SA1100 is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_MQ200=y
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+# CONFIG_MDA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+
+#
+# Logo configuration
+#
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+# CONFIG_SND is not set
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+
+#
+# HID Devices
+#
+CONFIG_HID=y
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+# CONFIG_USB_ARCH_HAS_OHCI is not set
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+# CONFIG_USB is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# Real Time Clock
+#
+CONFIG_RTC_LIB=y
+# CONFIG_RTC_CLASS is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=m
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=m
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+# CONFIG_EXT4DEV_FS is not set
+CONFIG_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+# CONFIG_REISERFS_FS_XATTR is not set
+# CONFIG_JFS_FS is not set
+CONFIG_FS_POSIX_ACL=y
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+CONFIG_GENERIC_ACL=y
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_CRAMFS=m
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3=y
+# CONFIG_NFS_V3_ACL is not set
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_DIRECTIO is not set
+# CONFIG_NFSD is not set
+# CONFIG_ROOT_NFS is not set
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+# CONFIG_9P_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+CONFIG_NLS_CODEPAGE_850=y
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+CONFIG_NLS_ISO8859_15=y
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_UTF8 is not set
+
+#
+# Distributed Lock Manager
+#
+# CONFIG_DLM is not set
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_MUST_CHECK=y
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_DEBUG_KERNEL=y
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_DEBUG_SLAB is not set
+CONFIG_DEBUG_PREEMPT=y
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_RWSEMS is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_LIST is not set
+CONFIG_FRAME_POINTER=y
+CONFIG_FORCED_INLINING=y
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_DEBUG_USER=y
+CONFIG_DEBUG_ERRORS=y
+CONFIG_DEBUG_LL=y
+# CONFIG_DEBUG_ICEDCC is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+# CONFIG_CRYPTO is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_CRC_CCITT=m
+# CONFIG_CRC16 is not set
+CONFIG_CRC32=y
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_PLIST=y
+CONFIG_IOMAP_COPY=y
diff --git a/packages/linux/linux/simpad/linux-2.6.20.SIMpad.mq200.patch b/packages/linux/linux/simpad/linux-2.6.20.SIMpad.mq200.patch
new file mode 100644 (file)
index 0000000..3c91b2c
--- /dev/null
@@ -0,0 +1,5382 @@
+diff -uNr linux-2.6.20.vanilla/arch/arm/configs/simpad_defconfig linux-2.6.20/arch/arm/configs/simpad_defconfig
+--- linux-2.6.20.vanilla/arch/arm/configs/simpad_defconfig     2007-02-10 19:01:14.000000000 +0100
++++ linux-2.6.20/arch/arm/configs/simpad_defconfig     2007-02-11 16:39:39.000000000 +0100
+@@ -1,75 +1,121 @@
+ #
+ # Automatically generated make config: don't edit
+-# Linux kernel version: 2.6.12-rc1-bk2
+-# Mon Mar 28 00:10:36 2005
++# Linux kernel version: 2.6.19.1
++# Tue Jan  2 22:07:26 2007
+ #
+ CONFIG_ARM=y
++# CONFIG_GENERIC_TIME is not set
+ CONFIG_MMU=y
+-CONFIG_UID16=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_TRACE_IRQFLAGS_SUPPORT=y
++CONFIG_HARDIRQS_SW_RESEND=y
++CONFIG_GENERIC_IRQ_PROBE=y
+ CONFIG_RWSEM_GENERIC_SPINLOCK=y
++CONFIG_GENERIC_HWEIGHT=y
+ CONFIG_GENERIC_CALIBRATE_DELAY=y
+-CONFIG_GENERIC_IOMAP=y
++CONFIG_ARCH_MTD_XIP=y
++CONFIG_VECTORS_BASE=0xffff0000
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+ #
+ # Code maturity level options
+ #
+ CONFIG_EXPERIMENTAL=y
+-CONFIG_CLEAN_COMPILE=y
+ CONFIG_BROKEN_ON_SMP=y
+ CONFIG_LOCK_KERNEL=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
+ #
+ # General setup
+ #
+ CONFIG_LOCALVERSION="oe1"
++CONFIG_LOCALVERSION_AUTO=y
+ CONFIG_SWAP=y
+ CONFIG_SYSVIPC=y
++# CONFIG_IPC_NS is not set
+ # CONFIG_POSIX_MQUEUE is not set
+ # CONFIG_BSD_PROCESS_ACCT is not set
+-CONFIG_SYSCTL=y
++# CONFIG_TASKSTATS is not set
++# CONFIG_UTS_NS is not set
+ # CONFIG_AUDIT is not set
+-CONFIG_HOTPLUG=y
+-CONFIG_KOBJECT_UEVENT=y
+ # CONFIG_IKCONFIG is not set
++# CONFIG_RELAY is not set
++CONFIG_INITRAMFS_SOURCE=""
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SYSCTL=y
+ CONFIG_EMBEDDED=y
++CONFIG_UID16=y
++CONFIG_SYSCTL_SYSCALL=y
+ CONFIG_KALLSYMS=y
+ CONFIG_KALLSYMS_ALL=y
+ CONFIG_KALLSYMS_EXTRA_PASS=y
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
+ CONFIG_BASE_FULL=y
+ CONFIG_FUTEX=y
+ CONFIG_EPOLL=y
+-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+ CONFIG_SHMEM=y
+-CONFIG_CC_ALIGN_FUNCTIONS=0
+-CONFIG_CC_ALIGN_LABELS=0
+-CONFIG_CC_ALIGN_LOOPS=0
+-CONFIG_CC_ALIGN_JUMPS=0
++CONFIG_SLAB=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_RT_MUTEXES=y
+ # CONFIG_TINY_SHMEM is not set
+ CONFIG_BASE_SMALL=0
++# CONFIG_SLOB is not set
+ #
+ # Loadable module support
+ #
+ CONFIG_MODULES=y
+ # CONFIG_MODULE_UNLOAD is not set
+-CONFIG_OBSOLETE_MODPARM=y
+ # CONFIG_MODVERSIONS is not set
+ # CONFIG_MODULE_SRCVERSION_ALL is not set
+ CONFIG_KMOD=y
+ #
++# Block layer
++#
++CONFIG_BLOCK=y
++# CONFIG_BLK_DEV_IO_TRACE is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++# CONFIG_DEFAULT_AS is not set
++# CONFIG_DEFAULT_DEADLINE is not set
++CONFIG_DEFAULT_CFQ=y
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="cfq"
++
++#
+ # System Type
+ #
++# CONFIG_ARCH_AAEC2000 is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_REALVIEW is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_AT91 is not set
+ # CONFIG_ARCH_CLPS7500 is not set
+ # CONFIG_ARCH_CLPS711X is not set
+ # CONFIG_ARCH_CO285 is not set
+ # CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_EP93XX is not set
+ # CONFIG_ARCH_FOOTBRIDGE is not set
+-# CONFIG_ARCH_INTEGRATOR is not set
+-# CONFIG_ARCH_IOP3XX is not set
++# CONFIG_ARCH_NETX is not set
++# CONFIG_ARCH_H720X is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_IOP32X is not set
++# CONFIG_ARCH_IOP33X is not set
+ # CONFIG_ARCH_IXP4XX is not set
+ # CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_IXP23XX is not set
+ # CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_PNX4008 is not set
+ # CONFIG_ARCH_PXA is not set
+ # CONFIG_ARCH_RPC is not set
+ CONFIG_ARCH_SA1100=y
+@@ -77,9 +123,6 @@
+ # CONFIG_ARCH_SHARK is not set
+ # CONFIG_ARCH_LH7A40X is not set
+ # CONFIG_ARCH_OMAP is not set
+-# CONFIG_ARCH_VERSATILE is not set
+-# CONFIG_ARCH_IMX is not set
+-# CONFIG_ARCH_H720X is not set
+ #
+ # SA11x0 Implementations
+@@ -109,11 +152,14 @@
+ CONFIG_CPU_CACHE_V4WB=y
+ CONFIG_CPU_CACHE_VIVT=y
+ CONFIG_CPU_TLB_V4WB=y
+-CONFIG_CPU_MINICACHE=y
++CONFIG_CPU_CP15=y
++CONFIG_CPU_CP15_MMU=y
+ #
+ # Processor Features
+ #
++# CONFIG_CPU_ICACHE_DISABLE is not set
++# CONFIG_CPU_DCACHE_DISABLE is not set
+ #
+ # Bus support
+@@ -126,6 +172,8 @@
+ CONFIG_PCCARD=y
+ # CONFIG_PCMCIA_DEBUG is not set
+ CONFIG_PCMCIA=y
++CONFIG_PCMCIA_LOAD_CIS=y
++CONFIG_PCMCIA_IOCTL=y
+ #
+ # PC-card bridges
+@@ -138,7 +186,21 @@
+ # Kernel Features
+ #
+ CONFIG_PREEMPT=y
++# CONFIG_NO_IDLE_HZ is not set
++CONFIG_HZ=100
++# CONFIG_AEABI is not set
++CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
++CONFIG_NODES_SHIFT=2
++CONFIG_SELECT_MEMORY_MODEL=y
++# CONFIG_FLATMEM_MANUAL is not set
++CONFIG_DISCONTIGMEM_MANUAL=y
++# CONFIG_SPARSEMEM_MANUAL is not set
+ CONFIG_DISCONTIGMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++CONFIG_NEED_MULTIPLE_NODES=y
++# CONFIG_SPARSEMEM_STATIC is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4096
++# CONFIG_RESOURCES_64BIT is not set
+ CONFIG_LEDS=y
+ CONFIG_LEDS_TIMER=y
+ # CONFIG_LEDS_CPU is not set
+@@ -181,9 +243,161 @@
+ #
+ CONFIG_PM=y
+ # CONFIG_PM_LEGACY is not set
++# CONFIG_PM_DEBUG is not set
++# CONFIG_PM_SYSFS_DEPRECATED is not set
+ CONFIG_APM=y
+ #
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++# CONFIG_NETDEBUG is not set
++CONFIG_PACKET=y
++CONFIG_PACKET_MMAP=y
++CONFIG_UNIX=y
++CONFIG_XFRM=y
++# CONFIG_XFRM_USER is not set
++# CONFIG_XFRM_SUB_POLICY is not set
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++CONFIG_IP_PNP=y
++CONFIG_IP_PNP_DHCP=y
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++CONFIG_INET_XFRM_MODE_TRANSPORT=y
++CONFIG_INET_XFRM_MODE_TUNNEL=y
++CONFIG_INET_XFRM_MODE_BEET=y
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++# CONFIG_NETFILTER is not set
++
++#
++# DCCP Configuration (EXPERIMENTAL)
++#
++# CONFIG_IP_DCCP is not set
++
++#
++# SCTP Configuration (EXPERIMENTAL)
++#
++# CONFIG_IP_SCTP is not set
++
++#
++# TIPC Configuration (EXPERIMENTAL)
++#
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++
++#
++# QoS and/or fair queueing
++#
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++CONFIG_IRDA=m
++
++#
++# IrDA protocols
++#
++CONFIG_IRLAN=m
++CONFIG_IRNET=m
++CONFIG_IRCOMM=m
++# CONFIG_IRDA_ULTRA is not set
++
++#
++# IrDA options
++#
++# CONFIG_IRDA_CACHE_LAST_LSAP is not set
++# CONFIG_IRDA_FAST_RR is not set
++# CONFIG_IRDA_DEBUG is not set
++
++#
++# Infrared-port device drivers
++#
++
++#
++# SIR device drivers
++#
++CONFIG_IRTTY_SIR=m
++
++#
++# Dongle support
++#
++# CONFIG_DONGLE is not set
++
++#
++# Old SIR device drivers
++#
++CONFIG_IRPORT_SIR=m
++
++#
++# Old Serial dongle support
++#
++# CONFIG_DONGLE_OLD is not set
++
++#
++# FIR device drivers
++#
++CONFIG_SA1100_FIR=m
++CONFIG_BT=m
++CONFIG_BT_L2CAP=m
++CONFIG_BT_SCO=m
++CONFIG_BT_RFCOMM=m
++CONFIG_BT_RFCOMM_TTY=y
++CONFIG_BT_BNEP=m
++CONFIG_BT_BNEP_MC_FILTER=y
++CONFIG_BT_BNEP_PROTO_FILTER=y
++# CONFIG_BT_HIDP is not set
++
++#
++# Bluetooth device drivers
++#
++# CONFIG_BT_HCIUART is not set
++# CONFIG_BT_HCIDTL1 is not set
++# CONFIG_BT_HCIBT3C is not set
++# CONFIG_BT_HCIBLUECARD is not set
++# CONFIG_BT_HCIBTUART is not set
++# CONFIG_BT_HCIVHCI is not set
++# CONFIG_IEEE80211 is not set
++CONFIG_WIRELESS_EXT=y
++
++#
+ # Device Drivers
+ #
+@@ -192,8 +406,14 @@
+ #
+ CONFIG_STANDALONE=y
+ CONFIG_PREVENT_FIRMWARE_BUILD=y
+-CONFIG_FW_LOADER=m
++CONFIG_FW_LOADER=y
+ # CONFIG_DEBUG_DRIVER is not set
++# CONFIG_SYS_HYPERVISOR is not set
++
++#
++# Connector - unified userspace <-> kernelspace linker
++#
++# CONFIG_CONNECTOR is not set
+ #
+ # Memory Technology Devices (MTD)
+@@ -214,6 +434,8 @@
+ # CONFIG_FTL is not set
+ # CONFIG_NFTL is not set
+ # CONFIG_INFTL is not set
++# CONFIG_RFD_FTL is not set
++# CONFIG_SSFDC is not set
+ #
+ # RAM/ROM/Flash chip drivers
+@@ -236,6 +458,7 @@
+ # CONFIG_MTD_CFI_I2 is not set
+ # CONFIG_MTD_CFI_I4 is not set
+ # CONFIG_MTD_CFI_I8 is not set
++# CONFIG_MTD_OTP is not set
+ CONFIG_MTD_CFI_INTELEXT=y
+ # CONFIG_MTD_CFI_AMDSTD is not set
+ # CONFIG_MTD_CFI_STAA is not set
+@@ -243,6 +466,7 @@
+ CONFIG_MTD_RAM=y
+ # CONFIG_MTD_ROM is not set
+ # CONFIG_MTD_ABSENT is not set
++# CONFIG_MTD_OBSOLETE_CHIPS is not set
+ # CONFIG_MTD_XIP is not set
+ #
+@@ -252,8 +476,8 @@
+ # CONFIG_MTD_PHYSMAP is not set
+ # CONFIG_MTD_ARM_INTEGRATOR is not set
+ CONFIG_MTD_SA1100=y
+-# CONFIG_MTD_EDB7312 is not set
+ # CONFIG_MTD_IMPA7 is not set
++# CONFIG_MTD_PLATRAM is not set
+ #
+ # Self-contained MTD device drivers
+@@ -261,7 +485,6 @@
+ # CONFIG_MTD_SLRAM is not set
+ # CONFIG_MTD_PHRAM is not set
+ # CONFIG_MTD_MTDRAM is not set
+-# CONFIG_MTD_BLKMTD is not set
+ # CONFIG_MTD_BLOCK2MTD is not set
+ #
+@@ -277,6 +500,11 @@
+ # CONFIG_MTD_NAND is not set
+ #
++# OneNAND Flash Device Drivers
++#
++# CONFIG_MTD_ONENAND is not set
++
++#
+ # Parallel port support
+ #
+ # CONFIG_PARPORT is not set
+@@ -289,8 +517,6 @@
+ #
+ # Block devices
+ #
+-# CONFIG_BLK_DEV_FD is not set
+-# CONFIG_BLK_DEV_XD is not set
+ # CONFIG_BLK_DEV_COW_COMMON is not set
+ CONFIG_BLK_DEV_LOOP=m
+ # CONFIG_BLK_DEV_CRYPTOLOOP is not set
+@@ -298,16 +524,9 @@
+ CONFIG_BLK_DEV_RAM=m
+ CONFIG_BLK_DEV_RAM_COUNT=16
+ CONFIG_BLK_DEV_RAM_SIZE=8192
+-CONFIG_INITRAMFS_SOURCE=""
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_BLK_DEV_INITRD is not set
+ # CONFIG_CDROM_PKTCDVD is not set
+-
+-#
+-# IO Schedulers
+-#
+-CONFIG_IOSCHED_NOOP=y
+-CONFIG_IOSCHED_AS=y
+-CONFIG_IOSCHED_DEADLINE=y
+-CONFIG_IOSCHED_CFQ=y
+ # CONFIG_ATA_OVER_ETH is not set
+ #
+@@ -318,7 +537,14 @@
+ #
+ # SCSI device support
+ #
++# CONFIG_RAID_ATTRS is not set
+ # CONFIG_SCSI is not set
++# CONFIG_SCSI_NETLINK is not set
++
++#
++# Serial ATA (prod) and Parallel ATA (experimental) drivers
++#
++# CONFIG_ATA is not set
+ #
+ # Multi-device support (RAID and LVM)
+@@ -328,6 +554,7 @@
+ #
+ # Fusion MPT device support
+ #
++# CONFIG_FUSION is not set
+ #
+ # IEEE 1394 (FireWire) support
+@@ -338,136 +565,8 @@
+ #
+ #
+-# Networking support
+-#
+-CONFIG_NET=y
+-
+-#
+-# Networking options
+-#
+-CONFIG_PACKET=y
+-CONFIG_PACKET_MMAP=y
+-# CONFIG_NETLINK_DEV is not set
+-CONFIG_UNIX=y
+-# CONFIG_NET_KEY is not set
+-CONFIG_INET=y
+-# CONFIG_IP_MULTICAST is not set
+-# CONFIG_IP_ADVANCED_ROUTER is not set
+-CONFIG_IP_PNP=y
+-CONFIG_IP_PNP_DHCP=y
+-CONFIG_IP_PNP_BOOTP=y
+-# CONFIG_IP_PNP_RARP is not set
+-# CONFIG_NET_IPIP is not set
+-# CONFIG_NET_IPGRE is not set
+-# CONFIG_ARPD is not set
+-# CONFIG_SYN_COOKIES is not set
+-# CONFIG_INET_AH is not set
+-# CONFIG_INET_ESP is not set
+-# CONFIG_INET_IPCOMP is not set
+-# CONFIG_INET_TUNNEL is not set
+-# CONFIG_IP_TCPDIAG is not set
+-# CONFIG_IP_TCPDIAG_IPV6 is not set
+-# CONFIG_IPV6 is not set
+-# CONFIG_NETFILTER is not set
+-
+-#
+-# SCTP Configuration (EXPERIMENTAL)
+-#
+-# CONFIG_IP_SCTP is not set
+-# CONFIG_ATM is not set
+-# CONFIG_BRIDGE is not set
+-# CONFIG_VLAN_8021Q is not set
+-# CONFIG_DECNET is not set
+-# CONFIG_LLC2 is not set
+-# CONFIG_IPX is not set
+-# CONFIG_ATALK is not set
+-# CONFIG_X25 is not set
+-# CONFIG_LAPB is not set
+-# CONFIG_NET_DIVERT is not set
+-# CONFIG_ECONET is not set
+-# CONFIG_WAN_ROUTER is not set
+-
+-#
+-# QoS and/or fair queueing
+-#
+-# CONFIG_NET_SCHED is not set
+-# CONFIG_NET_CLS_ROUTE is not set
+-
+-#
+-# Network testing
+-#
+-# CONFIG_NET_PKTGEN is not set
+-# CONFIG_NETPOLL is not set
+-# CONFIG_NET_POLL_CONTROLLER is not set
+-# CONFIG_HAMRADIO is not set
+-CONFIG_IRDA=m
+-
+-#
+-# IrDA protocols
+-#
+-CONFIG_IRLAN=m
+-CONFIG_IRNET=m
+-CONFIG_IRCOMM=m
+-# CONFIG_IRDA_ULTRA is not set
+-
+-#
+-# IrDA options
+-#
+-# CONFIG_IRDA_CACHE_LAST_LSAP is not set
+-# CONFIG_IRDA_FAST_RR is not set
+-# CONFIG_IRDA_DEBUG is not set
+-
+-#
+-# Infrared-port device drivers
+-#
+-
++# Network device support
+ #
+-# SIR device drivers
+-#
+-CONFIG_IRTTY_SIR=m
+-
+-#
+-# Dongle support
+-#
+-# CONFIG_DONGLE is not set
+-
+-#
+-# Old SIR device drivers
+-#
+-CONFIG_IRPORT_SIR=m
+-
+-#
+-# Old Serial dongle support
+-#
+-# CONFIG_DONGLE_OLD is not set
+-
+-#
+-# FIR device drivers
+-#
+-# CONFIG_NSC_FIR is not set
+-# CONFIG_WINBOND_FIR is not set
+-# CONFIG_SMC_IRCC_FIR is not set
+-# CONFIG_ALI_FIR is not set
+-CONFIG_SA1100_FIR=m
+-CONFIG_BT=m
+-CONFIG_BT_L2CAP=m
+-CONFIG_BT_SCO=m
+-CONFIG_BT_RFCOMM=m
+-CONFIG_BT_RFCOMM_TTY=y
+-CONFIG_BT_BNEP=m
+-CONFIG_BT_BNEP_MC_FILTER=y
+-CONFIG_BT_BNEP_PROTO_FILTER=y
+-# CONFIG_BT_HIDP is not set
+-
+-#
+-# Bluetooth device drivers
+-#
+-# CONFIG_BT_HCIUART is not set
+-# CONFIG_BT_HCIDTL1 is not set
+-# CONFIG_BT_HCIBT3C is not set
+-# CONFIG_BT_HCIBLUECARD is not set
+-# CONFIG_BT_HCIBTUART is not set
+-# CONFIG_BT_HCIVHCI is not set
+ CONFIG_NETDEVICES=y
+ CONFIG_DUMMY=y
+ # CONFIG_BONDING is not set
+@@ -480,14 +579,19 @@
+ # CONFIG_ARCNET is not set
+ #
++# PHY device support
++#
++# CONFIG_PHYLIB is not set
++
++#
+ # Ethernet (10 or 100Mbit)
+ #
+ CONFIG_NET_ETHERNET=y
+ CONFIG_MII=m
+ # CONFIG_NET_VENDOR_3COM is not set
+-# CONFIG_LANCE is not set
+ # CONFIG_NET_VENDOR_SMC is not set
+ # CONFIG_SMC91X is not set
++# CONFIG_DM9000 is not set
+ # CONFIG_NET_VENDOR_RACAL is not set
+ # CONFIG_AT1700 is not set
+ # CONFIG_DEPCA is not set
+@@ -497,7 +601,6 @@
+ # CONFIG_AC3200 is not set
+ # CONFIG_APRICOT is not set
+ # CONFIG_CS89x0 is not set
+-# CONFIG_NET_POCKET is not set
+ #
+ # Ethernet (1000 Mbit)
+@@ -516,6 +619,7 @@
+ # Wireless LAN (non-hamradio)
+ #
+ CONFIG_NET_RADIO=y
++# CONFIG_NET_WIRELESS_RTNETLINK is not set
+ #
+ # Obsolete Wireless cards support (pre-802.11)
+@@ -542,6 +646,7 @@
+ #
+ # CONFIG_AIRO_CS is not set
+ # CONFIG_PCMCIA_WL3501 is not set
++# CONFIG_HOSTAP is not set
+ CONFIG_NET_WIRELESS=y
+ #
+@@ -568,10 +673,14 @@
+ CONFIG_PPP_SYNC_TTY=m
+ CONFIG_PPP_DEFLATE=m
+ CONFIG_PPP_BSDCOMP=m
++# CONFIG_PPP_MPPE is not set
+ CONFIG_PPPOE=m
+ # CONFIG_SLIP is not set
++CONFIG_SLHC=m
+ # CONFIG_SHAPER is not set
+ # CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
+ #
+ # ISDN subsystem
+@@ -582,6 +691,7 @@
+ # Input device support
+ #
+ CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
+ #
+ # Userland interfaces
+@@ -614,7 +724,6 @@
+ # CONFIG_SERIO_LIBPS2 is not set
+ # CONFIG_SERIO_RAW is not set
+ # CONFIG_GAMEPORT is not set
+-CONFIG_SOUND_GAMEPORT=y
+ #
+ # Character devices
+@@ -622,6 +731,7 @@
+ CONFIG_VT=y
+ CONFIG_VT_CONSOLE=y
+ CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
+ # CONFIG_SERIAL_NONSTANDARD is not set
+ #
+@@ -649,20 +759,21 @@
+ # Watchdog Cards
+ #
+ # CONFIG_WATCHDOG is not set
++CONFIG_HW_RANDOM=y
+ # CONFIG_NVRAM is not set
+-# CONFIG_RTC is not set
+ # CONFIG_DTLK is not set
+ # CONFIG_R3964 is not set
+ #
+ # Ftape, the floppy tape device driver
+ #
+-# CONFIG_DRM is not set
+ #
+ # PCMCIA character devices
+ #
+ # CONFIG_SYNCLINK_CS is not set
++# CONFIG_CARDMAN_4000 is not set
++# CONFIG_CARDMAN_4040 is not set
+ # CONFIG_RAW_DRIVER is not set
+ #
+@@ -676,8 +787,48 @@
+ # CONFIG_I2C is not set
+ #
++# SPI support
++#
++# CONFIG_SPI is not set
++# CONFIG_SPI_MASTER is not set
++
++#
++# Dallas's 1-wire bus
++#
++# CONFIG_W1 is not set
++
++#
++# Hardware Monitoring support
++#
++CONFIG_HWMON=y
++# CONFIG_HWMON_VID is not set
++# CONFIG_SENSORS_ABITUGURU is not set
++# CONFIG_SENSORS_F71805F is not set
++# CONFIG_SENSORS_VT1211 is not set
++# CONFIG_HWMON_DEBUG_CHIP is not set
++
++#
+ # Misc devices
+ #
++# CONFIG_TIFM_CORE is not set
++
++#
++# Multimedia Capabilities Port drivers
++#
++# CONFIG_MCP_SA11X0 is not set
++
++#
++# LED devices
++#
++# CONFIG_NEW_LEDS is not set
++
++#
++# LED drivers
++#
++
++#
++# LED Triggers
++#
+ #
+ # Multimedia devices
+@@ -692,14 +843,18 @@
+ #
+ # Graphics support
+ #
++CONFIG_FIRMWARE_EDID=y
+ CONFIG_FB=y
+-# CONFIG_FB_CFB_FILLRECT is not set
+-# CONFIG_FB_CFB_COPYAREA is not set
+-# CONFIG_FB_CFB_IMAGEBLIT is not set
+-# CONFIG_FB_SOFT_CURSOR is not set
++CONFIG_FB_CFB_FILLRECT=y
++CONFIG_FB_CFB_COPYAREA=y
++CONFIG_FB_CFB_IMAGEBLIT=y
++# CONFIG_FB_MACMODES is not set
++# CONFIG_FB_BACKLIGHT is not set
+ # CONFIG_FB_MODE_HELPERS is not set
+ # CONFIG_FB_TILEBLITTING is not set
+ # CONFIG_FB_SA1100 is not set
++# CONFIG_FB_S1D13XXX is not set
++CONFIG_FB_MQ200=y
+ # CONFIG_FB_VIRTUAL is not set
+ #
+@@ -709,6 +864,7 @@
+ # CONFIG_MDA_CONSOLE is not set
+ CONFIG_DUMMY_CONSOLE=y
+ CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+ # CONFIG_FONTS is not set
+ CONFIG_FONT_8x8=y
+ CONFIG_FONT_8x16=y
+@@ -742,9 +898,14 @@
+ #
+ CONFIG_USB_ARCH_HAS_HCD=y
+ # CONFIG_USB_ARCH_HAS_OHCI is not set
++# CONFIG_USB_ARCH_HAS_EHCI is not set
+ # CONFIG_USB is not set
+ #
++# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
++#
++
++#
+ # USB Gadget Support
+ #
+ # CONFIG_USB_GADGET is not set
+@@ -755,14 +916,22 @@
+ # CONFIG_MMC is not set
+ #
++# Real Time Clock
++#
++CONFIG_RTC_LIB=y
++# CONFIG_RTC_CLASS is not set
++
++#
+ # File systems
+ #
+ CONFIG_EXT2_FS=m
+ # CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
+ CONFIG_EXT3_FS=m
+ CONFIG_EXT3_FS_XATTR=y
+ # CONFIG_EXT3_FS_POSIX_ACL is not set
+ # CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
+ CONFIG_JBD=m
+ # CONFIG_JBD_DEBUG is not set
+ CONFIG_FS_MBCACHE=m
+@@ -771,17 +940,19 @@
+ CONFIG_REISERFS_PROC_INFO=y
+ # CONFIG_REISERFS_FS_XATTR is not set
+ # CONFIG_JFS_FS is not set
+-
+-#
+-# XFS support
+-#
++# CONFIG_FS_POSIX_ACL is not set
+ # CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
+ # CONFIG_MINIX_FS is not set
+ # CONFIG_ROMFS_FS is not set
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
+ # CONFIG_QUOTA is not set
+ CONFIG_DNOTIFY=y
+ # CONFIG_AUTOFS_FS is not set
+ # CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
+ #
+ # CD-ROM/DVD Filesystems
+@@ -803,14 +974,12 @@
+ # Pseudo filesystems
+ #
+ CONFIG_PROC_FS=y
++CONFIG_PROC_SYSCTL=y
+ CONFIG_SYSFS=y
+-CONFIG_DEVFS_FS=y
+-CONFIG_DEVFS_MOUNT=y
+-# CONFIG_DEVFS_DEBUG is not set
+-# CONFIG_DEVPTS_FS_XATTR is not set
+ # CONFIG_TMPFS is not set
+ # CONFIG_HUGETLB_PAGE is not set
+ CONFIG_RAMFS=y
++# CONFIG_CONFIGFS_FS is not set
+ #
+ # Miscellaneous filesystems
+@@ -827,8 +996,9 @@
+ # CONFIG_JFFS_PROC_FS is not set
+ CONFIG_JFFS2_FS=y
+ CONFIG_JFFS2_FS_DEBUG=0
+-# CONFIG_JFFS2_FS_NAND is not set
+-# CONFIG_JFFS2_FS_NOR_ECC is not set
++CONFIG_JFFS2_FS_WRITEBUFFER=y
++# CONFIG_JFFS2_SUMMARY is not set
++# CONFIG_JFFS2_FS_XATTR is not set
+ # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+ CONFIG_JFFS2_ZLIB=y
+ CONFIG_JFFS2_RTIME=y
+@@ -845,12 +1015,14 @@
+ #
+ CONFIG_NFS_FS=y
+ CONFIG_NFS_V3=y
++# CONFIG_NFS_V3_ACL is not set
+ # CONFIG_NFS_V4 is not set
+ # CONFIG_NFS_DIRECTIO is not set
+ # CONFIG_NFSD is not set
+ # CONFIG_ROOT_NFS is not set
+ CONFIG_LOCKD=y
+ CONFIG_LOCKD_V4=y
++CONFIG_NFS_COMMON=y
+ CONFIG_SUNRPC=y
+ # CONFIG_RPCSEC_GSS_KRB5 is not set
+ # CONFIG_RPCSEC_GSS_SPKM3 is not set
+@@ -860,6 +1032,7 @@
+ # CONFIG_NCP_FS is not set
+ # CONFIG_CODA_FS is not set
+ # CONFIG_AFS_FS is not set
++# CONFIG_9P_FS is not set
+ #
+ # Partition Types
+@@ -920,19 +1093,32 @@
+ # Kernel hacking
+ #
+ # CONFIG_PRINTK_TIME is not set
+-CONFIG_DEBUG_KERNEL=y
++CONFIG_ENABLE_MUST_CHECK=y
+ # CONFIG_MAGIC_SYSRQ is not set
++# CONFIG_UNUSED_SYMBOLS is not set
++CONFIG_DEBUG_KERNEL=y
+ CONFIG_LOG_BUF_SHIFT=14
++CONFIG_DETECT_SOFTLOCKUP=y
+ # CONFIG_SCHEDSTATS is not set
+ # CONFIG_DEBUG_SLAB is not set
+ CONFIG_DEBUG_PREEMPT=y
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
+ # CONFIG_DEBUG_SPINLOCK is not set
++# CONFIG_DEBUG_MUTEXES is not set
++# CONFIG_DEBUG_RWSEMS is not set
+ # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+ # CONFIG_DEBUG_KOBJECT is not set
+ CONFIG_DEBUG_BUGVERBOSE=y
+ # CONFIG_DEBUG_INFO is not set
+ # CONFIG_DEBUG_FS is not set
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
+ CONFIG_FRAME_POINTER=y
++CONFIG_FORCED_INLINING=y
++# CONFIG_HEADERS_CHECK is not set
++# CONFIG_RCU_TORTURE_TEST is not set
+ CONFIG_DEBUG_USER=y
+ CONFIG_DEBUG_ERRORS=y
+ CONFIG_DEBUG_LL=y
+@@ -950,14 +1136,12 @@
+ # CONFIG_CRYPTO is not set
+ #
+-# Hardware crypto devices
+-#
+-
+-#
+ # Library routines
+ #
+ CONFIG_CRC_CCITT=m
++# CONFIG_CRC16 is not set
+ CONFIG_CRC32=y
+ # CONFIG_LIBCRC32C is not set
+ CONFIG_ZLIB_INFLATE=y
+ CONFIG_ZLIB_DEFLATE=y
++CONFIG_PLIST=y
+diff -uNr linux-2.6.20.vanilla/arch/arm/configs/simpad_defconfig~ linux-2.6.20/arch/arm/configs/simpad_defconfig~
+--- linux-2.6.20.vanilla/arch/arm/configs/simpad_defconfig~    1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.20/arch/arm/configs/simpad_defconfig~    2007-02-11 16:35:19.000000000 +0100
+@@ -0,0 +1,963 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.12-rc1-bk2
++# Mon Mar 28 00:10:36 2005
++#
++CONFIG_ARM=y
++CONFIG_MMU=y
++CONFIG_UID16=y
++CONFIG_RWSEM_GENERIC_SPINLOCK=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_GENERIC_IOMAP=y
++
++#
++# Code maturity level options
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_CLEAN_COMPILE=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_LOCK_KERNEL=y
++
++#
++# General setup
++#
++CONFIG_LOCALVERSION="oe1"
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++# CONFIG_POSIX_MQUEUE is not set
++# CONFIG_BSD_PROCESS_ACCT is not set
++CONFIG_SYSCTL=y
++# CONFIG_AUDIT is not set
++CONFIG_HOTPLUG=y
++CONFIG_KOBJECT_UEVENT=y
++# CONFIG_IKCONFIG is not set
++CONFIG_EMBEDDED=y
++CONFIG_KALLSYMS=y
++CONFIG_KALLSYMS_ALL=y
++CONFIG_KALLSYMS_EXTRA_PASS=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_EPOLL=y
++CONFIG_CC_OPTIMIZE_FOR_SIZE=y
++CONFIG_SHMEM=y
++CONFIG_CC_ALIGN_FUNCTIONS=0
++CONFIG_CC_ALIGN_LABELS=0
++CONFIG_CC_ALIGN_LOOPS=0
++CONFIG_CC_ALIGN_JUMPS=0
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++
++#
++# Loadable module support
++#
++CONFIG_MODULES=y
++# CONFIG_MODULE_UNLOAD is not set
++CONFIG_OBSOLETE_MODPARM=y
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++
++#
++# System Type
++#
++# CONFIG_ARCH_CLPS7500 is not set
++# CONFIG_ARCH_CLPS711X is not set
++# CONFIG_ARCH_CO285 is not set
++# CONFIG_ARCH_EBSA110 is not set
++# CONFIG_ARCH_FOOTBRIDGE is not set
++# CONFIG_ARCH_INTEGRATOR is not set
++# CONFIG_ARCH_IOP3XX is not set
++# CONFIG_ARCH_IXP4XX is not set
++# CONFIG_ARCH_IXP2000 is not set
++# CONFIG_ARCH_L7200 is not set
++# CONFIG_ARCH_PXA is not set
++# CONFIG_ARCH_RPC is not set
++CONFIG_ARCH_SA1100=y
++# CONFIG_ARCH_S3C2410 is not set
++# CONFIG_ARCH_SHARK is not set
++# CONFIG_ARCH_LH7A40X is not set
++# CONFIG_ARCH_OMAP is not set
++# CONFIG_ARCH_VERSATILE is not set
++# CONFIG_ARCH_IMX is not set
++# CONFIG_ARCH_H720X is not set
++
++#
++# SA11x0 Implementations
++#
++# CONFIG_SA1100_ASSABET is not set
++# CONFIG_SA1100_CERF is not set
++# CONFIG_SA1100_COLLIE is not set
++# CONFIG_SA1100_H3100 is not set
++# CONFIG_SA1100_H3600 is not set
++# CONFIG_SA1100_H3800 is not set
++# CONFIG_SA1100_BADGE4 is not set
++# CONFIG_SA1100_JORNADA720 is not set
++# CONFIG_SA1100_HACKKIT is not set
++# CONFIG_SA1100_LART is not set
++# CONFIG_SA1100_PLEB is not set
++# CONFIG_SA1100_SHANNON is not set
++CONFIG_SA1100_SIMPAD=y
++# CONFIG_SA1100_SSP is not set
++
++#
++# Processor Type
++#
++CONFIG_CPU_32=y
++CONFIG_CPU_SA1100=y
++CONFIG_CPU_32v4=y
++CONFIG_CPU_ABRT_EV4=y
++CONFIG_CPU_CACHE_V4WB=y
++CONFIG_CPU_CACHE_VIVT=y
++CONFIG_CPU_TLB_V4WB=y
++CONFIG_CPU_MINICACHE=y
++
++#
++# Processor Features
++#
++
++#
++# Bus support
++#
++CONFIG_ISA=y
++
++#
++# PCCARD (PCMCIA/CardBus) support
++#
++CONFIG_PCCARD=y
++# CONFIG_PCMCIA_DEBUG is not set
++CONFIG_PCMCIA=y
++
++#
++# PC-card bridges
++#
++# CONFIG_I82365 is not set
++# CONFIG_TCIC is not set
++CONFIG_PCMCIA_SA1100=y
++
++#
++# Kernel Features
++#
++CONFIG_PREEMPT=y
++CONFIG_DISCONTIGMEM=y
++CONFIG_LEDS=y
++CONFIG_LEDS_TIMER=y
++# CONFIG_LEDS_CPU is not set
++CONFIG_ALIGNMENT_TRAP=y
++
++#
++# Boot options
++#
++CONFIG_ZBOOT_ROM_TEXT=0x0
++CONFIG_ZBOOT_ROM_BSS=0x0
++CONFIG_CMDLINE="mtdparts=sa1100:512k(boot),1m(kernel),-(root) console=ttySA0 root=1f02 noinitrd mem=64M jffs2_orphaned_inodes=delete rootfstype=jffs2"
++# CONFIG_XIP_KERNEL is not set
++
++#
++# CPU Frequency scaling
++#
++# CONFIG_CPU_FREQ is not set
++
++#
++# Floating point emulation
++#
++
++#
++# At least one emulation must be selected
++#
++CONFIG_FPE_NWFPE=y
++# CONFIG_FPE_NWFPE_XP is not set
++# CONFIG_FPE_FASTFPE is not set
++
++#
++# Userspace binary formats
++#
++CONFIG_BINFMT_ELF=y
++# CONFIG_BINFMT_AOUT is not set
++CONFIG_BINFMT_MISC=m
++# CONFIG_ARTHUR is not set
++
++#
++# Power management options
++#
++CONFIG_PM=y
++# CONFIG_PM_LEGACY is not set
++CONFIG_APM=y
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++CONFIG_STANDALONE=y
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++CONFIG_FW_LOADER=m
++# CONFIG_DEBUG_DRIVER is not set
++
++#
++# Memory Technology Devices (MTD)
++#
++CONFIG_MTD=y
++# CONFIG_MTD_DEBUG is not set
++CONFIG_MTD_CONCAT=y
++CONFIG_MTD_PARTITIONS=y
++# CONFIG_MTD_REDBOOT_PARTS is not set
++CONFIG_MTD_CMDLINE_PARTS=y
++# CONFIG_MTD_AFS_PARTS is not set
++
++#
++# User Modules And Translation Layers
++#
++CONFIG_MTD_CHAR=y
++CONFIG_MTD_BLOCK=y
++# CONFIG_FTL is not set
++# CONFIG_NFTL is not set
++# CONFIG_INFTL is not set
++
++#
++# RAM/ROM/Flash chip drivers
++#
++CONFIG_MTD_CFI=y
++CONFIG_MTD_JEDECPROBE=y
++CONFIG_MTD_GEN_PROBE=y
++CONFIG_MTD_CFI_ADV_OPTIONS=y
++CONFIG_MTD_CFI_NOSWAP=y
++# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
++# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
++CONFIG_MTD_CFI_GEOMETRY=y
++CONFIG_MTD_MAP_BANK_WIDTH_1=y
++CONFIG_MTD_MAP_BANK_WIDTH_2=y
++CONFIG_MTD_MAP_BANK_WIDTH_4=y
++# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
++# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
++CONFIG_MTD_CFI_I1=y
++# CONFIG_MTD_CFI_I2 is not set
++# CONFIG_MTD_CFI_I4 is not set
++# CONFIG_MTD_CFI_I8 is not set
++CONFIG_MTD_CFI_INTELEXT=y
++# CONFIG_MTD_CFI_AMDSTD is not set
++# CONFIG_MTD_CFI_STAA is not set
++CONFIG_MTD_CFI_UTIL=y
++CONFIG_MTD_RAM=y
++# CONFIG_MTD_ROM is not set
++# CONFIG_MTD_ABSENT is not set
++# CONFIG_MTD_XIP is not set
++
++#
++# Mapping drivers for chip access
++#
++# CONFIG_MTD_COMPLEX_MAPPINGS is not set
++# CONFIG_MTD_PHYSMAP is not set
++# CONFIG_MTD_ARM_INTEGRATOR is not set
++CONFIG_MTD_SA1100=y
++# CONFIG_MTD_EDB7312 is not set
++# CONFIG_MTD_IMPA7 is not set
++
++#
++# Self-contained MTD device drivers
++#
++# CONFIG_MTD_SLRAM is not set
++# CONFIG_MTD_PHRAM is not set
++# CONFIG_MTD_MTDRAM is not set
++# CONFIG_MTD_BLKMTD is not set
++# CONFIG_MTD_BLOCK2MTD is not set
++
++#
++# Disk-On-Chip Device Drivers
++#
++# CONFIG_MTD_DOC2000 is not set
++# CONFIG_MTD_DOC2001 is not set
++# CONFIG_MTD_DOC2001PLUS is not set
++
++#
++# NAND Flash Device Drivers
++#
++# CONFIG_MTD_NAND is not set
++
++#
++# Parallel port support
++#
++# CONFIG_PARPORT is not set
++
++#
++# Plug and Play support
++#
++# CONFIG_PNP is not set
++
++#
++# Block devices
++#
++# CONFIG_BLK_DEV_FD is not set
++# CONFIG_BLK_DEV_XD is not set
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=m
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++# CONFIG_BLK_DEV_NBD is not set
++CONFIG_BLK_DEV_RAM=m
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=8192
++CONFIG_INITRAMFS_SOURCE=""
++# CONFIG_CDROM_PKTCDVD is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++# CONFIG_ATA_OVER_ETH is not set
++
++#
++# ATA/ATAPI/MFM/RLL support
++#
++# CONFIG_IDE is not set
++
++#
++# SCSI device support
++#
++# CONFIG_SCSI is not set
++
++#
++# Multi-device support (RAID and LVM)
++#
++# CONFIG_MD is not set
++
++#
++# Fusion MPT device support
++#
++
++#
++# IEEE 1394 (FireWire) support
++#
++
++#
++# I2O device support
++#
++
++#
++# Networking support
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++CONFIG_PACKET=y
++CONFIG_PACKET_MMAP=y
++# CONFIG_NETLINK_DEV is not set
++CONFIG_UNIX=y
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++# CONFIG_IP_MULTICAST is not set
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_PNP=y
++CONFIG_IP_PNP_DHCP=y
++CONFIG_IP_PNP_BOOTP=y
++# CONFIG_IP_PNP_RARP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_ARPD is not set
++# CONFIG_SYN_COOKIES is not set
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_TUNNEL is not set
++# CONFIG_IP_TCPDIAG is not set
++# CONFIG_IP_TCPDIAG_IPV6 is not set
++# CONFIG_IPV6 is not set
++# CONFIG_NETFILTER is not set
++
++#
++# SCTP Configuration (EXPERIMENTAL)
++#
++# CONFIG_IP_SCTP is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_NET_DIVERT is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++
++#
++# QoS and/or fair queueing
++#
++# CONFIG_NET_SCHED is not set
++# CONFIG_NET_CLS_ROUTE is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_HAMRADIO is not set
++CONFIG_IRDA=m
++
++#
++# IrDA protocols
++#
++CONFIG_IRLAN=m
++CONFIG_IRNET=m
++CONFIG_IRCOMM=m
++# CONFIG_IRDA_ULTRA is not set
++
++#
++# IrDA options
++#
++# CONFIG_IRDA_CACHE_LAST_LSAP is not set
++# CONFIG_IRDA_FAST_RR is not set
++# CONFIG_IRDA_DEBUG is not set
++
++#
++# Infrared-port device drivers
++#
++
++#
++# SIR device drivers
++#
++CONFIG_IRTTY_SIR=m
++
++#
++# Dongle support
++#
++# CONFIG_DONGLE is not set
++
++#
++# Old SIR device drivers
++#
++CONFIG_IRPORT_SIR=m
++
++#
++# Old Serial dongle support
++#
++# CONFIG_DONGLE_OLD is not set
++
++#
++# FIR device drivers
++#
++# CONFIG_NSC_FIR is not set
++# CONFIG_WINBOND_FIR is not set
++# CONFIG_SMC_IRCC_FIR is not set
++# CONFIG_ALI_FIR is not set
++CONFIG_SA1100_FIR=m
++CONFIG_BT=m
++CONFIG_BT_L2CAP=m
++CONFIG_BT_SCO=m
++CONFIG_BT_RFCOMM=m
++CONFIG_BT_RFCOMM_TTY=y
++CONFIG_BT_BNEP=m
++CONFIG_BT_BNEP_MC_FILTER=y
++CONFIG_BT_BNEP_PROTO_FILTER=y
++# CONFIG_BT_HIDP is not set
++
++#
++# Bluetooth device drivers
++#
++# CONFIG_BT_HCIUART is not set
++# CONFIG_BT_HCIDTL1 is not set
++# CONFIG_BT_HCIBT3C is not set
++# CONFIG_BT_HCIBLUECARD is not set
++# CONFIG_BT_HCIBTUART is not set
++# CONFIG_BT_HCIVHCI is not set
++CONFIG_NETDEVICES=y
++CONFIG_DUMMY=y
++# CONFIG_BONDING is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++
++#
++# ARCnet devices
++#
++# CONFIG_ARCNET is not set
++
++#
++# Ethernet (10 or 100Mbit)
++#
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=m
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_LANCE is not set
++# CONFIG_NET_VENDOR_SMC is not set
++# CONFIG_SMC91X is not set
++# CONFIG_NET_VENDOR_RACAL is not set
++# CONFIG_AT1700 is not set
++# CONFIG_DEPCA is not set
++# CONFIG_HP100 is not set
++# CONFIG_NET_ISA is not set
++CONFIG_NET_PCI=y
++# CONFIG_AC3200 is not set
++# CONFIG_APRICOT is not set
++# CONFIG_CS89x0 is not set
++# CONFIG_NET_POCKET is not set
++
++#
++# Ethernet (1000 Mbit)
++#
++
++#
++# Ethernet (10000 Mbit)
++#
++
++#
++# Token Ring devices
++#
++# CONFIG_TR is not set
++
++#
++# Wireless LAN (non-hamradio)
++#
++CONFIG_NET_RADIO=y
++
++#
++# Obsolete Wireless cards support (pre-802.11)
++#
++# CONFIG_STRIP is not set
++# CONFIG_ARLAN is not set
++# CONFIG_WAVELAN is not set
++CONFIG_PCMCIA_WAVELAN=m
++# CONFIG_PCMCIA_NETWAVE is not set
++
++#
++# Wireless 802.11 Frequency Hopping cards support
++#
++# CONFIG_PCMCIA_RAYCS is not set
++
++#
++# Wireless 802.11b ISA/PCI cards support
++#
++# CONFIG_HERMES is not set
++# CONFIG_ATMEL is not set
++
++#
++# Wireless 802.11b Pcmcia/Cardbus cards support
++#
++# CONFIG_AIRO_CS is not set
++# CONFIG_PCMCIA_WL3501 is not set
++CONFIG_NET_WIRELESS=y
++
++#
++# PCMCIA network device support
++#
++CONFIG_NET_PCMCIA=y
++CONFIG_PCMCIA_3C589=m
++CONFIG_PCMCIA_3C574=m
++# CONFIG_PCMCIA_FMVJ18X is not set
++CONFIG_PCMCIA_PCNET=m
++# CONFIG_PCMCIA_NMCLAN is not set
++CONFIG_PCMCIA_SMC91C92=m
++CONFIG_PCMCIA_XIRC2PS=m
++# CONFIG_PCMCIA_AXNET is not set
++
++#
++# Wan interfaces
++#
++# CONFIG_WAN is not set
++CONFIG_PPP=m
++CONFIG_PPP_MULTILINK=y
++CONFIG_PPP_FILTER=y
++CONFIG_PPP_ASYNC=m
++CONFIG_PPP_SYNC_TTY=m
++CONFIG_PPP_DEFLATE=m
++CONFIG_PPP_BSDCOMP=m
++CONFIG_PPPOE=m
++# CONFIG_SLIP is not set
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++
++#
++# ISDN subsystem
++#
++# CONFIG_ISDN is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=800
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=600
++# CONFIG_INPUT_JOYDEV is not set
++CONFIG_INPUT_TSDEV=y
++CONFIG_INPUT_TSDEV_SCREEN_X=800
++CONFIG_INPUT_TSDEV_SCREEN_Y=600
++CONFIG_INPUT_EVDEV=m
++CONFIG_INPUT_EVBUG=y
++
++#
++# Input Device Drivers
++#
++# CONFIG_INPUT_KEYBOARD is not set
++# CONFIG_INPUT_MOUSE is not set
++# CONFIG_INPUT_JOYSTICK is not set
++# CONFIG_INPUT_TOUCHSCREEN is not set
++# CONFIG_INPUT_MISC is not set
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=m
++CONFIG_SERIO_SERPORT=m
++# CONFIG_SERIO_LIBPS2 is not set
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++CONFIG_SOUND_GAMEPORT=y
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_SERIAL_NONSTANDARD is not set
++
++#
++# Serial drivers
++#
++# CONFIG_SERIAL_8250 is not set
++
++#
++# Non-8250 serial port support
++#
++CONFIG_SERIAL_SA1100=y
++CONFIG_SERIAL_SA1100_CONSOLE=y
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++
++#
++# IPMI
++#
++# CONFIG_IPMI_HANDLER is not set
++
++#
++# Watchdog Cards
++#
++# CONFIG_WATCHDOG is not set
++# CONFIG_NVRAM is not set
++# CONFIG_RTC is not set
++# CONFIG_DTLK is not set
++# CONFIG_R3964 is not set
++
++#
++# Ftape, the floppy tape device driver
++#
++# CONFIG_DRM is not set
++
++#
++# PCMCIA character devices
++#
++# CONFIG_SYNCLINK_CS is not set
++# CONFIG_RAW_DRIVER is not set
++
++#
++# TPM devices
++#
++# CONFIG_TCG_TPM is not set
++
++#
++# I2C support
++#
++# CONFIG_I2C is not set
++
++#
++# Misc devices
++#
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++
++#
++# Digital Video Broadcasting Devices
++#
++# CONFIG_DVB is not set
++
++#
++# Graphics support
++#
++CONFIG_FB=y
++# CONFIG_FB_CFB_FILLRECT is not set
++# CONFIG_FB_CFB_COPYAREA is not set
++# CONFIG_FB_CFB_IMAGEBLIT is not set
++# CONFIG_FB_SOFT_CURSOR is not set
++# CONFIG_FB_MODE_HELPERS is not set
++# CONFIG_FB_TILEBLITTING is not set
++# CONFIG_FB_SA1100 is not set
++# CONFIG_FB_VIRTUAL is not set
++
++#
++# Console display driver support
++#
++# CONFIG_VGA_CONSOLE is not set
++# CONFIG_MDA_CONSOLE is not set
++CONFIG_DUMMY_CONSOLE=y
++CONFIG_FRAMEBUFFER_CONSOLE=y
++# CONFIG_FONTS is not set
++CONFIG_FONT_8x8=y
++CONFIG_FONT_8x16=y
++
++#
++# Logo configuration
++#
++CONFIG_LOGO=y
++CONFIG_LOGO_LINUX_MONO=y
++CONFIG_LOGO_LINUX_VGA16=y
++CONFIG_LOGO_LINUX_CLUT224=y
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Sound
++#
++CONFIG_SOUND=y
++
++#
++# Advanced Linux Sound Architecture
++#
++# CONFIG_SND is not set
++
++#
++# Open Sound System
++#
++# CONFIG_SOUND_PRIME is not set
++
++#
++# USB support
++#
++CONFIG_USB_ARCH_HAS_HCD=y
++# CONFIG_USB_ARCH_HAS_OHCI is not set
++# CONFIG_USB is not set
++
++#
++# USB Gadget Support
++#
++# CONFIG_USB_GADGET is not set
++
++#
++# MMC/SD Card support
++#
++# CONFIG_MMC is not set
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=m
++# CONFIG_EXT2_FS_XATTR is not set
++CONFIG_EXT3_FS=m
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++CONFIG_JBD=m
++# CONFIG_JBD_DEBUG is not set
++CONFIG_FS_MBCACHE=m
++CONFIG_REISERFS_FS=m
++# CONFIG_REISERFS_CHECK is not set
++CONFIG_REISERFS_PROC_INFO=y
++# CONFIG_REISERFS_FS_XATTR is not set
++# CONFIG_JFS_FS is not set
++
++#
++# XFS support
++#
++# CONFIG_XFS_FS is not set
++# CONFIG_MINIX_FS is not set
++# CONFIG_ROMFS_FS is not set
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++# CONFIG_ISO9660_FS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=m
++CONFIG_MSDOS_FS=m
++CONFIG_VFAT_FS=m
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_SYSFS=y
++CONFIG_DEVFS_FS=y
++CONFIG_DEVFS_MOUNT=y
++# CONFIG_DEVFS_DEBUG is not set
++# CONFIG_DEVPTS_FS_XATTR is not set
++# CONFIG_TMPFS is not set
++# CONFIG_HUGETLB_PAGE is not set
++CONFIG_RAMFS=y
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++CONFIG_JFFS_FS=m
++CONFIG_JFFS_FS_VERBOSE=0
++# CONFIG_JFFS_PROC_FS is not set
++CONFIG_JFFS2_FS=y
++CONFIG_JFFS2_FS_DEBUG=0
++# CONFIG_JFFS2_FS_NAND is not set
++# CONFIG_JFFS2_FS_NOR_ECC is not set
++# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
++CONFIG_JFFS2_ZLIB=y
++CONFIG_JFFS2_RTIME=y
++# CONFIG_JFFS2_RUBIN is not set
++CONFIG_CRAMFS=m
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++
++#
++# Network File Systems
++#
++CONFIG_NFS_FS=y
++CONFIG_NFS_V3=y
++# CONFIG_NFS_V4 is not set
++# CONFIG_NFS_DIRECTIO is not set
++# CONFIG_NFSD is not set
++# CONFIG_ROOT_NFS is not set
++CONFIG_LOCKD=y
++CONFIG_LOCKD_V4=y
++CONFIG_SUNRPC=y
++# CONFIG_RPCSEC_GSS_KRB5 is not set
++# CONFIG_RPCSEC_GSS_SPKM3 is not set
++CONFIG_SMB_FS=m
++# CONFIG_SMB_NLS_DEFAULT is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++# CONFIG_PARTITION_ADVANCED is not set
++CONFIG_MSDOS_PARTITION=y
++
++#
++# Native Language Support
++#
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++CONFIG_NLS_CODEPAGE_437=y
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++CONFIG_NLS_CODEPAGE_850=y
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++# CONFIG_NLS_ASCII is not set
++CONFIG_NLS_ISO8859_1=y
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++CONFIG_NLS_ISO8859_15=y
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++
++#
++# Profiling support
++#
++# CONFIG_PROFILING is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_MAGIC_SYSRQ is not set
++CONFIG_LOG_BUF_SHIFT=14
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_DEBUG_SLAB is not set
++CONFIG_DEBUG_PREEMPT=y
++# CONFIG_DEBUG_SPINLOCK is not set
++# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
++# CONFIG_DEBUG_KOBJECT is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++# CONFIG_DEBUG_INFO is not set
++# CONFIG_DEBUG_FS is not set
++CONFIG_FRAME_POINTER=y
++CONFIG_DEBUG_USER=y
++CONFIG_DEBUG_ERRORS=y
++CONFIG_DEBUG_LL=y
++# CONFIG_DEBUG_ICEDCC is not set
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++
++#
++# Cryptographic options
++#
++# CONFIG_CRYPTO is not set
++
++#
++# Hardware crypto devices
++#
++
++#
++# Library routines
++#
++CONFIG_CRC_CCITT=m
++CONFIG_CRC32=y
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=y
++CONFIG_ZLIB_DEFLATE=y
+diff -uNr linux-2.6.20.vanilla/drivers/video/Kconfig linux-2.6.20/drivers/video/Kconfig
+--- linux-2.6.20.vanilla/drivers/video/Kconfig 2007-02-10 19:02:14.000000000 +0100
++++ linux-2.6.20/drivers/video/Kconfig 2007-02-11 16:39:54.000000000 +0100
+@@ -1147,6 +1147,18 @@
+       help
+         If you have a S3 Trio say Y. Say N for S3 Virge.
++config FB_MQ200
++        bool "MQ200 Driver"
++        depends on (FB = y) && ARM && ARCH_SA1100
++        select FB_CFB_FILLRECT
++        select FB_CFB_COPYAREA
++        select FB_CFB_IMAGEBLIT
++        help
++         This is a MQ200 driver tested only on Simens SIMpads. You may need to
++         boot your SIMpad with a 2.4 SIMpad Kernel first in order to use this
++         driver. This is also needed if the SIMpad lost his power 
++         connection (empty accu or accu disconnect). 
++
+ config FB_SAVAGE
+       tristate "S3 Savage support"
+       depends on FB && PCI && EXPERIMENTAL
+diff -uNr linux-2.6.20.vanilla/drivers/video/Kconfig~ linux-2.6.20/drivers/video/Kconfig~
+--- linux-2.6.20.vanilla/drivers/video/Kconfig~        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.20/drivers/video/Kconfig~        2007-02-11 16:36:10.000000000 +0100
+@@ -0,0 +1,1662 @@
++#
++# Video configuration
++#
++
++menu "Graphics support"
++
++config FIRMWARE_EDID
++       bool "Enable firmware EDID"
++       default y
++       ---help---
++         This enables access to the EDID transferred from the firmware.
++       On the i386, this is from the Video BIOS. Enable this if DDC/I2C
++       transfers do not work for your driver and if you are using
++       nvidiafb, i810fb or savagefb.
++
++       In general, choosing Y for this option is safe.  If you
++       experience extremely long delays while booting before you get
++       something on your display, try setting this to N.  Matrox cards in
++       combination with certain motherboards and monitors are known to
++       suffer from this problem.
++
++config FB
++      tristate "Support for frame buffer devices"
++      ---help---
++        The frame buffer device provides an abstraction for the graphics
++        hardware. It represents the frame buffer of some video hardware and
++        allows application software to access the graphics hardware through
++        a well-defined interface, so the software doesn't need to know
++        anything about the low-level (hardware register) stuff.
++
++        Frame buffer devices work identically across the different
++        architectures supported by Linux and make the implementation of
++        application programs easier and more portable; at this point, an X
++        server exists which uses the frame buffer device exclusively.
++        On several non-X86 architectures, the frame buffer device is the
++        only way to use the graphics hardware.
++
++        The device is accessed through special device nodes, usually located
++        in the /dev directory, i.e. /dev/fb*.
++
++        You need an utility program called fbset to make full use of frame
++        buffer devices. Please read <file:Documentation/fb/framebuffer.txt>
++        and the Framebuffer-HOWTO at
++        <http://www.tahallah.demon.co.uk/programming/prog.html> for more
++        information.
++
++        Say Y here and to the driver for your graphics board below if you
++        are compiling a kernel for a non-x86 architecture.
++
++        If you are compiling for the x86 architecture, you can say Y if you
++        want to play with it, but it is not essential. Please note that
++        running graphical applications that directly touch the hardware
++        (e.g. an accelerated X server) and that are not frame buffer
++        device-aware may cause unexpected results. If unsure, say N.
++
++config FB_DDC
++       tristate
++       depends on FB && I2C && I2C_ALGOBIT
++       default n
++
++config FB_CFB_FILLRECT
++      tristate
++      depends on FB
++      default n
++      ---help---
++        Include the cfb_fillrect function for generic software rectangle
++        filling. This is used by drivers that don't provide their own
++        (accelerated) version.
++
++config FB_CFB_COPYAREA
++      tristate
++      depends on FB
++      default n
++      ---help---
++        Include the cfb_copyarea function for generic software area copying.
++        This is used by drivers that don't provide their own (accelerated)
++        version.
++
++config FB_CFB_IMAGEBLIT
++      tristate
++      depends on FB
++      default n
++      ---help---
++        Include the cfb_imageblit function for generic software image
++        blitting. This is used by drivers that don't provide their own
++        (accelerated) version.
++
++config FB_MACMODES
++       tristate
++       depends on FB
++       default n
++
++config FB_BACKLIGHT
++      bool
++      depends on FB
++      select BACKLIGHT_LCD_SUPPORT
++      select BACKLIGHT_CLASS_DEVICE
++      default n
++
++config FB_MODE_HELPERS
++        bool "Enable Video Mode Handling Helpers"
++        depends on FB
++      default n
++      ---help---
++        This enables functions for handling video modes using the
++        Generalized Timing Formula and the EDID parser. A few drivers rely
++          on this feature such as the radeonfb, rivafb, and the i810fb. If
++        your driver does not take advantage of this feature, choosing Y will
++        just increase the kernel size by about 5K.
++
++config FB_TILEBLITTING
++       bool "Enable Tile Blitting Support"
++       depends on FB
++       default n
++       ---help---
++         This enables tile blitting.  Tile blitting is a drawing technique
++       where the screen is divided into rectangular sections (tiles), whereas
++       the standard blitting divides the screen into pixels. Because the
++       default drawing element is a tile, drawing functions will be passed
++       parameters in terms of number of tiles instead of number of pixels.
++       For example, to draw a single character, instead of using bitmaps,
++       an index to an array of bitmaps will be used.  To clear or move a
++       rectangular section of a screen, the rectangle will be described in
++       terms of number of tiles in the x- and y-axis.
++
++       This is particularly important to one driver, matroxfb.  If
++       unsure, say N.
++
++config FB_CIRRUS
++      tristate "Cirrus Logic support"
++      depends on FB && (ZORRO || PCI)
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      ---help---
++        This enables support for Cirrus Logic GD542x/543x based boards on
++        Amiga: SD64, Piccolo, Picasso II/II+, Picasso IV, or EGS Spectrum.
++
++        If you have a PCI-based system, this enables support for these
++        chips: GD-543x, GD-544x, GD-5480.
++
++        Please read the file <file:Documentation/fb/cirrusfb.txt>.
++
++        Say N unless you have such a graphics board or plan to get one
++        before you next recompile the kernel.
++
++config FB_PM2
++      tristate "Permedia2 support"
++      depends on FB && ((AMIGA && BROKEN) || PCI)
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is the frame buffer device driver for the Permedia2 AGP frame
++        buffer card from ASK, aka `Graphic Blaster Exxtreme'.  There is a
++        product page at
++        <http://www.ask.com.hk/product/Permedia%202/permedia2.htm>.
++
++config FB_PM2_FIFO_DISCONNECT
++      bool "enable FIFO disconnect feature"
++      depends on FB_PM2 && PCI
++      help
++        Support the Permedia2 FIFO disconnect feature (see CONFIG_FB_PM2).
++
++config FB_ARMCLCD
++      tristate "ARM PrimeCell PL110 support"
++      depends on FB && ARM && ARM_AMBA
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This framebuffer device driver is for the ARM PrimeCell PL110
++        Colour LCD controller.  ARM PrimeCells provide the building
++        blocks for System on a Chip devices.
++
++        If you want to compile this as a module (=code which can be
++        inserted into and removed from the running kernel), say M
++        here and read <file:Documentation/modules.txt>.  The module
++        will be called amba-clcd.
++
++choice
++
++      depends on FB_ARMCLCD && (ARCH_LH7A40X || ARCH_LH7952X)
++      prompt "LCD Panel"
++      default FB_ARMCLCD_SHARP_LQ035Q7DB02
++
++config FB_ARMCLCD_SHARP_LQ035Q7DB02_HRTFT
++      bool "LogicPD LCD 3.5\" QVGA w/HRTFT IC"
++      help
++        This is an implementation of the Sharp LQ035Q7DB02, a 3.5"
++        color QVGA, HRTFT panel.  The LogicPD device includes
++        an integrated HRTFT controller IC.
++        The native resolution is 240x320.
++
++config FB_ARMCLCD_SHARP_LQ057Q3DC02
++      bool "LogicPD LCD 5.7\" QVGA"
++      help
++        This is an implementation of the Sharp LQ057Q3DC02, a 5.7"
++        color QVGA, TFT panel.  The LogicPD device includes an
++        The native resolution is 320x240.
++
++config FB_ARMCLCD_SHARP_LQ64D343
++      bool "LogicPD LCD 6.4\" VGA"
++      help
++        This is an implementation of the Sharp LQ64D343, a 6.4"
++        color VGA, TFT panel.  The LogicPD device includes an
++        The native resolution is 640x480.
++
++config FB_ARMCLCD_SHARP_LQ10D368
++      bool "LogicPD LCD 10.4\" VGA"
++      help
++        This is an implementation of the Sharp LQ10D368, a 10.4"
++        color VGA, TFT panel.  The LogicPD device includes an
++        The native resolution is 640x480.
++
++
++config FB_ARMCLCD_SHARP_LQ121S1DG41
++      bool "LogicPD LCD 12.1\" SVGA"
++      help
++        This is an implementation of the Sharp LQ121S1DG41, a 12.1"
++        color SVGA, TFT panel.  The LogicPD device includes an
++        The native resolution is 800x600.
++
++        This panel requires a clock rate may be an integer fraction
++        of the base LCDCLK frequency.  The driver will select the
++        highest frequency available that is lower than the maximum
++        allowed.  The panel may flicker if the clock rate is
++        slower than the recommended minimum.
++
++config FB_ARMCLCD_AUO_A070VW01_WIDE
++      bool "AU Optronics A070VW01 LCD 7.0\" WIDE"
++      help
++        This is an implementation of the AU Optronics, a 7.0"
++        WIDE Color.  The native resolution is 234x480.
++
++config FB_ARMCLCD_HITACHI
++      bool "Hitachi Wide Screen 800x480"
++      help
++        This is an implementation of the Hitachi 800x480.
++
++endchoice
++
++
++config FB_ACORN
++      bool "Acorn VIDC support"
++      depends on (FB = y) && ARM && (ARCH_ACORN || ARCH_CLPS7500)
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is the frame buffer device driver for the Acorn VIDC graphics
++        hardware found in Acorn RISC PCs and other ARM-based machines.  If
++        unsure, say N.
++
++config FB_CLPS711X
++      bool "CLPS711X LCD support"
++      depends on (FB = y) && ARM && ARCH_CLPS711X
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        Say Y to enable the Framebuffer driver for the CLPS7111 and
++        EP7212 processors.
++
++config FB_SA1100
++      bool "SA-1100 LCD support"
++      depends on (FB = y) && ARM && ARCH_SA1100
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is a framebuffer device for the SA-1100 LCD Controller.
++        See <http://www.linux-fbdev.org/> for information on framebuffer
++        devices.
++
++        If you plan to use the LCD display with your SA-1100 system, say
++        Y here.
++
++config FB_IMX
++      tristate "Motorola i.MX LCD support"
++      depends on FB && ARM && ARCH_IMX
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++
++config FB_CYBER2000
++      tristate "CyberPro 2000/2010/5000 support"
++      depends on FB && PCI && (BROKEN || !SPARC64)
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This enables support for the Integraphics CyberPro 20x0 and 5000
++        VGA chips used in the Rebel.com Netwinder and other machines.
++        Say Y if you have a NetWinder or a graphics card containing this
++        device, otherwise say N.
++
++config FB_APOLLO
++      bool
++      depends on (FB = y) && APOLLO
++      default y
++      select FB_CFB_FILLRECT
++      select FB_CFB_IMAGEBLIT
++
++config FB_Q40
++      bool
++      depends on (FB = y) && Q40
++      default y
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++
++config FB_AMIGA
++      tristate "Amiga native chipset support"
++      depends on FB && AMIGA
++      help
++        This is the frame buffer device driver for the builtin graphics
++        chipset found in Amigas.
++
++        To compile this driver as a module, choose M here: the
++        module will be called amifb.
++
++config FB_AMIGA_OCS
++      bool "Amiga OCS chipset support"
++      depends on FB_AMIGA
++      help
++        This enables support for the original Agnus and Denise video chips,
++        found in the Amiga 1000 and most A500's and A2000's. If you intend
++        to run Linux on any of these systems, say Y; otherwise say N.
++
++config FB_AMIGA_ECS
++      bool "Amiga ECS chipset support"
++      depends on FB_AMIGA
++      help
++        This enables support for the Enhanced Chip Set, found in later
++        A500's, later A2000's, the A600, the A3000, the A3000T and CDTV. If
++        you intend to run Linux on any of these systems, say Y; otherwise
++        say N.
++
++config FB_AMIGA_AGA
++      bool "Amiga AGA chipset support"
++      depends on FB_AMIGA
++      help
++        This enables support for the Advanced Graphics Architecture (also
++        known as the AGA or AA) Chip Set, found in the A1200, A4000, A4000T
++        and CD32. If you intend to run Linux on any of these systems, say Y;
++        otherwise say N.
++
++config FB_CYBER
++      tristate "Amiga CyberVision 64 support"
++      depends on FB && ZORRO && BROKEN
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This enables support for the Cybervision 64 graphics card from
++        Phase5. Please note that its use is not all that intuitive (i.e. if
++        you have any questions, be sure to ask!). Say N unless you have a
++        Cybervision 64 or plan to get one before you next recompile the
++        kernel. Please note that this driver DOES NOT support the
++        Cybervision 64/3D card, as they use incompatible video chips.
++
++config FB_VIRGE
++      bool "Amiga CyberVision 64/3D support "
++      depends on (FB = y) && ZORRO && BROKEN
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This enables support for the Cybervision 64/3D graphics card from
++        Phase5. Please note that its use is not all that intuitive (i.e. if
++        you have any questions, be sure to ask!). Say N unless you have a
++        Cybervision 64/3D or plan to get one before you next recompile the
++        kernel. Please note that this driver DOES NOT support the older
++        Cybervision 64 card, as they use incompatible video chips.
++
++config FB_RETINAZ3
++      tristate "Amiga Retina Z3 support"
++      depends on (FB = y) && ZORRO && BROKEN
++      help
++        This enables support for the Retina Z3 graphics card. Say N unless
++        you have a Retina Z3 or plan to get one before you next recompile
++        the kernel.
++
++config FB_FM2
++      bool "Amiga FrameMaster II/Rainbow II support"
++      depends on (FB = y) && ZORRO
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is the frame buffer device driver for the Amiga FrameMaster
++        card from BSC (exhibited 1992 but not shipped as a CBM product).
++
++config FB_ARC
++      tristate "Arc Monochrome LCD board support"
++      depends on FB && X86
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This enables support for the Arc Monochrome LCD board. The board
++        is based on the KS-108 lcd controller and is typically a matrix
++        of 2*n chips. This driver was tested with a 128x64 panel. This
++        driver supports it for use with x86 SBCs through a 16 bit GPIO
++        interface (8 bit data, 8 bit control). If you anticipate using
++        this driver, say Y or M; otherwise say N. You must specify the
++        GPIO IO address to be used for setting control and data.
++
++config FB_ATARI
++      bool "Atari native chipset support"
++      depends on (FB = y) && ATARI && BROKEN
++      help
++        This is the frame buffer device driver for the builtin graphics
++        chipset found in Ataris.
++
++config FB_OF
++      bool "Open Firmware frame buffer device support"
++      depends on (FB = y) && (PPC64 || PPC_OF)
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      select FB_MACMODES
++      help
++        Say Y if you want support with Open Firmware for your graphics
++        board.
++
++config FB_CONTROL
++      bool "Apple \"control\" display support"
++      depends on (FB = y) && PPC_PMAC && PPC32
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      select FB_MACMODES
++      help
++        This driver supports a frame buffer for the graphics adapter in the
++        Power Macintosh 7300 and others.
++
++config FB_PLATINUM
++      bool "Apple \"platinum\" display support"
++      depends on (FB = y) && PPC_PMAC && PPC32
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      select FB_MACMODES
++      help
++        This driver supports a frame buffer for the "platinum" graphics
++        adapter in some Power Macintoshes.
++
++config FB_VALKYRIE
++      bool "Apple \"valkyrie\" display support"
++      depends on (FB = y) && (MAC || (PPC_PMAC && PPC32))
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      select FB_MACMODES
++      help
++        This driver supports a frame buffer for the "valkyrie" graphics
++        adapter in some Power Macintoshes.
++
++config FB_CT65550
++      bool "Chips 65550 display support"
++      depends on (FB = y) && PPC32
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is the frame buffer device driver for the Chips & Technologies
++        65550 graphics chip in PowerBooks.
++
++config FB_ASILIANT
++      bool "Asiliant (Chips) 69000 display support"
++      depends on (FB = y) && PCI
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is the frame buffer device driver for the Asiliant 69030 chipset
++
++config FB_IMSTT
++      bool "IMS Twin Turbo display support"
++      depends on (FB = y) && PCI
++      select FB_CFB_IMAGEBLIT
++      select FB_MACMODES if PPC
++      help
++        The IMS Twin Turbo is a PCI-based frame buffer card bundled with
++        many Macintosh and compatible computers.
++
++config FB_VGA16
++      tristate "VGA 16-color graphics support"
++      depends on FB && (X86 || PPC)
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is the frame buffer device driver for VGA 16 color graphic
++        cards. Say Y if you have such a card.
++
++        To compile this driver as a module, choose M here: the
++        module will be called vga16fb.
++
++config FB_STI
++      tristate "HP STI frame buffer device support"
++      depends on FB && PARISC
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      default y
++      ---help---
++        STI refers to the HP "Standard Text Interface" which is a set of
++        BIOS routines contained in a ROM chip in HP PA-RISC based machines.
++        Enabling this option will implement the linux framebuffer device
++        using calls to the STI BIOS routines for initialisation.
++      
++        If you enable this option, you will get a planar framebuffer device
++        /dev/fb which will work on the most common HP graphic cards of the
++        NGLE family, including the artist chips (in the 7xx and Bxxx series),
++        HCRX, HCRX24, CRX, CRX24 and VisEG series.
++
++        It is safe to enable this option, so you should probably say "Y".
++
++config FB_MAC
++      bool "Generic Macintosh display support"
++      depends on (FB = y) && MAC
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      select FB_MACMODES
++
++#      bool '  Apple DAFB display support' CONFIG_FB_DAFB
++config FB_HP300
++      bool
++      depends on (FB = y) && HP300
++      select FB_CFB_FILLRECT
++      select FB_CFB_IMAGEBLIT
++      default y
++
++config FB_TGA
++      tristate "TGA framebuffer support"
++      depends on FB && ALPHA
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      select BITREVERSE
++      help
++        This is the frame buffer device driver for generic TGA graphic
++        cards. Say Y if you have one of those.
++
++config FB_VESA
++      bool "VESA VGA graphics support"
++      depends on (FB = y) && X86
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      select VIDEO_SELECT
++      help
++        This is the frame buffer device driver for generic VESA 2.0
++        compliant graphic cards. The older VESA 1.2 cards are not supported.
++        You will get a boot time penguin logo at no additional cost. Please
++        read <file:Documentation/fb/vesafb.txt>. If unsure, say Y.
++
++config FB_IMAC
++      bool "Intel-based Macintosh Framebuffer Support"
++      depends on (FB = y) && X86 && EFI
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is the frame buffer device driver for the Intel-based Macintosh
++
++config FB_HGA
++      tristate "Hercules mono graphics support"
++      depends on FB && X86
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        Say Y here if you have a Hercules mono graphics card.
++
++        To compile this driver as a module, choose M here: the
++        module will be called hgafb.
++
++        As this card technology is 15 years old, most people will answer N
++        here.
++
++config FB_HGA_ACCEL
++      bool "Hercules mono Acceleration functions (EXPERIMENTAL)"
++      depends on FB_HGA && EXPERIMENTAL
++      ---help---
++      This will compile the Hercules mono graphics with
++      acceleration functions.
++
++config FB_SGIVW
++      tristate "SGI Visual Workstation framebuffer support"
++      depends on FB && X86_VISWS
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        SGI Visual Workstation support for framebuffer graphics.
++
++config FB_GBE
++      bool "SGI Graphics Backend frame buffer support"
++      depends on (FB = y) && (SGI_IP32 || X86_VISWS)
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is the frame buffer device driver for SGI Graphics Backend.
++        This chip is used in SGI O2 and Visual Workstation 320/540.
++
++config FB_GBE_MEM
++      int "Video memory size in MB"
++      depends on FB_GBE
++      default 4
++      help
++        This is the amount of memory reserved for the framebuffer,
++        which can be any value between 1MB and 8MB.
++
++config FB_SUN3
++      bool "Sun3 framebuffer support"
++      depends on (FB = y) && (SUN3 || SUN3X) && BROKEN
++
++config FB_SBUS
++      bool "SBUS and UPA framebuffers"
++      depends on (FB = y) && SPARC
++      help
++        Say Y if you want support for SBUS or UPA based frame buffer device.
++
++config FB_BW2
++      bool "BWtwo support"
++      depends on (FB = y) && (SPARC && FB_SBUS || (SUN3 || SUN3X) && FB_SUN3)
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is the frame buffer device driver for the BWtwo frame buffer.
++
++config FB_CG3
++      bool "CGthree support"
++      depends on (FB = y) && (SPARC && FB_SBUS || (SUN3 || SUN3X) && FB_SUN3)
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is the frame buffer device driver for the CGthree frame buffer.
++
++config FB_CG6
++      bool "CGsix (GX,TurboGX) support"
++      depends on (FB = y) && (SPARC && FB_SBUS || (SUN3 || SUN3X) && FB_SUN3)
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is the frame buffer device driver for the CGsix (GX, TurboGX)
++        frame buffer.
++
++config FB_PVR2
++      tristate "NEC PowerVR 2 display support"
++      depends on FB && SH_DREAMCAST
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      ---help---
++        Say Y here if you have a PowerVR 2 card in your box.  If you plan to
++        run linux on your Dreamcast, you will have to say Y here.
++        This driver may or may not work on other PowerVR 2 cards, but is
++        totally untested.  Use at your own risk.  If unsure, say N.
++
++        To compile this driver as a module, choose M here: the
++        module will be called pvr2fb.
++
++        You can pass several parameters to the driver at boot time or at
++        module load time.  The parameters look like "video=pvr2:XXX", where
++        the meaning of XXX can be found at the end of the main source file
++        (<file:drivers/video/pvr2fb.c>). Please see the file
++        <file:Documentation/fb/pvr2fb.txt>.
++
++config FB_EPSON1355
++      bool "Epson 1355 framebuffer support"
++      depends on (FB = y) && (SUPERH || ARCH_CEIVA)
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        Build in support for the SED1355 Epson Research Embedded RAMDAC
++        LCD/CRT Controller (since redesignated as the S1D13505) as a
++        framebuffer.  Product specs at
++        <http://www.erd.epson.com/vdc/html/products.htm>.
++
++config FB_S1D13XXX
++      tristate "Epson S1D13XXX framebuffer support"
++      depends on FB
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        Support for S1D13XXX framebuffer device family (currently only
++        working with S1D13806). Product specs at
++        <http://www.erd.epson.com/vdc/html/legacy_13xxx.htm>
++
++config FB_NVIDIA
++      tristate "nVidia Framebuffer Support"
++      depends on FB && PCI
++      select I2C_ALGOBIT if FB_NVIDIA_I2C
++      select I2C if FB_NVIDIA_I2C
++      select FB_MODE_HELPERS
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      select BITREVERSE
++      help
++        This driver supports graphics boards with the nVidia chips, TNT
++        and newer. For very old chipsets, such as the RIVA128, then use
++        the rivafb.
++        Say Y if you have such a graphics board.
++
++        To compile this driver as a module, choose M here: the
++        module will be called nvidiafb.
++
++config FB_NVIDIA_I2C
++       bool "Enable DDC Support"
++       depends on FB_NVIDIA
++       help
++        This enables I2C support for nVidia Chipsets.  This is used
++        only for getting EDID information from the attached display
++        allowing for robust video mode handling and switching.
++
++        Because fbdev-2.6 requires that drivers must be able to
++        independently validate video mode parameters, you should say Y
++        here.
++
++config FB_NVIDIA_BACKLIGHT
++      bool "Support for backlight control"
++      depends on FB_NVIDIA && PMAC_BACKLIGHT
++      select FB_BACKLIGHT
++      default y
++      help
++        Say Y here if you want to control the backlight of your display.
++
++config FB_RIVA
++      tristate "nVidia Riva support"
++      depends on FB && PCI
++      select I2C_ALGOBIT if FB_RIVA_I2C
++      select I2C if FB_RIVA_I2C
++      select FB_DDC if FB_RIVA_I2C
++      select FB_MODE_HELPERS
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      select BITREVERSE
++      help
++        This driver supports graphics boards with the nVidia Riva/Geforce
++        chips.
++        Say Y if you have such a graphics board.
++
++        To compile this driver as a module, choose M here: the
++        module will be called rivafb.
++
++config FB_RIVA_I2C
++       bool "Enable DDC Support"
++       depends on FB_RIVA
++       help
++        This enables I2C support for nVidia Chipsets.  This is used
++        only for getting EDID information from the attached display
++        allowing for robust video mode handling and switching.
++
++        Because fbdev-2.6 requires that drivers must be able to
++        independently validate video mode parameters, you should say Y
++        here.
++
++config FB_RIVA_DEBUG
++      bool "Lots of debug output from Riva(nVidia) driver"
++      depends on FB_RIVA
++      default n
++      help
++        Say Y here if you want the Riva driver to output all sorts
++        of debugging information to provide to the maintainer when
++        something goes wrong.
++
++config FB_RIVA_BACKLIGHT
++      bool "Support for backlight control"
++      depends on FB_RIVA && PMAC_BACKLIGHT
++      select FB_BACKLIGHT
++      default y
++      help
++        Say Y here if you want to control the backlight of your display.
++
++config FB_I810
++      tristate "Intel 810/815 support (EXPERIMENTAL)"
++      depends on FB && EXPERIMENTAL && PCI && X86_32
++      select AGP
++      select AGP_INTEL
++      select FB_MODE_HELPERS
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This driver supports the on-board graphics built in to the Intel 810 
++          and 815 chipsets.  Say Y if you have and plan to use such a board.
++
++          To compile this driver as a module, choose M here: the
++        module will be called i810fb.
++
++          For more information, please read 
++        <file:Documentation/fb/intel810.txt>
++
++config FB_I810_GTF
++      bool "use VESA Generalized Timing Formula"
++      depends on FB_I810
++      help
++        If you say Y, then the VESA standard, Generalized Timing Formula 
++          or GTF, will be used to calculate the required video timing values
++        per video mode.  Since the GTF allows nondiscrete timings 
++          (nondiscrete being a range of values as opposed to discrete being a
++          set of values), you'll be able to use any combination of horizontal 
++        and vertical resolutions, and vertical refresh rates without having
++        to specify your own timing parameters.  This is especially useful
++        to maximize the performance of an aging display, or if you just 
++          have a display with nonstandard dimensions. A VESA compliant 
++        monitor is recommended, but can still work with non-compliant ones.
++        If you need or want this, then select this option. The timings may 
++        not be compliant with Intel's recommended values. Use at your own 
++        risk.
++
++          If you say N, the driver will revert to discrete video timings 
++        using a set recommended by Intel in their documentation.
++  
++          If unsure, say N.
++
++config FB_I810_I2C
++      bool "Enable DDC Support"
++      depends on FB_I810 && FB_I810_GTF
++      select I2C
++      select I2C_ALGOBIT
++      select FB_DDC
++      help
++
++config FB_INTEL
++      tristate "Intel 830M/845G/852GM/855GM/865G/915G/945G support (EXPERIMENTAL)"
++      depends on FB && EXPERIMENTAL && PCI && X86
++      select AGP
++      select AGP_INTEL
++      select I2C_ALGOBIT if FB_INTEL_I2C
++      select I2C if FB_INTEL_I2C
++      select FB_MODE_HELPERS
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This driver supports the on-board graphics built in to the Intel
++          830M/845G/852GM/855GM/865G/915G/915GM/945G/945GM chipsets.
++          Say Y if you have and plan to use such a board.
++
++        If you say Y here and want DDC/I2C support you must first say Y to
++        "I2C support" and "I2C bit-banging support" in the character devices
++        section.
++
++        If you say M here then "I2C support" and "I2C bit-banging support"
++        can be build either as modules or built-in.
++
++        To compile this driver as a module, choose M here: the
++        module will be called intelfb.
++
++        For more information, please read <file:Documentation/fb/intelfb.txt>
++
++config FB_INTEL_DEBUG
++      bool "Intel driver Debug Messages"
++      depends on FB_INTEL
++      ---help---
++        Say Y here if you want the Intel driver to output all sorts
++        of debugging information to provide to the maintainer when
++        something goes wrong.
++
++config FB_INTEL_I2C
++      bool "DDC/I2C for Intel framebuffer support"
++      depends on FB_INTEL
++      default y
++      help
++        Say Y here if you want DDC/I2C support for your on-board Intel graphics.
++
++config FB_MATROX
++      tristate "Matrox acceleration"
++      depends on FB && PCI
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      select FB_TILEBLITTING
++      select FB_MACMODES if PPC_PMAC
++      ---help---
++        Say Y here if you have a Matrox Millennium, Matrox Millennium II,
++        Matrox Mystique, Matrox Mystique 220, Matrox Productiva G100, Matrox
++        Mystique G200, Matrox Millennium G200, Matrox Marvel G200 video,
++        Matrox G400, G450 or G550 card in your box.
++
++        To compile this driver as a module, choose M here: the
++        module will be called matroxfb.
++
++        You can pass several parameters to the driver at boot time or at
++        module load time. The parameters look like "video=matrox:XXX", and
++        are described in <file:Documentation/fb/matroxfb.txt>.
++
++config FB_MATROX_MILLENIUM
++      bool "Millennium I/II support"
++      depends on FB_MATROX
++      help
++        Say Y here if you have a Matrox Millennium or Matrox Millennium II
++        video card. If you select "Advanced lowlevel driver options" below,
++        you should check 4 bpp packed pixel, 8 bpp packed pixel, 16 bpp
++        packed pixel, 24 bpp packed pixel and 32 bpp packed pixel. You can
++        also use font widths different from 8.
++
++config FB_MATROX_MYSTIQUE
++      bool "Mystique support"
++      depends on FB_MATROX
++      help
++        Say Y here if you have a Matrox Mystique or Matrox Mystique 220
++        video card. If you select "Advanced lowlevel driver options" below,
++        you should check 8 bpp packed pixel, 16 bpp packed pixel, 24 bpp
++        packed pixel and 32 bpp packed pixel. You can also use font widths
++        different from 8.
++
++config FB_MATROX_G
++      bool "G100/G200/G400/G450/G550 support"
++      depends on FB_MATROX
++      ---help---
++        Say Y here if you have a Matrox G100, G200, G400, G450 or G550 based
++        video card. If you select "Advanced lowlevel driver options", you
++        should check 8 bpp packed pixel, 16 bpp packed pixel, 24 bpp packed
++        pixel and 32 bpp packed pixel. You can also use font widths
++        different from 8.
++
++        If you need support for G400 secondary head, you must first say Y to
++        "I2C support" in the character devices section, and then to
++        "Matrox I2C support" and "G400 second head support" here in the
++        framebuffer section. G450/G550 secondary head and digital output
++        are supported without additional modules.
++
++        The driver starts in monitor mode. You must use the matroxset tool 
++        (available at <ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/>) to 
++        swap primary and secondary head outputs, or to change output mode.  
++        Secondary head driver always start in 640x480 resolution and you 
++        must use fbset to change it.
++
++        Do not forget that second head supports only 16 and 32 bpp
++        packed pixels, so it is a good idea to compile them into the kernel
++        too. You can use only some font widths, as the driver uses generic
++        painting procedures (the secondary head does not use acceleration
++        engine).
++
++        G450/G550 hardware can display TV picture only from secondary CRTC,
++        and it performs no scaling, so picture must have 525 or 625 lines.
++
++config FB_MATROX_I2C
++      tristate "Matrox I2C support"
++      depends on FB_MATROX && I2C
++      select I2C_ALGOBIT
++      ---help---
++        This drivers creates I2C buses which are needed for accessing the
++        DDC (I2C) bus present on all Matroxes, an I2C bus which
++        interconnects Matrox optional devices, like MGA-TVO on G200 and
++        G400, and the secondary head DDC bus, present on G400 only.
++
++        You can say Y or M here if you want to experiment with monitor
++        detection code. You must say Y or M here if you want to use either
++        second head of G400 or MGA-TVO on G200 or G400.
++
++        If you compile it as module, it will create a module named
++        i2c-matroxfb.
++
++config FB_MATROX_MAVEN
++      tristate "G400 second head support"
++      depends on FB_MATROX_G && FB_MATROX_I2C
++      ---help---
++        WARNING !!! This support does not work with G450 !!!
++
++        Say Y or M here if you want to use a secondary head (meaning two
++        monitors in parallel) on G400 or MGA-TVO add-on on G200. Secondary
++        head is not compatible with accelerated XFree 3.3.x SVGA servers -
++        secondary head output is blanked while you are in X. With XFree
++        3.9.17 preview you can use both heads if you use SVGA over fbdev or
++        the fbdev driver on first head and the fbdev driver on second head.
++
++        If you compile it as module, two modules are created,
++        matroxfb_crtc2 and matroxfb_maven. Matroxfb_maven is needed for
++        both G200 and G400, matroxfb_crtc2 is needed only by G400. You must
++        also load i2c-matroxfb to get it to run.
++
++        The driver starts in monitor mode and you must use the matroxset
++        tool (available at
++        <ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/>) to switch it to
++        PAL or NTSC or to swap primary and secondary head outputs.
++        Secondary head driver also always start in 640x480 resolution, you
++        must use fbset to change it.
++
++        Also do not forget that second head supports only 16 and 32 bpp
++        packed pixels, so it is a good idea to compile them into the kernel
++        too.  You can use only some font widths, as the driver uses generic
++        painting procedures (the secondary head does not use acceleration
++        engine).
++
++config FB_MATROX_MULTIHEAD
++      bool "Multihead support"
++      depends on FB_MATROX
++      ---help---
++        Say Y here if you have more than one (supported) Matrox device in
++        your computer and you want to use all of them for different monitors
++        ("multihead"). If you have only one device, you should say N because
++        the driver compiled with Y is larger and a bit slower, especially on
++        ia32 (ix86).
++
++        If you said M to "Matrox unified accelerated driver" and N here, you
++        will still be able to use several Matrox devices simultaneously:
++        insert several instances of the module matroxfb into the kernel
++        with insmod, supplying the parameter "dev=N" where N is 0, 1, etc.
++        for the different Matrox devices. This method is slightly faster but
++        uses 40 KB of kernel memory per Matrox card.
++
++        There is no need for enabling 'Matrox multihead support' if you have
++        only one Matrox card in the box.
++
++config FB_RADEON
++      tristate "ATI Radeon display support"
++      depends on FB && PCI
++      select I2C_ALGOBIT if FB_RADEON_I2C
++      select I2C if FB_RADEON_I2C
++      select FB_DDC if FB_RADEON_I2C
++      select FB_MODE_HELPERS
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      select FB_MACMODES if PPC_OF
++      help
++        Choose this option if you want to use an ATI Radeon graphics card as
++        a framebuffer device.  There are both PCI and AGP versions.  You
++        don't need to choose this to run the Radeon in plain VGA mode.
++
++        If you say Y here and want DDC/I2C support you must first say Y to
++        "I2C support" and "I2C bit-banging support" in the character devices
++        section.
++
++        If you say M here then "I2C support" and "I2C bit-banging support" 
++        can be build either as modules or built-in.
++
++        There is a product page at
++        http://apps.ati.com/ATIcompare/
++
++config FB_RADEON_I2C
++      bool "DDC/I2C for ATI Radeon support"
++      depends on FB_RADEON
++      default y
++      help
++        Say Y here if you want DDC/I2C support for your Radeon board. 
++
++config FB_RADEON_BACKLIGHT
++      bool "Support for backlight control"
++      depends on FB_RADEON && PMAC_BACKLIGHT
++      select FB_BACKLIGHT
++      default y
++      help
++        Say Y here if you want to control the backlight of your display.
++
++config FB_RADEON_DEBUG
++      bool "Lots of debug output from Radeon driver"
++      depends on FB_RADEON
++      default n
++      help
++        Say Y here if you want the Radeon driver to output all sorts
++        of debugging information to provide to the maintainer when
++        something goes wrong.
++
++config FB_ATY128
++      tristate "ATI Rage128 display support"
++      depends on FB && PCI
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      select FB_MACMODES if PPC_PMAC
++      help
++        This driver supports graphics boards with the ATI Rage128 chips.
++        Say Y if you have such a graphics board and read
++        <file:Documentation/fb/aty128fb.txt>.
++
++        To compile this driver as a module, choose M here: the
++        module will be called aty128fb.
++
++config FB_ATY128_BACKLIGHT
++      bool "Support for backlight control"
++      depends on FB_ATY128 && PMAC_BACKLIGHT
++      select FB_BACKLIGHT
++      default y
++      help
++        Say Y here if you want to control the backlight of your display.
++
++config FB_ATY
++      tristate "ATI Mach64 display support" if PCI || ATARI
++      depends on FB && !SPARC32
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      select FB_MACMODES if PPC
++      help
++        This driver supports graphics boards with the ATI Mach64 chips.
++        Say Y if you have such a graphics board.
++
++        To compile this driver as a module, choose M here: the
++        module will be called atyfb.
++
++config FB_ATY_CT
++      bool "Mach64 CT/VT/GT/LT (incl. 3D RAGE) support"
++      depends on PCI && FB_ATY
++      default y if SPARC64 && FB_PCI
++      help
++        Say Y here to support use of ATI's 64-bit Rage boards (or other
++        boards based on the Mach64 CT, VT, GT, and LT chipsets) as a
++        framebuffer device.  The ATI product support page for these boards
++        is at <http://support.ati.com/products/pc/mach64/>.
++
++config FB_ATY_GENERIC_LCD
++      bool "Mach64 generic LCD support (EXPERIMENTAL)"
++      depends on FB_ATY_CT
++      help
++        Say Y if you have a laptop with an ATI Rage LT PRO, Rage Mobility,
++        Rage XC, or Rage XL chipset.
++
++config FB_ATY_GX
++      bool "Mach64 GX support" if PCI
++      depends on FB_ATY
++      default y if ATARI
++      help
++        Say Y here to support use of the ATI Mach64 Graphics Expression
++        board (or other boards based on the Mach64 GX chipset) as a
++        framebuffer device.  The ATI product support page for these boards
++        is at
++        <http://support.ati.com/products/pc/mach64/graphics_xpression.html>.
++
++config FB_ATY_BACKLIGHT
++      bool "Support for backlight control"
++      depends on FB_ATY && PMAC_BACKLIGHT
++      select FB_BACKLIGHT
++      default y
++      help
++        Say Y here if you want to control the backlight of your display.
++
++config FB_S3TRIO
++      bool "S3 Trio display support"
++      depends on (FB = y) && PPC && BROKEN
++      help
++        If you have a S3 Trio say Y. Say N for S3 Virge.
++
++config FB_SAVAGE
++      tristate "S3 Savage support"
++      depends on FB && PCI && EXPERIMENTAL
++      select I2C_ALGOBIT if FB_SAVAGE_I2C
++      select I2C if FB_SAVAGE_I2C
++      select FB_DDC if FB_SAVAGE_I2C
++      select FB_MODE_HELPERS
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This driver supports notebooks and computers with S3 Savage PCI/AGP
++        chips.
++
++        Say Y if you have such a graphics card.
++
++        To compile this driver as a module, choose M here; the module
++        will be called savagefb.
++
++config FB_SAVAGE_I2C
++       bool "Enable DDC2 Support"
++       depends on FB_SAVAGE
++       help
++        This enables I2C support for S3 Savage Chipsets.  This is used
++        only for getting EDID information from the attached display
++        allowing for robust video mode handling and switching.
++
++        Because fbdev-2.6 requires that drivers must be able to
++        independently validate video mode parameters, you should say Y
++        here.
++
++config FB_SAVAGE_ACCEL
++       bool "Enable Console Acceleration"
++       depends on FB_SAVAGE
++       default n
++       help
++          This option will compile in console acceleration support. If
++          the resulting framebuffer console has bothersome glitches, then
++          choose N here.
++
++config FB_SIS
++      tristate "SiS/XGI display support"
++      depends on FB && PCI
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is the frame buffer device driver for the SiS 300, 315, 330
++        and 340 series as well as XGI V3XT, V5, V8, Z7 graphics chipsets.
++        Specs available at <http://www.sis.com> and <http://www.xgitech.com>.
++
++        To compile this driver as a module, choose M here; the module
++        will be called sisfb.
++
++config FB_SIS_300
++      bool "SiS 300 series support"
++      depends on FB_SIS
++      help
++        Say Y here to support use of the SiS 300/305, 540, 630 and 730.
++
++config FB_SIS_315
++      bool "SiS 315/330/340 series and XGI support"
++      depends on FB_SIS
++      help
++        Say Y here to support use of the SiS 315, 330 and 340 series
++        (315/H/PRO, 55x, 650, 651, 740, 330, 661, 741, 760, 761) as well
++        as XGI V3XT, V5, V8 and Z7.
++
++config FB_NEOMAGIC
++      tristate "NeoMagic display support"
++      depends on FB && PCI
++      select FB_MODE_HELPERS
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This driver supports notebooks with NeoMagic PCI chips.
++        Say Y if you have such a graphics card. 
++
++        To compile this driver as a module, choose M here: the
++        module will be called neofb.
++
++config FB_KYRO
++      tristate "IMG Kyro support"
++      depends on FB && PCI
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        Say Y here if you have a STG4000 / Kyro / PowerVR 3 based
++        graphics board.
++
++        To compile this driver as a module, choose M here: the
++        module will be called kyrofb.
++
++config FB_3DFX
++      tristate "3Dfx Banshee/Voodoo3 display support"
++      depends on FB && PCI
++      select FB_CFB_IMAGEBLIT
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      help
++        This driver supports graphics boards with the 3Dfx Banshee/Voodoo3
++        chips. Say Y if you have such a graphics board.
++
++        To compile this driver as a module, choose M here: the
++        module will be called tdfxfb.
++
++config FB_3DFX_ACCEL
++      bool "3Dfx Banshee/Voodoo3 Acceleration functions (EXPERIMENTAL)"
++      depends on FB_3DFX && EXPERIMENTAL
++      ---help---
++      This will compile the 3Dfx Banshee/Voodoo3 frame buffer device
++      with acceleration functions.
++
++
++config FB_VOODOO1
++      tristate "3Dfx Voodoo Graphics (sst1) support"
++      depends on FB && PCI
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      ---help---
++        Say Y here if you have a 3Dfx Voodoo Graphics (Voodoo1/sst1) or 
++        Voodoo2 (cvg) based graphics card.
++
++        To compile this driver as a module, choose M here: the
++        module will be called sstfb.
++
++        WARNING: Do not use any application that uses the 3D engine
++        (namely glide) while using this driver.
++        Please read the <file:Documentation/fb/README-sstfb.txt> for supported
++        options and other important info  support.
++
++config FB_CYBLA
++      tristate "Cyberblade/i1 support"
++      depends on FB && PCI && X86_32 && !64BIT
++      select FB_CFB_IMAGEBLIT
++      select VIDEO_SELECT
++      ---help---
++        This driver is supposed to support the Trident Cyberblade/i1
++        graphics core integrated in the VIA VT8601A North Bridge,
++        also known as VIA Apollo PLE133.
++
++        Status:
++         - Developed, tested and working on EPIA 5000 and EPIA 800.
++         - Does work reliable on all systems with CRT/LCD connected to
++           normal VGA ports.
++         - Should work on systems that do use the internal LCD port, but
++           this is absolutely not tested.
++
++        Character imageblit, copyarea and rectangle fill are hw accelerated,
++        ypan scrolling is used by default.
++
++        Please do read <file:Documentation/fb/cyblafb/*>.
++
++        To compile this driver as a module, choose M here: the
++        module will be called cyblafb.
++
++config FB_TRIDENT
++      tristate "Trident support"
++      depends on FB && PCI
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      ---help---
++        This driver is supposed to support graphics boards with the
++        Trident CyberXXXX/Image/CyberBlade chips mostly found in laptops
++        but also on some motherboards. For more information, read
++        <file:Documentation/fb/tridentfb.txt>
++
++        Cyberblade/i1 support will be removed soon, use the cyblafb driver
++        instead.
++
++        Say Y if you have such a graphics board.
++
++
++        To compile this driver as a module, choose M here: the
++        module will be called tridentfb.
++
++config FB_TRIDENT_ACCEL
++      bool "Trident Acceleration functions (EXPERIMENTAL)"
++      depends on FB_TRIDENT && EXPERIMENTAL
++      ---help---
++      This will compile the Trident frame buffer device with
++      acceleration functions.
++
++config FB_PM3
++      tristate "Permedia3 support"
++      depends on FB && PCI && BROKEN
++      help
++        This is the frame buffer device driver for the 3DLabs Permedia3
++        chipset, used in Formac ProFormance III, 3DLabs Oxygen VX1 &
++        similar boards, 3DLabs Permedia3 Create!, Appian Jeronimo 2000
++        and maybe other boards.
++
++config FB_AU1100
++      bool "Au1100 LCD Driver"
++      depends on (FB = y) && EXPERIMENTAL && PCI && MIPS && MIPS_PB1100=y
++
++config FB_AU1200
++      bool "Au1200 LCD Driver"
++      depends on FB && MIPS && SOC_AU1200
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is the framebuffer driver for the AMD Au1200 SOC.  It can drive
++        various panels and CRTs by passing in kernel cmd line option
++        au1200fb:panel=<name>.
++
++source "drivers/video/geode/Kconfig"
++
++config FB_FFB
++      bool "Creator/Creator3D/Elite3D support"
++      depends on FB_SBUS && SPARC64
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is the frame buffer device driver for the Creator, Creator3D,
++        and Elite3D graphics boards.
++
++config FB_TCX
++      bool "TCX (SS4/SS5 only) support"
++      depends on FB_SBUS
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is the frame buffer device driver for the TCX 24/8bit frame
++        buffer.
++
++config FB_CG14
++      bool "CGfourteen (SX) support"
++      depends on FB_SBUS
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is the frame buffer device driver for the CGfourteen frame
++        buffer on Desktop SPARCsystems with the SX graphics option.
++
++config FB_P9100
++      bool "P9100 (Sparcbook 3 only) support"
++      depends on FB_SBUS
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is the frame buffer device driver for the P9100 card
++        supported on Sparcbook 3 machines.
++
++config FB_LEO
++      bool "Leo (ZX) support"
++      depends on FB_SBUS
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is the frame buffer device driver for the SBUS-based Sun ZX
++        (leo) frame buffer cards.
++
++config FB_PCI
++      bool "PCI framebuffers"
++      depends on (FB = y) && PCI && SPARC
++
++config FB_IGA
++      bool "IGA 168x display support"
++      depends on SPARC32 && FB_PCI
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is the framebuffer device for the INTERGRAPHICS 1680 and
++        successor frame buffer cards.
++
++config FB_HIT
++      tristate "HD64461 Frame Buffer support"
++      depends on FB && HD64461
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        This is the frame buffer device driver for the Hitachi HD64461 LCD
++        frame buffer card.
++
++config FB_PMAG_AA
++      bool "PMAG-AA TURBOchannel framebuffer support"
++      depends on (FB = y) && TC
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        Support for the PMAG-AA TURBOchannel framebuffer card (1280x1024x1)
++        used mainly in the MIPS-based DECstation series.
++
++config FB_PMAG_BA
++      bool "PMAG-BA TURBOchannel framebuffer support"
++      depends on (FB = y) && TC
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        Support for the PMAG-BA TURBOchannel framebuffer card (1024x864x8)
++        used mainly in the MIPS-based DECstation series.
++
++config FB_PMAGB_B
++      bool "PMAGB-B TURBOchannel framebuffer support"
++      depends on (FB = y) && TC
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        Support for the PMAGB-B TURBOchannel framebuffer card used mainly
++        in the MIPS-based DECstation series. The card is currently only
++        supported in 1280x1024x8 mode.
++
++config FB_MAXINE
++      bool "Maxine (Personal DECstation) onboard framebuffer support"
++      depends on (FB = y) && MACH_DECSTATION
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        Support for the onboard framebuffer (1024x768x8) in the Personal
++        DECstation series (Personal DECstation 5000/20, /25, /33, /50,
++        Codename "Maxine").
++
++config FB_TX3912
++      bool "TMPTX3912/PR31700 frame buffer support"
++      depends on (FB = y) && NINO
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        The TX3912 is a Toshiba RISC processor based on the MIPS 3900 core
++        see <http://www.toshiba.com/taec/components/Generic/risc/tx3912.htm>.
++
++        Say Y here to enable kernel support for the on-board framebuffer.
++
++config FB_G364
++      bool "G364 frame buffer support"
++      depends on (FB = y) && (MIPS_MAGNUM_4000 || OLIVETTI_M700)
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        The G364 driver is the framebuffer used in MIPS Magnum 4000 and
++        Olivetti M700-10 systems.
++
++config FB_68328
++      bool "Motorola 68328 native frame buffer support"
++      depends on FB && (M68328 || M68EZ328 || M68VZ328)
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      help
++        Say Y here if you want to support the built-in frame buffer of
++        the Motorola 68328 CPU family.
++
++config FB_PXA
++      tristate "PXA LCD framebuffer support"
++      depends on FB && ARCH_PXA
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      ---help---
++        Frame buffer driver for the built-in LCD controller in the Intel
++        PXA2x0 processor.
++
++        This driver is also available as a module ( = code which can be
++        inserted and removed from the running kernel whenever you want). The
++        module will be called pxafb. If you want to compile it as a module,
++        say M here and read <file:Documentation/modules.txt>.
++
++        If unsure, say N.
++
++config FB_PXA_PARAMETERS
++      bool "PXA LCD command line parameters"
++      default n
++      depends on FB_PXA
++      ---help---
++        Enable the use of kernel command line or module parameters
++        to configure the physical properties of the LCD panel when
++        using the PXA LCD driver.
++
++        This option allows you to override the panel parameters
++        supplied by the platform in order to support multiple
++        different models of flatpanel. If you will only be using a
++        single model of flatpanel then you can safely leave this
++        option disabled.
++
++        <file:Documentation/fb/pxafb.txt> describes the available parameters.
++
++config FB_MBX
++      tristate "2700G LCD framebuffer support"
++      depends on FB && ARCH_PXA
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      ---help---
++        Framebuffer driver for the Intel 2700G (Marathon) Graphics
++        Accelerator
++
++config FB_MBX_DEBUG
++       bool "Enable debugging info via debugfs"
++       depends on FB_MBX && DEBUG_FS
++       default n
++       ---help---
++         Enable this if you want debugging information using the debug
++         filesystem (debugfs)
++
++         If unsure, say N.
++
++config FB_W100
++      tristate "W100 frame buffer support"
++      depends on FB && PXA_SHARPSL
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      ---help---
++        Frame buffer driver for the w100 as found on the Sharp SL-Cxx series.
++
++        This driver is also available as a module ( = code which can be
++        inserted and removed from the running kernel whenever you want). The
++        module will be called w100fb. If you want to compile it as a module,
++        say M here and read <file:Documentation/modules.txt>.
++
++        If unsure, say N.
++
++config FB_S3C2410
++      tristate "S3C2410 LCD framebuffer support"
++      depends on FB && ARCH_S3C2410
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      ---help---
++        Frame buffer driver for the built-in LCD controller in the Samsung
++        S3C2410 processor.
++
++        This driver is also available as a module ( = code which can be
++        inserted and removed from the running kernel whenever you want). The
++        module will be called s3c2410fb. If you want to compile it as a module,
++        say M here and read <file:Documentation/modules.txt>.
++
++        If unsure, say N.
++config FB_S3C2410_DEBUG
++      bool "S3C2410 lcd debug messages"
++      depends on FB_S3C2410
++      help
++        Turn on debugging messages. Note that you can set/unset at run time
++        through sysfs
++
++config FB_PNX4008_DUM
++      tristate "Display Update Module support on Philips PNX4008 board"
++      depends on FB && ARCH_PNX4008
++      ---help---
++        Say Y here to enable support for PNX4008 Display Update Module (DUM)
++
++config FB_PNX4008_DUM_RGB
++      tristate "RGB Framebuffer support on Philips PNX4008 board"
++      depends on FB_PNX4008_DUM
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      ---help---
++        Say Y here to enable support for PNX4008 RGB Framebuffer
++
++config FB_IBM_GXT4500
++      tristate "Framebuffer support for IBM GXT4500P adaptor"
++      depends on PPC
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      ---help---
++        Say Y here to enable support for the IBM GXT4500P display
++        adaptor, found on some IBM System P (pSeries) machines.
++
++config FB_VIRTUAL
++      tristate "Virtual Frame Buffer support (ONLY FOR TESTING!)"
++      depends on FB
++      select FB_CFB_FILLRECT
++      select FB_CFB_COPYAREA
++      select FB_CFB_IMAGEBLIT
++      ---help---
++        This is a `virtual' frame buffer device. It operates on a chunk of
++        unswappable kernel memory instead of on the memory of a graphics
++        board. This means you cannot see any output sent to this frame
++        buffer device, while it does consume precious memory. The main use
++        of this frame buffer device is testing and debugging the frame
++        buffer subsystem. Do NOT enable it for normal systems! To protect
++        the innocent, it has to be enabled explicitly at boot time using the
++        kernel option `video=vfb:'.
++
++        To compile this driver as a module, choose M here: the
++        module will be called vfb. In order to load it, you must use
++        the vfb_enable=1 option.
++
++        If unsure, say N.
++if VT
++      source "drivers/video/console/Kconfig"
++endif
++
++if FB || SGI_NEWPORT_CONSOLE
++      source "drivers/video/logo/Kconfig"
++endif
++
++if SYSFS
++      source "drivers/video/backlight/Kconfig"
++endif
++
++endmenu
++
+diff -uNr linux-2.6.20.vanilla/drivers/video/Makefile linux-2.6.20/drivers/video/Makefile
+--- linux-2.6.20.vanilla/drivers/video/Makefile        2007-02-10 19:02:14.000000000 +0100
++++ linux-2.6.20/drivers/video/Makefile        2007-02-11 16:40:07.000000000 +0100
+@@ -30,6 +30,7 @@
+ obj-$(CONFIG_FB_PM2)              += pm2fb.o
+ obj-$(CONFIG_FB_PM3)            += pm3fb.o
++obj-$(CONFIG_FB_MQ200)            += mq200/
+ obj-$(CONFIG_FB_MATROX)                 += matrox/
+ obj-$(CONFIG_FB_RIVA)           += riva/ vgastate.o
+ obj-$(CONFIG_FB_NVIDIA)                 += nvidia/
+diff -uNr linux-2.6.20.vanilla/drivers/video/mq200/Makefile linux-2.6.20/drivers/video/mq200/Makefile
+--- linux-2.6.20.vanilla/drivers/video/mq200/Makefile  1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.20/drivers/video/mq200/Makefile  2007-02-11 16:41:44.000000000 +0100
+@@ -0,0 +1,6 @@
++# Makefile for mq200 video driver
++# 4 Aug 2003, Holger Hans Peter Freyther
++# 2 Jan 2007, mr nice
++
++obj-$(CONFIG_FB_MQ200)           += mq_skeleton.o mq_external.o
++
+diff -uNr linux-2.6.20.vanilla/drivers/video/mq200/mq200_data.h linux-2.6.20/drivers/video/mq200/mq200_data.h
+--- linux-2.6.20.vanilla/drivers/video/mq200/mq200_data.h      1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.20/drivers/video/mq200/mq200_data.h      2007-02-11 16:41:09.000000000 +0100
+@@ -0,0 +1,893 @@
++/*
++ * From ucLinux mq200fb.c and mq200fb.h
++ */
++
++#ifndef __MQ200_FB_H__
++#define __MQ200_FB_H__
++
++struct mq200_io_regions {
++      u32 fb_size;                    /* framebuffer size                  */
++      unsigned long phys_mmio_base;   /* physical register memory base     */
++      unsigned long virt_mmio_base;    /* virtual start of registers       */
++      unsigned long phys_fb_base;     /* physical address of frame buffer  */
++      unsigned long virt_fb_base;     /* virtual start of the framebuffer  */
++};
++
++#define MQ200_MONITOR_HORI_RES(info)    info->monitor_info.horizontal_res
++#define MQ200_MONITOR_VERT_RES(info)    info->monitor_info.vertical_res
++#define MQ200_MONITOR_DEPTH(info)       info->monitor_info.depth
++#define MQ200_MONITOR_LINE_LENGTH(info) info->monitor_info.line_length
++
++struct mq200_monitor_info {
++      unsigned int horizontal_res;
++      unsigned int vertical_res;
++      unsigned int depth;
++      unsigned int refresh;
++      unsigned int line_length;
++      unsigned long flags;
++};
++
++
++/**
++ * Addresses of Module
++ */
++#define MQ200_FB_BASE  (x) (x + 0x1800000) /* framebuffer */
++#define MQ200_FB_SIZE      0x200000 /* framebuffer size in bytes */
++#define MQ200_REGS_BASE(x) (x + 0x1e00000) /* start of registers area */
++#define MQ200_REGS_SIZE    0x200000 /* registers area size */
++
++#define PMU_OFFSET 0x00000     /* power management */
++#define CPU_OFFSET 0x02000     /* CPU interface */
++#define MIU_OFFSET 0x04000     /* memory controller */
++#define IN_OFFSET  0x08000     /* interrupt controller */
++#define GC_OFFSET  0x0a000     /* graphics controller 1&2 */
++#define GE_OFFSET  0x0c000     /* graphics engine */
++#define FPI_OFFSET 0x0e000     /* flat panel controller */
++#define CP1_OFFSET 0x10000     /* color palette 1 */
++#define DC_OFFSET  0x14000     /* device configuration */
++#define PCI_OFFSET 0x16000     /* PCI configuration */
++#define PSF_OFFSET 0x18000     /* ??? */
++
++
++/****
++ * Registers
++ */
++
++/* power management unit */
++#define PMR(addr) (addr + PCI_OFFSET + 0x40)/* power management
++                                           register */
++#define PMR_VALUE 0x06210001   /* expected read value of PMR register */
++#define PM00R(addr) (addr + PMU_OFFSET + 0x00) /* power management unit
++                                              configuration
++                                              register */
++#define PM01R(addr) (addr + PMU_OFFSET + 0x04) /* D1 state control */
++#define PM02R(addr) (addr + PMU_OFFSET + 0x08) /* d2 state control */
++#define PM06R(addr) (addr + PMU_OFFSET + 0x18) /* PLL 2 programming */
++#define PM07R(addr) (addr + PMU_OFFSET + 0x1c) /* PLL 3 programming */
++
++#define PMCSR(addr) (addr + PCI_OFFSET + 0x44) /* power management
++                                                control/status
++                                                register */
++
++/* memory interface unit */
++#define MM00R(addr) (addr + MIU_OFFSET + 0x00)/* MIU interface control
++                                                0 */
++#define MM01R(addr) (addr + MIU_OFFSET + 0x04) /* MIU interface control
++                                                1 */
++#define MM02R(addr) (addr + MIU_OFFSET + 0x08) /* memory interface
++                                                control 2 */
++#define MM03R(addr) (addr + MIU_OFFSET + 0x0c) /* memory interface
++                                                control 3 */
++#define MM04R(addr) (addr + MIU_OFFSET + 0x10) /* memory interface
++                                                control 4 */
++/* graphics controller 1 module */
++#define GC00R(addr) (addr + GC_OFFSET + 0x00) /* graphics controller 1
++                                                 control */
++#define GC01R(addr) (addr + GC_OFFSET + 0x04) /* graphics controller
++                                                 CRT control */
++#define GC02R(addr) (addr + GC_OFFSET + 0x08) /* horizontal display 1
++                                                 control */
++#define GC03R(addr) (addr + GC_OFFSET + 0x0c) /* vertical display 1
++                                                 control */
++#define GC04R(addr) (addr + GC_OFFSET + 0x10) /* horizontal sync 1
++                                                 control */
++#define GC05R(addr) (addr + GC_OFFSET + 0x14) /* vertical sync 1
++                                                 control */
++#define GC07R(addr) (addr + GC_OFFSET + 0x1c) /* vertical display 1
++                                                 count */
++#define GC08R(addr) (addr + GC_OFFSET + 0x20) /* horizontal window 1
++                                                 control */
++#define GC09R(addr) (addr + GC_OFFSET + 0x24) /* vertical window 1
++                                                 control */
++#define GC0AR(addr) (addr + GC_OFFSET + 0x28) /* alternate horizontal
++                                                 window 1 control */
++#define GC0BR(addr) (addr + GC_OFFSET + 0x2c) /* alternate vertical
++                                                 window 1 control */
++#define GC0CR(addr) (addr + GC_OFFSET + 0x30) /* window 1 
++                                                 start address */
++#define GC0DR(addr) (addr + GC_OFFSET + 0x34) /* alternate window 1
++                                                 start address */
++#define GC0ER(addr) (addr + GC_OFFSET + 0x38) /* window 1 stride */
++#define GC0FR(addr) (addr + GC_OFFSET + 0x3c) /* reserved */
++#define GC10R(addr) (addr + GC_OFFSET + 0x40) /* hardware cursor 1
++                                                 position */
++#define GC11R(addr) (addr + GC_OFFSET + 0x44) /* hardware cursor 1
++                                                 start address and
++                                                 offset */
++#define GC12R(addr) (addr + GC_OFFSET + 0x48) /* hardware cursor 1
++                                                 foreground color */
++#define GC13R(addr) (addr + GC_OFFSET + 0x4c) /* hardware cursor 1
++                                                 background color */
++/* graphics engine */
++#define ROP_SRCCOPY     0xCC    /* dest = source */
++#define ROP_SRCPAINT    0xEE    /* dest = source OR dest */
++#define ROP_SRCAND      0x88    /* dest = source AND dest */
++#define ROP_SRCINVERT   0x66    /* dest = source XOR dest */
++#define ROP_SRCERASE    0x44    /* dest = source AND (NOT dest) */
++#define ROP_NOTSRCCOPY  0x33    /* dest = NOT source */
++#define ROP_NOTSRCERASE 0x11    /* dest = (NOT source) AND (NOT dest) */
++#define ROP_MERGECOPY   0xC0    /* dest = source AND pattern */
++#define ROP_MERGEPAINT  0xBB    /* dest = (NOT source) OR dest */
++#define ROP_PATCOPY     0xF0    /* dest = pattern */
++#define ROP_PATPAINT    0xFB    /* dest = DPSnoo */
++#define ROP_PATINVERT   0x5A    /* dest = pattern XOR dest */
++#define ROP_DSTINVERT   0x55    /* dest = NOT dest */
++#define ROP_BLACKNESS   0x00    /* dest = BLACK */
++#define ROP_WHITENESS   0xFF    /* dest = WHITE */
++
++#define GE00R(addr) (addr + GE_OFFSET + 0x00) /* primary drawing command
++                                               register */
++#define GE01R(addr) (addr + GE_OFFSET + 0x04) /* primary width and
++                                               height register */
++#define GE02R(addr) (addr + GE_OFFSET + 0x08) /* primary destination
++                                               address register */
++#define GE03R(addr) (addr + GE_OFFSET + 0x0c) /* primary source XY
++                                               register */
++#define GE04R(addr) (addr + GE_OFFSET + 0x10) /* primary color compare
++                                               register */
++#define GE05R(addr) (addr + GE_OFFSET + 0x14) /* primary clip left/top
++                                               register */
++#define GE06R(addr) (addr + GE_OFFSET + 0x18) /* primary clip
++                                               right/bottom register
++                                                  */
++#define GE07R(addr) (addr + GE_OFFSET + 0x1c) /* primary source and
++                                               pattern offset
++                                               register */
++#define GE08R(addr) (addr + GE_OFFSET + 0x20) /* primary foreground
++                                               color
++                                               register/rectangle
++                                               fill register */
++#define GE09R(addr) (addr + GE_OFFSET + 0x24) /* source stride/offset
++                                               register */
++#define GE0AR(addr) (addr + GE_OFFSET + 0x28) /* destination stride
++                                               register and color
++                                               depth */
++#define GE0BR(addr) (addr + GE_OFFSET + 0x2c) /* image base address
++                                               register */
++#define GE40R(addr) (addr + GE_OFFSET + 0x100) /* mono pattern register
++                                                0 */
++#define GE41R(addr) (addr + GE_OFFSET + 0x104) /* mono pattern register
++                                                1 */
++#define GE42R(addr) (addr + GE_OFFSET + 0x108) /* foreground color
++                                                register */
++#define GE43R(addr) (addr + GE_OFFSET + 0x10c) /* background color
++                                                  register */
++/* color palette */
++#define C1xxR(addr, regno) \
++       (addr + CP1_OFFSET + (regno) * 4) /* graphics controller color
++                                          palette 1 */
++/* device configuration */
++#define DC00R(addr) (addr + DC_OFFSET + 0x00)  /* device configuration
++                                                register 0 */
++#define DC_RESET 0x4000
++/* PCI configuration space */
++#define PC00R(addr) (addr + PCI_OFFSET + 0x00)/* device ID/vendor ID
++                                               register */
++/* Flatpanel Control */
++#define FP00R(addr) (addr + FPI_OFFSET + 0x00) /* Flat Panel Control 0       */
++#define FP01R(addr) (addr + FPI_OFFSET + 0x04) /* Flat Panel Output Pin      */
++#define FP02R(addr) (addr + FPI_OFFSET + 0x08) /* Flat Panel Gener Purpose
++                                                Outout Control Register    */
++#define FP03R(addr) (addr + FPI_OFFSET + 0x0c) /* General Purpose I/O Port
++                                                Control Register           */
++#define FP04R(addr) (addr + FPI_OFFSET + 0x10) /* STN Panel Control Register */
++#define FP05R(addr) (addr + FPI_OFFSET + 0x14) /* D-STN Half Frame Buffer
++                                                Control Register -By Guess */
++#define FP0FR(addr) (addr + FPI_OFFSET + 0x3c) /* Pulse Width Modulation
++                                                Control Register           */
++#define FRCTL_PATTERN_COUNT 32
++#define FP10R(addr) (addr + FPI_OFFSET + 0x40) /* Frame-Rate Control Pattern
++                                                Register */
++#define FP11R(addr) (addr + FPI_OFFSET + 0x44)
++#define FP2FR(addr) (addr + FPI_OFFSET + 0xc0) /* Frame-Rate Control Weight
++                                                Registers */
++
++
++
++
++/* power management miscellaneous control */
++union pm00r {
++    struct {
++       u32 pll1_n_b5   :1;     /* PLL 1 N parameter bit 5 is 0 */
++       u32 reserved_1  :1;
++       u32 pll2_enbl   :1;     /* PLL 2 enable */
++       u32 pll3_enbl   :1;     /* PLL 3 enable */
++       u32 reserved_2  :1;
++       u32 pwr_st_ctrl :1;     /* power state status control */
++       u32 reserved_3  :2;
++
++       u32 ge_enbl     :1;     /* graphics engine enable */
++       u32 ge_bsy_gl   :1;     /* graphics engine force busy (global) */
++       u32 ge_bsy_lcl  :1;     /* graphics engine force busy (local) */
++       u32 ge_clock    :2;     /* graphics engine clock select */
++       u32 ge_cmd_fifo :1;     /* graphics engine command FIFO reset */
++       u32 ge_src_fifo :1;     /* graphics engine CPU source FIFO reset */
++       u32 miu_pwr_seq :1;     /* memory interface unit power sequencing
++                                  enable */
++
++       u32 d3_mem_rfsh :1;     /* D3 memory refresh */
++       u32 d4_mem_rfsh :1;     /* D4 memory refresh */
++       u32 gpwr_intrvl :2;     /* general power sequencing interval */
++       u32 fppwr_intrvl:2;     /* flat panel power sequencing interval */
++       u32 gpwr_seq_ctr:1;     /* general power sequencing interval control */
++       u32 pmu_tm      :1;     /* PMU test mode */
++
++       u32 pwr_state   :2;     /* power state (read only) */
++       u32 pwr_seq_st  :1;     /* power sequencing active status (read
++                                  only) */
++       u32 reserved_4  :5;
++    }  part;
++    u32 whole;
++};
++
++/* D1 state control */
++union pm01r {
++    struct {
++       u32 osc_enbl    :1;     /* D1 oscillator enable */
++       u32 pll1_enbl   :1;     /* D1 PLL 1 enable */
++       u32 pll2_enbl   :1;     /* D1 PLL 2 enable */
++       u32 pll3_enbl   :1;     /* D1 PLL 3 enable */
++       u32 miu_enbl    :1;     /* D1 Memory Interface Unit (MIU) enable */
++       u32 mem_rfsh    :1;     /* D1 memory refresh enable */
++       u32 ge_enbl     :1;     /* D1 Graphics Engine (GE) enable */
++       u32 reserved_1  :1;
++
++       u32 crt_enbl    :1;     /* D1 CRT enable */
++       u32 fpd_enbl    :1;     /* D1 Flat Panel enable */
++       u32 reserved_2  :6;
++
++       u32 ctl1_enbl   :1;     /* D1 controller 1 enable */
++       u32 win1_enbl   :1;     /* D1 window 1 enable */
++       u32 awin1_enbl  :1;     /* D1 alternate window 1 enable */
++       u32 cur1_enbl   :1;     /* D1 cursor 1 enable */
++      u32 reserved_3  :4;
++
++       u32 ctl2_enbl   :1;     /* D1 controller 2 enable */
++       u32 win2_enbl   :1;     /* D1 window 2 enable */
++       u32 awin2_enbl  :1;     /* D1 alternate window 2 enable */
++       u32 cur2_enbl   :1;     /* D1 cursor 2 enable */
++       u32 reserved_4  :4;
++    }  part;
++    u32 whole;
++};
++
++/* D2 state control */
++union pm02r {
++    struct {
++       u32 osc_enbl    :1;     /* D2 oscillator enable */
++       u32 pll1_enbl   :1;     /* D2 PLL 1 enable */
++       u32 pll2_enbl   :1;     /* D2 PLL 2 enable */
++       u32 pll3_enbl   :1;     /* D2 PLL 3 enable */
++       u32 miu_enbl    :1;     /* D2 Memory Interface Unit (MIU) enable */
++       u32 mem_rfsh    :1;     /* D2 memory refresh enable */
++       u32 ge_enbl     :1;     /* D2 Graphics Engine (GE) enable */
++       u32 reserved_1  :1;
++
++       u32 crt_enbl    :1;     /* D2 CRT enable */
++       u32 fpd_enbl    :1;     /* D2 Flat Panel enable */
++       u32 reserved_2  :6;
++
++       u32 ctl1_enbl   :1;     /* D2 controller 1 enable */
++       u32 win1_enbl   :1;     /* D2 window 1 enable */
++       u32 awin1_enbl  :1;     /* D2 alternate window 1 enable */
++       u32 cur1_enbl   :1;     /* D2 cursor 1 enable */
++       u32 reserved_3  :4;
++
++       u32 ctl2_enbl   :1;     /* D2 controller 2 enable */
++       u32 win2_enbl   :1;     /* D2 window 2 enable */
++       u32 awin2_enbl  :1;     /* D2 alternate window 2 enable */
++       u32 cur2_enbl   :1;     /* D2 cursor 2 enable */
++       u32 reserved_4  :4;
++    }  part;
++    u32 whole;
++};
++
++/* PLL 2 programming */
++union pm06r {
++    struct {
++       u32 clk_src     :1;     /* PLL 2 reference clock source */
++       u32 bypass      :1;     /* PLL 2 bypass */
++       u32 reserved_1  :2;
++       u32 p_par       :3;     /* PLL 2 P parameter */
++       u32 reserved_2  :1;
++
++       u32 n_par       :5;     /* PLL 2 N parameter */
++       u32 reserved_3  :3;
++
++       u32 m_par       :8;     /* PLL 2 M parameter */
++
++       u32 reserved_4  :4;
++       u32 trim        :4;     /* PLL 2 trim value */
++    }  part;
++    u32 whole;
++};
++
++/* PLL 3 programming */
++union pm07r {
++    struct {
++       u32 clk_src     :1;     /* PLL 3 reference clock source */
++       u32 bypass      :1;     /* PLL 3 bypass */
++       u32 reserved_1  :2;
++       u32 p_par       :3;     /* PLL 3 P parameter */
++       u32 reserved_2  :1;
++
++       u32 n_par       :5;     /* PLL 3 N parameter */
++       u32 reserved_3  :3;
++
++       u32 m_par       :8;     /* PLL 3 M parameter */
++
++       u32 reserved_4  :4;
++       u32 trim        :4;     /* PLL 3 trim value */
++    }  part;
++    u32 whole;
++};
++
++
++
++/* MIU interface control 1 */
++union mm00r {
++    struct {
++       u32 miu_enbl    :1;     /* MIU enable bit */
++       u32 mr_dsbl     :1;     /* MIU reset disable bit */
++       u32 edr_dsbl    :1;     /* embedded DRAM reset disable bit */
++       u32 reserved_1  :29;
++    }  part;
++    u32 whole;
++};
++
++/* MIU interface control 2 */
++union mm01r {
++    struct {
++       u32 mc_src      :1;     /* memory clock source */
++       u32 msr_enbl    :1;     /* memory slow refresh enable bit */
++       u32 pb_cpu      :1;     /* page break enable for CPU */
++       u32 pb_gc1      :1;     /* page break enable for GC1 */
++       u32 pb_gc2      :1;     /* page break enable for GC2 */
++       u32 pb_stn_r    :1;     /* page break enable for STN read */
++       u32 pb_stn_w    :1;     /* page break enable for STN write */
++       u32 pb_ge       :1;     /* page break enable for GE */
++       u32 reserved_1  :4;
++       u32 mr_interval :14;    /* normal memory refresh time interval */
++       u32 reserved_2  :4;
++       u32 edarm_enbl  :1;     /* embedded DRAM auto-refresh mode enable */
++       u32 eds_enbl    :1;     /* EDRAM standby enable for EDRAM normal
++                                  mode operation */
++    }  part;
++    u32 whole;
++};
++
++/* memory interface control 3 */
++union mm02r {
++    struct {
++       u32 bs_         :2;
++       u32 bs_stnr     :2;     /* burst count for STN read memory cycles */
++       u32 bs_stnw     :2;     /* burst count for STN write memroy cycles */
++       u32 bs_ge       :2;     /* burst count for graphics engine
++                                  read/write memroy cycles */
++       u32 bs_cpuw     :2;     /* burst count for CPU write memory cycles */
++       u32 fifo_gc1    :4;     /* GC1 display refresh FIFO threshold */
++       u32 fifo_gc2    :4;     /* GC2 display refresh FIFO threshold */
++       u32 fifo_stnr   :4;     /* STN read FIFO threshold */
++       u32 fifo_stnw   :4;     /* STN write FIFO threshold */
++       u32 fifo_ge_src :3;     /* GE source read FIFO threshold */
++       u32 fifo_ge_dst :3;     /* GE destination read FIFO threshold */
++    }  part;
++    u32 whole;
++};
++
++/* memory interface control 4 */
++union mm03r {
++    struct {
++       u32 rd_late_req :1;     /* read latency request */
++       u32 reserved_1  :31;
++    }  part;
++    u32 whole;
++};
++
++/* memory interface control 5 */
++union mm04r {
++    struct {
++       u32 latency     :3;     /* EDRAM latency */
++       u32 dmm_cyc     :1;     /* enable for the dummy cycle insertion
++                                  between read and write cycles */
++       u32 pre_dmm_cyc :1;     /* enable for the dummy cycle insertion
++                                  between read/write and precharge cycles
++                                  for the same bank */
++       u32 reserved_1  :3;
++       u32 bnk_act_cls :2;     /* bank activate command to bank close
++                                  command timing interval control */
++       u32 bnk_act_rw  :1;     /* bank activate command to read/wirte
++                                  command timing interval control */
++       u32 bnk_cls_act :1;     /* bank close command to bank activate
++                                  command timing interval control */
++       u32 trc         :1;     /* row cycle time */
++       u32 reserved_2  :3;
++       u32 delay_r     :2;     /* programmable delay for read clock */
++       u32 delay_m     :2;     /* programmable delay for internal memory
++                                  clock */
++    }  part;
++    u32 whole;
++};
++
++/* graphics controller 1 register */
++union gc00r {
++    struct {
++       u32 ctl_enbl    :1;     /* Controller 1 Enable */
++       u32 hc_reset    :1;     /* Horizontal Counter 1 Reset */
++       u32 vc_reset    :1;     /* Vertical Counter 1 Reset */
++       u32 iwin_enbl   :1;     /* Image Window 1 Enable */
++       u32 gcd         :4;     /* Graphics Color Depth (GCD) */
++
++       u32 hc_enbl     :1;     /* Hardware Cursor 1 Enable */
++       u32 reserved_1  :2;
++       u32 aiwin_enbl  :1;     /* Alternate Image Window Enable */
++       u32 agcd        :4;     /* Alternate Graphics Color Depth (AGCD) */
++
++       u32 g1rclk_src  :2;     /* G1RCLK Source */
++       u32 tm0         :1;     /* Test Mode 0 */
++       u32 tm1         :1;     /* Test Mode 1 */
++       u32 fd          :3;     /* G1MCLK First Clock Divisor (FD1) */
++       u32 reserved_2  :1;
++
++       u32 sd          :8;     /* G1MCLK Second Clock Divisor (SD1) */
++    }  part;
++    u32 whole;
++};
++
++/* graphics controller CRT control */
++union gc01r {
++    struct {
++       u32 dac_enbl    :2;     /* CRT DAC enable */
++       u32 hsync_out   :1;     /* CRT HSYNC output during power down mode */
++       u32 vsync_out   :1;     /* CRT VSYNC output during power down mode */
++       u32 hsync_ctl   :2;     /* CRT HSYNC control */
++       u32 vsync_ctl   :2;     /* CRT VSYNC control */
++       /**/
++       u32 hsync_pol   :1;     /* CRT HSYNC polarity */
++       u32 vsync_pol   :1;     /* CRT VSYNC polarity */
++       u32 sync_p_enbl :1;     /* sync pedestal enable */
++       u32 blnk_p_enbl :1;     /* blank pedestal enable */
++       u32 c_sync_enbl :1;     /* composite sync enable */
++       u32 vref_sel    :1;     /* VREF select */
++       u32 mn_sns_enbl :1;     /* monitor sense enable */
++       u32 ct_out_enbl :1;     /* constant output enable */
++       /**/
++       u32 dac_out_lvl :8;     /* monitor sense DAC output level */
++       /**/
++       u32 blue_dac_r  :1;     /* blue DAC sense result */
++       u32 green_dac_r :1;     /* green DAC sense result */
++       u32 red_dac_r   :1;     /* red DAC sense result */
++       u32 reserved_1  :1;
++       u32 mon_col_sel :1;     /* mono/color monitor select */
++       u32 reserved_2  :3;
++    }  part;
++    u32 whole;
++};
++
++/* horizontal display 1 control */
++union gc02r {
++    struct {
++       u32 hd1t        :12;    /* horizontal display 1 total */
++       u32 reserved_1  :4;
++
++       u32 hd1e        :12;    /* horizontal display 1 end */
++       u32 reserved_2  :4;
++    }  part;
++    u32 whole;
++};
++
++/* vertical display 1 control */
++union gc03r {
++    struct {
++       u32 vd1t        :12;    /* vertical display 1 total */
++       u32 reserved_1  :4;
++
++       u32 vd1e        :12;    /* vertical display 1 end */
++       u32 reserved_2  :4;
++    }  part;
++    u32 whole;
++};
++
++/* horizontal sync 1 control */
++union gc04r {
++    struct {
++       u32 hs1s        :12;    /* horizontal sync 1 start */
++       u32 reserved_1  :4;
++
++       u32 hs1e        :12;    /* horizontal sync 1 end */
++       u32 reserved_2  :4;
++    }  part;
++    u32 whole;
++};
++
++/* vertical sync 1 control */
++union gc05r {
++    struct {
++       u32 vs1s        :12;    /* vertical sync 1 start */
++       u32 reserved_1  :4;
++
++       u32 vs1e        :12;    /* vertical sync 1 end */
++       u32 reserved_2  :4;
++    }  part;
++    u32 whole;
++};
++
++/* vertical display 1 count */
++union gc07r {
++    struct {
++       u32 vd_cnt      :12;    /* vertical display 1 count */
++       u32 reverved_1  :20;
++    }  part;
++    u32 whole;
++};
++
++/* horizontal window 1 control */
++union gc08r {
++    struct {
++       u32 hw1s        :12;    /* horizontal window 1 start (HW1S) */
++       u32 reserved_1  :4;
++
++       u32 hw1w        :12;    /* horizontal window 1 width (HW1W) */
++       u32 w1ald       :4;     /* window 1 additional line data */
++    }  part;
++    u32 whole;
++};
++
++/* vertical window 1 control */
++union gc09r {
++    struct {
++       u32 vw1s        :12;    /* vertical window 1 start */
++       u32 reserved_1  :4;
++       u32 vw1h        :12;    /* vertical window 1 height */
++       u32 reserved_2  :4;
++    }  part;
++    u32 whole;
++};
++
++/* window 1 start address */
++union gc0cr {
++    struct {
++       u32 w1sa        :21;    /* window 1 start address */
++       u32 reserved_1  :11;
++    }  part;
++    u32 whole;
++};
++
++/* window 1 stride */
++union gc0er {
++    struct {
++       s16 w1st;               /* window 1 stride */
++       s16 aw1st;              /* alternate window 1 stride */
++    }  part;
++    u32 whole;
++};
++
++/* hardware cursor 1 position */
++union gc10r {
++    struct {
++       u32 hc1s        :12;    /* horizontal cursor 1 start */
++       u32 reserved_1  :4;
++       u32 vc1s        :12;    /* vertical cursor 1 start */
++       u32 reserved_2  :4;
++    }  part;
++    u32 whole;
++};
++
++/* hardware cursor 1 start address and offset */
++union gc11r {
++    struct {
++       u32 hc1sa       :11;    /* hardware cursor 1 start address */
++       u32 reserved_1  :5;
++       u32 hc1o        :6;     /* horizontal cursor 1 offset */
++       u32 reserved_2  :2;
++       u32 vc1o        :6;     /* vertical cursor 1 offset */
++       u32 reserved_3  :2;
++    }  part;
++    u32 whole;
++};
++
++/* hardware cursor 1 foreground color */
++union gc12r {
++    struct {
++       u32 hc1fc       :24;    /* hardware cursor 1 foreground color */
++       u32 reserved_1  :8;
++    }  part;
++    u32 whole;
++};
++
++/* hardware cursor 1 background color */
++union gc13r {
++    struct {
++       u32 hc1bc       :24;    /* hardware cursor 1 background color */
++       u32 reserved_1  :8;
++    }  part;
++    u32 whole;
++};
++
++/* primary drawing command register */
++union ge00r {
++    struct {
++       u32 rop         :8;     /* raster operation */
++       /**/
++       u32 cmd_typ     :3;     /* command type */
++       u32 x_dir       :1;     /* x direction */
++       u32 y_dir       :1;     /* y direction */
++       u32 src_mem     :1;     /* source memory */
++       u32 mon_src     :1;     /* mono source */
++       u32 mon_ptn     :1;     /* mono pattern */
++       /**/
++       u32 dst_trns_e  :1;     /* destination transparency enable */
++       u32 dst_trns_p  :1;     /* destination transparency polarity */
++       u32 mon_trns_e  :1;     /* mono source or mono pattern transparency
++                                  enable */
++       u32 mon_trns_p  :1;     /* mono transparency polarity */
++       u32 mod_sel     :1;     /* memory to screen or off screen to screen
++                                  mode select */
++       u32 alpha_sel   :2;     /* Alpha byte mask selection */
++       u32 sol_col     :1;     /* solid color */
++       /**/
++       u32 stride_eq   :1;     /* source stride is equal to destination
++                                  stride */
++       u32 rop2_sel    :1;     /* ROP2 code selection */
++       u32 clipping    :1;     /* enable clipping */
++       u32 auto_exec   :1;     /* auto execute */
++       u32 reserved_1  :4;
++    }  part;
++    u32 whole;
++};
++
++/* primary width and height register */
++union ge01r {
++    struct {
++       u32 width       :12;    /* source/destination window width */
++       u32 reserved_1  :4;
++
++       u32 height      :12;    /* source/destination window height */
++       u32 reserved_2  :1;
++       u32 reserved_3  :3;
++    }  bitblt;
++    struct {
++       u32 dm          :17;
++       u32 axis_major  :12;
++       u32 x_y         :1;     /* x-major or y-major */
++       u32 last_pix    :1;     /* decision to draw or not to draw the last
++                                  pixel of the line */
++       u32 reserved_1  :1;
++    }  bresenham;
++    u32 whole;
++};
++
++/* primary destination address register */
++union ge02r {
++    struct {
++       u32 dst_x       :12;    /* destination x position */
++       u32 reserved_1  :1;
++       u32 h_offset    :3;     /* mono/color pattern horizontal offset */
++
++       u32 dst_y       :12;    /* destination y position */
++       u32 reserved_2  :1;
++       u32 v_offset    :3;     /* mono/color pattern vertical offset */
++    }  window;
++    struct {
++       u32 x           :12;    /* starting x coordinate */
++       u32 dm          :17;    /* 17 bits major-axis delta */
++       u32 reserved_1  :3;
++    }  line;
++    u32 whole;
++};
++
++/* source XY register/line draw starting Y coordinate and mintor axis delta */
++union ge03r {
++    struct {
++       u32 src_x       :12;    /* source X position */
++       u32 reserved_1  :4;
++
++       u32 src_y       :12;    /* source Y position */
++       u32 reserved_2  :4;
++    }  window;
++    struct {
++       u32 start_y     :12;    /* starting Y coordinate */
++       u32 dn          :17;    /* 17 bits minor-axis delta */
++       u32 reserved_1  :3;
++    }  line;
++    u32 whole;
++};
++
++/* clip left/top register */
++union ge05r {
++    struct {
++       u32 left        :12;    /* left edge of clipping rectangle */
++       u32 reserved_1  :4;
++
++       u32 top         :12;    /* top edge of clipping rectangle */
++       u32 reserved_2  :4;
++    }  part;
++    u32 whole;
++};
++
++/* source stride/offset register */
++union ge09r {
++    struct {
++       u32 src_strid   :12;    /* source line stride */
++       u32 reserved_1  :13;
++       u32 strt_bit    :3;     /* initial mono source bit offset */
++       u32 strt_byte   :3;     /* initial mono/color source byte offset */
++       u32 reserved_2  :1;
++    }  line;
++    struct {
++       u32 strt_bit    :5;     /* initial mono source bit offset */
++       u32 reserved_1  :1;
++       u32 amount      :10;    /* number of 16 bytes amount that MIU need
++                                  to fetch from frame buffer */
++
++       u32 reserved_2  :9;
++       u32 bit_spc     :7;     /* bit space between lines */
++    }  pack_mono;
++    struct {
++       u32 strt_bit    :3;     /* initial mono source bit offset */
++       u32 strt_byte   :3;     /* initial mono/color source byte offset */
++       u32 amount      :10;    /* number of 16 bytes amount that MIU need
++                                  to fetch from frame buffer */
++
++       u32 reserved_1  :9;
++       u32 bit_spc     :3;     /* bit space between lines */
++       u32 byt_spc     :4;     /* byte space between lines */
++    }  pack_color;
++    u32 whole;
++};
++
++/* destination stride register and color depth */
++union ge0ar {
++    struct {
++       u32 dst_strid   :12;    /* destination line stride and color depth */
++       u32 reserved_1  :18;
++       u32 col_dpth    :2;     /* color depth */
++    }  part;
++    u32 whole;
++};
++
++/* graphics controller color pallete */
++union c1xxr {
++    struct {
++       u8 red;                 /* red color pallete */
++       u8 green;               /* green/gray color pallete */
++       u8 blue;                /* blue color palette */
++       u8 reserved_1;
++    }  part;
++    u32 whole;
++};
++
++/* devicee configuration register 0 */
++union dc00r {
++    struct {
++       u32 osc_bypass  :1;     /* oscillator bypass */
++       u32 osc_enbl    :1;     /* oscillator enable */
++       u32 pll1_bypass :1;     /* PLL1 bypass */
++       u32 pll1_enbl   :1;     /* PLL1 enable */
++       u32 pll1_p_par  :3;     /* PLL1 P parameter */
++       u32 cpu_div     :1;     /* CPU interface clock divisor */
++       u32 pll1_n_par  :5;     /* PLL1 N parameter */
++       u32 saisc       :1;     /* StrongARM interface synchronizer control */
++       u32 s_chp_reset :1;     /* software chip reset */
++       u32 mem_enbl    :1;     /* memory standby enable */
++       u32 pll1_m_par  :8;     /* PLL 1 M parameter */
++       u32 osc_shaper  :1;     /* oscillator shaper disable */
++       u32 fast_pwr    :1;     /* fast power sequencing */
++       u32 osc_frq     :2;     /* oscillator frequency select */
++       u32 pll1_trim   :4;     /* PLL 1 trim value */
++    }  part;
++    u32 whole;
++};
++
++/* device ID/vendor ID register */
++union pc00r {
++    struct {
++       u16 device;       /* device ID */
++       u16 vendor;       /* vendor ID */
++    }  part;
++    u32 whole;
++};
++
++/* Flat Panel Control Register */
++union fp00r {
++    struct {
++      u32  flatp_enbl : 2;   /* Flat Panel Interface Enable */
++      u32  flatp_type : 2;   /* Flat Panel Type */
++      u32  mono       : 1;   /* Mono/Color Panel Select */
++      u32  flatp_intf : 3;   /* Flat Panel Interface */
++      u32  dither_pat : 2;   /* Dither Pattern */
++      u32  reserved   : 2;   /* Reserved Must Be 0*/
++      u32  dither_col : 3;   /* Dither Base Color */
++      u32  alt_win_ctl: 1;   /* Alternate Window Control */
++      u32  frc_ctl    : 2;   /* FRC Control */
++      u32  dither_adj1: 6;   /* Dither Pattern Adjust 1 */
++      u32  dither_adj2: 3;   /* Dither Pattern Adjust 2 */
++      u32  dither_adj3: 1;   /* Dither Pattern Adjust 3 */
++      u32  test_mode0 : 1;   /* Test Mode 0 */
++      u32  test_mode1 : 1;   /* Test Mode 1 */
++      u32  test_mode2 : 1;   /* Test Mode 2 */
++      u32  test_mode3 : 1;   /* Test Mode 3 */
++    } part;
++    u32 whole;
++};
++
++union fp01r {
++    struct {
++      u32 dummy;
++    } part;
++    u32 whole;
++};
++
++union fp02r {
++    struct {
++      u32 dummy;
++    } part;
++    u32 whole;
++};
++
++union fp03r {
++    struct {
++      u32 dummy;
++    } part;
++    u32 whole;
++};
++
++union fp04r {
++    struct {
++      u32 dummy;
++    } part;
++    u32 whole;
++};
++
++union fp05r {
++    struct {
++      u32 dummy;
++    } part;
++    u32 whole;
++};
++
++union fp0fr {
++    struct {
++      u32 dummy;
++    } part;
++    u32 whole;
++};
++
++
++
++
++/****
++ * Others
++ */
++
++#define CHIPNAME "MQ-200"
++
++extern void mq200_external_setpal(unsigned regno, unsigned long color, unsigned long addr);
++extern void mq200_external_setqmode(struct mq200_monitor_info*, unsigned long, spinlock_t *);
++extern void mq200_external_offdisplay(unsigned long);
++extern void mq200_external_ondisplay (unsigned long);
++extern int  mq200_external_probe(unsigned long);
++
++
++
++#endif
+diff -uNr linux-2.6.20.vanilla/drivers/video/mq200/mq_external.c linux-2.6.20/drivers/video/mq200/mq_external.c
+--- linux-2.6.20.vanilla/drivers/video/mq200/mq_external.c     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.20/drivers/video/mq200/mq_external.c     2007-02-11 16:41:09.000000000 +0100
+@@ -0,0 +1,427 @@
++/*
++ * Copyright (C) 2005 Holger Hans Peter Freyther
++ *
++ * Based ON:
++ *
++ * linux/drivers/video/mq200fb.c -- MQ-200 for a frame buffer device
++ * based on linux/driver/video/pm2fb.c
++ *
++ * Copyright (C) 2000 Lineo, Japan
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License.  See the file COPYING in the main directory of this archive
++ * for more details.
++ */
++
++#include <asm/types.h>
++#include <asm/io.h>
++#include <linux/delay.h>
++#include <linux/spinlock.h>
++
++#include "mq200_data.h"
++
++
++#if 1
++#define PRINTK(args...) printk(args)
++#else
++#define PRINTK(args...)
++#endif
++
++
++/****
++ * power state transition to "state".
++ */
++static void
++power_state_transition(unsigned long register_base, int state)
++{
++    int i;
++    writel(state, PMCSR(register_base));
++    for (i = 1; ; i++) {
++       udelay(100);
++       if ((readl(PMCSR(register_base)) & 0x3) == state) {
++         break;
++       }
++    }
++}
++
++
++/****
++ * device configuration initialization.
++ */
++static void
++dc_reset(unsigned long register_base)
++{
++    union dc00r dc00r;
++
++    /* Reset First */
++    dc00r.whole       = DC_RESET;
++    writel(dc00r.whole, DC00R(register_base));
++    udelay(10);
++
++
++    dc00r.whole = 0xEF2082A;
++    writel(dc00r.whole, DC00R(register_base));
++    udelay(5);
++    PRINTK(CHIPNAME ": DC00R = %xx\n", readl(DC00R(register_base)));
++}
++
++
++/****
++ * initialize memory interface unit.
++ */
++static void
++miu_reset(unsigned long register_base)
++{
++    union mm00r mm00r;
++    union mm01r mm01r;
++    union mm02r mm02r;
++    union mm03r mm03r;
++    union mm04r mm04r;
++
++    /* MIU interface control 1 */
++    mm00r.whole = 0x4;
++    writel(mm00r.whole, MM00R(register_base));
++    udelay(5);
++    writel(0, MM00R(register_base));
++    udelay(50);
++
++    /* MIU interface control 2
++     * o PLL 1 output is used as memory clock source.
++     */
++    mm01r.whole = 0x4143e086;
++    writel(mm01r.whole, MM01R(register_base));
++
++    /* memory interface control 3 */
++    mm02r.whole = 0x6d6aabff;
++    writel(mm02r.whole, MM02R(register_base));
++
++    /* memory interface control 5 */
++    mm04r.whole = 0x10d;
++    writel(mm04r.whole, MM04R(register_base));
++
++    /* memory interface control 4 */
++    mm03r.whole = 0x1;
++    writel(mm03r.whole, MM03R(register_base));
++    mdelay(10);
++
++    /* MIU interface control 1 */
++    mm00r.whole = 0x3;
++    writel(mm00r.whole, MM00R(register_base));
++    mdelay(50);
++}
++
++/****
++ *
++ */
++static
++void fpctrl_reset(unsigned long addr)
++{
++   /*
++     * We're in D0 State, let us set the FPCTRL
++     */
++    union fp00r fp00r;
++    union fp01r fp01r;
++    union fp02r fp02r;
++    union fp03r fp03r;
++    union fp04r fp04r;
++    union fp0fr fp0fr;
++
++    fp00r.whole = 0x6320;
++    writel(fp00r.whole, FP00R(addr));
++
++    fp01r.whole = 0x20;
++    writel(fp01r.whole, FP01R(addr));
++
++    fp04r.whole = 0xBD0001;
++    writel(fp04r.whole, FP04R(addr));
++
++    /* Set Flat Panel General Purpose register first */
++    fp02r.whole = 0x0;
++    writel(fp02r.whole, FP02R(addr));
++
++    fp03r.whole = 0x0;
++    writel(fp03r.whole, FP03R(addr));
++
++    fp0fr.whole = 0xA16c44;
++    writel(fp0fr.whole, FP0FR(addr));
++
++
++    /* Set them again */
++    fp02r.whole = 0x0;
++    writel(fp02r.whole, FP02R(addr));
++
++    fp03r.whole = 0x0;
++    writel(fp03r.whole, FP03R(addr));
++}
++
++
++/****
++ * initialize power management unit.
++ */
++static void
++pmu_reset(unsigned long register_base)
++{
++    union pm00r pm00r;
++    union pm01r pm01r;
++    union pm02r pm02r;
++//    union pm06r pm06r;
++//    union pm07r pm07r;
++
++    /* power management miscellaneous control
++     * o GE is driven by PLL 1 clock.
++     */
++    pm00r.whole = 0xc0900;
++    writel(pm00r.whole, PM00R(register_base));
++
++    /* D1 state control */
++    pm01r.whole = 0x5000271;
++    writel(pm01r.whole, PM01R(register_base));
++
++    /* D2 state control */
++    pm02r.whole = 0x271;
++    writel(pm02r.whole, PM02R(register_base));
++
++#if 0
++    /* PLL 2 programming */
++    pm06r.whole = 0xE90830;
++    writel(pm06r.whole, PM06R(register_base));
++
++    /* PLL 3 programming */
++    pm07r.whole = 0xE90830;
++    writel(pm07r.whole, PM07R(register_base));
++#endif
++}
++
++/****
++ * initialize graphics controller 1.
++ */
++static void
++gc1_reset(unsigned long register_base, spinlock_t *lock )
++{
++    unsigned long flags;
++    union gc00r gc00r;
++    union gc01r gc01r;
++    union gc02r gc02r;
++    union gc03r gc03r;
++    union gc04r gc04r;
++    union gc05r gc05r;
++    union gc08r gc08r;
++    union gc09r gc09r;
++//    union gc0er gc0er;
++//    union gc11r gc11r;
++    union pm00r pm00r;
++    union pm06r pm06r;
++
++    spin_lock_irqsave(lock, flags);
++
++    /* graphics controller CRT control */
++    gc01r.whole = 0x800;
++    writel(gc01r.whole, GC01R(register_base));
++
++    /* horizontal display 1 control */
++    gc02r.whole = 0x320041e;
++    writel(gc02r.whole, GC02R(register_base));
++
++    /* vertical display 1 control */
++    gc03r.whole = 0x2570273;
++    writel(gc03r.whole, GC03R(register_base));
++
++    /* horizontal sync 1 control */
++    gc04r.whole = 0x3c70347;
++    writel(gc04r.whole, GC04R(register_base));
++
++    /* vertical sync 1 control */
++    gc05r.whole = 0x25d0259;
++    writel(gc05r.whole, GC05R(register_base));
++
++    /* horizontal window 1 control */
++    gc08r.whole = 0x131f0000;
++    writel(gc08r.whole, GC08R(register_base));
++
++    /* vertical window 1 control */
++    gc09r.whole = 0x2570000;
++    writel(gc09r.whole, GC09R(register_base));
++
++#if 0
++    /* alternate horizontal window 1 control */
++    writel(0, GC0AR(register_base));
++
++    /* alternate vertical window 1 control */
++    writel(0, GC0BR(register_base));
++
++    /* window 1 start address */
++    writel(0x2004100, GC0CR(register_base));
++
++    /* alternate window 1 start address */
++    writel(0, GC0DR(register_base));
++
++    /* window 1 stride */
++    gc0er.whole = 0x5100048;
++    writel(gc0er.whole, GC0ER(register_base));
++
++    /* reserved register - ??? - */
++    writel(0x31f, GC0FR(register_base));
++#endif
++
++#if 0
++    /* hardware cursor 1 position */
++    writel(0, GC10R(register_base));
++
++    /* hardware cursor 1 start address and offset */
++    gc11r.whole = 0x5100048;
++    writel(gc11r.whole, GC11R(register_base));
++
++    /* hardware cursor 1 foreground color */
++    writel(0x00ffffff, GC12R(register_base));
++
++    /* hardware cursor 1 background color */
++    writel(0x00000000, GC13R(register_base));
++#endif
++
++    /* PLL 2 programming */
++    pm06r.whole = 0xE90830;
++    writel(pm06r.whole, PM06R(register_base));
++
++
++    /* graphics controller 1 register
++     * o GC1 clock source is PLL 2.
++     * o hardware cursor is disabled.
++     */
++    gc00r.whole = 0x10200C8;
++    writel(gc00r.whole, GC00R(register_base));
++
++    /*
++     * Enable PLL2 in the PM Register
++     */
++    pm00r.whole = readl(PM00R(register_base));
++    pm00r.part.pll2_enbl = 0x1;
++    writel(pm00r.whole, PM00R(register_base));
++
++    spin_unlock_irqrestore(lock, flags);
++}
++
++
++/****
++ * initialize graphics engine.
++ */
++static void
++ge_reset(unsigned long register_base)
++{
++    /* drawing command register */
++    writel(0, GE00R(register_base));
++
++    /* promary width and height register */
++    writel(0, GE01R(register_base));
++
++    /* primary destination address register */
++    writel(0, GE02R(register_base));
++
++    /* primary source XY register */
++    writel(0, GE03R(register_base));
++
++    /* primary color compare register */
++    writel(0, GE04R(register_base));
++
++    /* primary clip left/top register */
++    writel(0, GE05R(register_base));
++
++    /* primary clip right/bottom register */
++    writel(0, GE06R(register_base));
++
++    /* primary source and pattern offset register */
++    writel(0, GE07R(register_base));
++
++    /* primary foreground color register/rectangle fill color depth */
++    writel(0, GE08R(register_base));
++
++    /* source stride/offset register */
++    writel(0, GE09R(register_base));
++
++    /* destination stride register and color depth */
++    writel(0, GE0AR(register_base));
++
++    /* image base address register */
++    writel(0, GE0BR(register_base));
++}
++
++
++/****
++ * initialize Color Palette 1.
++ */
++static void
++cp1_reset(unsigned long addr_info)
++{
++    int i;
++
++    for (i = 0; i < 256; i++)
++       writel(0, C1xxR(addr_info, i));
++}
++
++
++
++
++/*
++ * Below functions are called from the skeleton
++ */
++void mq200_external_setpal(unsigned regno, unsigned long color, unsigned long addr)
++{
++    writel(color,C1xxR(addr,regno));
++}
++
++void mq200_external_setqmode(struct mq200_monitor_info* info,
++                           unsigned long addr, spinlock_t *lock)
++{
++    dc_reset(addr);     /* device configuration */
++
++    power_state_transition(addr, 0);       /* transition to D0 state */
++    pmu_reset(addr);    /* power management unit */
++    miu_reset(addr);    /* memory interface unit */
++    ge_reset(addr);     /* graphics engine */
++    fpctrl_reset(addr); /* reset the panel settings */
++    gc1_reset(addr, lock); /* graphics controller 1 */
++    cp1_reset(addr);    /* color palette 1 */
++    mq200_external_ondisplay(addr);
++}
++
++void mq200_external_offdisplay(unsigned long addr)
++{
++    /*
++     * Move the MQ200 to D3 mode
++     */
++    power_state_transition(addr, 3);
++}
++
++/**
++ * to be called after mq200_external_setqmode
++ */
++void mq200_external_ondisplay (unsigned long addr)
++{
++    /*
++     * Set the framebuffer details
++     */
++    #warning FIX HERE AS WELL
++    union gc00r gc00r;
++    union fp00r fp00r;
++    gc00r.whole = readl(GC00R(addr));
++    fp00r.whole = readl(FP00R(addr));
++
++    if(!(gc00r.whole & 0x1)) {
++      gc00r.whole |= 1;
++      writel(gc00r.whole, GC00R(addr));
++    }
++
++    fp00r.whole |= 0x01;
++    writel(fp00r.whole, FP00R(addr));
++}
++
++int mq200_external_probe(unsigned long addr)
++{
++    union pc00r pc00r;
++    if(readl(PMR(addr)) != PMR_VALUE)
++       return 0;
++
++    pc00r.whole = readl(PC00R(addr));
++    printk(KERN_INFO "mq200 video driver found Vendor:%d Device:%d\n",
++         pc00r.part.device, pc00r.part.vendor);
++    return 1;
++}
+diff -uNr linux-2.6.20.vanilla/drivers/video/mq200/mq_skeleton.c linux-2.6.20/drivers/video/mq200/mq_skeleton.c
+--- linux-2.6.20.vanilla/drivers/video/mq200/mq_skeleton.c     1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.20/drivers/video/mq200/mq_skeleton.c     2007-02-11 16:41:09.000000000 +0100
+@@ -0,0 +1,401 @@
++/*
++ * Author: Holger Hans Peter Freyther
++ *
++ *
++ * This implements the frame buffer driver interface to communicate
++ * with the kernel.
++ * It uses the mq200 routines from the ucLinux driver from Lineo
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ */
++
++#include <linux/autoconf.h>
++#include <linux/platform_device.h>
++#include <linux/module.h>
++#include <linux/fb.h>
++#include <linux/types.h>
++#include <linux/spinlock.h>
++
++#include "mq200_data.h"
++
++#if CONFIG_SA1100_SIMPAD
++/*
++ * Siemens SIMpad specefic data
++ */
++#include <asm/arch/simpad.h>
++#include <asm/arch/hardware.h>
++
++#define MQ200_REGIONS simpad_mq200_regions
++#define MQ200_MONITOR simpad_mq200_panel
++
++static struct mq200_io_regions simpad_mq200_regions = {
++      .fb_size        = MQ200_FB_SIZE,
++      .phys_mmio_base = 0x4be00000,
++      .virt_mmio_base = 0xf2e00000,
++      .phys_fb_base   = 0x4b800000,
++      .virt_fb_base   = 0xf2800000,
++};
++
++static struct mq200_monitor_info simpad_mq200_panel = {
++      .horizontal_res = 800,
++      .vertical_res   = 600,
++      .depth          = 16,
++      .refresh        = 60,
++      .line_length    = 1600,
++      .flags          = 0x00130004,
++};
++
++extern long get_cs3_shadow(void);
++extern void set_cs3_bit(int value);
++extern void clear_cs3_bit(int value);
++#endif
++
++
++
++struct mq200_info {
++      struct fb_info fb_info;
++      struct mq200_io_regions io_regions;
++      struct mq200_monitor_info monitor_info;
++
++        /* palette */
++      u32     pseudo_palette[17]; /* 16 colors + 1 in reserve not that well documented... */
++      spinlock_t lock;
++};
++
++
++
++static int mq200_blank( int blank_mode, struct fb_info *info )
++{
++#ifdef CONFIG_SA1100_SIMPAD
++      if(blank_mode ){
++              clear_cs3_bit(DISPLAY_ON);
++      }else {
++              set_cs3_bit(DISPLAY_ON);
++      }
++#endif
++      return 0;
++}
++
++
++static int mq200_check_var(struct fb_var_screeninfo *var,
++                         struct fb_info *info )
++{     /* TODO do we need sanity checks here */
++      return 0;
++}
++
++
++static int mq200_set_par( struct fb_info *info )
++{
++      /* TODO set paraemeter */
++      return 0;
++}
++
++static int mq200_setcolreg(unsigned regno, unsigned red, unsigned green,
++                         unsigned blue, unsigned transp,
++                         struct fb_info *info )
++{
++      struct mq200_info *p;
++      unsigned long color;
++      u32* pal = info->pseudo_palette;
++
++      p = info->par;
++
++      if(regno > 255 )
++              return 1;
++
++      switch( info->var.bits_per_pixel ){
++      case 16:
++              pal[regno] =
++                      ((red & 0xf800) >> 0) |
++                      ((green & 0xf800) >> 5) | ((blue & 0xf800) >> 11);
++              break;
++      case 24:
++              pal[regno] =
++                      ((red & 0xff00) << 8) |
++                      ((green & 0xff00)) | ((blue & 0xff00) >> 8);
++              break;
++      case 32:
++              pal[regno] =
++                      ((red & 0xff00) >> 8) |
++                      ((green & 0xff00)) | ((blue & 0xff00) << 8);
++              break;
++      default:
++              break;
++      }
++
++      red &= 0xFF;
++      green &= 0xFF;
++      blue &= 0xFF;
++
++      color = red | (green << 8) | (blue << 16);
++      mq200_external_setpal(regno, color, p->io_regions.virt_mmio_base);
++
++      return 0;
++}
++
++
++
++
++static struct fb_ops mq200_ops = {
++      .owner          = THIS_MODULE,
++      .fb_check_var   = mq200_check_var,
++      .fb_set_par     = mq200_set_par,
++      .fb_setcolreg   = mq200_setcolreg,
++#ifdef FB_SOFT_CURSOR
++      .fb_cursor      = soft_cursor, /*  FIXME use hardware cursor */
++#endif
++      .fb_fillrect    = cfb_fillrect,
++      .fb_copyarea    = cfb_copyarea,
++      .fb_imageblit   = cfb_imageblit,
++      .fb_blank       = mq200_blank,
++};
++
++
++/*********************************************************************
++ *
++ * Device driver and module init code
++ * this will register to the fb layer later
++ *
++ *********************************************************************/
++static void mq200_internal_init_color( struct fb_bitfield* red,
++                                     struct fb_bitfield* green,
++                                     struct fb_bitfield* blue,
++                                     int bpp )
++{
++      switch ( bpp )
++      {
++      case 16:
++              red->offset     = 11;
++              green->offset   = 5;
++              blue->offset    = 0;
++
++              red->length     = 5;
++              green->length   = 6;
++              blue->length    = 5;
++              break;
++      case 24:
++              red->offset     = 16;
++              green->offset   = 8;
++              blue->offset    = 0;
++
++              red->length     = 8;
++              green->length   = 8;
++              blue->length    = 8;
++              break;
++      case 32:
++              red->offset     = 0;
++              green->offset   = 8;
++              blue->offset    = 16;
++
++              red->length     = 8;
++              green->length   = 8;
++              blue->length    = 8;
++      case 8: /* fall through */
++      default:
++              red->offset = green->offset = blue->offset = 0;
++              red->length = green->length = blue->length = bpp;
++              break;
++      }
++
++}
++
++
++static struct mq200_info* __init mq200_internal_init_fbinfo(void)
++{
++      struct mq200_info       *info = NULL;
++
++      info = (struct mq200_info*)kmalloc(sizeof(*info), GFP_KERNEL);
++      if(!info)
++              return NULL;
++
++        /*
++       * Initialize memory
++       */
++      memset(info, 0, sizeof(struct mq200_info) );
++      spin_lock_init(&info->lock);
++
++        /* set the base IO addresses */
++      info->io_regions   = MQ200_REGIONS;
++      info->monitor_info = MQ200_MONITOR;
++
++      info->fb_info.screen_base = (char *)info->io_regions.virt_fb_base;
++
++      /* fb_fix_screeninfo filling */
++      strcpy(info->fb_info.fix.id, "MQ200_FB" );
++      info->fb_info.fix.smem_start    = info->io_regions.phys_fb_base;
++      info->fb_info.fix.smem_len      = info->io_regions.fb_size; /* - CURSOR_IMAGE */
++      info->fb_info.fix.mmio_start    = info->io_regions.phys_mmio_base;
++      info->fb_info.fix.mmio_len      = MQ200_REGS_SIZE;
++      info->fb_info.fix.type          = FB_TYPE_PACKED_PIXELS;
++      info->fb_info.fix.accel         = FB_ACCEL_NONE;
++      info->fb_info.fix.line_length   = MQ200_MONITOR_LINE_LENGTH(info);
++
++      if(MQ200_MONITOR_DEPTH(info) <= 8 )
++              info->fb_info.fix.visual = FB_VISUAL_PSEUDOCOLOR;
++      else if( MQ200_MONITOR_DEPTH(info) >= 16 )
++              info->fb_info.fix.visual = FB_VISUAL_DIRECTCOLOR;
++      else
++              panic("Calling mq200 with wrong display data\n");
++
++      /* set the variable screen info */
++      info->fb_info.var.xres  = MQ200_MONITOR_HORI_RES(info);
++      info->fb_info.var.yres  = MQ200_MONITOR_VERT_RES(info);
++      info->fb_info.var.xres_virtual = MQ200_MONITOR_HORI_RES(info);
++      info->fb_info.var.yres_virtual = MQ200_MONITOR_VERT_RES(info);
++      info->fb_info.var.bits_per_pixel = MQ200_MONITOR_DEPTH(info);
++
++      mq200_internal_init_color(&info->fb_info.var.red,
++                                &info->fb_info.var.green,
++                                &info->fb_info.var.blue,
++                                MQ200_MONITOR_DEPTH(info) );
++
++      info->fb_info.var.transp.length = info->fb_info.var.transp.offset = 0;
++      info->fb_info.var.height = info->fb_info.var.width = -1;
++
++      info->fb_info.var.vmode = FB_VMODE_NONINTERLACED;
++      info->fb_info.var.pixclock = 10000;
++      info->fb_info.var.left_margin = info->fb_info.var.right_margin = 16;
++      info->fb_info.var.upper_margin = info->fb_info.var.lower_margin = 16;
++      info->fb_info.var.hsync_len = info->fb_info.var.vsync_len = 8;
++
++      info->fb_info.var.nonstd        = 0;
++      info->fb_info.var.activate      = FB_ACTIVATE_NOW;
++      info->fb_info.var.accel_flags   = 0;
++
++      return info;
++}
++
++
++extern void mq200_register_attributes(struct device* );
++/*
++ * gets called from the bus
++ * we will register our framebuffer from here
++ */
++static int __init mq200_probe(struct device *dev)
++{
++      struct mq200_info       *info = NULL;
++      int retv= 0;
++
++      info = mq200_internal_init_fbinfo();
++      if(!mq200_external_probe(info->io_regions.virt_mmio_base))
++          goto error_out;
++
++
++      GAFR &= ~(1<<3);
++      GPSR |=  (1<<3);
++      GPDR |=  (1<<3);
++
++      mq200_external_setqmode(&info->monitor_info,
++                              info->io_regions.virt_mmio_base,
++                              &info->lock);
++
++      info->fb_info.fbops = &mq200_ops;
++      info->fb_info.flags = FBINFO_FLAG_DEFAULT;
++
++      mq200_check_var(&info->fb_info.var, &info->fb_info );
++
++      fb_alloc_cmap(&info->fb_info.cmap, 1 << MQ200_MONITOR_DEPTH(info), 0 );
++
++      info->fb_info.pseudo_palette = (void*)info->pseudo_palette;
++
++      /* save the pointer to the mq200 struct in var */
++      info->fb_info.par = info;
++
++      retv = register_framebuffer(&info->fb_info );
++      if(retv < 0)
++              goto error_out;
++
++
++      /* will get unset if retv != 0 */
++      dev_set_drvdata(dev, info );
++      return retv;
++
++/*
++ * Free the info and exit
++ */
++error_out:
++      kfree(info);
++      return -EINVAL;
++}
++
++#ifdef CONFIG_PM
++static struct mq200_info* get_mq200_info( struct device *dev)
++{
++      return dev_get_drvdata(dev);
++}
++
++static unsigned long  get_mmio_base( struct device *dev )
++{
++      struct mq200_info *info = get_mq200_info(dev);
++      return info->io_regions.virt_mmio_base;
++}
++
++static struct mq200_monitor_info* get_monitor_info( struct device *dev)
++{
++      struct mq200_info *info = get_mq200_info(dev);
++      return &info->monitor_info;
++}
++
++static spinlock_t* get_spinlock( struct device *dev)
++{
++      return &get_mq200_info(dev)->lock;
++}
++
++/*
++ * FIXME: make sure we only call mq200_external_offdisplay only once
++ * a 2nd time will hang the kernel -zecke
++ *
++ * FIXME: save the content of the framebuffer inside dev->saved_state
++ *        so on resume we can memcpy it back into the buffer and userspace
++ *        does not need to redraw
++ *
++ * functions for suspending and resuming
++ */
++static int mq200_suspend(struct device *dev, pm_message_t state)
++{
++
++    mq200_external_offdisplay( get_mmio_base(dev) );
++    clear_cs3_bit(DISPLAY_ON);
++
++
++    return 0;
++}
++
++static int mq200_resume(struct device *dev)
++{
++    unsigned long mem = get_mmio_base(dev);
++    struct mq200_monitor_info *monitor = get_monitor_info(dev);
++    mq200_external_setqmode(monitor, mem, get_spinlock(dev) );
++
++
++    /*
++     * Set display on if it was on
++     */
++      set_cs3_bit(DISPLAY_ON);
++
++      return 0;
++}
++
++
++#endif
++
++
++static struct device_driver mq200fb_driver = {
++      .name           = "simpad-mq200",
++      .bus            = &platform_bus_type,
++      .probe          = mq200_probe, /* will be called after we've registered the driver */
++      .suspend        = mq200_suspend,
++      .resume         = mq200_resume
++};
++
++int __devinit mq200_init(void)
++{
++      return driver_register(&mq200fb_driver);
++}
++
++module_init(mq200_init);
++MODULE_DESCRIPTION("MQ200 framebuffer driver");
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("Holger Hans Peter Freyther");
diff --git a/packages/linux/linux/simpad/linux-2.6.20.SIMpad.ucb1x00-switches.patch b/packages/linux/linux/simpad/linux-2.6.20.SIMpad.ucb1x00-switches.patch
new file mode 100644 (file)
index 0000000..cbc2272
--- /dev/null
@@ -0,0 +1,227 @@
+diff -uNr linux-2.6.20.vanilla/drivers/mfd/Kconfig linux-2.6.20/drivers/mfd/Kconfig
+--- linux-2.6.20.vanilla/drivers/mfd/Kconfig   2007-02-09 18:27:41.000000000 +0100
++++ linux-2.6.20/drivers/mfd/Kconfig   2007-02-09 19:29:23.000000000 +0100
+@@ -23,4 +23,7 @@
+       tristate "Touchscreen interface support"
+       depends on MCP_UCB1200 && INPUT
++config MCP_UCB1200_SWITCHES
++        tristate "SIMpad Switches support"
++        depends on MCP_UCB1200 && INPUT
+ endmenu
+diff -uNr linux-2.6.20.vanilla/drivers/mfd/Makefile linux-2.6.20/drivers/mfd/Makefile
+--- linux-2.6.20.vanilla/drivers/mfd/Makefile  2007-02-09 18:27:41.000000000 +0100
++++ linux-2.6.20/drivers/mfd/Makefile  2007-02-09 19:29:23.000000000 +0100
+@@ -6,7 +6,7 @@
+ obj-$(CONFIG_MCP_SA11X0)      += mcp-sa11x0.o
+ obj-$(CONFIG_MCP_UCB1200)     += ucb1x00-core.o
+ obj-$(CONFIG_MCP_UCB1200_TS)  += ucb1x00-ts.o
+-
++obj-$(CONFIG_MCP_UCB1200_SWITCHES) += ucb1x00-switches.o
+ ifeq ($(CONFIG_SA1100_ASSABET),y)
+ obj-$(CONFIG_MCP_UCB1200)     += ucb1x00-assabet.o
+ endif
+diff -uNr linux-2.6.20.vanilla/drivers/mfd/ucb1x00-switches.c linux-2.6.20/drivers/mfd/ucb1x00-switches.c
+--- linux-2.6.20.vanilla/drivers/mfd/ucb1x00-switches.c        1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.20/drivers/mfd/ucb1x00-switches.c        2007-02-09 19:30:34.000000000 +0100
+@@ -0,0 +1,200 @@
++/*
++ *  linux/drivers/mfd/ucb1x00-switches.c
++ *
++ *  Copyright (C) 2007 Bernhard Guillon.
++ *
++ * 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.
++ *
++ *  This driver is for the Switches of Siemens SIMpad (CL4,SL4,SLC), T-Sinus-Pad and
++ *  Swisscom WP50 devices.
++ *
++ *  Six switches are routed to GPIO pins on the UCB1300: S3 -- S8.
++ *
++ *  This driver is based on the 2.4 ucb1x00-switches, the 2.6 ucb1x00-assabet
++ *  and the ucb1x00-ts driver.
++ *
++ */
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/input.h>
++#include <linux/device.h>
++
++#include <asm/dma.h>
++
++#include "ucb1x00.h"
++
++struct ucb1x00_switches {
++      struct input_dev        *idev;
++      struct ucb1x00          *ucb;
++};
++
++static void ucb1x00_dev_irq(int idx, void *id)
++{
++      static unsigned short int last;
++      unsigned short int this;        
++      struct ucb1x00_switches *switches = id;
++      struct input_dev *idev = switches->idev;
++      ucb1x00_enable(switches->ucb);
++      
++      //check if it really is a event this is not real neccessary because input dev checkes it itself a second.
++      this=~ucb1x00_io_read(switches->ucb);
++      if (this==last) {
++               return;
++      }
++
++      last=this;
++      switch (idx) {
++
++      case 0:
++
++              if ((this & (1<<0)) != 0) input_report_key(idev, KEY_PROG1, 1);
++              else input_report_key(idev, KEY_PROG1, 0);
++              break;
++
++      case 1:
++
++              if ((this & (1<<1)) != 0) input_report_key(idev, KEY_PROG2, 1);
++              else input_report_key(idev, KEY_PROG2, 0);
++              break;
++
++      case 2:
++
++              if ((this & (1<<2)) != 0) input_report_key(idev, KEY_UP, 1); 
++              else input_report_key(idev, KEY_UP, 0); 
++              break;
++
++      case 3:
++
++              if ((this & (1<<3)) != 0) input_report_key(idev, KEY_DOWN, 1); 
++              else input_report_key(idev, KEY_DOWN, 0); 
++              break;
++
++      case 4:
++
++              if ((this & (1<<4)) != 0) input_report_key(idev, KEY_LEFT, 1);
++              else input_report_key(idev, KEY_LEFT, 0);
++              break;
++
++      case 5:
++
++              if ((this & (1<<5)) != 0) input_report_key(idev, KEY_RIGHT, 1);
++              else input_report_key(idev, KEY_RIGHT, 0);
++              break;
++
++      default:
++
++              printk(KERN_DEBUG "switches-ucb1x00 is BUGGY!!! \n");
++
++      }
++
++      ucb1x00_disable_irq(switches->ucb, UCB_IRQ_TSPX, UCB_FALLING);
++      
++}
++
++static int ucb1x00_switches_add(struct ucb1x00_dev *dev)
++{
++      struct ucb1x00_switches *switches;
++      struct input_dev *idev;
++      int err,i;
++      
++      switches = kzalloc(sizeof(struct ucb1x00_switches), GFP_KERNEL);
++      idev = input_allocate_device();
++
++
++      if (!switches || !idev) {
++              err = -ENOMEM;
++              goto fail;
++      }
++
++      switches->ucb = dev->ucb;
++      
++
++      idev->private    = switches;
++      idev->name       = "SIMpad Switches";
++      idev->id.product = switches->ucb->id;
++      
++      __set_bit(EV_KEY,    idev->evbit);
++      __set_bit(EV_REP,    idev->evbit);
++      __set_bit(KEY_PROG1,    idev->keybit);
++      __set_bit(KEY_PROG2,    idev->keybit);
++      __set_bit(KEY_UP,    idev->keybit);
++      __set_bit(KEY_DOWN,    idev->keybit);
++      __set_bit(KEY_LEFT,    idev->keybit);
++      __set_bit(KEY_RIGHT,    idev->keybit);
++      
++      err = input_register_device(idev);
++      if (err)
++              goto fail;
++      switches->idev = idev;
++      dev->priv = switches;
++      
++      ucb1x00_enable(switches->ucb);
++
++      ucb1x00_io_set_dir(switches->ucb,
++                         UCB_IO_0 | UCB_IO_1 | UCB_IO_2 |
++                         UCB_IO_3 | UCB_IO_4 | UCB_IO_5, 
++                         UCB_IO_8 | UCB_IO_9);
++
++      ucb1x00_disable(switches->ucb);
++      
++      for (i = 0; i < 6; ++i) {
++              ucb1x00_enable_irq(switches->ucb, i, UCB_RISING | UCB_FALLING);
++              if (ucb1x00_hook_irq(switches->ucb, i, ucb1x00_dev_irq, switches) < 0) {
++                      printk(KERN_ERR "unable to hook IRQ for "
++                             "UCB1300 SWITCH_%d\n", i);
++                      return -EBUSY;
++              }
++      }
++              
++      return 0;
++
++fail:
++      input_free_device(idev);
++      kfree(switches);
++      return err;
++
++}
++
++static void ucb1x00_switches_remove(struct ucb1x00_dev *dev)
++{
++      int i;
++      struct ucb1x00_switches *switches = dev->priv;
++      input_unregister_device(switches->idev);
++              
++      for (i = 5; i >= 0; --i) {
++
++              ucb1x00_disable_irq(switches->ucb, i, UCB_RISING | UCB_FALLING);
++
++              /* Only error conditions are ENOENT and EINVAL; silently
++               * ignore:
++               */
++              ucb1x00_free_irq(switches->ucb, i, NULL);
++
++      }
++      ucb1x00_disable(switches->ucb);
++      kfree(switches);
++}
++
++static struct ucb1x00_driver ucb1x00_switches_driver = {
++      .add    = ucb1x00_switches_add,
++      .remove = ucb1x00_switches_remove,
++};
++
++static int __init ucb1x00_switches_init(void)
++{
++      return ucb1x00_register_driver(&ucb1x00_switches_driver);
++}
++
++static void __exit ucb1x00_switches_exit(void)
++{
++      ucb1x00_unregister_driver(&ucb1x00_switches_driver);
++}
++
++module_init(ucb1x00_switches_init);
++module_exit(ucb1x00_switches_exit);
++
++MODULE_AUTHOR("Bernhard Guillon <Bernhard.Guillon@opensimpad.org>");
++MODULE_DESCRIPTION("UCB1x00 Switches driver for Siemens SIMpad");
++MODULE_LICENSE("GPL");
index ebf520d..f437218 100644 (file)
@@ -8,10 +8,15 @@ SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
 SRC_URI_append_progear = " \
            file://progear_bl-r6.patch;patch=1 \
           "
+SRC_URI_append_simpad = "\
+           file://linux-2.6.20.SIMpad.mq200.patch;patch=1 \
+           file://linux-2.6.20.SIMpad.ucb1x00-switches.patch;patch=1 \
+          "
 
 inherit kernel
 
 KERNEL_IMAGETYPE = "bzImage"
+KERNEL_IMAGETYPE_simpad = "bzImage"
 
 do_configure_prepend() {
        install -m 0644 ${WORKDIR}/defconfig ${S}/.config
index 6349061..1a08f37 100644 (file)
@@ -1,7 +1,5 @@
-Index: madwifi-ng-r1871-20061229/hal/public/xscale-be-elf.inc
-===================================================================
---- madwifi-ng-r1871-20061229.orig/hal/public/xscale-be-elf.inc        2006-09-14 08:21:22.000000000 +0200
-+++ madwifi-ng-r1871-20061229/hal/public/xscale-be-elf.inc     2007-01-24 22:37:23.000000000 +0100
+--- madwifi.orig/hal/public/xscale-be-elf.inc  2007-01-03 23:42:09.000000000 -0600
++++ madwifi/hal/public/xscale-be-elf.inc       2007-01-03 23:48:50.000000000 -0600
 @@ -77,5 +77,5 @@
  
  LDOPTS=       -EB
@@ -9,4 +7,4 @@ Index: madwifi-ng-r1871-20061229/hal/public/xscale-be-elf.inc
 -COPTS+= -march=armv4 -mbig-endian -fno-strict-aliasing -fno-common -mapcs-32 \
 -      -mtune=xscale  -mshort-load-bytes
 +COPTS+= -march=armv4 -mbig-endian -fno-strict-aliasing -fno-common \
-+      -mtune=xscale -msoft-float -mfp=2
++      -mtune=xscale
index 839bafa..c4d9937 100644 (file)
@@ -1,10 +1,8 @@
-Index: madwifi-ng-r1871-20061229/hal/public/xscale-le-elf.inc
-===================================================================
---- madwifi-ng-r1871-20061229.orig/hal/public/xscale-le-elf.inc        2006-09-14 08:21:22.000000000 +0200
-+++ madwifi-ng-r1871-20061229/hal/public/xscale-le-elf.inc     2007-01-24 22:42:38.000000000 +0100
+--- madwifi.orig/hal/public/xscale-le-elf.inc  2007-01-03 23:42:06.000000000 -0600
++++ madwifi/hal/public/xscale-le-elf.inc       2007-01-03 23:48:50.000000000 -0600
 @@ -79,4 +79,4 @@
  LDOPTS=       -EL
  COPTS+=       -DAH_BYTE_ORDER=AH_LITTLE_ENDIAN
  COPTS+= -march=armv4 -mlittle-endian -fno-strict-aliasing -fno-common \
 -      -mapcs-32 -mtune=xscale  -mshort-load-bytes
-+      -mtune=xscale -msoft-float -mfp=2
++      -mtune=xscale
diff --git a/packages/madwifi/files/slugos-xscale-be-elf-copts.patch b/packages/madwifi/files/slugos-xscale-be-elf-copts.patch
deleted file mode 100644 (file)
index 1a08f37..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- madwifi.orig/hal/public/xscale-be-elf.inc  2007-01-03 23:42:09.000000000 -0600
-+++ madwifi/hal/public/xscale-be-elf.inc       2007-01-03 23:48:50.000000000 -0600
-@@ -77,5 +77,5 @@
- LDOPTS=       -EB
- COPTS+=       -DAH_BYTE_ORDER=AH_BIG_ENDIAN
--COPTS+= -march=armv4 -mbig-endian -fno-strict-aliasing -fno-common -mapcs-32 \
--      -mtune=xscale  -mshort-load-bytes
-+COPTS+= -march=armv4 -mbig-endian -fno-strict-aliasing -fno-common \
-+      -mtune=xscale
diff --git a/packages/madwifi/files/slugos-xscale-le-elf-copts.patch b/packages/madwifi/files/slugos-xscale-le-elf-copts.patch
deleted file mode 100644 (file)
index c4d9937..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
---- madwifi.orig/hal/public/xscale-le-elf.inc  2007-01-03 23:42:06.000000000 -0600
-+++ madwifi/hal/public/xscale-le-elf.inc       2007-01-03 23:48:50.000000000 -0600
-@@ -79,4 +79,4 @@
- LDOPTS=       -EL
- COPTS+=       -DAH_BYTE_ORDER=AH_LITTLE_ENDIAN
- COPTS+= -march=armv4 -mlittle-endian -fno-strict-aliasing -fno-common \
--      -mapcs-32 -mtune=xscale  -mshort-load-bytes
-+      -mtune=xscale
diff --git a/packages/madwifi/madwifi-ng-r1844-20061208/10-xscale-be-elf-copts.patch b/packages/madwifi/madwifi-ng-r1844-20061208/10-xscale-be-elf-copts.patch
deleted file mode 100644 (file)
index f285540..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-Index: madwifi-ng-r1844-20061208/hal/public/xscale-be-elf.inc
-===================================================================
---- madwifi-ng-r1844-20061208.orig/hal/public/xscale-be-elf.inc
-+++ madwifi-ng-r1844-20061208/hal/public/xscale-be-elf.inc
-@@ -77,5 +77,5 @@ AH_REGOPS_FUNC=1
- LDOPTS=       -EB
- COPTS+=       -DAH_BYTE_ORDER=AH_BIG_ENDIAN
--COPTS+= -march=armv4 -mbig-endian -fno-strict-aliasing -fno-common -mapcs-32 \
--      -mtune=xscale  -mshort-load-bytes
-+COPTS+= -march=armv4 -mbig-endian -fno-strict-aliasing -fno-common \
-+      -mtune=xscale -msoft-float -mfp=2
diff --git a/packages/madwifi/madwifi-ng-r1844-20061208/10-xscale-le-elf-copts.patch b/packages/madwifi/madwifi-ng-r1844-20061208/10-xscale-le-elf-copts.patch
deleted file mode 100644 (file)
index 3224324..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-Index: madwifi-ng-r1844-20061208/hal/public/xscale-le-elf.inc
-===================================================================
---- madwifi-ng-r1844-20061208.orig/hal/public/xscale-le-elf.inc
-+++ madwifi-ng-r1844-20061208/hal/public/xscale-le-elf.inc
-@@ -79,4 +79,4 @@ AH_REGOPS_FUNC=1
- LDOPTS=       -EL
- COPTS+=       -DAH_BYTE_ORDER=AH_LITTLE_ENDIAN
- COPTS+= -march=armv4 -mlittle-endian -fno-strict-aliasing -fno-common \
--      -mapcs-32 -mtune=xscale  -mshort-load-bytes
-+      -mtune=xscale -msoft-float -mfp=2
index 4f38799..01d0e1e 100644 (file)
@@ -9,12 +9,8 @@ PR="r0"
 SRC_URI = "http://snapshots.madwifi.org/${PN}/${PN}-${PV}.tar.gz \
           file://10-xscale-be-elf-copts.patch;patch=1 \
           file://10-xscale-le-elf-copts.patch;patch=1 \
-          file://10-sh4-le-elf-copts.patch;patch=1"
-
-SRC_URI_slugos = "http://snapshots.madwifi.org/${PN}/${PN}-${PV}.tar.gz \
-                 file://slugos-xscale-be-elf-copts.patch;patch=1 \
-                 file://slugos-xscale-le-elf-copts.patch;patch=1 \
-                 file://slugos-VFP-wackelf.patch;patch=1"
+          file://10-sh4-le-elf-copts.patch;patch=1" \
+          file://20-xscale-VFP-wackelf.patch;patch=1"
 
 S = "${WORKDIR}/${PN}-${PV}"
 
@@ -22,8 +18,7 @@ inherit module-base
 
 EXTRA_OEMAKE = "LDFLAGS= KERNELPATH=${STAGING_KERNEL_DIR} KERNELRELEASE=${KERNEL_VERSION} TOOLPREFIX=${TARGET_PREFIX}"
 
-EXTRA_OEMAKE_prepend_ixp4xxle = "TARGET=xscale-le-elf "
-EXTRA_OEMAKE_prepend_ixp4xxbe = "TARGET=xscale-be-elf "
+EXTRA_OEMAKE_prepend_ixp4xx = "TARGET=xscale-${SITEINFO_ENDIANESS}-elf "
 
 do_compile() {
        oe_runmake all
diff --git a/packages/madwifi/madwifi-ng_r1527-20060425.bb b/packages/madwifi/madwifi-ng_r1527-20060425.bb
deleted file mode 100644 (file)
index 84af372..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-require madwifi-ng_r.inc
-PR="r0"
diff --git a/packages/madwifi/madwifi-ng_r1692-20060723.bb b/packages/madwifi/madwifi-ng_r1692-20060723.bb
deleted file mode 100644 (file)
index 6268f2b..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-require madwifi-ng_r.inc
-PR="r1"
diff --git a/packages/matchbox2/files/glib-2.8-backport.patch b/packages/matchbox2/files/glib-2.8-backport.patch
new file mode 100644 (file)
index 0000000..339477d
--- /dev/null
@@ -0,0 +1,110 @@
+Index: matchbox-panel-2/applets/windowselector/windowselector.c
+===================================================================
+--- matchbox-panel-2.orig/applets/windowselector/windowselector.c      2007-01-24 19:24:27.000000000 +0100
++++ matchbox-panel-2/applets/windowselector/windowselector.c   2007-01-25 02:34:21.000000000 +0100
+@@ -56,7 +56,7 @@
+                                           applet);
+         }
+-        g_slice_free (WindowSelectorApplet, applet);
++        g_free (applet);
+ }
+ /* Retrieves the UTF-8 property @atom from @window */
+@@ -673,7 +673,7 @@
+         GtkWidget *menu_bar, *menu_item, *image;
+         /* Create applet data structure */
+-        applet = g_slice_new (WindowSelectorApplet);
++        applet = g_new (WindowSelectorApplet,1);
+         applet->root_window = NULL;
+         applet->menu = NULL;
+Index: matchbox-panel-2/applets/battery/battery.c
+===================================================================
+--- matchbox-panel-2.orig/applets/battery/battery.c    2007-01-24 19:24:28.000000000 +0100
++++ matchbox-panel-2/applets/battery/battery.c 2007-01-25 02:34:21.000000000 +0100
+@@ -24,7 +24,7 @@
+ {
+         g_source_remove (applet->timeout_id);
+-        g_slice_free (BatteryApplet, applet);
++        g_free (applet);
+ }
+ /* Called every 5 minutes */
+@@ -97,7 +97,7 @@
+         }
+         /* Create applet data structure */
+-        applet = g_slice_new (BatteryApplet);
++        applet = g_new (BatteryApplet,1);
+         applet->last_icon = NULL;
+Index: matchbox-panel-2/applets/showdesktop/showdesktop.c
+===================================================================
+--- matchbox-panel-2.orig/applets/showdesktop/showdesktop.c    2007-01-24 19:24:28.000000000 +0100
++++ matchbox-panel-2/applets/showdesktop/showdesktop.c 2007-01-25 02:34:21.000000000 +0100
+@@ -36,7 +36,7 @@
+                                           applet);
+         }
+-        g_slice_free (ShowDesktopApplet, applet);
++        g_free (applet);
+ }
+ /* Sync @applet with the _NET_SHOWING_DESKTOP root window property */
+@@ -180,7 +180,7 @@
+         GtkWidget *button, *image;
+         /* Create applet data structure */
+-        applet = g_slice_new (ShowDesktopApplet);
++        applet = g_new (ShowDesktopApplet,1);
+         applet->block_toggle = FALSE;
+         applet->root_window = NULL;
+Index: matchbox-panel-2/applets/launcher/launcher.c
+===================================================================
+--- matchbox-panel-2.orig/applets/launcher/launcher.c  2007-01-24 19:24:27.000000000 +0100
++++ matchbox-panel-2/applets/launcher/launcher.c       2007-01-25 02:35:40.000000000 +0100
+@@ -36,7 +36,7 @@
+         g_free (applet->name);
+         g_strfreev (applet->argv);
+-        g_slice_free (LauncherApplet, applet);
++        g_free (applet);
+ }
+ /* Convert command line to argv array, stripping % conversions on the way */
+@@ -335,7 +335,7 @@
+         gtk_container_add (GTK_CONTAINER (event_box), image);
+         /* Set up applet structure */
+-        applet = g_slice_new (LauncherApplet);
++        applet = g_new (LauncherApplet,1);
+         applet->image = GTK_IMAGE (image);
+         
+Index: matchbox-panel-2/applets/clock/clock.c
+===================================================================
+--- matchbox-panel-2.orig/applets/clock/clock.c        2007-01-24 19:24:28.000000000 +0100
++++ matchbox-panel-2/applets/clock/clock.c     2007-01-25 02:35:25.000000000 +0100
+@@ -21,7 +21,7 @@
+ {
+         g_source_remove (applet->timeout_id);
+-        g_slice_free (ClockApplet, applet);
++        g_free (applet);
+ }
+ /* Called every minute */
+@@ -67,7 +67,7 @@
+         struct tm *local_time;
+         /* Create applet data structure */
+-        applet = g_slice_new (ClockApplet);
++        applet = g_new (ClockApplet,1);
+         /* Create label */
+         label = gtk_label_new (NULL);
diff --git a/packages/matchbox2/matchbox-panel-2_svn.bb b/packages/matchbox2/matchbox-panel-2_svn.bb
new file mode 100644 (file)
index 0000000..229922e
--- /dev/null
@@ -0,0 +1,21 @@
+DESCRIPTION = "matchbox-panel-2 is a lightweight dock (system tray) application based on Gtk+"
+LICENSE = "GPL"
+SECTION = "x11/panels"
+DEPENDS = "gtk+"
+PV = "0.1+svn${SRCDATE}"
+PR = "r1"
+
+SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=${PN};proto=http"
+S = "${WORKDIR}/${PN}"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--disable-startup-notification --disable-libnotify"
+
+do_stage() {
+    autotools_stage_all
+}
+
+PACKAGES += "${PN}-applets"
+FILES_${PN}-applets = "${libdir}/matchbox-panel/lib*.so* ${datadir}/*"
+
index 4d8b4f2..0283eb6 100644 (file)
@@ -3,7 +3,7 @@ HOMEPAGE = "http://mediatomb.org/"
 LICENSE = "GPLv2"
 DEPENDS = "sqlite3 libexif js zlib file id3lib"
 PV = "0.8+0.9pre1+svn${SRCDATE}-sqlite"
-PR = "r1"
+PR = "r2"
 
 SRC_URI = "svn://mediatomb.svn.sourceforge.net/svnroot/mediatomb/trunk;proto=https;module=mediatomb"
 
@@ -16,7 +16,7 @@ EXTRA_OECONF = "--disable-mysql \
                --enable-sqlite3 \
                 --enable-libjs \
                --enable-libmagic \
-               --enable-taglib \
+               --enable-id3lib \
                --enable-libexif \
                 --disable-largefile \
                 --with-sqlite3-h=${STAGING_INCDIR} \
@@ -29,4 +29,5 @@ EXTRA_OECONF = "--disable-mysql \
                 --with-zlib-libs=${STAGING_LIBDIR} \
                 --with-js-h=${STAGING_INCDIR}/js \
                 --with-js-libs=${STAGING_LIBDIR} \
-                --with-taglib-cfg=${STAGING_BINDIR_CROSS}/taglib-config"
+                --with-id3lib-h=${STAGING_INCDIR} \
+                --with-id3lib-libs=${STAGING_LIBDIR}"
index d8e8ee9..3b4023b 100644 (file)
@@ -11,7 +11,6 @@ INHIBIT_DEFAULT_DEPS = "1"
 EXCLUDE_FROM_WORLD = "1"
 ALLOW_EMPTY = "1"
 PACKAGES = "${PN}"
-PROVIDES += "${SLUGOS_IMAGENAME}-native"
 
 # Run-time only (RDEPENDS) stuff - no package explicitly provides
 # these targets.
index 01a79a8..ecb2963 100644 (file)
@@ -5,9 +5,8 @@
 DESCRIPTION = "Packages that are compatible with the SlugOS firmware"
 HOMEPAGE = "http://www.nslu2-linux.org"
 LICENSE = "MIT"
-PR = "r17"
+PR = "r19"
 CONFLICTS = "db3"
-PROVIDES += "${SLUGOS_IMAGENAME}-packages"
 
 COMPATIBLE_MACHINE = "nslu2"
 EXCLUDE_FROM_WORLD = "1"
@@ -45,6 +44,7 @@ SLUGOS_PACKAGES = "\
        cron \
        ctorrent \
        cvs \
+       cyrus-imapd \
        cyrus-sasl \
        db \
        devlabel \
@@ -106,6 +106,7 @@ SLUGOS_PACKAGES = "\
        make \
        masqmail \
        mdadm \
+       mediatomb \
        memtester \
        mgetty \
        miau \
@@ -123,6 +124,8 @@ SLUGOS_PACKAGES = "\
        netcat \
        nmap \
        ntp \
+       obexftp \
+       obexpush \
        openobex-apps \
        openldap \
        openntpd \
@@ -136,7 +139,6 @@ SLUGOS_PACKAGES = "\
        pkgconfig \
        ppp \
        procps \
-       pvrusb2-mci \
        python \
        quilt \
        reiserfsprogs reiser4progs \
@@ -179,13 +181,12 @@ SLUGOS_BROKEN_PACKAGES = "\
        irssi \
        libgphoto2 \
        netpbm \
-       obexftp \
        puppy \
+       pvrusb2-mci \
        qc-usb-messenger \
        sane-backends \
        unionfs-modules \
        unionfs-utils \
-       cyrus-imapd \
        lirc \
        pwc \
        zd1211 \
similarity index 88%
rename from packages/mozilla/firefox-2.0/arm/jsautocfg.h
rename to packages/mozilla/files/arm/jsautocfg.h
index 05f3dad..7e8171f 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef js_cpucfg___
 #define js_cpucfg___
 
-/* Lovingly crafted by hand avoiding Mozilla stupidity */
+/* AUTOMATICALLY GENERATED - DO NOT EDIT */
 
 #define IS_LITTLE_ENDIAN 1
 #undef  IS_BIG_ENDIAN
 #define JS_ALIGN_OF_SHORT   2L
 #define JS_ALIGN_OF_INT     4L
 #define JS_ALIGN_OF_LONG    4L
-#define JS_ALIGN_OF_INT64   4L
+#define JS_ALIGN_OF_INT64   8L
 #define JS_ALIGN_OF_FLOAT   4L
-#define JS_ALIGN_OF_DOUBLE  4L
+#define JS_ALIGN_OF_DOUBLE  8L
 #define JS_ALIGN_OF_POINTER 4L
 #define JS_ALIGN_OF_WORD    4L
 
 #define JS_BYTES_PER_WORD_LOG2   2L
 #define JS_BYTES_PER_DWORD_LOG2  3L
-#define JS_WORDS_PER_DWORD_LOG2  2L
+#define JS_WORDS_PER_DWORD_LOG2  1L
 
 #define JS_STACK_GROWTH_DIRECTION (-1)
 
similarity index 85%
rename from packages/mozilla/firefox-1.0.7/jsautocfg.h
rename to packages/mozilla/files/powerpc/jsautocfg.h
index 05f3dad..93d0374 100644 (file)
@@ -1,10 +1,10 @@
 #ifndef js_cpucfg___
 #define js_cpucfg___
 
-/* Lovingly crafted by hand avoiding Mozilla stupidity */
+/* AUTOMATICALLY GENERATED - DO NOT EDIT */
 
-#define IS_LITTLE_ENDIAN 1
-#undef  IS_BIG_ENDIAN
+#undef  IS_LITTLE_ENDIAN
+#define IS_BIG_ENDIAN 1
 
 #define JS_BYTES_PER_BYTE   1L
 #define JS_BYTES_PER_SHORT  2L
 #define JS_ALIGN_OF_SHORT   2L
 #define JS_ALIGN_OF_INT     4L
 #define JS_ALIGN_OF_LONG    4L
-#define JS_ALIGN_OF_INT64   4L
+#define JS_ALIGN_OF_INT64   8L
 #define JS_ALIGN_OF_FLOAT   4L
-#define JS_ALIGN_OF_DOUBLE  4L
+#define JS_ALIGN_OF_DOUBLE  8L
 #define JS_ALIGN_OF_POINTER 4L
 #define JS_ALIGN_OF_WORD    4L
 
 #define JS_BYTES_PER_WORD_LOG2   2L
 #define JS_BYTES_PER_DWORD_LOG2  3L
-#define JS_WORDS_PER_DWORD_LOG2  2L
+#define JS_WORDS_PER_DWORD_LOG2  1L
 
 #define JS_STACK_GROWTH_DIRECTION (-1)
 
diff --git a/packages/mozilla/firefox-2.0.0.1/.mtn2git_empty b/packages/mozilla/firefox-2.0.0.1/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/mozilla/firefox-2.0.0.1/jsautocfg-dontoverwrite.patch b/packages/mozilla/firefox-2.0.0.1/jsautocfg-dontoverwrite.patch
new file mode 100644 (file)
index 0000000..39978cf
--- /dev/null
@@ -0,0 +1,23 @@
+--- mozilla/js/src/Makefile.in.orig    2006-12-12 11:46:02.000000000 +0000
++++ mozilla/js/src/Makefile.in 2006-12-12 11:46:27.000000000 +0000
+@@ -319,20 +319,8 @@
+ jsopcode.h jsopcode.c: jsopcode.tbl
+-ifeq (,$(CROSS_COMPILE)$(filter-out WINNT,$(OS_ARCH)))
+ jsautocfg.h:
+       touch $@
+-else
+-ifeq ($(OS_ARCH),WINCE)
+-jsautocfg.h:
+-      touch $@
+-else
+-jsautocfg.h: jscpucfg$(HOST_BIN_SUFFIX)
+-      @rm -f $@ jsautocfg.tmp
+-      ./jscpucfg > jsautocfg.tmp
+-      mv jsautocfg.tmp $@
+-endif
+-endif
+ # jscpucfg is a strange target
+ # Needs to be built with the host compiler but needs to include
diff --git a/packages/mozilla/firefox-2.0.0.1/jsdtoa-float-type.patch b/packages/mozilla/firefox-2.0.0.1/jsdtoa-float-type.patch
new file mode 100644 (file)
index 0000000..028900f
--- /dev/null
@@ -0,0 +1,13 @@
+Index: mozilla/js/src/jsdtoa.c
+===================================================================
+--- mozilla.orig/js/src/jsdtoa.c
++++ mozilla/js/src/jsdtoa.c
+@@ -175,7 +175,7 @@
+  * #define NO_IEEE_Scale to disable new (Feb. 1997) logic in strtod that
+  *  avoids underflows on inputs whose result does not underflow.
+  */
+-#ifdef IS_LITTLE_ENDIAN
++#if defined(IS_LITTLE_ENDIAN) && (!defined(__arm__) || defined(__VFP_FP__))
+ #define IEEE_8087
+ #else
+ #define IEEE_MC68k
diff --git a/packages/mozilla/firefox-2.0.0.1/mozconfig b/packages/mozilla/firefox-2.0.0.1/mozconfig
new file mode 100644 (file)
index 0000000..9737330
--- /dev/null
@@ -0,0 +1,57 @@
+. $topsrcdir/browser/config/mozconfig
+
+# use GTK+-2 widget set with XFT font rendering
+ac_add_options --enable-default-toolkit=gtk2
+ac_add_options --enable-xft
+ac_add_options --disable-freetype2
+
+# enable minimal profile support
+ac_add_options --disable-profilesharing
+ac_add_options --disable-profilelocking
+ac_add_options --enable-single-profile
+
+ac_add_options --with-system-zlib
+ac_add_options --with-system-jpeg
+ac_add_options --with-system-png
+
+ac_add_options --disable-accessibility
+ac_add_options --disable-composer
+#ac_add_options --enable-plaintext-editor-only
+ac_add_options --disable-mailnews
+ac_add_options --disable-ldap  
+#ac_add_options --disable-postscript
+ac_add_options --disable-mathml
+ac_add_options --disable-jsd
+ac_add_options --disable-installer
+ac_add_options --disable-xprint
+ac_add_options --disable-necko-disk-cache
+
+# configure necko to allocate smaller network buffers
+ac_add_options --enable-necko-small-buffers
+
+# disable debug logging and tests
+#ac_add_options --disable-dtd-debug
+ac_add_options --disable-logging
+ac_add_options --enable-debug=-ggdb
+ac_add_options --disable-gtktest
+ac_add_options --disable-tests
+ac_add_options --disable-printing
+ac_add_options --disable-gnomevfs
+ac_add_options --disable-gnomeui
+
+# build crypto module (PSM + NSS)
+ac_add_options --enable-crypto
+
+# build minimal set of protocol handlers
+ac_add_options --enable-necko-protocols=http,file,res,jar,ftp,about,viewsource
+
+# build minimal set of image decoders
+ac_add_options --enable-image-decoders=png,gif,jpeg
+
+#ac_add_options --enable-reorder
+#ac_add_options --enable-elf-dynstr-gc
+
+# enable static build
+#ac_add_options --disable-shared
+#ac_add_options --enable-static
+ac_add_options --enable-optimize=-O1
diff --git a/packages/mozilla/firefox-2.0.0.1/mult-crash-fix.patch b/packages/mozilla/firefox-2.0.0.1/mult-crash-fix.patch
new file mode 100644 (file)
index 0000000..cb30f89
--- /dev/null
@@ -0,0 +1,14 @@
+$OpenBSD: patch-nsprpub_pr_src_misc_prdtoa_c,v 1.1 2005/11/03 00:59:43 pvalchev Exp $
+Index: mozilla/nsprpub/pr/src/misc/prdtoa.c
+===================================================================
+--- mozilla.orig/nsprpub/pr/src/misc/prdtoa.c
++++ mozilla/nsprpub/pr/src/misc/prdtoa.c
+@@ -855,7 +855,7 @@ mult
+       wc = wa + wb;
+       if (wc > a->maxwds)
+               k++;
+-      c = Balloc(k);
++      c = Balloc(k*2);
+       for(x = c->x, xa = x + wc; x < xa; x++)
+               *x = 0;
+       xa = a->x;
diff --git a/packages/mozilla/firefox-2.0.0.1/security-cross.patch b/packages/mozilla/firefox-2.0.0.1/security-cross.patch
new file mode 100644 (file)
index 0000000..56c8d04
--- /dev/null
@@ -0,0 +1,93 @@
+--- mozilla/security/coreconf/Linux.mk.orig    2006-12-12 10:53:12.000000000 +0000
++++ mozilla/security/coreconf/Linux.mk 2006-12-12 10:54:13.000000000 +0000
+@@ -52,88 +52,8 @@
+ DEFAULT_COMPILER = gcc
+-ifeq ($(OS_TEST),m68k)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = m68k
+-else
+-ifeq ($(OS_TEST),ppc64)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = ppc
+-ifeq ($(USE_64),1)
+-      ARCHFLAG        = -m64
+-endif
+-else
+-ifeq ($(OS_TEST),ppc)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = ppc
+-else
+-ifeq ($(OS_TEST),alpha)
+-        OS_REL_CFLAGS   = -D_ALPHA_ -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = alpha
+-else
+-ifeq ($(OS_TEST),ia64)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = ia64
+-else
+-ifeq ($(OS_TEST),x86_64)
+-ifeq ($(USE_64),1)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = x86_64
+-else
+-      OS_REL_CFLAGS   = -DLINUX1_2 -Di386 -D_XOPEN_SOURCE
+-      CPU_ARCH        = x86
+-      ARCHFLAG        = -m32
+-endif
+-else
+-ifeq ($(OS_TEST),sparc)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = sparc
+-else
+-ifeq ($(OS_TEST),sparc64)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = sparc
+-else
+-ifeq (,$(filter-out arm% sa110,$(OS_TEST)))
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = arm
+-else
+-ifeq ($(OS_TEST),parisc)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = hppa
+-else
+-ifeq ($(OS_TEST),parisc64)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = hppa
+-else
+-ifeq ($(OS_TEST),s390)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = s390
+-else
+-ifeq ($(OS_TEST),s390x)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = s390x
+-else
+-ifeq ($(OS_TEST),mips)
+-      OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
+-      CPU_ARCH        = mips
+-else
+-      OS_REL_CFLAGS   = -DLINUX1_2 -Di386 -D_XOPEN_SOURCE
+-      CPU_ARCH        = x86
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-endif
+-
++OS_REL_CFLAGS   = -DLINUX1_2 -D_XOPEN_SOURCE
++CPU_ARCH =
+ LIBC_TAG              = _glibc
diff --git a/packages/mozilla/firefox-2.0.0.1/xptcinvoke-arm.patch b/packages/mozilla/firefox-2.0.0.1/xptcinvoke-arm.patch
new file mode 100644 (file)
index 0000000..bc0c6f4
--- /dev/null
@@ -0,0 +1,11 @@
+--- iceweasel-2.0.0.1+dfsg.orig/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
++++ iceweasel-2.0.0.1+dfsg/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_arm.cpp
+@@ -212,7 +212,7 @@
+     "add      sp, sp, r4      \n\t"   /* restore stack pointer                */
+     "mov      %0, r0          \n\t"   /* the result...                        */
+     : "=r" (result)
+-    : "r" (&my_params)
++    : "r" (&my_params), "m" (my_params)
+     : "r0", "r1", "r2", "r3", "r4", "ip", "lr", "sp"
+     );
+
diff --git a/packages/mozilla/firefox-2.0.0.1/xptcstubs.patch b/packages/mozilla/firefox-2.0.0.1/xptcstubs.patch
new file mode 100644 (file)
index 0000000..f264569
--- /dev/null
@@ -0,0 +1,13 @@
+--- iceweasel-2.0.0.1+dfsg.orig/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp
++++ iceweasel-2.0.0.1+dfsg/xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp
+@@ -45,7 +45,8 @@
+ #endif
+ /* Specify explicitly a symbol for this function, don't try to guess the c++ mangled symbol.  */
+-static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) asm("_PrepareAndDispatch");
++static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) asm("_PrepareAndDispatch")
++__attribute__((used));
+ static nsresult
+ PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args)
+
diff --git a/packages/mozilla/firefox_2.0.0.1.bb b/packages/mozilla/firefox_2.0.0.1.bb
new file mode 100644 (file)
index 0000000..db3c0f4
--- /dev/null
@@ -0,0 +1,37 @@
+PR = "r1"
+SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${PV}/source/firefox-${PV}-source.tar.bz2 \
+       file://xptcstubs.patch;patch=1 \
+       file://no-xmb.patch;patch=1 \
+       file://jsautocfg.h \
+       file://extensions-hack.patch;patch=1 \
+    file://security-cross.patch;patch=1 \
+    file://jsautocfg-dontoverwrite.patch;patch=1 \
+    file://xptcinvoke-arm.patch;patch=1 \
+    file://jsdtoa-float-type.patch;patch=1 \
+    "
+S = "${WORKDIR}/mozilla"
+DEFAULT_PREFERENCE = "-1"
+
+inherit mozilla
+
+require firefox.inc
+
+do_compile_prepend() {
+       cp ${WORKDIR}/jsautocfg.h ${S}/js/src/
+
+       sed -i "s|CPU_ARCH =|CPU_ARCH = ${TARGET_ARCH}|" security/coreconf/Linux.mk
+}
+
+do_stage() {
+
+        install -d ${STAGING_INCDIR}/${P}
+        cd dist/sdk/include
+        headers=`find . -name "*.h"`
+        for f in $headers
+        do
+                install -D -m 0644 $f ${STAGING_INCDIR}/${P}/$f
+        done
+        # removes 2 lines that call absent headers
+        sed -e '178,179d' ${STAGING_INCDIR}/${P}/nsIServiceManager.h
+}
+
index 153d226..8991295 100644 (file)
@@ -2,7 +2,7 @@ DESCRIPTION = "MRXVT is a lightweight and powerful X terminal emulator based on
 HOMEPAGE = "http://materm.sourceforge.net"
 AUTHOR = "Jimmy Zhou <jimmyzhou@users.sf.net>"
 LICENSE = "GPL"
-SECTION = "x11/apps"
+SECTION = "x11/applications"
 DEPENDS = "virtual/libx11 libxext libxpm jpeg libpng"
 PR = "r0"
 
diff --git a/packages/mtpaint/.mtn2git_empty b/packages/mtpaint/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/mtpaint/mtpaint_3.02.bb b/packages/mtpaint/mtpaint_3.02.bb
new file mode 100644 (file)
index 0000000..5add7e4
--- /dev/null
@@ -0,0 +1,25 @@
+DESCRIPTION = "mtPaint is a simple painting program"
+SECTION = "x11/graphics"
+DEPENDS = "gtk+ jpeg"
+HOMEPAGE = "http://mtpaint.sf.net"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/mtpaint/mtpaint-3.02.tar.bz2"
+
+do_configure() {
+       ./configure gtk2
+       cat > _conf.txt <<EOF
+CC = ${CC}
+MT_VERSION=mtPaint 3.02
+MT_DATE=2006-10-14
+LDFLAG = ${LDFLAGS} `pkg-config --libs gtk+-2.0` -ljpeg
+CFLAG = ${CFLAGS} `pkg-config --cflags gtk+-2.0` -DVERSION="\"mtPaint 3.02"\" -DU_JPEG
+subdirs = src
+BIN_INSTALL="/usr/local/bin"
+EOF
+}
+
+do_install() {
+       install -d ${D}${bindir}
+       install -m 0755 src/mtpaint ${D}${bindir}
+}
+
index 4d9449c..59cea4f 100644 (file)
@@ -1,9 +1,8 @@
 DESCRIPTION = "glurp - frontend for mpd"
 HOMEPAGE = "http://www.musicpd.org/glurp.shtml"
+SECTION = "x11/multimedia"
 LICENSE = "GPLv2"
-SECTION = "gnome/multimedia"
 DEPENDS = "gtk+ libglade"
-PR = "r0"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/glurp/glurp-${PV}.tar.gz"
 
index 9468a07..6ed2ada 100644 (file)
@@ -1,7 +1,7 @@
 DESCRIPTION = "GTK+ Frontend for mpd"
 HOMEPAGE = "http://www.musicpd.org/gmpc.shtml"
+SECTION = "x11/multimedia"
 LICENSE = "GPLv2"
-SECTION = "gnome/multimedia"
 DEPENDS = "gtk+ libglade gnome-vfs"
 PR = "r1"
 
index 3d9c668..f8c99ef 100644 (file)
@@ -1,7 +1,7 @@
 DESCRIPTION = "GTK+ Frontend for mpd"
 HOMEPAGE = "http://www.musicpd.org/gmpc.shtml"
+SECTION = "x11/multimedia"
 LICENSE = "GPLv2"
-SECTION = "gnome/multimedia"
 DEPENDS = "libmpd gtk+ libglade gnome-vfs"
 PR = "r0"
 
index 9c03faa..fbaea3e 100644 (file)
@@ -1,11 +1,10 @@
 DESCRIPTION = "GTK+ Frontend for mpd"
 HOMEPAGE = "http://www.musicpd.org/gmpc.shtml"
+SECTION = "x11/multimedia"
 LICENSE = "GPLv2"
-SECTION = "gnome/multimedia"
 DEPENDS = "libmpd gtk+ libglade gnome-vfs gob2"
 SRCDATE = "20070120"
 PV = "0.13.0+svn${SRCDATE}"
-PR = "r0"
 
 SRC_URI = "svn://svn.musicpd.org/gmpc;module=trunk;proto=https"
 S = "${WORKDIR}/trunk"
index eea7b95..4c78eb1 100644 (file)
@@ -1,10 +1,9 @@
 DESCRIPTION = "Music Player Daemon (mpd) library"
 HOMEPAGE = "http://www.musicpd.org"
+SECTION = "libs/multimedia"
 LICENSE = "GPLv2"
-SECTION = "lib/multimedia"
 SRCDATE = "20070120"
 PV = "0.0.0+svn${SRCDATE}"
-PR = "r0"
 
 SRC_URI = "svn://svn.musicpd.org/libmpd;module=trunk;proto=https"
 S = "${WORKDIR}/trunk"
index 8806653..8d3eaa1 100644 (file)
@@ -1,7 +1,7 @@
 DESCRIPTION = "Command-line (scriptable) Music Player Daemon (mpd) Client"
 HOMEPAGE = "http://www.musicpd.org/mpc.shtml"
-LICENSE = "GPLv2"
 SECTION = "console/multimedia"
+LICENSE = "GPLv2"
 PR = "r1"
 
 SRC_URI = "http://mercury.chem.pitt.edu/~shank/mpc-${PV}.tar.gz"
index 6d47f94..ccd6926 100644 (file)
@@ -1,8 +1,7 @@
 DESCRIPTION = "Command-line (scriptable) Music Player Daemon (mpd) Client"
 HOMEPAGE = "http://www.musicpd.org/mpc.shtml"
-LICENSE = "GPLv2"
 SECTION = "console/multimedia"
-PR = "r0"
+LICENSE = "GPLv2"
 
 SRC_URI = "http://www.musicpd.org/uploads/files/mpc-${PV}.tar.bz2"
 EXTRA_OECONF = "--with-iconv-libraries=${STAGING_LIBDIR} \
index 1ba1fab..939ecec 100644 (file)
@@ -1,7 +1,7 @@
 DESCRIPTION = "Music Player Daemon (mpd). This version is configured for alsa support"
 HOMEPAGE = "http://www.musicpd.org"
-LICENSE = "GPLv2"
 SECTION = "console/multimedia"
+LICENSE = "GPLv2"
 DEPENDS = "libvorbis libogg libid3tag libao-alsa zlib libmikmod libmad flac audiofile virtual/libiconv"
 RDEPENDS = "libao-alsa"
 PR = "r3"
index 493f677..9d3c5f9 100644 (file)
@@ -1,7 +1,7 @@
 DESCRIPTION = "Music Player Daemon (mpd)"
 HOMEPAGE = "http://www.musicpd.org"
-LICENSE = "GPLv2"
 SECTION = "console/multimedia"
+LICENSE = "GPLv2"
 DEPENDS = "libvorbis libogg libid3tag libao zlib libmikmod libmad flac audiofile"
 PR = "r2"
 
index d501d0e..7a1d17e 100644 (file)
@@ -1,7 +1,7 @@
 DESCRIPTION = "Music Player Daemon (mpd)"
 HOMEPAGE = "http://www.musicpd.org"
-LICENSE = "GPLv2"
 SECTION = "console/multimedia"
+LICENSE = "GPLv2"
 DEPENDS = "libvorbis libogg libid3tag libao zlib libmikmod libmad flac audiofile virtual/libiconv faad2"
 PR = "r8"
 
index 3478bc7..5a338aa 100644 (file)
@@ -1,7 +1,7 @@
 DESCRIPTION = "Music Player Daemon (mpd)"
 HOMEPAGE = "http://www.musicpd.org"
-LICENSE = "GPLv2"
 SECTION = "console/multimedia"
+LICENSE = "GPLv2"
 DEPENDS = "libvorbis libogg libid3tag libao zlib libmikmod libmad flac audiofile virtual/libiconv faad2 pulseaudio"
 SRCDATE = "20070120"
 PV = "0.12.1+svn${SRCDATE}"
index c687f9e..32195cc 100644 (file)
@@ -1,9 +1,8 @@
 DESCRIPTION = "Ncurses based Music Player Daemon (mpd) Client"
 HOMEPAGE = "http://www.musicpd.org/ncmpc.shtml"
-LICENSE = "GPLv2"
 SECTION = "console/multimedia"
+LICENSE = "GPLv2"
 DEPENDS = "ncurses glib-2.0"
-PR = "r0"
 
 SRC_URI = "http://mercury.chem.pitt.edu/~shank/ncmpc-${PV}.tar.gz"
 
index 675567e..92423f0 100644 (file)
@@ -1,9 +1,8 @@
 DESCRIPTION = "Python library for Music Player Daemon (mpd)"
 HOMEPAGE = "http://www.musicpd.org/py-libmpdclient.shtml"
+SECTION = "libs/multimedia"
 LICENSE = "GPLv2"
-SECTION = "lib/multimedia"
 DEPENDS = "libmpd python"
-PR = "r0"
 
 SRC_URI = "http://mercury.chem.pitt.edu/~shank/py-libmpdclient-${PV}.tar.gz"
 
index 3b9bf36..86e7f2b 100644 (file)
@@ -1,8 +1,7 @@
-SECTION = "devel"
 DESCRIPTION = "General-purpose x86 assembler"
-COMPATIBLE_HOST = '(x86_64|i.86.*)-(linux|freebsd.*)'
+SECTION = "devel"
 LICENSE = "GPL"
-SECTION = "dev-lang"
+COMPATIBLE_HOST = '(x86_64|i.86.*)-(linux|freebsd.*)'
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/nasm/nasm-${PV}.tar.bz2"
 
index a6361f0..c7ceccd 100644 (file)
@@ -1,7 +1,7 @@
 DESCRIPTION = "GNU Netcat"
 HOMEPAGE = "http://netcat.sourceforge.net"
+SECTION = "console/network"
 LICENSE = "GPLv2"
-SECTION = "console/networking"
 PR = "r1"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/netcat/netcat-${PV}.tar.bz2"
index e14230a..737d954 100644 (file)
@@ -1,5 +1,5 @@
 DESCRIPTION = "GNOME NetworkManager port"
-SECTION = "net/misc"
+SECTION = "network/misc"
 LICENSE = "GPL"
 HOMEPAGE = "http://www.gnome.org"
 PRIORITY = "optional"
index a0af47b..181a06c 100644 (file)
@@ -1,12 +1,12 @@
 # This meta package is a convenience to build all of the
 # NIS packages.
 #
-PR = "r0"
+
 DESCRIPTION="NIS services"
 HOMEPAGE="http://www.linux-nis.org/nis/"
-SECTION = "console/networking"
+SECTION = "console/network"
 PRIORITY = "optional"
-LICENSE = "GPL-2"
+LICENSE = "GPLv2"
 
 INHIBIT_DEFAULT_DEPS = "1"
 
index 4523288..90f7ff5 100644 (file)
@@ -5,9 +5,9 @@
 # the rpcsvc functionality is not present in uclibc
 DESCRIPTION ?= "NIS Server and Tools"
 HOMEPAGE ?= "http://www.linux-nis.org/nis/"
-SECTION ?= "console/networking"
+SECTION ?= "console/network"
 PRIORITY ?= "optional"
-LICENSE ?= "GPL-2"
+LICENSE ?= "GPLv2"
 
 # Override these *after* the include file if necessary!
 SRC_URI = "${KERNELORG_MIRROR}/pub/linux/utils/net/NIS/${P}.tar.bz2"
index 5983b05..0d6cfb0 100644 (file)
@@ -1,7 +1,7 @@
-SECTION="libs"
+SECTION = "libs"
 
 SRC_URI = "http://bluez.sourceforge.net/download/${PN}-${PV}.tar.gz"
-S=${WORKDIR}/${P}
+S = ${WORKDIR}/${P}
 
 inherit autotools
 
index c4738cb..c0f500a 100644 (file)
@@ -1,5 +1,5 @@
 PR = "r4"
-LICENSE = "GPL-2"
+LICENSE = "GPLv2"
 
 DEPENDS = "libvorbis libogg libxslt"
 
index a749431..58c1aa1 100644 (file)
@@ -1,16 +1,16 @@
-DESCRIPTION=Linux Userland File Systems
-SECTION=base
-PRIORITY=optional
-LICENSE=GPL
+DESCRIPTION = "Linux Userland File Systems"
+SECTION = "base"
+PRIORITY = "optional"
+LICENSE = "GPL"
 
-SRC_URI = ${SOURCEFORGE_MIRROR}/lufs/lufs-${PV}.tar.gz
-S = ${WORKDIR}/lufs-${PV}
+SRC_URI = "${SOURCEFORGE_MIRROR}/lufs/lufs-${PV}.tar.gz"
+S = "${WORKDIR}/lufs-${PV}"
 
 inherit autotools
 
-KERNEL_VERSION=`cat ${STAGING_DIR}/target/kernel/kernel-version`
-KERNEL_SOURCE=`cat ${STAGING_DIR}/target/kernel/kernel-source`
-KERNEL_PATH=${STAGING_DIR}/target/kernel
+KERNEL_VERSION = "`cat ${STAGING_DIR}/target/kernel/kernel-version`"
+KERNEL_SOURCE = "`cat ${STAGING_DIR}/target/kernel/kernel-source`"
+KERNEL_PATH = "${STAGING_DIR}/target/kernel"
 
-EXTRA_OECONF = --with-kernel=${KERNEL_VERSION} --with-kheaders=${STAGING_DIR}/target/kernel/include
+EXTRA_OECONF = " --with-kernel=${KERNEL_VERSION} --with-kheaders=${STAGING_DIR}/target/kernel/include"
 
index 4c7eccf..9542c66 100644 (file)
@@ -1,11 +1,11 @@
-DESCRIPTION="Pixil Operating Environment"
-SECTION="gui"
-PRIORITY="optional"
-RDEPENDS="microwindows"
-DEPENDS="microwindows"
+DESCRIPTION = "Pixil Operating Environment"
+SECTION = "gui"
+PRIORITY = "optional"
+DEPENDS = "microwindows"
+RDEPENDS = "microwindows"
 
-SRC_URI="${SOURCEFORGE_MIRROR}/pixdev/pixdev-stable-${PV}.tar.gz \
-        file://${FILESDIR}/braces.patch;patch=1"
+SRC_URI = "${SOURCEFORGE_MIRROR}/pixdev/pixdev-stable-${PV}.tar.gz \
+          file://${FILESDIR}/braces.patch;patch=1"
 export EXTRA_OEMAKE=
 
 inherit autotools
index f607a29..ddb9015 100644 (file)
@@ -1,13 +1,13 @@
-DESCRIPTION=GNU Scientific Library Python Bindings
-SECTION=base
-PRIORITY=optional
-RDEPENDS=python-core gsl
-DEPENDS=gsl
-SRCNAME=pygsl
+DESCRIPTION = "GNU Scientific Library Python Bindings"
+SECTION = "base"
+PRIORITY = "optional"
+DEPENDS = "gsl"
+RDEPENDS = "python-core gsl"
+SRCNAME = "pygsl"
 
-SRC_URI = ${SOURCEFORGE_MIRROR}/${SRCNAME}/${SRCNAME}-${PV}.tar.gz \
-          file://${FILESDIR}/cross-compile.patch;patch=1
-S = ${WORKDIR}/${SRCNAME}-${PV}
+SRC_URI = "${SOURCEFORGE_MIRROR}/${SRCNAME}/${SRCNAME}-${PV}.tar.gz \
+           file://${FILESDIR}/cross-compile.patch;patch=1"
+S = "${WORKDIR}/${SRCNAME}-${PV}"
 
 inherit distutils
 
index 0d6a5cb..67d6f9c 100644 (file)
@@ -1,10 +1,10 @@
-DESCRIPTION="DVI Viewer for Opie/Qtopia"
-SECTION="base"
-PRIORITY="optional"
-LICENSE="GPL"
+DESCRIPTION= " DVI Viewer for Opie/Qtopia"
+SECTION = "base"
+PRIORITY = "optional"
+LICENSE = "GPL"
 
-SRC_URI = http://ichitokumei.hp.infoseek.co.jp/${PN}/source/${P}.tar.gz
-S = ${WORKDIR}/${PN}/src
+SRC_URI = "http://ichitokumei.hp.infoseek.co.jp/${PN}/source/${P}.tar.gz"
+S = "${WORKDIR}/${PN}/src"
 
 inherit palmtop
 
index b49989f..0e3cd74 100644 (file)
@@ -1,9 +1,9 @@
-DESCRIPTION="A MIB Browser for Opie/Qtopia"
-SECTION="base"
-PRIORITY="optional"
-LICENSE="GPL"
-DEPENDS=virtual/libqpe snmp++
+DESCRIPTION = "A MIB Browser for Opie/Qtopia"
+SECTION = "base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+DEPENDS = "virtual/libqpe snmp++"
 
-SRC_URI = ${SOURCEFORGE_MIRROR}/${PN}/SNMPz-${PV}.tar.gz
+SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/SNMPz-${PV}.tar.gz"
 S = "${WORKDIR}/SNMPz-${PV}"
 
index 8405019..326fb39 100644 (file)
@@ -1,6 +1,6 @@
-DESCRIPTION=Unison is a file-synchronization tool for Unix and Windows.
-SECTION=net
-PRIORITY=optional
+DESCRIPTION = "Unison is a file-synchronization tool for Unix and Windows."
+SECTION = "net"
+PRIORITY = "optional"
 
-SRC_URI = ${DEBIAN_MIRROR}/main/u/${PN}/${PN}_${PV}.orig.tar.gz \
-          file://${FILESDIR}/debian.patch;patch=1
+SRC_URI = "${DEBIAN_MIRROR}/main/u/${PN}/${PN}_${PV}.orig.tar.gz \
+           file://${FILESDIR}/debian.patch;patch=1"
index 8fc7a08..02ef88f 100644 (file)
@@ -1,6 +1,6 @@
-SECTION="base"
-PRIORITY="required"
-DEPENDS=zlib tslib ncurses
+SECTION = "base"
+PRIORITY = "required"
+DEPENDS = "zlib tslib ncurses"
 
 SRC_URI = "ftp://ftp.xfree86.org/pub/XFree86/4.3.0/source/X430src-1.tgz;"
 SRC_URI_append =" ftp://ftp.xfree86.org/pub/XFree86/4.3.0/source/X430src-2.tgz;"
@@ -9,7 +9,7 @@ SRC_URI_append =" file://${FILESDIR}/tinyx-kbd-enable-fix.patch;patch=1"
 SRC_URI_append =" file://${FILESDIR}/tinyx-tslib-reset-and-vt-switch-fixes.patch;patch=1"
 SRC_URI_append =" file://${FILESDIR}/dirty-3.2-xterm-breakage-fix.patch;patch=1"
 
-S=${WORKDIR}/xc
+S = "${WORKDIR}/xc"
 
 
 do_configure() {
index 8acabfa..791c285 100644 (file)
@@ -1,7 +1,7 @@
-DESCRIPTION =   "a dbus service that listens to desktop notification requests and displays them"
-HOMEPAGE =      "http://www.galago-project.org/"
-LICENSE =       "GPL"
-DEPENDS =       "gettext dbus gtk+ libsexy gconf libwnck"
+DESCRIPTION = "a dbus service that listens to desktop notification requests and displays them"
+HOMEPAGE = "http://www.galago-project.org/"
+LICENSE = "GPL"
+DEPENDS = "gettext dbus gtk+ libsexy gconf libwnck"
 
 PACKAGES = "${PN}"
 FILES_${PN} = "${libexecdir}/notification-daemon \
@@ -9,7 +9,7 @@ FILES_${PN} = "${libexecdir}/notification-daemon \
        ${libdir}/notification-daemon-1.0/engines/libstandard.so \
        ${sysconfdir}/gconf/schemas/notification-daemon.schemas"
 
-SRC_URI =       "http://www.galago-project.org/files/releases/source/${PN}/${P}.tar.gz"
-EXTRA_OECONF = "--disable-binreloc"
+SRC_URI = "http://www.galago-project.org/files/releases/source/${PN}/${P}.tar.gz"
+EXTRA_OECONF = "--disable-binreloc"
 
 inherit autotools pkgconfig
index 1fdf6f2..8ee89ea 100644 (file)
@@ -1,7 +1,7 @@
-DESCRIPTION =   "a dbus service that listens to desktop notification requests and displays them"
-HOMEPAGE =      "http://www.galago-project.org/"
-LICENSE =       "GPL"
-DEPENDS =       "gettext dbus gtk+ libsexy gconf libwnck"
+DESCRIPTION = "a dbus service that listens to desktop notification requests and displays them"
+HOMEPAGE = "http://www.galago-project.org/"
+LICENSE = "GPL"
+DEPENDS = "gettext dbus gtk+ libsexy gconf libwnck"
 
 PACKAGES = "${PN}"
 FILES_${PN} = "${libexecdir}/notification-daemon \
diff --git a/packages/obsolete/nslu2/nslu2-kernel.inc b/packages/obsolete/nslu2/nslu2-kernel.inc
deleted file mode 100644 (file)
index 6b86610..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-# Standard definitions for any NSLU2 Linux kernel.
-# Include this file in a .bb which specifies, at least,
-# PN,PV,PR for the desired kernel
-#
-# Define the following *before* including this file as
-# required:
-#
-# N2K_PATCHES - full list of patches to apply, to add files
-#   generate a patch against /dev/null
-# N2K_SUFFIX - the suffix to add after 'zImage-' in the
-#   deploy/images directory, should identify the image config
-#
-# DEFAULT_PREFERENCE is set automagically in this file as
-# follows:
-#
-#  10  For *released* kernels
-#   8  For mm or ac patched versions of released kernels
-#   6  For rc patched kernels (release candidates)
-#   4  For mm or ac patched rc (release candidate) kernels
-#   2  For pre or bk versions
-#   0  For mm or ac patched pre or bk versions
-#
-# --------------------------------------------------------------
-#
-# Within this file bitbake variables local to the file are
-# named N2K_FOO
-#
-SECTION = "kernel"
-DESCRIPTION = "Linux kernel for the Linksys NSLU2 device"
-LICENSE = "GPL"
-
-DEPENDS += "devio-native"
-
-# Linux kernel source has the general form linux-X.Y.Z-patchP,
-# X.Y is the major version number, Z (which may have multiple
-# parts) is a sub-version and 'patch' is something like 'mm' or
-# 'ac' with a patch version.  The original bz2 archive will be
-# in a directory/file vX.Y/linux-X.Y.Z.tar.bz2.  The unpacked
-# source will be in the directory linux-X.Y.Z and this directory
-# name corresponds to the module directory (in /lib/modules).
-#
-# The corresponding .bb file should be called:
-#
-#      package_X.Y.Z-patchP
-#
-# Giving PN=package PV=X.Y.Z-patchP (and PR is set in the .bb
-# file).  Files, including the all important defconfig, are
-# searched for in the following directories (last one first):
-#
-#      nslu2-kernel/files
-#      nslu2-kernel/X.Y
-#      nslu2-kernel/X.Y.Z
-#      nslu2-kernel/X.Y.Z-patch
-#      nslu2-kernel/X.Y.Z-patchP
-#      package-X.Y.Z-patchP
-#
-# This allows sharing of patch files and other useful source!
-# To share a file or patch with an earlier version put it in
-# the shared directory - e.g. to use foo.patch on 2.6.11.2 and
-# 2.6.11.4 it should be in directory nslu2-kernel/2.6.11.
-#
-# Note that when there are multiple patches the X.Y.Z-patch form
-# uses base-patch (e.g. 2.6.12-mm) whereas X.Y.Z-patchP has the
-# full form, for example 2.6.12-rc3-mm1 (in the same case).
-
-#PN=package-name
-#PV=package-version (full)
-
-# The patch has the general form (rcN|preN|acN|mmN|bkN)* with the
-# separate patch items being separated by '-' characters.  The
-# rc patch is first and has the important property that it
-# requires the *preceding* kernel base version and that this
-# will be the source directory name.
-python () {
-    # The patches list may be empty.  This code starts with the base
-    # kernel version and steps through the patches.  Because the rc and
-    # pre patches actually require the *preceding* kernel version the code
-    # fixes that up appropriately.
-    pv = bb.data.getVar("PV",d,1).split('-')
-    kernel = pv[0].split('.')
-    base = pv[0]
-    name = [base]
-    major = '.'.join(name[0].split('.')[0:2])
-    minor = '.'.join(name[0].split('.')[0:3])
-    patch_uri = [ None ]
-    filedir = "${FILE_DIRNAME}/nslu2-kernel/%s"
-    # This entry will become the last one (everything is inserted before it)
-    filepath = [ filedir % "files" ]
-    pref = 10
-    mmac = 0
-    for patch in pv[1:]:
-       name.append(patch)
-       pname = '-'.join(name)
-       if patch[0:2] == "rc" or patch[0:3] == "pre":
-           patch_uri.append("${KERNELORG_MIRROR}/pub/linux/kernel/v%s/testing/patch-%s.bz2;patch=1;pname=%s" % (major, pname, pname))
-           kernel[-1] = str(int(kernel[-1]) - 1)
-           if patch[0:2] == "rc" and pref == 10:
-               pref = 6
-               filepath[0:0] = [ filedir % name[0] ]
-               filepath[0:0] = [ filedir % (name[0] + "-rc") ]
-           else:
-               pref = 2
-       elif patch[0:2] == "bk" or patch[0:3] == "git":
-           patch_uri.append("${KERNELORG_MIRROR}/pub/linux/kernel/v%s/snapshots/patch-%s.bz2;patch=1;pname=%s" % (major, pname, pname))
-           pref = 2
-       elif patch[0:2] == "ac":
-           patch_uri.append("${KERNELORG_MIRROR}/pub/linux/kernel/people/alan/linux-%s/%s/patch-%s" % (major, base, pname))
-           mmac = 2
-           filepath[0:0] = [ filedir % (name[0] + "-ac") ]
-       elif patch[0:2] == "mm":
-           patch_uri.append("${KERNELORG_MIRROR}/pub/linux/kernel/people/akpm/patches/%s/%s/%s/%s.bz2;patch=1;pname=%s" % (major, base, pname, pname, pname))
-           mmac = 2
-           filepath[0:0] = [ filedir % (name[0] + "-mm") ]
-       else:
-           raise bb.build.FuncFailed("nslu2-kernel: patch %s not recognized in %s" % (patch, '-'.join(pv)))
-       filepath[0:0] = [ filedir % pname ]
-       base = pname
-
-    base = '.'.join(kernel)
-    patch_uri[0] = "${KERNELORG_MIRROR}/pub/linux/kernel/v%s/linux-%s.tar.bz2" % (major, base)
-    filepath[-1:-1] = [ filedir % base ]
-    if base != minor:
-           filepath[-1:-1] = [ filedir % minor ]
-    filepath[-1:-1] = [ filedir % major ]
-
-    bb.data.setVar("N2K_SRCMAJ", major, d)
-    # bb.note("N2K_SRCMAJ := %s" % major)
-    bb.data.setVar("N2K_SRCVER", base, d)
-    # bb.note("N2K_SRCVER := %s" % base)
-    bb.data.setVar("N2K_SRCURI", ' '.join(patch_uri), d)
-    # bb.note("N2K_SRCURI := %s" % ' '.join(patch_uri))
-    bb.data.setVar("N2K_FILESPATH", ':'.join(filepath), d)
-    # bb.note("N2K_FILESPATH := %s" % ' '.join(filepath))
-    bb.data.setVar("DEFAULT_PREFERENCE", pref-mmac, d)
-    # bb.note("DEFAULT_PREFERENCE := %s" % (pref-mmac))
-}
-
-# FILESPATH: this list is in order last-searched-first, therefore
-# the first entry is the *latest* and/or most specific
-FILESPATH = "${FILE_DIRNAME}/${P}:${N2K_FILESPATH}"
-
-# The working directory will be the 'base' version (which may not be the
-# same as implied by the PV variable because it corresponds to the prior
-# minor version for rc and pre patched versions).
-S = "${WORKDIR}/linux-${N2K_SRCVER}"
-
-# N2K_PATCHES is the list of patches.
-N2K_PATCHES ?= ""
-
-# Image suffix - actually set in conf/machine/nslu2.conf as it is also
-# used by anything which needs to know the name of the generated image.
-# Should be overridden in the distro if patches or defconfig are changed.
-N2K_SUFFIX ?= "nslu2${SITEINFO_ENDIANESS}"
-
-SRC_URI  = "${N2K_SRCURI}"
-SRC_URI += "${N2K_PATCHES}"
-SRC_URI += "file://defconfig"
-
-COMPATIBLE_HOST = 'arm.*-linux'
-
-inherit kernel
-
-ARCH = "arm"
-KERNEL_IMAGETYPE = "zImage"
-# To specify the console set KERNEL_CONSOLE in the .bb file.
-# CMDLINE_ROOT contains the boot options, CMDLINE_KERNEL_OPTIONS
-# contains the things for a specific kernel.
-CMDLINE_KERNEL_OPTIONS ?= "reboot=s"
-CMDLINE_ROOT ?= "root=/dev/mtdblock4 rw rootfstype=jffs2 mem=32M@0x00000000 init=/linuxrc"
-# Add distro specific debug (or non-debug) options to this
-CMDLINE_DEBUG ?= ""
-CMDLINE = "${CMDLINE_ROOT} ${CMDLINE_KERNEL_OPTIONS} ${CMDLINE_DEBUG} ${CMDLINE_CONSOLE}"
-
-# Set EXTRAVERSION and LOCALVERSION to "" so that the kernel version
-# remains pinned to the x.y.z form, also turn off the directory
-# printing which provides almost all the output of an incremental build.
-EXTRA_OEMAKE += "EXTRAVERSION="
-EXTRA_OEMAKE += "LOCALVERSION="
-EXTRA_OEMAKE += "MAKEFLAGS='--no-print-directory'"
-
-addtask unpacklocal before do_patch after do_unpack
-
-# NOTE: in MM kernel builds the config options (oldconfig, menuconfig
-# and so on) do not allow an option to be overridden, so the following
-# removes the options which must be changed.
-do_configure_prepend() {
-       rm -f ${S}/.config
-       echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >>'${S}/.config'
-       if test '${SITEINFO_ENDIANESS}' = be
-       then
-               echo 'CONFIG_CPU_BIG_ENDIAN=y' >>'${S}/.config'
-       fi
-       if test '${SLUGOS_IMAGESEX}' = big-endian
-       then
-               echo 'CONFIG_JFFS2_BIG_ENDIAN=y' >>'${S}/.config'
-       fi
-       if test '${SLUGOS_IMAGESEX}' = little-endian
-       then
-               echo 'CONFIG_JFFS2_LITTLE_ENDIAN=y' >>'${S}/.config'
-       fi
-       sed -e '/CONFIG_CPU_BIG_ENDIAN/d' -e '/CONFIG_CMDLINE=/d' \
-               -e '/CONFIG_JFFS2_NATIVE_ENDIAN=/d' \
-               -e '/CONFIG_JFFS2_BIG_ENDIAN=/d' \
-               -e '/CONFIG_JFFS2_LITTLE_ENDIAN=/d' \
-               '${WORKDIR}/defconfig' >>'${S}/.config'
-       rm -rf ${S}/include/asm-arm/arch ${S}/include/asm-arm/proc \
-              ${S}/include/asm-arm/.proc ${S}/include/asm-arm/.arch
-}
-
-# This function adds the required prefix to the image to deal with two
-# problems:
-#
-# 1) The machine type set by RedBoot is wrong - the type for an ixdp425, not an NSLU2
-#    e3a01c02 e3811055
-# 2) For LE kernels it is necessary to prefix change-to-le code to the kernel image:
-#    ee110f10 e3c00080 ee010f10
-#    and to byte swap the (LE) image to match the BE flash layout
-#
-# The argument to the function is the destination directory
-redboot_fixup_armeb() {
-       rm -f "$1".new
-       devio '<<arch/${ARCH}/boot/${KERNEL_IMAGETYPE}' >"$1".new \
-               'wb 0xe3a01c02,4' \
-               'wb 0xe3811055,4' \
-               'cp$'
-       mv "$1".new "$1"
-}
-
-redboot_fixup_arm() {
-       rm -f "$1".new
-       devio '<<arch/${ARCH}/boot/${KERNEL_IMAGETYPE}' >"$1".new \
-               'wb 0xe3a01c02,4' \
-               'wb 0xe3811055,4' \
-               'wb 0xee110f10,4' \
-               'wb 0xe3c00080,4' \
-               'wb 0xee010f10,4' \
-               'xp $,4' || {
-               echo 'ERROR: arch/${ARCH}/boot/${KERNEL_IMAGETYPE}: failed to byteswap zImage' >&2
-               return 1
-       }
-       mv "$1".new "$1"
-}
-
-do_install_append() {
-       redboot_fixup '${STAGING_KERNEL_DIR}/${KERNEL_IMAGETYPE}'
-}
-
-do_deploy[dirs] = "${S}"
-do_deploy() {
-        install -d ${DEPLOY_DIR_IMAGE}
-       redboot_fixup '${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${N2K_SUFFIX}'
-}
-
-addtask deploy before do_build after do_compile
-
-COMPATIBLE_MACHINE = "nslu2"
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.11-mm/bootramdisk.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.11-mm/bootramdisk.patch
deleted file mode 100644 (file)
index c03a0d9..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- linux-2.6.11/arch/arm/kernel/setup.c.orig  Mon Mar  7 09:41:40 2005
-+++ linux-2.6.11/arch/arm/kernel/setup.c       Mon Mar  7 09:42:15 2005
-@@ -431,8 +431,10 @@
-       rd_prompt = prompt;
-       rd_doload = doload;
-+#if 0 /* rd_size is not exported by 2.6.11-mm1 */
-       if (rd_sz)
-               rd_size = rd_sz;
-+#endif
- #endif
- }
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.11-mm/defconfig b/packages/obsolete/nslu2/nslu2-kernel/2.6.11-mm/defconfig
deleted file mode 100644 (file)
index 7ca968a..0000000
+++ /dev/null
@@ -1,1204 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.11-mm4
-# Sat May  7 11:48:09 2005
-#
-CONFIG_ARM=y
-CONFIG_MMU=y
-CONFIG_UID16=y
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_GENERIC_IOMAP=y
-
-#
-# Code maturity level options
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_CLEAN_COMPILE=y
-CONFIG_BROKEN_ON_SMP=y
-
-#
-# General setup
-#
-CONFIG_LOCALVERSION=""
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_SYSCTL=y
-# CONFIG_AUDIT is not set
-CONFIG_HOTPLUG=y
-CONFIG_KOBJECT_UEVENT=y
-# CONFIG_IKCONFIG is not set
-CONFIG_EMBEDDED=y
-# CONFIG_KALLSYMS is not set
-# CONFIG_BASE_FULL is not set
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_SHMEM=y
-CONFIG_CC_ALIGN_FUNCTIONS=0
-CONFIG_CC_ALIGN_LABELS=0
-CONFIG_CC_ALIGN_LOOPS=0
-CONFIG_CC_ALIGN_JUMPS=0
-# CONFIG_TINY_SHMEM is not set
-CONFIG_BASE_SMALL=1
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-CONFIG_OBSOLETE_MODPARM=y
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
-
-#
-# System Type
-#
-# CONFIG_ARCH_CLPS7500 is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_CO285 is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_CAMELOT is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_INTEGRATOR is not set
-# CONFIG_ARCH_IOP3XX is not set
-CONFIG_ARCH_IXP4XX=y
-# CONFIG_ARCH_IXP2000 is not set
-# CONFIG_ARCH_L7200 is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C2410 is not set
-# CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_LH7A40X is not set
-# CONFIG_ARCH_OMAP is not set
-# CONFIG_ARCH_VERSATILE is not set
-# CONFIG_ARCH_IMX is not set
-# CONFIG_ARCH_H720X is not set
-CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
-
-#
-# Intel IXP4xx Implementation Options
-#
-
-#
-# IXP4xx Platforms
-#
-# CONFIG_ARCH_AVILA is not set
-# CONFIG_ARCH_ADI_COYOTE is not set
-# CONFIG_ARCH_IXDP425 is not set
-# CONFIG_MACH_IXDPG425 is not set
-# CONFIG_MACH_IXDP465 is not set
-CONFIG_ARCH_NSLU2=y
-# CONFIG_ARCH_PRPMC1100 is not set
-# CONFIG_MACH_GTWX5715 is not set
-
-#
-# IXP4xx Options
-#
-CONFIG_IXP4XX_INDIRECT_PCI=y
-CONFIG_DMABOUNCE=y
-
-#
-# Processor Type
-#
-CONFIG_CPU_32=y
-CONFIG_CPU_XSCALE=y
-CONFIG_CPU_32v5=y
-CONFIG_CPU_ABRT_EV5T=y
-CONFIG_CPU_CACHE_VIVT=y
-CONFIG_CPU_TLB_V4WBI=y
-CONFIG_CPU_MINICACHE=y
-
-#
-# Processor Features
-#
-CONFIG_ARM_THUMB=y
-# CONFIG_ARM_THUMB_INTERWORK is not set
-# CONFIG_ARCH_XSCALE is not set
-CONFIG_CPU_BIG_ENDIAN=y
-CONFIG_XSCALE_PMU=y
-
-#
-# General setup
-#
-CONFIG_PCI=y
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-# CONFIG_XIP_KERNEL is not set
-# CONFIG_PCI_LEGACY_PROC is not set
-# CONFIG_PCI_NAMES is not set
-
-#
-# PCCARD (PCMCIA/CardBus) support
-#
-# CONFIG_PCCARD is not set
-
-#
-# At least one math emulation must be selected
-#
-CONFIG_FPE_NWFPE=y
-# CONFIG_FPE_FASTFPE is not set
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_AOUT is not set
-# CONFIG_BINFMT_MISC is not set
-
-#
-# Generic Driver Options
-#
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-# CONFIG_FW_LOADER is not set
-# CONFIG_PM is not set
-# CONFIG_PREEMPT is not set
-# CONFIG_ARTHUR is not set
-CONFIG_CMDLINE="root=/dev/mtdblock4 rw rootfstype=jffs2 mem=32M@0x00000000 init=/linuxrc console=ttyS0,115200n8"
-CONFIG_ALIGNMENT_TRAP=y
-
-#
-# Parallel port support
-#
-# CONFIG_PARPORT is not set
-
-#
-# Memory Technology Devices (MTD)
-#
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-CONFIG_MTD_CONCAT=y
-CONFIG_MTD_PARTITIONS=y
-CONFIG_MTD_REDBOOT_PARTS=y
-CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
-# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
-# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
-CONFIG_MTD_CMDLINE_PARTS=y
-# CONFIG_MTD_AFS_PARTS is not set
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLOCK=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=y
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=y
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-CONFIG_MTD_CFI_INTELEXT=y
-# CONFIG_MTD_CFI_AMDSTD is not set
-# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=y
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-# CONFIG_MTD_XIP is not set
-
-#
-# Mapping drivers for chip access
-#
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-# CONFIG_MTD_PHYSMAP is not set
-# CONFIG_MTD_ARM_INTEGRATOR is not set
-CONFIG_MTD_IXP4XX=y
-# CONFIG_MTD_EDB7312 is not set
-# CONFIG_MTD_PCI is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLKMTD is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-
-#
-# NAND Flash Device Drivers
-#
-# CONFIG_MTD_NAND is not set
-
-#
-# Plug and Play support
-#
-
-#
-# Block devices
-#
-# CONFIG_BLK_DEV_FD is not set
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_UMEM is not set
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=m
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_SX8 is not set
-# CONFIG_BLK_DEV_UB is not set
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=4
-CONFIG_BLK_DEV_RAM_SIZE=10240
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-# CONFIG_IOSCHED_AS is not set
-CONFIG_IOSCHED_DEADLINE=y
-# CONFIG_IOSCHED_CFQ is not set
-# CONFIG_ATA_OVER_ETH is not set
-
-#
-# Multi-device support (RAID and LVM)
-#
-# CONFIG_MD is not set
-
-#
-# Networking support
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=m
-CONFIG_PACKET_MMAP=y
-# CONFIG_NETLINK_DEV is not set
-CONFIG_UNIX=y
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
-# CONFIG_IP_PNP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE is not set
-# CONFIG_ARPD is not set
-# CONFIG_SYN_COOKIES is not set
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_TUNNEL=m
-CONFIG_IP_TCPDIAG=m
-# CONFIG_IP_TCPDIAG_IPV6 is not set
-# CONFIG_IPV6 is not set
-# CONFIG_NETFILTER is not set
-CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
-
-#
-# SCTP Configuration (EXPERIMENTAL)
-#
-# CONFIG_IP_SCTP is not set
-# CONFIG_ATM is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
-CONFIG_LLC=m
-# CONFIG_LLC2 is not set
-CONFIG_IPX=m
-# CONFIG_IPX_INTERN is not set
-CONFIG_ATALK=m
-CONFIG_DEV_APPLETALK=y
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
-CONFIG_IPDDP_DECAP=y
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_NET_DIVERT is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-
-#
-# QoS and/or fair queueing
-#
-# CONFIG_NET_SCHED is not set
-# CONFIG_NET_CLS_ROUTE is not set
-
-#
-# Network testing
-#
-CONFIG_NET_PKTGEN=m
-# CONFIG_KGDBOE is not set
-CONFIG_NETPOLL=y
-# CONFIG_NETPOLL_RX is not set
-# CONFIG_NETPOLL_TRAP is not set
-CONFIG_NET_POLL_CONTROLLER=y
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-# CONFIG_BT_HIDP is not set
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_HCIUSB=m
-CONFIG_BT_HCIUSB_SCO=y
-# CONFIG_BT_HCIUART is not set
-# CONFIG_BT_HCIBCM203X is not set
-# CONFIG_BT_HCIBPA10X is not set
-# CONFIG_BT_HCIBFUSB is not set
-# CONFIG_BT_HCIVHCI is not set
-# CONFIG_IEEE80211 is not set
-CONFIG_NETDEVICES=y
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
-
-#
-# ARCnet devices
-#
-# CONFIG_ARCNET is not set
-
-#
-# Ethernet (10 or 100Mbit)
-#
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=y
-# CONFIG_HAPPYMEAL is not set
-# CONFIG_SUNGEM is not set
-# CONFIG_NET_VENDOR_3COM is not set
-# CONFIG_SMC91X is not set
-
-#
-# Tulip family network device support
-#
-# CONFIG_NET_TULIP is not set
-# CONFIG_HP100 is not set
-CONFIG_NET_PCI=y
-# CONFIG_PCNET32 is not set
-# CONFIG_AMD8111_ETH is not set
-# CONFIG_ADAPTEC_STARFIRE is not set
-# CONFIG_B44 is not set
-# CONFIG_FORCEDETH is not set
-# CONFIG_DGRS is not set
-# CONFIG_EEPRO100 is not set
-# CONFIG_E100 is not set
-# CONFIG_FEALNX is not set
-# CONFIG_NATSEMI is not set
-# CONFIG_NE2K_PCI is not set
-# CONFIG_8139CP is not set
-# CONFIG_8139TOO is not set
-# CONFIG_SIS900 is not set
-# CONFIG_EPIC100 is not set
-# CONFIG_SUNDANCE is not set
-# CONFIG_TLAN is not set
-# CONFIG_VIA_RHINE is not set
-
-#
-# Ethernet (1000 Mbit)
-#
-# CONFIG_ACENIC is not set
-# CONFIG_DL2K is not set
-# CONFIG_E1000 is not set
-# CONFIG_NS83820 is not set
-# CONFIG_HAMACHI is not set
-# CONFIG_YELLOWFIN is not set
-# CONFIG_R8169 is not set
-# CONFIG_SKGE is not set
-# CONFIG_SK98LIN is not set
-# CONFIG_VIA_VELOCITY is not set
-# CONFIG_TIGON3 is not set
-
-#
-# Ethernet (10000 Mbit)
-#
-# CONFIG_CHELSIO_T1 is not set
-# CONFIG_IXGB is not set
-# CONFIG_S2IO is not set
-
-#
-# Token Ring devices
-#
-# CONFIG_TR is not set
-
-#
-# Wireless LAN (non-hamradio)
-#
-CONFIG_NET_RADIO=y
-
-#
-# Obsolete Wireless cards support (pre-802.11)
-#
-# CONFIG_STRIP is not set
-
-#
-# Wireless 802.11b ISA/PCI cards support
-#
-# CONFIG_HERMES is not set
-# CONFIG_ATMEL is not set
-
-#
-# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
-#
-# CONFIG_PRISM54 is not set
-# CONFIG_HOSTAP is not set
-CONFIG_NET_WIRELESS=y
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN is not set
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-# CONFIG_NET_FC is not set
-# CONFIG_SHAPER is not set
-CONFIG_NETCONSOLE=m
-
-#
-# ATA/ATAPI/MFM/RLL support
-#
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI=y
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CHR_DEV_OSST is not set
-# CONFIG_BLK_DEV_SR is not set
-# CONFIG_CHR_DEV_SG is not set
-# CONFIG_CHR_DEV_SCH is not set
-
-#
-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-#
-# CONFIG_SCSI_MULTI_LUN is not set
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-# CONFIG_ISCSI_IF is not set
-
-#
-# SCSI Transport Attributes
-#
-# CONFIG_SCSI_SPI_ATTRS is not set
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-
-#
-# SCSI low-level drivers
-#
-# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
-# CONFIG_SCSI_3W_9XXX is not set
-# CONFIG_SCSI_ARCMSR is not set
-# CONFIG_SCSI_ACARD is not set
-# CONFIG_SCSI_AACRAID is not set
-# CONFIG_SCSI_AIC7XXX is not set
-# CONFIG_SCSI_AIC7XXX_OLD is not set
-# CONFIG_SCSI_AIC79XX is not set
-# CONFIG_SCSI_DPT_I2O is not set
-# CONFIG_MEGARAID_NEWGEN is not set
-# CONFIG_MEGARAID_LEGACY is not set
-# CONFIG_MEGARAID_SAS is not set
-# CONFIG_SCSI_SATA is not set
-# CONFIG_SCSI_BUSLOGIC is not set
-# CONFIG_SCSI_DMX3191D is not set
-# CONFIG_SCSI_EATA is not set
-# CONFIG_SCSI_FUTURE_DOMAIN is not set
-# CONFIG_SCSI_GDTH is not set
-# CONFIG_SCSI_IPS is not set
-# CONFIG_SCSI_INITIO is not set
-# CONFIG_SCSI_INIA100 is not set
-# CONFIG_SCSI_SYM53C8XX_2 is not set
-# CONFIG_SCSI_IPR is not set
-# CONFIG_SCSI_QLOGIC_FC is not set
-# CONFIG_SCSI_QLOGIC_1280 is not set
-CONFIG_SCSI_QLA2XXX=y
-# CONFIG_SCSI_QLA21XX is not set
-# CONFIG_SCSI_QLA22XX is not set
-# CONFIG_SCSI_QLA2300 is not set
-# CONFIG_SCSI_QLA2322 is not set
-# CONFIG_SCSI_QLA6312 is not set
-# CONFIG_SCSI_DC395x is not set
-# CONFIG_SCSI_DC390T is not set
-# CONFIG_SCSI_NSP32 is not set
-# CONFIG_SCSI_DEBUG is not set
-
-#
-# Fusion MPT device support
-#
-# CONFIG_FUSION is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_IEEE1394 is not set
-
-#
-# I2O device support
-#
-# CONFIG_I2O is not set
-
-#
-# ISDN subsystem
-#
-# CONFIG_ISDN is not set
-
-#
-# Input device support
-#
-# CONFIG_INPUT is not set
-
-#
-# Hardware I/O ports
-#
-# CONFIG_SERIO is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-# CONFIG_VT is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=2
-# CONFIG_SERIAL_8250_EXTENDED is not set
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_UNIX98_PTYS=y
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=16
-
-#
-# IPMI
-#
-# CONFIG_IPMI_HANDLER is not set
-
-#
-# Watchdog Cards
-#
-CONFIG_WATCHDOG=y
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-
-#
-# Watchdog Device Drivers
-#
-# CONFIG_SOFT_WATCHDOG is not set
-CONFIG_IXP4XX_WATCHDOG=y
-
-#
-# PCI-based Watchdog Cards
-#
-# CONFIG_PCIPCWATCHDOG is not set
-# CONFIG_WDTPCI is not set
-
-#
-# USB-based Watchdog Cards
-#
-# CONFIG_USBPCWATCHDOG is not set
-# CONFIG_NVRAM is not set
-CONFIG_RTC=m
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-
-#
-# Ftape, the floppy tape device driver
-#
-# CONFIG_DRM is not set
-# CONFIG_RAW_DRIVER is not set
-
-#
-# TPM devices
-#
-# CONFIG_TCG_TPM is not set
-
-#
-# I2C support
-#
-CONFIG_I2C=y
-CONFIG_I2C_CHARDEV=y
-
-#
-# I2C Algorithms
-#
-CONFIG_I2C_ALGOBIT=y
-# CONFIG_I2C_ALGOPCF is not set
-# CONFIG_I2C_ALGOPCA is not set
-
-#
-# I2C Hardware Bus support
-#
-# CONFIG_I2C_ALI1535 is not set
-# CONFIG_I2C_ALI1563 is not set
-# CONFIG_I2C_ALI15X3 is not set
-# CONFIG_I2C_AMD756 is not set
-# CONFIG_I2C_AMD8111 is not set
-# CONFIG_I2C_I801 is not set
-# CONFIG_I2C_I810 is not set
-# CONFIG_I2C_IOP3XX is not set
-# CONFIG_I2C_ISA is not set
-CONFIG_I2C_IXP4XX=y
-# CONFIG_I2C_NFORCE2 is not set
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_PROSAVAGE is not set
-# CONFIG_I2C_SAVAGE4 is not set
-# CONFIG_SCx200_ACB is not set
-# CONFIG_I2C_SIS5595 is not set
-# CONFIG_I2C_SIS630 is not set
-# CONFIG_I2C_SIS96X is not set
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_VIA is not set
-# CONFIG_I2C_VIAPRO is not set
-# CONFIG_I2C_VOODOO3 is not set
-# CONFIG_I2C_PCA_ISA is not set
-
-#
-# Hardware Sensors Chip support
-#
-CONFIG_I2C_SENSOR=y
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ASB100 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_FSCHER is not set
-# CONFIG_SENSORS_FSCPOS is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_SIS5595 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_VIA686A is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83627HF is not set
-
-#
-# Other I2C Chip support
-#
-CONFIG_SENSORS_EEPROM=y
-# CONFIG_SENSORS_PCF8574 is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_SENSORS_RTC8564 is not set
-CONFIG_SENSORS_X1205=y
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
-
-#
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
-# Digital Video Broadcasting Devices
-#
-# CONFIG_DVB is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=m
-# CONFIG_EXT2_FS_XATTR is not set
-CONFIG_EXT3_FS=m
-CONFIG_EXT3_FS_XATTR=y
-# CONFIG_EXT3_FS_POSIX_ACL is not set
-# CONFIG_EXT3_FS_SECURITY is not set
-CONFIG_JBD=m
-# CONFIG_JBD_DEBUG is not set
-CONFIG_FS_MBCACHE=m
-CONFIG_REISER4_FS=m
-# CONFIG_REISER4_DEBUG is not set
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-# CONFIG_REISERFS_FS_XATTR is not set
-# CONFIG_JFS_FS is not set
-
-#
-# XFS support
-#
-# CONFIG_XFS_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_ROMFS_FS is not set
-CONFIG_INOTIFY=y
-# CONFIG_QUOTA is not set
-CONFIG_DNOTIFY=y
-# CONFIG_AUTOFS_FS is not set
-CONFIG_AUTOFS4_FS=m
-
-#
-# Caches
-#
-# CONFIG_FSCACHE is not set
-# CONFIG_FUSE_FS is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_ZISOFS_FS=m
-CONFIG_UDF_FS=m
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
-CONFIG_NTFS_FS=m
-# CONFIG_NTFS_DEBUG is not set
-CONFIG_NTFS_RW=y
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_SYSFS=y
-# CONFIG_DEVFS_FS is not set
-# CONFIG_DEVPTS_FS_XATTR is not set
-CONFIG_TMPFS=y
-# CONFIG_TMPFS_XATTR is not set
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-# CONFIG_RELAYFS_FS is not set
-
-#
-# Miscellaneous filesystems
-#
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_JFFS_FS is not set
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_FS_DEBUG=0
-# CONFIG_JFFS2_FS_NAND is not set
-# CONFIG_JFFS2_FS_NOR_ECC is not set
-# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-
-#
-# Network File Systems
-#
-CONFIG_NFS_FS=m
-CONFIG_NFS_V3=y
-# CONFIG_NFS_V4 is not set
-# CONFIG_NFS_DIRECTIO is not set
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-# CONFIG_NFSD_V4 is not set
-CONFIG_NFSD_TCP=y
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
-CONFIG_SUNRPC=m
-# CONFIG_RPCSEC_GSS_KRB5 is not set
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=m
-# CONFIG_SMB_NLS_DEFAULT is not set
-CONFIG_CIFS=m
-# CONFIG_CIFS_STATS is not set
-# CONFIG_CIFS_XATTR is not set
-# CONFIG_CIFS_EXPERIMENTAL is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_EFI_PARTITION is not set
-
-#
-# Native Language Support
-#
-CONFIG_NLS=m
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_UTF8=m
-
-#
-# Profiling support
-#
-# CONFIG_PROFILING is not set
-
-#
-# Graphics support
-#
-# CONFIG_FB is not set
-
-#
-# Sound
-#
-# CONFIG_SOUND is not set
-
-#
-# Misc devices
-#
-
-#
-# USB support
-#
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB=y
-# CONFIG_USB_DEBUG is not set
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-# CONFIG_USB_BANDWIDTH is not set
-# CONFIG_USB_DYNAMIC_MINORS is not set
-# CONFIG_USB_OTG is not set
-
-#
-# USB Host Controller Drivers
-#
-CONFIG_USB_EHCI_HCD=y
-# CONFIG_USB_EHCI_SPLIT_ISO is not set
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-CONFIG_USB_OHCI_HCD=y
-# CONFIG_USB_OHCI_BIG_ENDIAN is not set
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-# CONFIG_USB_UHCI_HCD is not set
-# CONFIG_USB_SL811_HCD is not set
-
-#
-# USB Device Class drivers
-#
-
-#
-# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem
-#
-# CONFIG_USB_ACM is not set
-CONFIG_USB_PRINTER=m
-
-#
-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
-#
-CONFIG_USB_STORAGE=y
-# CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_RW_DETECT is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
-# CONFIG_USB_STORAGE_FREECOM is not set
-# CONFIG_USB_STORAGE_DPCM is not set
-# CONFIG_USB_STORAGE_USBAT is not set
-# CONFIG_USB_STORAGE_SDDR09 is not set
-# CONFIG_USB_STORAGE_SDDR55 is not set
-# CONFIG_USB_STORAGE_JUMPSHOT is not set
-
-#
-# USB Input Devices
-#
-# CONFIG_USB_HID is not set
-
-#
-# USB HID Boot Protocol drivers
-#
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-
-#
-# USB Multimedia devices
-#
-# CONFIG_USB_DABUSB is not set
-
-#
-# Video4Linux support is needed for USB Multimedia device support
-#
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_USBNET=m
-
-#
-# USB Host-to-Host Cables
-#
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_GENESYS=y
-CONFIG_USB_NET1080=y
-CONFIG_USB_PL2301=y
-CONFIG_USB_KC2190=y
-
-#
-# Intelligent USB Devices/Gadgets
-#
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_ZAURUS=y
-CONFIG_USB_CDCETHER=y
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_AX8817X=y
-# CONFIG_USB_ZD1201 is not set
-# CONFIG_USB_MON is not set
-
-#
-# USB port drivers
-#
-
-#
-# USB Serial Converter support
-#
-CONFIG_USB_SERIAL=m
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_WHITEHEAT=m
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-# CONFIG_USB_SERIAL_KEYSPAN is not set
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-CONFIG_USB_SERIAL_PL2303=m
-CONFIG_USB_SERIAL_SAFE=m
-# CONFIG_USB_SERIAL_SAFE_PADDED is not set
-CONFIG_USB_SERIAL_TI=m
-CONFIG_USB_SERIAL_CYBERJACK=m
-CONFIG_USB_SERIAL_XIRCOM=m
-CONFIG_USB_SERIAL_OMNINET=m
-CONFIG_USB_EZUSB=y
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
-# CONFIG_USB_AUERSWALD is not set
-# CONFIG_USB_RIO500 is not set
-# CONFIG_USB_LEGOTOWER is not set
-# CONFIG_USB_LCD is not set
-# CONFIG_USB_LED is not set
-# CONFIG_USB_CYTHERM is not set
-# CONFIG_USB_PHIDGETKIT is not set
-# CONFIG_USB_PHIDGETSERVO is not set
-# CONFIG_USB_IDMOUSE is not set
-# CONFIG_USB_SISUSBVGA is not set
-# CONFIG_USB_TEST is not set
-
-#
-# USB ATM/DSL drivers
-#
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-
-#
-# MMC/SD Card support
-#
-# CONFIG_MMC is not set
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-# CONFIG_DEBUG_KERNEL is not set
-CONFIG_LOG_BUF_SHIFT=14
-# CONFIG_DEBUG_BUGVERBOSE is not set
-CONFIG_FRAME_POINTER=y
-# CONFIG_DEBUG_USER is not set
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-
-#
-# Cryptographic options
-#
-CONFIG_CRYPTO=y
-CONFIG_CRYPTO_HMAC=y
-# CONFIG_CRYPTO_NULL is not set
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=m
-CONFIG_CRYPTO_SHA1=m
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_WP512=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_AES=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_CRC32C=m
-CONFIG_CRYPTO_TEST=m
-
-#
-# Hardware crypto devices
-#
-
-#
-# Library routines
-#
-CONFIG_CRC_CCITT=m
-CONFIG_CRC32=y
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.11-mm/reiser4.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.11-mm/reiser4.patch
deleted file mode 100644 (file)
index b752dda..0000000
+++ /dev/null
@@ -1,617 +0,0 @@
---- linux-2.6.11/.pc/reiser4/fs/reiser4/plugin/disk_format/disk_format40.c     2005-03-27 21:36:10.656270448 -0800
-+++ linux-2.6.11/fs/reiser4/plugin/disk_format/disk_format40.c 2005-03-27 23:39:18.967076480 -0800
-@@ -467,19 +467,15 @@
-       return 0;
- }
--#define FORMAT40_ROOT_LOCALITY 41
--#define FORMAT40_ROOT_OBJECTID 42
-+#define FORMAT40_ROOT_LOCALITY 41ull
-+#define FORMAT40_ROOT_OBJECTID 42ull
- /* plugin->u.format.root_dir_key */
- reiser4_internal const reiser4_key *
- root_dir_key_format40(const struct super_block *super UNUSED_ARG)
- {
-       static const reiser4_key FORMAT40_ROOT_DIR_KEY = {
--              .el = {{(FORMAT40_ROOT_LOCALITY << 4) | KEY_SD_MINOR},
--#if REISER4_LARGE_KEY
--                     {0ull},
--#endif
--                     {FORMAT40_ROOT_OBJECTID}, {0ull}}
-+              .el = { KEY_INIT(KEY_SD_MINOR,FORMAT40_ROOT_LOCALITY,0ull,0,FORMAT40_ROOT_OBJECTID,0ull) }
-       };
-       return &FORMAT40_ROOT_DIR_KEY;
---- linux-2.6.11/.pc/reiser4/fs/reiser4/plugin/disk_format/disk_format40.h     2005-03-27 21:24:00.618253096 -0800
-+++ linux-2.6.11/fs/reiser4/plugin/disk_format/disk_format40.h 2005-03-27 21:24:02.747929336 -0800
-@@ -49,7 +49,7 @@
-       /*  70 */ d16 formatting_policy;
-       /*  72 */ d64 flags;
-       /*  72 */ char not_used[432];
--} format40_disk_super_block;
-+} PACKED64 format40_disk_super_block;
- /* format 40 specific part of reiser4_super_info_data */
- typedef struct format40_super_info {
---- linux-2.6.11/.pc/reiser4/fs/reiser4/plugin/file/invert.c   2005-03-27 21:24:00.625252032 -0800
-+++ linux-2.6.11/fs/reiser4/plugin/file/invert.c       2005-03-27 21:24:02.747929336 -0800
-@@ -240,14 +240,14 @@
- typedef struct flow_header {
-       d32 fl_magic;
-       d16 fl_nr;              /* number of subfiles in the flow */
--};
-+} PACKED32;
- typedef struct subfile_header {
-       d32 sh_magic;           /* subfile magic */
-       d16 sh_type;            /* type of subfile: light-weight, ordinary, invert */
-       d16 sh_arg_len;         /* lenght of lookup argument (filename, key) */
-       d32 sh_body_len;        /* lenght of subfile body */
--};
-+} PACKED32;
- /* functions to get/set fields of flow header */
---- linux-2.6.11/.pc/reiser4/fs/reiser4/plugin/item/static_stat.c      2005-03-27 21:24:00.648248536 -0800
-+++ linux-2.6.11/fs/reiser4/plugin/item/static_stat.c  2005-03-27 21:34:27.331978128 -0800
-@@ -19,6 +19,38 @@
- /* see static_stat.h for explanation */
-+/* compile time verify of the data structure sizes and alignments */
-+static inline void
-+r4static_stat_verify(void)
-+{
-+      /* All these structures are PACKED, so the __alignof__ should
-+       * be 1.  The sizes need to be correct as they map to disk
-+       * structures.
-+       */
-+      cassert(sizeof (reiser4_stat_data_base) == 2);
-+      /* cassert(sizeof (reiser4_light_weight_stat) == 16);
-+       * 14 bytes, comments in code do not take into account PACKED!
-+       */
-+      cassert(sizeof (reiser4_light_weight_stat) == 14);
-+      cassert(sizeof (reiser4_unix_stat) == 28);
-+      cassert(sizeof (reiser4_symlink_stat) == 0);
-+      cassert(sizeof (reiser4_plugin_slot) == 4);
-+      cassert(sizeof (reiser4_plugin_stat) == 2);
-+      cassert(sizeof (reiser4_flags_stat) == 4);
-+      /* cassert(sizeof (reiser4_capabilities_stat) == 16);
-+       * comments in the file look wrong - capabilities are 2 x d32
-+       * not 2 x d64 in the declaration.
-+       */
-+      cassert(sizeof (reiser4_capabilities_stat) == 8);
-+      cassert(sizeof (reiser4_cluster_stat) == 1);
-+      cassert(sizeof (reiser4_crypto_stat) == 2);
-+      /* cassert(sizeof (reiser4_large_times_stat) == 24);
-+       * should be 12 bytes - 3 x d32, probably a bug in the def in
-+       * the header file (meant to be 3 x d64?)
-+       */
-+      cassert(sizeof (reiser4_large_times_stat) == 12);
-+}
-+
- /* helper function used while we are dumping/loading inode/plugin state
-     to/from the stat-data. */
---- linux-2.6.11/.pc/reiser4/fs/reiser4/plugin/item/acl.h      2005-03-27 21:24:00.629251424 -0800
-+++ linux-2.6.11/fs/reiser4/plugin/item/acl.h  2005-03-27 21:24:02.749929032 -0800
-@@ -26,7 +26,7 @@
-       obj_key_id id;
-       /* file name. Null terminated string. */
-       d8 name[0];
--} directory_entry_format;
-+} PACKEDt(obj_key_id) directory_entry_format;
- void print_de(const char *prefix, coord_t * coord);
- int extract_key_de(const coord_t * coord, reiser4_key * key);
---- linux-2.6.11/.pc/reiser4/fs/reiser4/plugin/item/cde.h      2005-03-27 21:24:00.632250968 -0800
-+++ linux-2.6.11/fs/reiser4/plugin/item/cde.h  2005-03-27 21:24:02.750928880 -0800
-@@ -15,12 +15,12 @@
- typedef struct cde_unit_header {
-       de_id hash;
-       d16 offset;
--} cde_unit_header;
-+} PACKEDt2(de_id,d16) cde_unit_header;
- typedef struct cde_item_format {
-       d16 num_of_entries;
-       cde_unit_header entry[0];
--} cde_item_format;
-+} PACKEDt2(d16,cde_unit_header) cde_item_format;
- typedef struct cde_entry {
-       const struct inode *dir;
---- linux-2.6.11/.pc/reiser4/fs/reiser4/plugin/item/extent.h   2005-03-27 21:32:13.758284416 -0800
-+++ linux-2.6.11/fs/reiser4/plugin/item/extent.h       2005-03-27 21:32:30.786695704 -0800
-@@ -7,7 +7,7 @@
- typedef struct {
-       reiser4_dblock_nr start;
-       reiser4_dblock_nr width;
--} reiser4_extent;
-+} PACKED64 reiser4_extent;
- typedef struct extent_stat {
-       int unallocated_units;
---- linux-2.6.11/.pc/reiser4/fs/reiser4/plugin/item/internal.h 2005-03-27 21:33:08.971890672 -0800
-+++ linux-2.6.11/fs/reiser4/plugin/item/internal.h     2005-03-27 22:15:43.290575208 -0800
-@@ -13,7 +13,7 @@
- typedef struct internal_item_layout {
-       /*  0 */ reiser4_dblock_nr pointer;
-       /*  4 */
--} internal_item_layout;
-+} PACKED64 internal_item_layout;
- struct cut_list;
---- linux-2.6.11/.pc/reiser4/fs/reiser4/plugin/item/sde.h      2005-03-27 21:24:00.646248840 -0800
-+++ linux-2.6.11/fs/reiser4/plugin/item/sde.h  2005-03-27 21:24:02.750928880 -0800
-@@ -26,7 +26,7 @@
-       obj_key_id id;
-       /* file name. Null terminated string. */
-       d8 name[0];
--} directory_entry_format;
-+} PACKEDt(obj_key_id) directory_entry_format;
- void print_de(const char *prefix, coord_t * coord);
- int extract_key_de(const coord_t * coord, reiser4_key * key);
---- linux-2.6.11/.pc/reiser4/fs/reiser4/plugin/node/node40.c   2005-03-27 21:24:00.654247624 -0800
-+++ linux-2.6.11/fs/reiser4/plugin/node/node40.c       2005-03-27 21:35:08.677692624 -0800
-@@ -32,6 +32,22 @@
-    magic (32)
-    flush_time (32)
- */
-+/* compile time verify of the data structure sizes and alignments */
-+static inline void
-+r4node40_stat_verify(void)
-+{
-+      /* The alignment of these structures is intended to be '1', but
-+       * it doesn't matter so long as the size is right.
-+       */
-+      cassert(sizeof (common_node_header) == 2);
-+      cassert(sizeof (node40_header) ==  28);
-+#if REISER4_LARGE_KEY
-+      cassert(sizeof (item_header40) == 38);
-+#else
-+      cassert(sizeof (item_header40) == 30);
-+#endif
-+}
-+
- /* NIKITA-FIXME-HANS: I told you guys not less than 10 times to not call it r4fs.  Change to "ReIs". */
- /* magic number that is stored in ->magic field of node header */
- static const __u32 REISER4_NODE_MAGIC = 0x52344653;   /* (*(__u32 *)"R4FS"); */
---- linux-2.6.11/.pc/reiser4/fs/reiser4/plugin/node/node.h     2005-03-27 21:24:00.656247320 -0800
-+++ linux-2.6.11/fs/reiser4/plugin/node/node.h 2005-03-27 21:24:02.753928424 -0800
-@@ -250,7 +250,7 @@
-       /* identifier of node plugin. Must be located at the very beginning
-          of a node. */
-       d16 plugin_id;
--} common_node_header;
-+} PACKED16 common_node_header;
- /* __REISER4_NODE_H__ */
- #endif
---- linux-2.6.11/.pc/reiser4/fs/reiser4/debug.c        2005-03-27 21:24:00.563261456 -0800
-+++ linux-2.6.11/fs/reiser4/debug.c    2005-03-27 23:27:58.569512632 -0800
-@@ -75,6 +75,72 @@
-       va_list args;
-       /*
-+       * this is here to make sure that we don't compile code which we
-+       * know a-priori will panic, or fail without panicing, since this
-+       * compiles first if you find a duplicate case label error then
-+       * you need to rewrite this code to match your compiler.
-+       */
-+      cassert(sizeof (d8) == 1);
-+      cassert(__alignof__ (d8) == 1);
-+      {
-+              struct {
-+                      __u8 pad;
-+                      d8 data;
-+              } PACKED8 test;
-+              cassert(sizeof test == 2);
-+              cassert(sizeof test.data == 1);
-+              cassert(__alignof__ test.data == 1);
-+              cassert(__alignof__ test == 1);
-+      }
-+      cassert(sizeof (d16) == 2);
-+      cassert(__alignof__ (d16) == 2);
-+      {
-+              struct {
-+                      __u8 pad;
-+                      d16 data;
-+              } PACKED16 test;
-+              cassert(sizeof test == 4);
-+              cassert(sizeof test.data == 2);
-+#if !__arm__
-+              cassert(__alignof__ test.data == 2);
-+#endif
-+              cassert(__alignof__ test == 2);
-+#if !__arm__
-+              cassert(test.data.datum - &test.pad == 2);
-+#endif
-+      }
-+      cassert(sizeof (d32) == 4);
-+      cassert(__alignof__ (d32) == 4);
-+      {
-+              struct {
-+                      __u8 pad;
-+                      d32 data;
-+              } PACKED32 test;
-+              cassert(sizeof test == 8);
-+              cassert(sizeof test.data == 4);
-+              cassert(__alignof__ test.data == 4);
-+              cassert(__alignof__ test == 4);
-+              cassert(test.data.datum - &test.pad == 4);
-+      }
-+      cassert(sizeof (d64) == 8);
-+      cassert(__alignof__ (d64) == 8);
-+      {
-+              struct {
-+                      __u8 pad;
-+                      d64 data;
-+              } PACKED64 test;
-+              cassert(sizeof test == 16);
-+              cassert(sizeof test.data == 8);
-+              cassert(__alignof__ test.data == 8);
-+              cassert(__alignof__ test == 8);
-+              cassert(test.data.datum - &test.pad == 8);
-+      }
-+
-+      /* This is just a test of a struct with a single d64 element. */
-+      cassert(sizeof (reiser4_dblock_nr) == 8);
-+      cassert(__alignof__(reiser4_dblock_nr) == 8);
-+
-+      /*
-        * check for recursive panic.
-        */
-       if (in_panic == 0) {
---- linux-2.6.11/.pc/reiser4/fs/reiser4/flush_queue.c  2005-03-27 21:24:00.577259328 -0800
-+++ linux-2.6.11/fs/reiser4/flush_queue.c      2005-03-27 21:24:02.755928120 -0800
-@@ -447,7 +447,7 @@
-               /* If all write requests registered in this "fq" are done we up
-                * the semaphore. */
--              if (atomic_sub_and_test(bio->bi_vcnt, &fq->nr_submitted))
-+              if (atomic_sub_return(bio->bi_vcnt, &fq->nr_submitted) == 0)
-                       up(&fq->io_sem);
-       }
---- linux-2.6.11/.pc/reiser4/fs/reiser4/key.c  2005-03-27 22:42:43.481268784 -0800
-+++ linux-2.6.11/fs/reiser4/key.c      2005-03-27 23:42:53.958392832 -0800
-@@ -13,10 +13,10 @@
-    independent of key scheme. */
- static const reiser4_key MINIMAL_KEY = {
-       .el = {
--              {0ull},
--              ON_LARGE_KEY({0ull},)
--              {0ull},
--              {0ull}
-+              {{0,0,0,0,0,0,0,0}},
-+              ON_LARGE_KEY({{0,0,0,0,0,0,0,0}},)
-+              {{0,0,0,0,0,0,0,0}},
-+              {{0,0,0,0,0,0,0,0}}
-       }
- };
-@@ -24,10 +24,10 @@
-    independent of key scheme. */
- static const reiser4_key MAXIMAL_KEY = {
-       .el = {
--              {~0ull},
--              ON_LARGE_KEY({~0ull},)
--              {~0ull},
--              {~0ull}
-+              {{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}},
-+              ON_LARGE_KEY({{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}},)
-+              {{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}},
-+              {{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}}
-       }
- };
---- linux-2.6.11/.pc/reiser4/fs/reiser4/safe_link.c    2005-03-27 21:24:00.677244128 -0800
-+++ linux-2.6.11/fs/reiser4/safe_link.c        2005-03-27 21:24:02.756927968 -0800
-@@ -61,7 +61,7 @@
-       reiser4_key sdkey; /* key of stat-data for the file safe-link is
-                           * for */
-       d64 size;          /* size to which file should be truncated */
--} safelink_t;
-+} PACKEDt2(reiser4_key, d64) safelink_t;
- /*
-  * locality where safe-link items are stored. Next to the objectid of root
---- linux-2.6.11/.pc/reiser4/fs/reiser4/status_flags.c 2005-03-27 21:24:00.682243368 -0800
-+++ linux-2.6.11/fs/reiser4/status_flags.c     2005-03-27 21:24:02.756927968 -0800
-@@ -153,6 +153,7 @@
-                &statuspage->stacktrace[no])
-       GETFRAME(0);
-+#ifndef __arm__
-       GETFRAME(1);
-       GETFRAME(2);
-       GETFRAME(3);
-@@ -162,6 +163,7 @@
-       GETFRAME(7);
-       GETFRAME(8);
-       GETFRAME(9);
-+#endif
- #undef GETFRAME
- #endif
---- linux-2.6.11/.pc/reiser4/fs/reiser4/dformat.h      2005-03-27 21:24:00.564261304 -0800
-+++ linux-2.6.11/fs/reiser4/dformat.h  2005-03-27 23:29:03.223683704 -0800
-@@ -28,43 +28,84 @@
- /* code on-disk data-types as structs with a single field
-    to rely on compiler type-checking. Like include/asm-i386/page.h */
-+/* This code did not work on the arm with gcc 3.4.3 because the
-+ * arm has a minimum structure size of 4 - packed is necessary to
-+ * allow these types to be smaller than 4 - and because this version
-+ * of gcc 'loses' the alignment if the structure contains just one
-+ * element of alignment 8 (or probably any value greater than 4).
-+ * To fix this and to make the code much more portable all the basic
-+ * types are now just done as arrays of bytes - __u8.
-+ *
-+ * This is highly tricky, however the check code in debug.c should
-+ * fire a compile time assert if it goes wrong.
-+ */
-+#if __arm__
-+#define PACKED8  __attribute__ ((packed,aligned(1)))
-+/* Warning: the presence of the packed attribute here means that any
-+ * d16 in a structure so marked will lose its alignment.  That doesn't
-+ * seem to matter because there don't seem to be any d16's with odd
-+ * structure offsets, but it might.
-+ */
-+#define PACKED16 __attribute__ ((packed,aligned(2)))
-+#define PACKED32 __attribute__ ((aligned(4)))
-+#define PACKED64 __attribute__ ((aligned(8)))
-+#else
-+#define PACKED8  __attribute__ ((aligned(1)))
-+#define PACKED16 __attribute__ ((aligned(2)))
-+#define PACKED32 __attribute__ ((aligned(4)))
-+#define PACKED64 __attribute__ ((aligned(8)))
-+#endif
- typedef struct d8 {
--      __u8 datum;
--} d8 __attribute__ ((aligned(1)));
-+      __u8 datum[1];
-+} PACKED8 d8;
- typedef struct d16 {
--      __u16 datum;
--} d16 __attribute__ ((aligned(2)));
-+      __u8 datum[2];
-+} PACKED16 d16;
- typedef struct d32 {
--      __u32 datum;
--} d32 __attribute__ ((aligned(4)));
-+      __u8 datum[4];
-+} PACKED32 d32;
- typedef struct d64 {
--      __u64 datum;
--} d64 __attribute__ ((aligned(8)));
-+      __u8 datum[8];
-+} PACKED64 d64;
-+#define PACKEDt(t) __attribute__ ((packed,aligned(__alignof__ (t)) ))
-+#define PACKEDt2(t1,t2) __attribute__ ((packed,aligned(\
-+              __alignof__ (t1) < __alignof__ (t2) ? __alignof__ (t2) : __alignof__ (t1) )))
- #define PACKED __attribute__((packed))
- static inline __u8
- d8tocpu(const d8 * ondisk /* on-disk value to convert */ )
- {
--      return ondisk->datum;
-+      return ondisk->datum[0];
- }
- static inline __u16
- d16tocpu(const d16 * ondisk /* on-disk value to convert */ )
- {
--      return __le16_to_cpu(get_unaligned(&ondisk->datum));
-+      return ondisk->datum[0] + (ondisk->datum[1] << 8);
- }
- static inline __u32
- d32tocpu(const d32 * ondisk /* on-disk value to convert */ )
- {
--      return __le32_to_cpu(get_unaligned(&ondisk->datum));
-+      return ondisk->datum[0] +
-+              (ondisk->datum[1] << 8) +
-+              (ondisk->datum[2] << 16) +
-+              (ondisk->datum[3] << 24);
- }
- static inline __u64
- d64tocpu(const d64 * ondisk /* on-disk value to convert */ )
- {
--      return __le64_to_cpu(get_unaligned(&ondisk->datum));
-+      __u32 low = ondisk->datum[0] +
-+              (ondisk->datum[1] << 8) +
-+              (ondisk->datum[2] << 16) +
-+              (ondisk->datum[3] << 24);
-+      __u64 high = ondisk->datum[4] +
-+              (ondisk->datum[5] << 8) +
-+              (ondisk->datum[6] << 16) +
-+              (ondisk->datum[7] << 24);
-+      return low + (high << 32);
- }
- static inline d8 *
-@@ -72,7 +113,7 @@
-       d8 * ondisk /* result */ )
- {
-       assert("nikita-1264", oncpu < 0x100);
--      put_unaligned(oncpu, &ondisk->datum);
-+      ondisk->datum[0] = oncpu;
-       return ondisk;
- }
-@@ -81,7 +122,8 @@
-        d16 * ondisk /* result */ )
- {
-       assert("nikita-1265", oncpu < 0x10000);
--      put_unaligned(__cpu_to_le16(oncpu), &ondisk->datum);
-+      ondisk->datum[0] = oncpu;
-+      ondisk->datum[1] = oncpu >> 8;
-       return ondisk;
- }
-@@ -89,15 +131,27 @@
- cputod32(__u32 oncpu /* CPU value to convert */ ,
-        d32 * ondisk /* result */ )
- {
--      put_unaligned(__cpu_to_le32(oncpu), &ondisk->datum);
-+      ondisk->datum[0] = oncpu; oncpu >>= 8;
-+      ondisk->datum[1] = oncpu; oncpu >>= 8;
-+      ondisk->datum[2] = oncpu; oncpu >>= 8;
-+      ondisk->datum[3] = oncpu;
-       return ondisk;
- }
- static inline d64 *
--cputod64(__u64 oncpu /* CPU value to convert */ ,
-+cputod64(__u64 oncpuIn /* CPU value to convert */ ,
-        d64 * ondisk /* result */ )
- {
--      put_unaligned(__cpu_to_le64(oncpu), &ondisk->datum);
-+      __u32 oncpu = oncpuIn;
-+      ondisk->datum[0] = oncpu; oncpu >>= 8;
-+      ondisk->datum[1] = oncpu; oncpu >>= 8;
-+      ondisk->datum[2] = oncpu; oncpu >>= 8;
-+      ondisk->datum[3] = oncpu;
-+      oncpu = oncpuIn >> 32;
-+      ondisk->datum[4] = oncpu; oncpu >>= 8;
-+      ondisk->datum[5] = oncpu; oncpu >>= 8;
-+      ondisk->datum[6] = oncpu; oncpu >>= 8;
-+      ondisk->datum[7] = oncpu;
-       return ondisk;
- }
-@@ -111,7 +165,7 @@
- /* data-type for block number on disk, disk format */
- union reiser4_dblock_nr {
-       d64 blk;
--};
-+} PACKED64;
- static inline reiser4_block_nr
- dblock_to_cpu(const reiser4_dblock_nr * dblock)
-@@ -148,7 +202,7 @@
-       char uuid[16];          /* unique id */
-       char label[16];         /* filesystem label */
-       d64 diskmap;            /* location of the diskmap. 0 if not present */
--} reiser4_master_sb;
-+} PACKED64 reiser4_master_sb;
- /* __FS_REISER4_DFORMAT_H__ */
- #endif
---- linux-2.6.11/.pc/reiser4/fs/reiser4/kassign.h      2005-03-27 21:24:00.588257656 -0800
-+++ linux-2.6.11/fs/reiser4/kassign.h  2005-03-27 21:24:02.757927816 -0800
-@@ -46,7 +46,7 @@
-       d8 locality[sizeof (__u64)];
-       ON_LARGE_KEY(d8 ordering[sizeof (__u64)];)
-       d8 objectid[sizeof (__u64)];
--} obj_key_id;
-+} PACKED8 obj_key_id;
- /* Information sufficient to uniquely identify directory entry within
-    compressed directory item.
-@@ -57,7 +57,7 @@
-       ON_LARGE_KEY(d8 ordering[sizeof (__u64)];)
-       d8 objectid[sizeof (__u64)];
-       d8 offset[sizeof (__u64)];
--} de_id;
-+} PACKED8 de_id;
- extern int inode_onwire_size(const struct inode *obj);
- extern char *build_inode_onwire(const struct inode *obj, char *area);
---- linux-2.6.11/.pc/reiser4/fs/reiser4/key.h  2005-03-27 21:24:00.591257200 -0800
-+++ linux-2.6.11/fs/reiser4/key.h      2005-03-27 23:41:07.744539792 -0800
-@@ -106,7 +106,7 @@
- union reiser4_key {
-       d64 el[KEY_LAST_INDEX];
-       int pad;
--};
-+} PACKED64;
- /* bitmasks showing where within reiser4_key particular key is
-     stored. */
-@@ -138,6 +138,20 @@
-       KEY_ORDERING_SHIFT = 0,
- } reiser4_key_field_shift;
-+/* initialise a key, this is a compile time constant initialiser expressed as
-+ * three or four (as appropriate) 8 byte initialisers, there are braces around
-+ * each 8 byte quantity but not around the whole initializer.
-+ */
-+#define KEY_INIT(type,loc,order,band,oid,off)\
-+{{ (0xf&(type))+(0xf0&((loc) << 4)), 0xff&((loc) >> 4), 0xff&((loc) >> 12), 0xff&((loc) >> 20),\
-+      0xff&((loc) >> 28), 0xff&((loc) >> 36), 0xff&((loc) >> 44), 0xff&((loc) >> 52) }},\
-+ON_LARGE_KEY({{ 0xff&(order), 0xff&((order)>>8), 0xff&((order)>>16), 0xff&((order)>>24),\
-+      0xff&((order)>>32), 0xff&((order)>>40), 0xff&((order)>>48), 0xff&((order)>>56) }},)\
-+{{ 0xff&(oid), 0xff&((oid)>>8), 0xff&((oid)>>16), 0xff&((oid)>>24),\
-+      0xff&((oid)>>32), 0xff&((oid)>>40), 0xff&((oid)>>48), (0xf&((oid)>>56))+(0xf0&((band)<<4))}},\
-+{{ 0xff&(off), 0xff&((off)>>8), 0xff&((off)>>16), 0xff&((off)>>24),\
-+      0xff&((off)>>32), 0xff&((off)>>40), 0xff&((off)>>48), 0xff&((off)>>56) }}
-+
- static inline __u64
- get_key_el(const reiser4_key * key, reiser4_key_field_index off)
- {
---- linux-2.6.11/.pc/reiser4/fs/reiser4/status_flags.h 2005-03-27 21:24:00.682243368 -0800
-+++ linux-2.6.11/fs/reiser4/status_flags.h     2005-03-27 21:24:02.758927664 -0800
-@@ -33,7 +33,7 @@
-                               last sector where io error happened if status is "io error encountered" */
-       d64 stacktrace[10];  /* Last ten functional calls made (addresses)*/
-       char texterror[REISER4_TEXTERROR_LEN]; /* Any error message if appropriate, otherwise filled with zeroes */
--};
-+} PACKED64;
- int reiser4_status_init(reiser4_block_nr block);
- int reiser4_status_query(u64 *status, u64 *extended);
---- linux-2.6.11/.pc/reiser4/fs/reiser4/wander.h       2005-03-27 21:24:00.709239264 -0800
-+++ linux-2.6.11/fs/reiser4/wander.h   2005-03-27 22:14:59.663207576 -0800
-@@ -19,7 +19,7 @@
- struct journal_header {
-       /* last written transaction head location */
-       d64 last_committed_tx;
--};
-+} PACKED64;
- typedef struct journal_location {
-       reiser4_block_nr footer;
-@@ -46,7 +46,7 @@
-          super block */
-       d64 nr_files;
-       d64 next_oid;
--};
-+} PACKED64;
- /* Each wander record (except the first one) has unified format with wander
-    record header followed by an array of log entries */
-@@ -66,7 +66,7 @@
-       /* number of previous block in commit */
-       d64 next_block;
--};
-+} PACKED64;
- /* The first wander record (transaction head) of written transaction has the
-    special format */
-@@ -98,7 +98,7 @@
-          separately from super block */
-       d64 nr_files;
-       d64 next_oid;
--};
-+} PACKED64;
- /* A transaction gets written to disk as a set of wander records (each wander
-    record size is fs block) */
-@@ -108,7 +108,7 @@
- struct wander_entry {
-       d64 original;           /* block original location */
-       d64 wandered;           /* block wandered location */
--};
-+} PACKED64;
- /* REISER4 JOURNAL WRITER FUNCTIONS   */
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.11-mm/x1205-rtc.c-mm.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.11-mm/x1205-rtc.c-mm.patch
deleted file mode 100644 (file)
index 6ef6bef..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
---- original/drivers/i2c/chips/x1205-rtc.c     Sat Mar  5 23:41:12 2005
-+++ linux-2.6.11/drivers/i2c/chips/x1205-rtc.c Sat Mar  5 23:41:25 2005
-@@ -139,7 +139,6 @@
- };
- static struct i2c_client x1205_i2c_client = {
--      .id             =       I2C_DRIVERID_X1205,
-       .flags          =       0,
-       .addr           =       X1205_I2C_BUS_ADDR,     // chip address - NOTE: 7bit
-       .adapter        =       NULL,                   // the adapter we sit on assigned in attach
-@@ -301,7 +300,6 @@
-       int errno;
-               
-       x1205_i2c_client.adapter = adapter;
--      x1205_i2c_client.id++;
-       if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) != NOERR)      //test for functional driver 
-               return -EIO;
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.12/defconfig b/packages/obsolete/nslu2/nslu2-kernel/2.6.12/defconfig
deleted file mode 100644 (file)
index 9397245..0000000
+++ /dev/null
@@ -1,1226 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.12
-# Sat Jun 18 17:17:09 2005
-#
-CONFIG_ARM=y
-CONFIG_MMU=y
-CONFIG_UID16=y
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_GENERIC_IOMAP=y
-
-#
-# Code maturity level options
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_CLEAN_COMPILE=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-
-#
-# General setup
-#
-CONFIG_LOCALVERSION=""
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_SYSCTL=y
-# CONFIG_AUDIT is not set
-CONFIG_HOTPLUG=y
-CONFIG_KOBJECT_UEVENT=y
-# CONFIG_IKCONFIG is not set
-CONFIG_EMBEDDED=y
-# CONFIG_KALLSYMS is not set
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-# CONFIG_BASE_FULL is not set
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_SHMEM=y
-CONFIG_CC_ALIGN_FUNCTIONS=0
-CONFIG_CC_ALIGN_LABELS=0
-CONFIG_CC_ALIGN_LOOPS=0
-CONFIG_CC_ALIGN_JUMPS=0
-# CONFIG_TINY_SHMEM is not set
-CONFIG_BASE_SMALL=1
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-CONFIG_OBSOLETE_MODPARM=y
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
-
-#
-# System Type
-#
-# CONFIG_ARCH_CLPS7500 is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_CO285 is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_CAMELOT is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_INTEGRATOR is not set
-# CONFIG_ARCH_IOP3XX is not set
-CONFIG_ARCH_IXP4XX=y
-# CONFIG_ARCH_IXP2000 is not set
-# CONFIG_ARCH_L7200 is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C2410 is not set
-# CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_LH7A40X is not set
-# CONFIG_ARCH_OMAP is not set
-# CONFIG_ARCH_VERSATILE is not set
-# CONFIG_ARCH_IMX is not set
-# CONFIG_ARCH_H720X is not set
-CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
-
-#
-# Intel IXP4xx Implementation Options
-#
-
-#
-# IXP4xx Platforms
-#
-# CONFIG_ARCH_AVILA is not set
-# CONFIG_ARCH_ADI_COYOTE is not set
-# CONFIG_ARCH_IXDP425 is not set
-# CONFIG_MACH_IXDPG425 is not set
-# CONFIG_MACH_IXDP465 is not set
-CONFIG_ARCH_NSLU2=y
-# CONFIG_ARCH_PRPMC1100 is not set
-# CONFIG_MACH_GTWX5715 is not set
-
-#
-# IXP4xx Options
-#
-CONFIG_IXP4XX_INDIRECT_PCI=y
-
-#
-# Processor Type
-#
-CONFIG_CPU_32=y
-CONFIG_CPU_XSCALE=y
-CONFIG_CPU_32v5=y
-CONFIG_CPU_ABRT_EV5T=y
-CONFIG_CPU_CACHE_VIVT=y
-CONFIG_CPU_TLB_V4WBI=y
-
-#
-# Processor Features
-#
-CONFIG_ARM_THUMB=y
-# CONFIG_ARM_THUMB_INTERWORK is not set
-# CONFIG_ARCH_XSCALE is not set
-CONFIG_CPU_BIG_ENDIAN=y
-CONFIG_XSCALE_PMU=y
-CONFIG_DMABOUNCE=y
-
-#
-# Bus support
-#
-CONFIG_ISA_DMA_API=y
-CONFIG_PCI=y
-# CONFIG_PCI_LEGACY_PROC is not set
-# CONFIG_PCI_NAMES is not set
-
-#
-# PCCARD (PCMCIA/CardBus) support
-#
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-# CONFIG_SMP is not set
-# CONFIG_PREEMPT is not set
-# CONFIG_DISCONTIGMEM is not set
-CONFIG_ALIGNMENT_TRAP=y
-
-#
-# Boot options
-#
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="root=/dev/mtdblock4 rw rootfstype=jffs2 mem=32M@0x00000000 init=/linuxrc console=ttyS0,115200n8"
-# CONFIG_XIP_KERNEL is not set
-
-#
-# Floating point emulation
-#
-
-#
-# At least one emulation must be selected
-#
-CONFIG_FPE_NWFPE=y
-# CONFIG_FPE_FASTFPE is not set
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_AOUT is not set
-# CONFIG_BINFMT_MISC is not set
-# CONFIG_ARTHUR is not set
-
-#
-# Power management options
-#
-# CONFIG_PM is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-# CONFIG_FW_LOADER is not set
-
-#
-# Memory Technology Devices (MTD)
-#
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-CONFIG_MTD_CONCAT=y
-CONFIG_MTD_PARTITIONS=y
-CONFIG_MTD_REDBOOT_PARTS=y
-CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
-# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
-# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
-CONFIG_MTD_CMDLINE_PARTS=y
-# CONFIG_MTD_AFS_PARTS is not set
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLOCK=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=y
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=y
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-CONFIG_MTD_CFI_INTELEXT=y
-# CONFIG_MTD_CFI_AMDSTD is not set
-# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=y
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-# CONFIG_MTD_XIP is not set
-
-#
-# Mapping drivers for chip access
-#
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-# CONFIG_MTD_PHYSMAP is not set
-# CONFIG_MTD_ARM_INTEGRATOR is not set
-CONFIG_MTD_IXP4XX=y
-# CONFIG_MTD_EDB7312 is not set
-# CONFIG_MTD_PCI is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLKMTD is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-
-#
-# NAND Flash Device Drivers
-#
-# CONFIG_MTD_NAND is not set
-
-#
-# Parallel port support
-#
-# CONFIG_PARPORT is not set
-
-#
-# Plug and Play support
-#
-
-#
-# Block devices
-#
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_UMEM is not set
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=m
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_SX8 is not set
-# CONFIG_BLK_DEV_UB is not set
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=4
-CONFIG_BLK_DEV_RAM_SIZE=10240
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-# CONFIG_IOSCHED_AS is not set
-CONFIG_IOSCHED_DEADLINE=y
-# CONFIG_IOSCHED_CFQ is not set
-# CONFIG_ATA_OVER_ETH is not set
-
-#
-# ATA/ATAPI/MFM/RLL support
-#
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI=y
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CHR_DEV_OSST is not set
-# CONFIG_BLK_DEV_SR is not set
-# CONFIG_CHR_DEV_SG is not set
-
-#
-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-#
-# CONFIG_SCSI_MULTI_LUN is not set
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-
-#
-# SCSI Transport Attributes
-#
-# CONFIG_SCSI_SPI_ATTRS is not set
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-
-#
-# SCSI low-level drivers
-#
-# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
-# CONFIG_SCSI_3W_9XXX is not set
-# CONFIG_SCSI_ACARD is not set
-# CONFIG_SCSI_AACRAID is not set
-# CONFIG_SCSI_AIC7XXX is not set
-# CONFIG_SCSI_AIC7XXX_OLD is not set
-# CONFIG_SCSI_AIC79XX is not set
-# CONFIG_SCSI_DPT_I2O is not set
-# CONFIG_MEGARAID_NEWGEN is not set
-# CONFIG_MEGARAID_LEGACY is not set
-# CONFIG_SCSI_SATA is not set
-# CONFIG_SCSI_BUSLOGIC is not set
-# CONFIG_SCSI_DMX3191D is not set
-# CONFIG_SCSI_EATA is not set
-# CONFIG_SCSI_FUTURE_DOMAIN is not set
-# CONFIG_SCSI_GDTH is not set
-# CONFIG_SCSI_IPS is not set
-# CONFIG_SCSI_INITIO is not set
-# CONFIG_SCSI_INIA100 is not set
-# CONFIG_SCSI_SYM53C8XX_2 is not set
-# CONFIG_SCSI_IPR is not set
-# CONFIG_SCSI_QLOGIC_FC is not set
-# CONFIG_SCSI_QLOGIC_1280 is not set
-CONFIG_SCSI_QLA2XXX=y
-# CONFIG_SCSI_QLA21XX is not set
-# CONFIG_SCSI_QLA22XX is not set
-# CONFIG_SCSI_QLA2300 is not set
-# CONFIG_SCSI_QLA2322 is not set
-# CONFIG_SCSI_QLA6312 is not set
-# CONFIG_SCSI_LPFC is not set
-# CONFIG_SCSI_DC395x is not set
-# CONFIG_SCSI_DC390T is not set
-# CONFIG_SCSI_NSP32 is not set
-# CONFIG_SCSI_DEBUG is not set
-
-#
-# Multi-device support (RAID and LVM)
-#
-# CONFIG_MD is not set
-
-#
-# Fusion MPT device support
-#
-# CONFIG_FUSION is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_IEEE1394 is not set
-
-#
-# I2O device support
-#
-# CONFIG_I2O is not set
-
-#
-# Networking support
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=m
-CONFIG_PACKET_MMAP=y
-CONFIG_UNIX=y
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
-# CONFIG_IP_PNP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE is not set
-# CONFIG_ARPD is not set
-# CONFIG_SYN_COOKIES is not set
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_TUNNEL=m
-CONFIG_IP_TCPDIAG=m
-# CONFIG_IP_TCPDIAG_IPV6 is not set
-# CONFIG_IPV6 is not set
-# CONFIG_NETFILTER is not set
-CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
-
-#
-# SCTP Configuration (EXPERIMENTAL)
-#
-# CONFIG_IP_SCTP is not set
-# CONFIG_ATM is not set
-# CONFIG_BRIDGE is not set
-CONFIG_VLAN_8021Q=m
-# CONFIG_DECNET is not set
-CONFIG_LLC=m
-# CONFIG_LLC2 is not set
-CONFIG_IPX=m
-# CONFIG_IPX_INTERN is not set
-CONFIG_ATALK=m
-CONFIG_DEV_APPLETALK=y
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
-CONFIG_IPDDP_DECAP=y
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_NET_DIVERT is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-
-#
-# QoS and/or fair queueing
-#
-# CONFIG_NET_SCHED is not set
-# CONFIG_NET_CLS_ROUTE is not set
-
-#
-# Network testing
-#
-CONFIG_NET_PKTGEN=m
-CONFIG_NETPOLL=y
-# CONFIG_NETPOLL_RX is not set
-# CONFIG_NETPOLL_TRAP is not set
-CONFIG_NET_POLL_CONTROLLER=y
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-# CONFIG_BT_HIDP is not set
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_HCIUSB=m
-CONFIG_BT_HCIUSB_SCO=y
-# CONFIG_BT_HCIUART is not set
-# CONFIG_BT_HCIBCM203X is not set
-# CONFIG_BT_HCIBPA10X is not set
-# CONFIG_BT_HCIBFUSB is not set
-# CONFIG_BT_HCIVHCI is not set
-CONFIG_NETDEVICES=y
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-CONFIG_TUN=m
-
-#
-# ARCnet devices
-#
-# CONFIG_ARCNET is not set
-
-#
-# Ethernet (10 or 100Mbit)
-#
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=y
-# CONFIG_HAPPYMEAL is not set
-# CONFIG_SUNGEM is not set
-# CONFIG_NET_VENDOR_3COM is not set
-# CONFIG_SMC91X is not set
-
-#
-# Tulip family network device support
-#
-# CONFIG_NET_TULIP is not set
-# CONFIG_HP100 is not set
-CONFIG_NET_PCI=y
-# CONFIG_PCNET32 is not set
-# CONFIG_AMD8111_ETH is not set
-# CONFIG_ADAPTEC_STARFIRE is not set
-# CONFIG_B44 is not set
-# CONFIG_FORCEDETH is not set
-# CONFIG_DGRS is not set
-# CONFIG_EEPRO100 is not set
-# CONFIG_E100 is not set
-# CONFIG_FEALNX is not set
-# CONFIG_NATSEMI is not set
-# CONFIG_NE2K_PCI is not set
-# CONFIG_8139CP is not set
-# CONFIG_8139TOO is not set
-# CONFIG_SIS900 is not set
-# CONFIG_EPIC100 is not set
-# CONFIG_SUNDANCE is not set
-# CONFIG_TLAN is not set
-# CONFIG_VIA_RHINE is not set
-
-#
-# Ethernet (1000 Mbit)
-#
-# CONFIG_ACENIC is not set
-# CONFIG_DL2K is not set
-# CONFIG_E1000 is not set
-# CONFIG_NS83820 is not set
-# CONFIG_HAMACHI is not set
-# CONFIG_YELLOWFIN is not set
-# CONFIG_R8169 is not set
-# CONFIG_SK98LIN is not set
-# CONFIG_VIA_VELOCITY is not set
-# CONFIG_TIGON3 is not set
-# CONFIG_BNX2 is not set
-
-#
-# Ethernet (10000 Mbit)
-#
-# CONFIG_IXGB is not set
-# CONFIG_S2IO is not set
-
-#
-# Token Ring devices
-#
-# CONFIG_TR is not set
-
-#
-# Wireless LAN (non-hamradio)
-#
-CONFIG_NET_RADIO=y
-
-#
-# Obsolete Wireless cards support (pre-802.11)
-#
-# CONFIG_STRIP is not set
-
-#
-# Wireless 802.11b ISA/PCI cards support
-#
-# CONFIG_HERMES is not set
-# CONFIG_ATMEL is not set
-
-#
-# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
-#
-# CONFIG_PRISM54 is not set
-CONFIG_NET_WIRELESS=y
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN is not set
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-# CONFIG_NET_FC is not set
-# CONFIG_SHAPER is not set
-CONFIG_NETCONSOLE=m
-
-#
-# ISDN subsystem
-#
-# CONFIG_ISDN is not set
-
-#
-# Input device support
-#
-# CONFIG_INPUT is not set
-
-#
-# Hardware I/O ports
-#
-# CONFIG_SERIO is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-# CONFIG_VT is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=2
-# CONFIG_SERIAL_8250_EXTENDED is not set
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_JSM is not set
-CONFIG_UNIX98_PTYS=y
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=16
-
-#
-# IPMI
-#
-# CONFIG_IPMI_HANDLER is not set
-
-#
-# Watchdog Cards
-#
-CONFIG_WATCHDOG=y
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-
-#
-# Watchdog Device Drivers
-#
-# CONFIG_SOFT_WATCHDOG is not set
-CONFIG_IXP4XX_WATCHDOG=y
-
-#
-# PCI-based Watchdog Cards
-#
-# CONFIG_PCIPCWATCHDOG is not set
-# CONFIG_WDTPCI is not set
-
-#
-# USB-based Watchdog Cards
-#
-# CONFIG_USBPCWATCHDOG is not set
-# CONFIG_NVRAM is not set
-CONFIG_RTC=m
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-
-#
-# Ftape, the floppy tape device driver
-#
-# CONFIG_DRM is not set
-# CONFIG_RAW_DRIVER is not set
-
-#
-# TPM devices
-#
-# CONFIG_TCG_TPM is not set
-
-#
-# I2C support
-#
-CONFIG_I2C=y
-CONFIG_I2C_CHARDEV=y
-
-#
-# I2C Algorithms
-#
-CONFIG_I2C_ALGOBIT=y
-# CONFIG_I2C_ALGOPCF is not set
-# CONFIG_I2C_ALGOPCA is not set
-
-#
-# I2C Hardware Bus support
-#
-# CONFIG_I2C_ALI1535 is not set
-# CONFIG_I2C_ALI1563 is not set
-# CONFIG_I2C_ALI15X3 is not set
-# CONFIG_I2C_AMD756 is not set
-# CONFIG_I2C_AMD8111 is not set
-# CONFIG_I2C_I801 is not set
-# CONFIG_I2C_I810 is not set
-# CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_IOP3XX is not set
-# CONFIG_I2C_ISA is not set
-CONFIG_I2C_IXP4XX=y
-# CONFIG_I2C_NFORCE2 is not set
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_PROSAVAGE is not set
-# CONFIG_I2C_SAVAGE4 is not set
-# CONFIG_SCx200_ACB is not set
-# CONFIG_I2C_SIS5595 is not set
-# CONFIG_I2C_SIS630 is not set
-# CONFIG_I2C_SIS96X is not set
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_VIA is not set
-# CONFIG_I2C_VIAPRO is not set
-# CONFIG_I2C_VOODOO3 is not set
-# CONFIG_I2C_PCA_ISA is not set
-
-#
-# Hardware Sensors Chip support
-#
-CONFIG_I2C_SENSOR=y
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ASB100 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_FSCHER is not set
-# CONFIG_SENSORS_FSCPOS is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_SIS5595 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_VIA686A is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83627HF is not set
-
-#
-# Other I2C Chip support
-#
-# CONFIG_SENSORS_DS1337 is not set
-CONFIG_SENSORS_EEPROM=y
-# CONFIG_SENSORS_PCF8574 is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_SENSORS_RTC8564 is not set
-CONFIG_SENSORS_X1205=y
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
-
-#
-# Misc devices
-#
-
-#
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
-# Digital Video Broadcasting Devices
-#
-# CONFIG_DVB is not set
-
-#
-# Graphics support
-#
-# CONFIG_FB is not set
-
-#
-# Sound
-#
-# CONFIG_SOUND is not set
-
-#
-# USB support
-#
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB=y
-# CONFIG_USB_DEBUG is not set
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-# CONFIG_USB_BANDWIDTH is not set
-# CONFIG_USB_DYNAMIC_MINORS is not set
-# CONFIG_USB_OTG is not set
-
-#
-# USB Host Controller Drivers
-#
-CONFIG_USB_EHCI_HCD=y
-# CONFIG_USB_EHCI_SPLIT_ISO is not set
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-CONFIG_USB_OHCI_HCD=y
-# CONFIG_USB_OHCI_BIG_ENDIAN is not set
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-# CONFIG_USB_UHCI_HCD is not set
-# CONFIG_USB_SL811_HCD is not set
-
-#
-# USB Device Class drivers
-#
-
-#
-# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem
-#
-# CONFIG_USB_ACM is not set
-CONFIG_USB_PRINTER=m
-
-#
-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
-#
-CONFIG_USB_STORAGE=y
-# CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
-# CONFIG_USB_STORAGE_FREECOM is not set
-# CONFIG_USB_STORAGE_DPCM is not set
-# CONFIG_USB_STORAGE_USBAT is not set
-# CONFIG_USB_STORAGE_SDDR09 is not set
-# CONFIG_USB_STORAGE_SDDR55 is not set
-# CONFIG_USB_STORAGE_JUMPSHOT is not set
-
-#
-# USB Input Devices
-#
-# CONFIG_USB_HID is not set
-
-#
-# USB HID Boot Protocol drivers
-#
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-
-#
-# USB Multimedia devices
-#
-# CONFIG_USB_DABUSB is not set
-
-#
-# Video4Linux support is needed for USB Multimedia device support
-#
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_USBNET=m
-
-#
-# USB Host-to-Host Cables
-#
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_GENESYS=y
-CONFIG_USB_NET1080=y
-CONFIG_USB_PL2301=y
-CONFIG_USB_KC2190=y
-
-#
-# Intelligent USB Devices/Gadgets
-#
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_ZAURUS=y
-CONFIG_USB_CDCETHER=y
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_AX8817X=y
-# CONFIG_USB_ZD1201 is not set
-# CONFIG_USB_MON is not set
-
-#
-# USB port drivers
-#
-
-#
-# USB Serial Converter support
-#
-CONFIG_USB_SERIAL=m
-CONFIG_USB_SERIAL_GENERIC=y
-# CONFIG_USB_SERIAL_AIRPRIME is not set
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_WHITEHEAT=m
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-# CONFIG_USB_SERIAL_CP2101 is not set
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-# CONFIG_USB_SERIAL_KEYSPAN is not set
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-CONFIG_USB_SERIAL_PL2303=m
-# CONFIG_USB_SERIAL_HP4X is not set
-CONFIG_USB_SERIAL_SAFE=m
-# CONFIG_USB_SERIAL_SAFE_PADDED is not set
-CONFIG_USB_SERIAL_TI=m
-CONFIG_USB_SERIAL_CYBERJACK=m
-CONFIG_USB_SERIAL_XIRCOM=m
-CONFIG_USB_SERIAL_OMNINET=m
-CONFIG_USB_EZUSB=y
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
-# CONFIG_USB_AUERSWALD is not set
-# CONFIG_USB_RIO500 is not set
-# CONFIG_USB_LEGOTOWER is not set
-# CONFIG_USB_LCD is not set
-# CONFIG_USB_LED is not set
-# CONFIG_USB_CYTHERM is not set
-# CONFIG_USB_PHIDGETKIT is not set
-# CONFIG_USB_PHIDGETSERVO is not set
-# CONFIG_USB_IDMOUSE is not set
-# CONFIG_USB_SISUSBVGA is not set
-# CONFIG_USB_TEST is not set
-
-#
-# USB ATM/DSL drivers
-#
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-
-#
-# MMC/SD Card support
-#
-# CONFIG_MMC is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=m
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-CONFIG_EXT3_FS=m
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-CONFIG_JBD=m
-# CONFIG_JBD_DEBUG is not set
-CONFIG_FS_MBCACHE=m
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-# CONFIG_JFS_FS is not set
-CONFIG_FS_POSIX_ACL=y
-
-#
-# XFS support
-#
-# CONFIG_XFS_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_ROMFS_FS is not set
-# CONFIG_QUOTA is not set
-CONFIG_DNOTIFY=y
-# CONFIG_AUTOFS_FS is not set
-CONFIG_AUTOFS4_FS=m
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_ZISOFS_FS=m
-CONFIG_UDF_FS=m
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
-CONFIG_NTFS_FS=m
-# CONFIG_NTFS_DEBUG is not set
-CONFIG_NTFS_RW=y
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_SYSFS=y
-# CONFIG_DEVFS_FS is not set
-# CONFIG_DEVPTS_FS_XATTR is not set
-CONFIG_TMPFS=y
-# CONFIG_TMPFS_XATTR is not set
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-
-#
-# Miscellaneous filesystems
-#
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_JFFS_FS is not set
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_FS_DEBUG=0
-# CONFIG_JFFS2_FS_NAND is not set
-# CONFIG_JFFS2_FS_NOR_ECC is not set
-# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-
-#
-# Network File Systems
-#
-CONFIG_NFS_FS=m
-CONFIG_NFS_V3=y
-CONFIG_NFS_V4=y
-CONFIG_NFS_DIRECTIO=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V4=y
-CONFIG_NFSD_TCP=y
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
-CONFIG_SUNRPC=m
-CONFIG_SUNRPC_GSS=m
-CONFIG_RPCSEC_GSS_KRB5=m
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=m
-# CONFIG_SMB_NLS_DEFAULT is not set
-CONFIG_CIFS=m
-# CONFIG_CIFS_STATS is not set
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-# CONFIG_CIFS_EXPERIMENTAL is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_EFI_PARTITION is not set
-
-#
-# Native Language Support
-#
-CONFIG_NLS=m
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_UTF8=m
-
-#
-# Profiling support
-#
-# CONFIG_PROFILING is not set
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-# CONFIG_DEBUG_KERNEL is not set
-CONFIG_LOG_BUF_SHIFT=14
-# CONFIG_DEBUG_BUGVERBOSE is not set
-CONFIG_FRAME_POINTER=y
-# CONFIG_DEBUG_USER is not set
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-
-#
-# Cryptographic options
-#
-CONFIG_CRYPTO=y
-CONFIG_CRYPTO_HMAC=y
-# CONFIG_CRYPTO_NULL is not set
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=m
-CONFIG_CRYPTO_SHA1=m
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_WP512=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_AES=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_CRC32C=m
-CONFIG_CRYPTO_TEST=m
-
-#
-# Hardware crypto devices
-#
-
-#
-# Library routines
-#
-CONFIG_CRC_CCITT=m
-CONFIG_CRC32=y
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.12/disk_led_blinking.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.12/disk_led_blinking.patch
deleted file mode 100644 (file)
index 7487cf3..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
---- linux-2.6.12.2/drivers/usb/core/hub.c.bak  2005-09-19 20:29:14.000000000 +0000
-+++ linux-2.6.12.2/drivers/usb/core/hub.c      2005-09-19 20:30:44.000000000 +0000
-@@ -1026,6 +1026,19 @@
-       dev_info (&udev->dev, "USB disconnect, address %d\n", udev->devnum);
-+      // --- Forward-Ported Linksys Disk 1 & Disk 2 LED Control (Port done 16.Sept.05 by Philipp Kirchhofer) ---
-+      // Copy & paste from nslu2-io.c
-+      #define DISK1_OFF       0x00000008      //0b0000 0000 0000 1000
-+      #define DISK2_OFF       0x00000004      //0b0000 0000 0000 0100
-+      // Copy & Paste end
-+
-+      if (*udev->devpath == 0x31) {
-+              *IXP4XX_GPIO_GPOUTR |= DISK1_OFF;
-+      } else if (*udev->devpath == 0x32) {
-+              *IXP4XX_GPIO_GPOUTR |= DISK2_OFF;
-+      }
-+      // --- End LED Control ---
-+
-       /* Free up all the children before we remove this device */
-       for (i = 0; i < USB_MAXCHILDREN; i++) {
-               if (udev->children[i])
-@@ -2175,6 +2188,19 @@
-                       udev->bus->controller->driver->name,
-                       udev->devnum);
-+      // --- Start LED Control ---
-+      // Copy & paste from nslu2-io.c
-+      #define DISK1_ON        0xfffffff7      //0b1111 1111 1111 0111
-+      #define DISK2_ON        0xfffffffb      //0b1111 1111 1111 1011
-+      // Copy & Paste end
-+
-+      if (*udev->devpath == 0x31) {
-+              *IXP4XX_GPIO_GPOUTR &= DISK1_ON;
-+      } else if (*udev->devpath == 0x32) {
-+              *IXP4XX_GPIO_GPOUTR &= DISK2_ON;
-+      }
-+      // --- End LED Control ---
-+
-       /* Set up TT records, if needed  */
-       if (hdev->tt) {
-               udev->tt = hdev->tt;
---- linux-2.6.12.2/drivers/usb/storage/transport.c.bak 2005-09-19 20:29:25.000000000 +0000
-+++ linux-2.6.12.2/drivers/usb/storage/transport.c     2005-09-19 20:29:55.000000000 +0000
-@@ -60,6 +60,60 @@
- #include "scsiglue.h"
- #include "debug.h"
-+// --- Forward-Ported Linksys Disk 1 & Disk 2 LED Activity Blinking Part 1 (Port done 16.Sept.05 by Philipp Kirchhofer) ---
-+// Copy & Paste from nslu2-io.c
-+#define DISK1_ON      0xfffffff7      //0b1111 1111 1111 0111
-+#define DISK2_ON      0xfffffffb      //0b1111 1111 1111 1011
-+
-+#define DISK1_OFF     0x00000008      //0b0000 0000 0000 1000
-+#define DISK2_OFF     0x00000004      //0b0000 0000 0000 0100
-+// Copy & Paste End
-+
-+#define JIFFIES_BLINKING_TIME 6
-+#define ON_LED_INTERVAL 3
-+unsigned long turn_on_time;
-+
-+static struct timer_list usb1_led_timer;    /* ide led switch */
-+static struct timer_list usb2_led_timer;    /* ide led switch */
-+
-+// Turns on Disk 1 LED
-+static void turn_on_led_usb1(unsigned long ptr) {
-+      *IXP4XX_GPIO_GPOUTR &= DISK1_ON; // 0xfff7
-+      return;
-+}
-+
-+// Turns on Disk 2 LED
-+static void turn_on_led_usb2(unsigned long ptr) {
-+      *IXP4XX_GPIO_GPOUTR &= DISK2_ON; // 0xfffb
-+        return;
-+}
-+
-+// Turns on Disk 1 LED after ON_LED_INTERVAL jiffies
-+static void usb_1_led_timer(void) {
-+      usb1_led_timer.expires = jiffies + ON_LED_INTERVAL;
-+      add_timer(&usb1_led_timer);
-+      return;
-+}
-+
-+// Turns on Disk 2 LED after ON_LED_INTERVAL jiffies
-+static void usb_2_led_timer(void) {
-+        usb2_led_timer.expires = jiffies + ON_LED_INTERVAL;
-+        add_timer(&usb2_led_timer);
-+        return;
-+}
-+
-+// Initializes Timers
-+unsigned long initialized_timers = 0;
-+static void initializeTimers() {
-+      if (initialized_timers != 1) {
-+              init_timer(&usb1_led_timer);
-+              usb1_led_timer.function = turn_on_led_usb1;
-+              init_timer(&usb2_led_timer);
-+              usb2_led_timer.function = turn_on_led_usb2;
-+              initialized_timers = 1;
-+      }
-+}
-+// --- End Disk LED Activity Blinking Part 1 ---
- /***********************************************************************
-  * Data transfer routines
-@@ -499,6 +553,21 @@
-       /* are we scatter-gathering? */
-       if (use_sg) {
-+              // --- Disk LED Activity Blinking Part 2 ---
-+              initializeTimers();
-+              if ((jiffies - turn_on_time) >= JIFFIES_BLINKING_TIME) {
-+                      if (*us->pusb_dev->devpath == 0x31) {
-+                              del_timer_sync(&usb1_led_timer);
-+                              *IXP4XX_GPIO_GPOUTR |= DISK1_OFF;
-+                              usb_1_led_timer();
-+                      } else if (*us->pusb_dev->devpath == 0x32) {
-+                              del_timer_sync(&usb2_led_timer);
-+                              *IXP4XX_GPIO_GPOUTR |= DISK2_OFF;
-+                              usb_2_led_timer();
-+                      }
-+                      turn_on_time = jiffies;
-+              }
-+              // --- End Disk LED Activity Blinking Part 2 ---
-               /* use the usb core scatter-gather primitives */
-               result = usb_stor_bulk_transfer_sglist(us, pipe,
-                               (struct scatterlist *) buf, use_sg,
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.12/missing-exports.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.12/missing-exports.patch
deleted file mode 100644 (file)
index 935dd29..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
---- linux-2.6.12/drivers/char/random.c~        2005-05-14 16:42:24.000000000 -0400
-+++ linux-2.6.12/drivers/char/random.c 2005-05-14 16:42:46.000000000 -0400
-@@ -646,6 +646,7 @@ extern void add_input_randomness(unsigne
-       add_timer_randomness(&input_timer_state,
-                            (type << 4) ^ code ^ (code >> 4) ^ value);
- }
-+EXPORT_SYMBOL_GPL(add_input_randomness);
- void add_interrupt_randomness(int irq)
- {
---- linux-2.6.12/lib/kobject_uevent.c~ 2005-05-14 16:45:13.000000000 -0400
-+++ linux-2.6.12/lib/kobject_uevent.c  2005-05-14 16:45:27.000000000 -0400
-@@ -178,6 +178,7 @@ static inline int send_uevent(const char
- #ifdef CONFIG_HOTPLUG
- char hotplug_path[HOTPLUG_PATH_LEN] = "/sbin/hotplug";
-+EXPORT_SYMBOL_GPL(hotplug_path);
- u64 hotplug_seqnum;
- static DEFINE_SPINLOCK(sequence_lock);
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.12/nslu2-arch.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.12/nslu2-arch.patch
deleted file mode 100644 (file)
index 6a41f02..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
---- linux-2.6.11/arch/arm/boot/compressed/head.S       2005-06-17 17:51:27.245788998 -0700
-+++ linux-2.6.11/arch/arm/boot/compressed/head.S       2005-06-17 17:54:45.041806429 -0700
-@@ -37,6 +37,7 @@
-     defined(CONFIG_ARCH_INTEGRATOR) || \
-     defined(CONFIG_ARCH_PXA) || \
-     defined(CONFIG_ARCH_IXP4XX) || \
-+    defined(CONFIG_ARCH_NSLU2) || \
-     defined(CONFIG_ARCH_IXP2000) || \
-     defined(CONFIG_ARCH_LH7A40X) || \
-     defined(CONFIG_ARCH_OMAP)
---- linux-2.6.11/.pc/2.6.patch/arch/arm/boot/compressed/head-xscale.S  2005-03-01 23:37:52.000000000 -0800
-+++ linux-2.6.11/arch/arm/boot/compressed/head-xscale.S        2005-06-17 17:51:32.546985425 -0700
-@@ -47,3 +47,8 @@
-                orr     r7, r7, #(MACH_TYPE_GTWX5715 & 0xff00)
- #endif
-+#ifdef CONFIG_ARCH_NSLU2
-+               mov     r7, #(MACH_TYPE_NSLU2 & 0xff)
-+               orr     r7, r7, #(MACH_TYPE_NSLU2 & 0xff00)
-+#endif
-+
---- linux-2.6.11/.pc/2.6.patch/arch/arm/mach-ixp4xx/Kconfig    2005-06-17 17:51:27.365770810 -0700
-+++ linux-2.6.11/arch/arm/mach-ixp4xx/Kconfig  2005-06-17 17:51:32.560983303 -0700
-@@ -43,6 +43,12 @@
-         IXDP465 Development Platform (Also known as BMP).
-         For more information on this platform, see <file:Documentation/arm/IXP4xx>.
-+config ARCH_NSLU2
-+       bool "NSLU2"
-+       help
-+         Say 'Y' here if you want your kernel to support Linksys's 
-+         NSLU2 NAS device. For more information on this platform, 
-+         see http://www.nslu2-linux.org
- #
- # IXCDP1100 is the exact same HW as IXDP425, but with a different machine 
---- linux-2.6.11/.pc/2.6.patch/arch/arm/mach-ixp4xx/Makefile   2005-06-17 17:51:27.365770810 -0700
-+++ linux-2.6.11/arch/arm/mach-ixp4xx/Makefile 2005-06-17 17:51:32.560983303 -0700
-@@ -8,4 +8,4 @@
- obj-$(CONFIG_MACH_IXDPG425)   += ixdpg425-pci.o coyote-setup.o
- obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o
- obj-$(CONFIG_MACH_GTWX5715)   += gtwx5715-pci.o gtwx5715-setup.o
--
-+obj-$(CONFIG_ARCH_NSLU2)      += nslu2-pci.o nslu2-setup.o nslu2-part.o nslu2-io.o
---- linux-2.6.11/.pc/2.6.patch/arch/arm/tools/mach-types       2005-06-17 17:51:27.423762020 -0700
-+++ linux-2.6.11/arch/arm/tools/mach-types     2005-06-17 17:51:32.564982697 -0700
-@@ -604,7 +604,7 @@
- roverp7                       MACH_ROVERP7            ROVERP7                 594
- pr818s                        MACH_PR818S             PR818S                  595
- trxpro                        MACH_TRXPRO             TRXPRO                  596
--nslu2                 MACH_NSLU2              NSLU2                   597
-+nslu2                 ARCH_NSLU2              NSLU2                   597
- e400                  MACH_E400               E400                    598
- trab                  MACH_TRAB               TRAB                    599
- cmc_pu2                       MACH_CMC_PU2            CMC_PU2                 600
---- linux-2.6.11/.pc/2.6.patch/drivers/mtd/maps/ixp4xx.c       2005-03-01 23:37:30.000000000 -0800
-+++ linux-2.6.11/drivers/mtd/maps/ixp4xx.c     2005-06-17 17:51:32.566982394 -0700
-@@ -94,7 +94,11 @@
-       struct resource *res;
- };
-+#ifdef CONFIG_ARCH_NSLU2
-+static const char *probes[] = { "cmdlinepart", "RedBoot", "NSLU2", NULL };
-+#else
- static const char *probes[] = { "RedBoot", "cmdlinepart", NULL };
-+#endif
- static int ixp4xx_flash_remove(struct device *_dev)
- {
---- linux-2.6.11/.pc/2.6.patch/include/asm-arm/arch-ixp4xx/hardware.h  2005-03-01 23:37:51.000000000 -0800
-+++ linux-2.6.11/include/asm-arm/arch-ixp4xx/hardware.h        2005-06-17 17:51:32.567982242 -0700
-@@ -44,5 +44,6 @@
- #include "ixdp425.h"
- #include "coyote.h"
- #include "prpmc1100.h"
-+#include "nslu2.h"
- #endif  /* _ASM_ARCH_HARDWARE_H */
---- linux-2.6.11/.pc/2.6.patch/include/asm-arm/arch-ixp4xx/irqs.h      2005-03-01 23:38:12.000000000 -0800
-+++ linux-2.6.11/include/asm-arm/arch-ixp4xx/irqs.h    2005-06-17 17:51:32.568982091 -0700
-@@ -93,4 +93,11 @@
- #define       IRQ_COYOTE_PCI_SLOT1    IRQ_IXP4XX_GPIO11
- #define       IRQ_COYOTE_IDE          IRQ_IXP4XX_GPIO5
-+/*
-+ * NSLU2 board IRQs
-+ */
-+#define        IRQ_NSLU2_PCI_INTA      IRQ_IXP4XX_GPIO11
-+#define        IRQ_NSLU2_PCI_INTB      IRQ_IXP4XX_GPIO10
-+#define        IRQ_NSLU2_PCI_INTC      IRQ_IXP4XX_GPIO9
-+
- #endif
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.12/nslu2-setup.c b/packages/obsolete/nslu2/nslu2-kernel/2.6.12/nslu2-setup.c
deleted file mode 100644 (file)
index fcb8566..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * arch/arm/mach-ixp4xx/nslu2-setup.c
- *
- * NSLU2 board-setup
- *
- * based ixdp425-setup.c:
- *      Copyright (C) 2003-2004 MontaVista Software, Inc.
- *
- * Author: Mark Rakes <mrakes at mac.com>
- * Maintainers: http://www.nslu2-linux.org/
- *
- * Fixed missing init_time in MACHINE_START kas11 10/22/04
- * Changed to conform to new style __init ixdp425 kas11 10/22/04 
- */
-
-#include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/device.h>
-#include <linux/serial.h>
-#include <linux/tty.h>
-#include <linux/serial_8250.h>
-
-#include <asm/types.h>
-#include <asm/setup.h>
-#include <asm/memory.h>
-#include <asm/hardware.h>
-#include <asm/mach-types.h>
-#include <asm/irq.h>
-#include <asm/mach/arch.h>
-#include <asm/mach/flash.h>
-
-void __init nslu2_map_io(void) 
-{
-       ixp4xx_map_io();
-}
-
-static struct flash_platform_data nslu2_flash_data = {
-       .map_name       = "cfi_probe",
-       .width          = 2,
-};
-
-static struct resource nslu2_flash_resource = {
-       .start          = NSLU2_FLASH_BASE,
-       .end            = NSLU2_FLASH_BASE + NSLU2_FLASH_SIZE,
-       .flags          = IORESOURCE_MEM,
-};
-
-static struct platform_device nslu2_flash = {
-       .name           = "IXP4XX-Flash",
-       .id             = 0,
-       .dev            = {
-               .platform_data = &nslu2_flash_data,
-       },
-       .num_resources  = 1,
-       .resource       = &nslu2_flash_resource,
-};
-
-static struct ixp4xx_i2c_pins nslu2_i2c_gpio_pins = {
-       .sda_pin        = NSLU2_SDA_PIN,
-       .scl_pin        = NSLU2_SCL_PIN,
-};
-
-static struct platform_device nslu2_i2c_controller = {
-       .name           = "IXP4XX-I2C",
-       .id             = 0,
-       .dev            = {
-               .platform_data = &nslu2_i2c_gpio_pins,
-       },
-       .num_resources  = 0
-};
-
-static struct resource nslu2_uart_resources[] = {
-       {
-               .start          = IXP4XX_UART1_BASE_PHYS,
-               .end            = IXP4XX_UART1_BASE_PHYS + 0x0fff,
-               .flags          = IORESOURCE_MEM
-       },
-       {
-               .start          = IXP4XX_UART2_BASE_PHYS,
-               .end            = IXP4XX_UART2_BASE_PHYS + 0x0fff,
-               .flags          = IORESOURCE_MEM
-       }
-};
-
-static struct plat_serial8250_port nslu2_uart_data[] = {
-       {
-               .mapbase        = IXP4XX_UART1_BASE_PHYS,
-               .membase        = (char *)IXP4XX_UART1_BASE_VIRT + REG_OFFSET,
-               .irq            = IRQ_IXP4XX_UART1,
-               .flags          = UPF_BOOT_AUTOCONF,
-               .iotype         = UPIO_MEM,
-               .regshift       = 2,
-               .uartclk        = IXP4XX_UART_XTAL,
-       },
-       {
-               .mapbase        = IXP4XX_UART2_BASE_PHYS,
-               .membase        = (char *)IXP4XX_UART2_BASE_VIRT + REG_OFFSET,
-               .irq            = IRQ_IXP4XX_UART2,
-               .flags          = UPF_BOOT_AUTOCONF,
-               .iotype         = UPIO_MEM,
-               .regshift       = 2,
-               .uartclk        = IXP4XX_UART_XTAL,
-       }
-};
-
-static struct platform_device nslu2_uart = {
-       .name                   = "serial8250",
-       .id                     = 0,
-       .dev.platform_data      = nslu2_uart_data,
-       .num_resources          = 2,
-       .resource               = nslu2_uart_resources
-};
-
-static struct platform_device *nslu2_devices[] __initdata = {
-       &nslu2_i2c_controller,
-       &nslu2_flash,
-       &nslu2_uart
-};
-
-static void n2_power_off(void)
-{
-        /* This causes the box to drop the power and go dead. */
-#define GPIO_PO_BM              0x0100  //b0000 0001 0000 0000
-        *IXP4XX_GPIO_GPOER &= ~GPIO_PO_BM;      // enable the pwr cntl gpio
-        *IXP4XX_GPIO_GPOUTR |= GPIO_PO_BM;      // do the deed
-}
-
-static void __init nslu2_init(void)
-{
-       ixp4xx_sys_init();
-
-       pm_power_off = n2_power_off;
-       platform_add_devices(nslu2_devices, ARRAY_SIZE(nslu2_devices));
-}
-
-MACHINE_START(NSLU2, "Linksys NSLU2")
-               BOOT_MEM(PHYS_OFFSET, IXP4XX_PERIPHERAL_BASE_PHYS, 
-                       IXP4XX_PERIPHERAL_BASE_VIRT)
-               MAPIO(nslu2_map_io)
-               INITIRQ(ixp4xx_init_irq)        //FIXME: all irq are off here
-               .timer          = &ixp4xx_timer,
-               // INITTIME(ixp4xx_init_time)   //this was missing in 2.6.7 code ...soft reboot needed?
-               BOOT_PARAMS(0x0100)
-               INIT_MACHINE(nslu2_init)
-MACHINE_END
-
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.12/x1205-rtc.c-id.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.12/x1205-rtc.c-id.patch
deleted file mode 100644 (file)
index 6ef6bef..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
---- original/drivers/i2c/chips/x1205-rtc.c     Sat Mar  5 23:41:12 2005
-+++ linux-2.6.11/drivers/i2c/chips/x1205-rtc.c Sat Mar  5 23:41:25 2005
-@@ -139,7 +139,6 @@
- };
- static struct i2c_client x1205_i2c_client = {
--      .id             =       I2C_DRIVERID_X1205,
-       .flags          =       0,
-       .addr           =       X1205_I2C_BUS_ADDR,     // chip address - NOTE: 7bit
-       .adapter        =       NULL,                   // the adapter we sit on assigned in attach
-@@ -301,7 +300,6 @@
-       int errno;
-               
-       x1205_i2c_client.adapter = adapter;
--      x1205_i2c_client.id++;
-       if ((x1205_get_datetime(&x1205_i2c_client, &tm, X1205_CCR_BASE)) != NOERR)      //test for functional driver 
-               return -EIO;
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14-mm/00-memory-h-page-shift.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.14-mm/00-memory-h-page-shift.patch
deleted file mode 100644 (file)
index 999b69e..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- linux-2.6.14/include/asm-arm/arch-ixp4xx/memory.h.orig     2005-11-07 23:16:48.456117450 -0800
-+++ linux-2.6.14/include/asm-arm/arch-ixp4xx/memory.h  2005-11-07 23:16:58.160728123 -0800
-@@ -8,6 +8,7 @@
- #define __ASM_ARCH_MEMORY_H
- #include <asm/sizes.h>
-+#include <asm/page.h>
- /*
-  * Physical DRAM offset.
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14-mm/30-i2c-x1205-mm1.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.14-mm/30-i2c-x1205-mm1.patch
deleted file mode 100644 (file)
index 67cbd4c..0000000
+++ /dev/null
@@ -1,1036 +0,0 @@
---- linux-2.6.14/drivers/i2c/chips/Kconfig.orig        2005-11-07 22:30:30.413306237 -0800
-+++ linux-2.6.14/drivers/i2c/chips/Kconfig     2005-11-07 22:41:15.785916976 -0800
-@@ -126,13 +126,13 @@ config SENSORS_MAX6875
-         This driver can also be built as a module.  If so, the module
-         will be called max6875.
--config RTC_X1205_I2C
--      tristate "Xicor X1205 RTC chip"
--      depends on I2C && EXPERIMENTAL
--      help
--        If you say yes here you get support for the Xicor X1205 RTC chip.
-+config SENSORS_X1205
-+       tristate "Xicor X1205 RTC chip"
-+       depends on I2C
-+       help
-+         If you say yes here you get support for the Xicor X1205 RTC chip.
--        This driver can also be built as a module. If so, the module
--        will be called x1205.
-+         This driver can also be built as a module.  If so, the module
-+         will be called x1205
- endmenu
---- linux-2.6.14/drivers/i2c/chips/Makefile.orig       2005-11-07 22:30:30.417306489 -0800
-+++ linux-2.6.14/drivers/i2c/chips/Makefile    2005-11-07 22:41:59.616675071 -0800
-@@ -13,7 +13,7 @@ obj-$(CONFIG_SENSORS_PCF8591)        += pcf8591
- obj-$(CONFIG_SENSORS_RTC8564) += rtc8564.o
- obj-$(CONFIG_ISP1301_OMAP)    += isp1301_omap.o
- obj-$(CONFIG_TPS65010)                += tps65010.o
--obj-$(CONFIG_RTC_X1205_I2C)   += x1205.o
-+obj-$(CONFIG_SENSORS_X1205)     += x1205.o
- ifeq ($(CONFIG_I2C_DEBUG_CHIP),y)
- EXTRA_CFLAGS += -DDEBUG
---- linux-2.6.14/drivers/i2c/chips/x1205.c.orig        2005-11-07 22:30:30.421306741 -0800
-+++ linux-2.6.14/drivers/i2c/chips/x1205.c     2005-11-07 22:42:54.960157617 -0800
-@@ -1,14 +1,16 @@
- /*
-- *  x1205.c - An i2c driver for the Xicor X1205 RTC
-+ *  linux/drivers/i2c/chips/x1205.c
-+ *
-+ *  x1205.c - An 12c driver for the Xicor X1205 RTC
-  *  Copyright 2004 Karen Spearel
-  *  Copyright 2005 Alessandro Zummo
-  *
-  *  please send all reports to:
-  *    kas11 at tampabay dot rr dot com
-  *      a dot zummo at towertech dot it
-- *
-+ *     
-  *  based on the other drivers in this same directory.
-- *
-+ *   
-  *  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
-@@ -26,83 +28,36 @@
- #include <linux/x1205.h>
--#define DRV_VERSION "0.9.9"
-+#define       EPOCH_1900      1900
-+#define       EPOCH_1970      1970
-+
-+#define DRIVER_VERSION        "0.9.6"
-+#define DRIVER_NAME   (x1205_driver.name)
--/* Addresses to scan: none. This chip is located at
-- * 0x6f and uses a two bytes register addressing.
-- * Two bytes need to be written to read a single register,
-- * while most other chips just require one and take the second
-- * one as the data to be written. To prevent corrupting
-- * unknown chips, the user must explicitely set the probe parameter.
-- */
--static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-+/* Addresses to scan */
-+static unsigned short normal_i2c[] = { X1205_I2C_BUS_ADDR, I2C_CLIENT_END };
- /* Insmod parameters */
- I2C_CLIENT_INSMOD;
- I2C_CLIENT_MODULE_PARM(hctosys,
-       "Set the system time from the hardware clock upon initialization");
--/* offsets into CCR area */
--
--#define CCR_SEC                       0
--#define CCR_MIN                       1
--#define CCR_HOUR              2
--#define CCR_MDAY              3
--#define CCR_MONTH             4
--#define CCR_YEAR              5
--#define CCR_WDAY              6
--#define CCR_Y2K                       7
--
--#define X1205_REG_SR          0x3F    /* status register */
--#define X1205_REG_Y2K         0x37
--#define X1205_REG_DW          0x36
--#define X1205_REG_YR          0x35
--#define X1205_REG_MO          0x34
--#define X1205_REG_DT          0x33
--#define X1205_REG_HR          0x32
--#define X1205_REG_MN          0x31
--#define X1205_REG_SC          0x30
--#define X1205_REG_DTR         0x13
--#define X1205_REG_ATR         0x12
--#define X1205_REG_INT         0x11
--#define X1205_REG_0           0x10
--#define X1205_REG_Y2K1                0x0F
--#define X1205_REG_DWA1                0x0E
--#define X1205_REG_YRA1                0x0D
--#define X1205_REG_MOA1                0x0C
--#define X1205_REG_DTA1                0x0B
--#define X1205_REG_HRA1                0x0A
--#define X1205_REG_MNA1                0x09
--#define X1205_REG_SCA1                0x08
--#define X1205_REG_Y2K0                0x07
--#define X1205_REG_DWA0                0x06
--#define X1205_REG_YRA0                0x05
--#define X1205_REG_MOA0                0x04
--#define X1205_REG_DTA0                0x03
--#define X1205_REG_HRA0                0x02
--#define X1205_REG_MNA0                0x01
--#define X1205_REG_SCA0                0x00
--
--#define X1205_CCR_BASE                0x30    /* Base address of CCR */
--#define X1205_ALM0_BASE               0x00    /* Base address of ALARM0 */
--
--#define X1205_SR_RTCF         0x01    /* Clock failure */
--#define X1205_SR_WEL          0x02    /* Write Enable Latch */
--#define X1205_SR_RWEL         0x04    /* Register Write Enable */
--
--#define X1205_DTR_DTR0                0x01
--#define X1205_DTR_DTR1                0x02
--#define X1205_DTR_DTR2                0x04
--
--#define X1205_HR_MIL          0x80    /* Set in ccr.hour for 24 hr mode */
--
- /* Prototypes */
-+
- static int x1205_attach(struct i2c_adapter *adapter);
- static int x1205_detach(struct i2c_client *client);
- static int x1205_probe(struct i2c_adapter *adapter, int address, int kind);
--static int x1205_command(struct i2c_client *client, unsigned int cmd,
--      void *arg);
-+static int x1205_validate_client(struct i2c_client *client);
-+
-+static int x1205_get_datetime(struct i2c_client *client, struct rtc_time *tm,
-+                              u8 reg_base);
-+static int x1205_set_datetime(struct i2c_client *client, struct rtc_time *tm,
-+                              int datetoo, u8 reg_base);
-+static int x1205_validate_tm(struct rtc_time *tm);
-+static int x1205_command(struct i2c_client *client, unsigned int cmd, void *arg);
-+static int x1205_hctosys(struct i2c_client *client);
-+
- static struct i2c_driver x1205_driver = {
-       .owner          = THIS_MODULE,
-@@ -110,6 +65,7 @@ static struct i2c_driver x1205_driver = 
-       .flags          = I2C_DF_NOTIFY,
-       .attach_adapter = &x1205_attach,
-       .detach_client  = &x1205_detach,
-+/*    .command        = &x1205_command,*/
- };
- struct x1205_data {
-@@ -118,8 +74,9 @@ struct x1205_data {
-       unsigned int epoch;
- };
--static const unsigned char days_in_mo[] =
--      { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
-+
-+static const unsigned char days_in_mo[] = 
-+{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
- static LIST_HEAD(x1205_clients);
-@@ -127,6 +84,7 @@ static LIST_HEAD(x1205_clients);
-  * commands to a specific client. This function will send the command
-  * to the first client.
-  */
-+
- int x1205_do_command(unsigned int cmd, void *arg)
- {
-       struct list_head *walk;
-@@ -141,114 +99,98 @@ int x1205_do_command(unsigned int cmd, v
-       return -ENODEV;
- }
--#define is_leap(year) \
--      ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))
--
--/* make sure the rtc_time values are in bounds */
--static int x1205_validate_tm(struct rtc_time *tm)
--{
--      int year = tm->tm_year + 1900;
--
--      if ((tm->tm_year < 70) || (tm->tm_year > 255))
--              return -EINVAL;
--
--      if ((tm->tm_mon > 11) || (tm->tm_mday == 0))
--              return -EINVAL;
--
--      if (tm->tm_mday > days_in_mo[tm->tm_mon]
--              + ((tm->tm_mon == 1) && is_leap(year)))
--              return -EINVAL;
--
--      if ((tm->tm_hour >= 24) || (tm->tm_min >= 60) || (tm->tm_sec >= 60))
--              return -EINVAL;
--
--      return 0;
--}
- /*
-- * In the routines that deal directly with the x1205 hardware, we use
-+ * in the routines that deal directly with the x1205 hardware, we use
-  * rtc_time -- month 0-11, hour 0-23, yr = calendar year-epoch
-- * Epoch is initialized as 2000. Time is set to UTC.
-+ * Epoch is inited as 2000. Time is set to UT
-  */
-+
- static int x1205_get_datetime(struct i2c_client *client, struct rtc_time *tm,
-                               u8 reg_base)
- {
--      unsigned char dt_addr[2] = { 0, reg_base };
--      static unsigned char sr_addr[2] = { 0, X1205_REG_SR };
-+      static unsigned char dt_addr[] = { 0, };
-+      static unsigned char sr_addr[] = { 0, };
--      unsigned char buf[8], sr;
-+      unsigned char buf[8], sr;       
-       struct i2c_msg msgs[] = {
--              { client->addr, 0, 2, sr_addr },        /* setup read ptr */
--              { client->addr, I2C_M_RD, 1, &sr },     /* read status */
--              { client->addr, 0, 2, dt_addr },        /* setup read ptr */
--              { client->addr, I2C_M_RD, 8, buf },     /* read date */
-+              { client->addr, 0, 2, sr_addr },        /* random read */
-+              { client->addr, I2C_M_RD, 1, &sr }, 
-+              { client->addr, 0, 2, dt_addr },        /* random read */
-+              { client->addr, I2C_M_RD, 8, buf },
-       };
--      struct x1205_data *data = i2c_get_clientdata(client);
-+      struct x1205_data *xdata = i2c_get_clientdata(client);
--      /* read status register */
--      if ((i2c_transfer(client->adapter, &msgs[0], 2)) != 2) {
--              dev_err(&client->dev, "%s: read error\n", __FUNCTION__);
--              return -EIO;
--      }
-+      dt_addr[1] = reg_base;
-+      sr_addr[1] = X1205_REG_SR;
--      /* check for battery failure */
--      if (sr & X1205_SR_RTCF) {
--              dev_warn(&client->dev,
--                      "Clock had a power failure, you must set the date.\n");
--              return -EINVAL;
--      }
-+      if ((i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs))) ==
-+              ARRAY_SIZE(msgs)) {
-+              /* did we read the correct number of messages? */
-+
-+              /* check for battery failure */
-+              if (sr & X1205_SR_RTCF)
-+              {       
-+                      dev_info(&client->adapter->dev,
-+                              "%s: Clock had a power failure, you must set the date.\n",
-+                              DRIVER_NAME);
--      /* read date registers */
--      if ((i2c_transfer(client->adapter, &msgs[2], 2)) != 2) {
--              dev_err(&client->dev, "%s: read error\n", __FUNCTION__);
--              return -EIO;
--      }
--
--      dev_dbg(&client->dev,
--              "%s: raw read data - sec=%02x, min=%02x, hr=%02x, "
--              "mday=%02x, mon=%02x, year=%02x, wday=%02x, y2k=%02x\n",
--              __FUNCTION__,
--              buf[0], buf[1], buf[2], buf[3],
--              buf[4], buf[5], buf[6], buf[7]);
--
--      tm->tm_sec = BCD2BIN(buf[CCR_SEC]);
--      tm->tm_min = BCD2BIN(buf[CCR_MIN]);
--      tm->tm_hour = BCD2BIN(buf[CCR_HOUR] & 0x3F); /* hr is 0-23 */
--      tm->tm_mday = BCD2BIN(buf[CCR_MDAY]);
--      tm->tm_mon = BCD2BIN(buf[CCR_MONTH]);
--      data->epoch = BCD2BIN(buf[CCR_Y2K]) * 100;
--      tm->tm_year = BCD2BIN(buf[CCR_YEAR]) + data->epoch - 1900;
--      tm->tm_wday = buf[CCR_WDAY];
-+                      return -EINVAL;
-+              }
--      dev_dbg(&client->dev, "%s: tm is secs=%d, mins=%d, hours=%d, "
--              "mday=%d, mon=%d, year=%d, wday=%d\n",
--              __FUNCTION__,
--              tm->tm_sec, tm->tm_min, tm->tm_hour,
--              tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
-+              dev_dbg(&client->dev,
-+                      "%s: raw read data - sec-%02x min-%02x hr-%02x"
-+                      " mday-%02x mon-%02x year-%02x wday-%02x y2k-%02x\n", 
-+                      __FUNCTION__,
-+                      buf[0], buf[1], buf[2], buf[3],
-+                      buf[4], buf[5], buf[6], buf[7]);
-+
-+              tm->tm_sec  = BCD2BIN(buf[CCR_SEC]);
-+              tm->tm_min  = BCD2BIN(buf[CCR_MIN]);
-+              buf[CCR_HOUR] &= ~X1205_HR_MIL;
-+              tm->tm_hour = BCD2BIN(buf[CCR_HOUR]); /* hr is 0-23 */
-+              tm->tm_mday = BCD2BIN(buf[CCR_MDAY]);
-+              tm->tm_mon  = BCD2BIN(buf[CCR_MONTH]);
-+              xdata->epoch   = BCD2BIN(buf[CCR_Y2K]) * 100;
-+              tm->tm_year = BCD2BIN(buf[CCR_YEAR]) + xdata->epoch - EPOCH_1900;
-+              tm->tm_wday = buf[CCR_WDAY];
-+
-+              dev_dbg(&client->dev, "%s: tm is secs=%d, mins=%d, hours=%d, "
-+                      "mday=%d, mon=%d, year=%d, wday=%d\n",
-+                      __FUNCTION__,
-+                      tm->tm_sec, tm->tm_min, tm->tm_hour,
-+                      tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
-+      } else {
-+              dev_dbg(&client->dev, "%s: read error\n", __FUNCTION__);
-+              return -EIO;
-+      }               
-+      
-       return 0;
- }
-+
- static int x1205_set_datetime(struct i2c_client *client, struct rtc_time *tm,
-                               int datetoo, u8 reg_base)
- {
-       int i, err, xfer;
--      unsigned char buf[8];
-+      static unsigned char wel[3]   = { 0, X1205_REG_SR,
-+                                      X1205_SR_WEL };
--      static const unsigned char wel[3] = { 0, X1205_REG_SR,
--                                              X1205_SR_WEL };
--      static const unsigned char rwel[3] = { 0, X1205_REG_SR,
--                                              X1205_SR_WEL | X1205_SR_RWEL };
-+      static unsigned char rwel[3]  = { 0, X1205_REG_SR,
-+                                      X1205_SR_WEL | X1205_SR_RWEL };
--      static const unsigned char diswe[3] = { 0, X1205_REG_SR, 0 };
-+      static unsigned char diswe[3] = { 0, X1205_REG_SR, 0 };
--      struct x1205_data *data = i2c_get_clientdata(client);
-+      static unsigned char data[3]  = { 0, };
-+      static unsigned char buf[8];
-+
-+      struct x1205_data *xdata = i2c_get_clientdata(client);
--      /* check if all values in the tm struct are correct */
-       if ((err = x1205_validate_tm(tm)) < 0)
-               return err;
-@@ -258,124 +200,52 @@ static int x1205_set_datetime(struct i2c
-               tm->tm_sec, tm->tm_min, tm->tm_hour,
-               tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
--      buf[CCR_SEC] = BIN2BCD(tm->tm_sec);
--      buf[CCR_MIN] = BIN2BCD(tm->tm_min);
--      /* set hour and 24hr bit */
-+      buf[CCR_SEC]  = BIN2BCD(tm->tm_sec);
-+      buf[CCR_MIN]  = BIN2BCD(tm->tm_min);
-+
-+      /* Set 24HR format */
-       buf[CCR_HOUR] = BIN2BCD(tm->tm_hour) | X1205_HR_MIL;
--      /* should we also set the date? */
--      if (datetoo) {
--              buf[CCR_MDAY] = BIN2BCD(tm->tm_mday);
-+      if (datetoo == X1205_DATETOO) {
-+              buf[CCR_MDAY]  = BIN2BCD(tm->tm_mday);
-               /* month, 0 - 11 */
--              buf[CCR_MONTH] = BIN2BCD(tm->tm_mon);
-+              buf[CCR_MONTH] = BIN2BCD(tm->tm_mon);   /* input is 0-11 */
-               /* year, since 1900 */
--              buf[CCR_YEAR] = BIN2BCD(tm->tm_year + 1900 - data->epoch);
--              buf[CCR_WDAY] = tm->tm_wday & 0x07;
--              buf[CCR_Y2K] = BIN2BCD(data->epoch / 100);
-+              buf[CCR_YEAR]  = BIN2BCD((tm->tm_year + EPOCH_1900 - xdata->epoch));
-+              buf[CCR_WDAY]  = tm->tm_wday & 7;
-+              buf[CCR_Y2K]   = BIN2BCD(xdata->epoch / 100);
-       }
--      /* this sequence is required to unlock the chip */
-       xfer = i2c_master_send(client, wel, 3);
--      if (xfer != 3) {
--              dev_err(&client->dev, "%s: wel - %d\n", __FUNCTION__, xfer);
-+      dev_dbg(&client->dev, "%s: wen - %x\n", __FUNCTION__, xfer);
-+      if (xfer != 3)
-               return -EIO;
--      }
-       xfer = i2c_master_send(client, rwel, 3);
--      if (xfer != 3) {
--              dev_err(&client->dev, "%s: rwel - %d\n", __FUNCTION__, xfer);
-+      dev_dbg(&client->dev, "%s: wenb - %x\n", __FUNCTION__, xfer);
-+      if (xfer != 3)
-               return -EIO;
--      }
--      /* write register's data */
--      for (i = 0; i < (datetoo ? 8 : 3); i++) {
--              unsigned char rdata[3] = { 0, reg_base + i, buf[i] };
--
--              xfer = i2c_master_send(client, rdata, 3);
--              if (xfer != 3) {
--                      dev_err(&client->dev,
--                              "%s: xfer=%d addr=%02x, data=%02x\n",
--                              __FUNCTION__,
--                               xfer, rdata[1], rdata[2]);
-+      for (i = 0; i < 8; i++) {
-+              data[1] = i + reg_base;
-+              data[2] =  buf[i];
-+              xfer = i2c_master_send(client, data, 3);
-+
-+              dev_dbg(&client->dev, "%s: xfer %d addr, %02x,  data %02x\n",
-+                      __FUNCTION__,
-+                       xfer, data[1], data[2]);
-+
-+              if (xfer != 3)
-                       return -EIO;
--              }
-       };
--      /* disable further writes */
-       xfer = i2c_master_send(client, diswe, 3);
--      if (xfer != 3) {
--              dev_err(&client->dev, "%s: diswe - %d\n", __FUNCTION__, xfer);
--              return -EIO;
--      }
--
--      return 0;
--}
--
--static int x1205_get_dtrim(struct i2c_client *client, int *trim)
--{
--      unsigned char dtr;
--      static unsigned char dtr_addr[2] = { 0, X1205_REG_DTR };
--
--      struct i2c_msg msgs[] = {
--              { client->addr, 0, 2, dtr_addr },       /* setup read ptr */
--              { client->addr, I2C_M_RD, 1, &dtr },    /* read dtr */
--      };
--
--      /* read dtr register */
--      if ((i2c_transfer(client->adapter, &msgs[0], 2)) != 2) {
--              dev_err(&client->dev, "%s: read error\n", __FUNCTION__);
--              return -EIO;
--      }
--
--      dev_dbg(&client->dev, "%s: raw dtr=%x\n", __FUNCTION__, dtr);
--
--      *trim = 0;
--
--      if (dtr & X1205_DTR_DTR0)
--              *trim += 20;
--
--      if (dtr & X1205_DTR_DTR1)
--              *trim += 10;
--
--      if (dtr & X1205_DTR_DTR2)
--              *trim = -*trim;
--
--      return 0;
--}
--
--static int x1205_get_atrim(struct i2c_client *client, int *trim)
--{
--      s8 atr;
--      static unsigned char atr_addr[2] = { 0, X1205_REG_ATR };
--
--      struct i2c_msg msgs[] = {
--              { client->addr, 0, 2, atr_addr },       /* setup read ptr */
--              { client->addr, I2C_M_RD, 1, &atr },    /* read atr */
--      };
--
--      /* read atr register */
--      if ((i2c_transfer(client->adapter, &msgs[0], 2)) != 2) {
--              dev_err(&client->dev, "%s: read error\n", __FUNCTION__);
--              return -EIO;
--      }
--
--      dev_dbg(&client->dev, "%s: raw atr=%x\n", __FUNCTION__, atr);
--
--      /* atr is a two's complement value on 6 bits,
--       * perform sign extension. The formula is
--       * Catr = (atr * 0.25pF) + 11.00pF.
--       */
--      if (atr & 0x20)
--              atr |= 0xC0;
--
--      dev_dbg(&client->dev, "%s: raw atr=%x (%d)\n", __FUNCTION__, atr, atr);
--
--      *trim = (atr * 250) + 11000;
--
--      dev_dbg(&client->dev, "%s: real=%d\n", __FUNCTION__, *trim);
-+      dev_dbg(&client->dev, "%s: wdis - %x\n", __FUNCTION__, xfer);
-+      if (xfer != 3)
-+              return -EIO;            
-       return 0;
- }
-@@ -386,24 +256,28 @@ static int x1205_hctosys(struct i2c_clie
-       struct rtc_time tm;
-       struct timespec tv;
-+      
-       err = x1205_command(client, X1205_CMD_GETDATETIME, &tm);
--      if (err) {
--              dev_err(&client->dev,
--                      "Unable to set the system clock\n");
-+      if (err)
-+      {
-+              dev_info(&client->adapter->dev,
-+                      "%s: Unable to set the system clock\n",
-+                      DRIVER_NAME);
-+
-               return err;
-+
-       }
--      /* IMPORTANT: the RTC only stores whole seconds. It is arbitrary
--       * whether it stores the most close value or the value with partial
--       * seconds truncated. However, it is important that we use it to store
--       * the truncated value. This is because otherwise it is necessary,
--       * in an rtc sync function, to read both xtime.tv_sec and
--       * xtime.tv_nsec. On some processors (i.e. ARM), an atomic read
--       * of >32bits is not possible. So storing the most close value would
--       * slow down the sync API. So here we have the truncated value and
--       * the best guess is to add 0.5s.
-+      /* IMPORTANT: the RTC only stores whole seconds.  It is arbitrary whether
-+       * it stores the most close value or the value with partial seconds
-+       * truncated, however it is important for x1205_sync_rtc that it be
-+       * defined to store the truncated value.  This is because otherwise it
-+       * is necessary to read both xtime.tv_sec and xtime.tv_nsec in the
-+       * sync function, and atomic reads of >32bits on ARM are not possible.
-+       * So storing the most close value would slow down the sync API.  So
-+       * Here we have the truncated value and the best guess is to add 0.5s
-        */
-       tv.tv_nsec = NSEC_PER_SEC >> 1;
-@@ -413,15 +287,16 @@ static int x1205_hctosys(struct i2c_clie
-        * the month to be in the range 1-12
-        */
--      tv.tv_sec  = mktime(tm.tm_year + 1900, tm.tm_mon + 1,
-+      tv.tv_sec  = mktime(tm.tm_year + EPOCH_1900, tm.tm_mon + 1,
-                               tm.tm_mday, tm.tm_hour,
-                               tm.tm_min, tm.tm_sec);
-       do_settimeofday(&tv);
--      dev_info(&client->dev,
--              "setting the system clock to %d-%d-%d %d:%d:%d\n",
--              tm.tm_year + 1900, tm.tm_mon + 1,
-+      dev_info(&client->adapter->dev,
-+              "%s: Setting the system clock to %d-%d-%d %d:%d:%d\n",
-+              DRIVER_NAME,
-+              tm.tm_year + EPOCH_1900, tm.tm_mon + 1,
-               tm.tm_mday, tm.tm_hour, tm.tm_min,
-               tm.tm_sec);
-@@ -432,7 +307,7 @@ struct x1205_limit
- {
-       unsigned char reg;
-       unsigned char mask;
--      unsigned char min;
-+      unsigned char min;      
-       unsigned char max;
- };
-@@ -443,16 +318,34 @@ static int x1205_validate_client(struct 
-       /* Probe array. We will read the register at the specified
-        * address and check if the given bits are zero.
-        */
--      static const unsigned char probe_zero_pattern[] = {
--              /* register, mask */
-+
-+      const unsigned char probe_zero_pattern[] = {
-+
-               X1205_REG_SR,   0x18,
-+              X1205_REG_Y2K,  0xC6,
-+              X1205_REG_DW,   0xF8,
-+              X1205_REG_MO,   0xE0,
-+              X1205_REG_DT,   0xC0,
-+              X1205_REG_HR,   0x40,
-+              X1205_REG_MN,   0x80,
-+              X1205_REG_SC,   0x80,
-               X1205_REG_DTR,  0xF8,
-               X1205_REG_ATR,  0xC0,
-               X1205_REG_INT,  0x18,
-               X1205_REG_0,    0xFF,
-+              X1205_REG_Y2K1, 0xC6,
-+              X1205_REG_DWA1, 0x78,
-+              X1205_REG_MOA1, 0x60,
-+              X1205_REG_DTA1, 0x40,
-+              X1205_REG_HRA1, 0x40,
-+              X1205_REG_Y2K0, 0xC6,
-+              X1205_REG_DWA0, 0x78,
-+              X1205_REG_MOA0, 0x60,
-+              X1205_REG_DTA0, 0x40,
-+              X1205_REG_HRA0, 0x40,
-       };
--      static const struct x1205_limit probe_limits_pattern[] = {
-+      const struct x1205_limit probe_limits_pattern[] = {
-               /* register, mask, min, max */
-               { X1205_REG_Y2K,        0xFF,   19,     20      },
-               { X1205_REG_DW,         0xFF,   0,      6       },
-@@ -463,23 +356,41 @@ static int x1205_validate_client(struct 
-               { X1205_REG_MN,         0xFF,   0,      59      },
-               { X1205_REG_SC,         0xFF,   0,      59      },
-               { X1205_REG_Y2K1,       0xFF,   19,     20      },
-+              { X1205_REG_DWA1,       0x7F,   0,      6       },
-+              { X1205_REG_MOA1,       0x7F,   0,      12      },
-+              { X1205_REG_DTA1,       0x7F,   0,      31      },
-+              { X1205_REG_HRA1,       0x7F,   0,      23      },
-+              { X1205_REG_MNA1,       0x7F,   0,      59      },
-+              { X1205_REG_SCA1,       0x7F,   0,      59      },
-               { X1205_REG_Y2K0,       0xFF,   19,     20      },
-+              { X1205_REG_DWA0,       0x7F,   0,      6       },
-+              { X1205_REG_MOA0,       0x7F,   0,      12      },
-+              { X1205_REG_DTA0,       0x7F,   0,      31      },
-+              { X1205_REG_HRA0,       0x7F,   0,      23      },
-+              { X1205_REG_MNA0,       0x7F,   0,      59      },
-+              { X1205_REG_SCA0,       0x7F,   0,      59      },
-       };
-       /* check that registers have bits a 0 where expected */
--      for (i = 0; i < ARRAY_SIZE(probe_zero_pattern); i += 2) {
-+
-+      for (i = 0; i < ARRAY_SIZE(probe_zero_pattern); i += 2)
-+      {
-               unsigned char buf;
--              unsigned char addr[2] = { 0, probe_zero_pattern[i] };
-+              static unsigned char addr[2];
-               struct i2c_msg msgs[2] = {
--                      { client->addr, 0, 2, addr },
-+                      { client->addr, 0, 2, addr },   /* random read */
-                       { client->addr, I2C_M_RD, 1, &buf },
-               };
-+              addr[0] = 0x00;
-+              addr[1] = probe_zero_pattern[i];
-+
-               xfer = i2c_transfer(client->adapter, msgs, 2);
-+
-               if (xfer != 2) {
--                      dev_err(&client->adapter->dev,
-+                      dev_dbg(&client->adapter->dev, 
-                               "%s: could not read register %x\n",
-                               __FUNCTION__, addr[1]);
-@@ -487,42 +398,47 @@ static int x1205_validate_client(struct 
-               }
-               if ((buf & probe_zero_pattern[i+1]) != 0) {
--                      dev_err(&client->adapter->dev,
--                              "%s: register=%02x, zero pattern=%d, value=%x\n",
-+                      dev_dbg(&client->adapter->dev,
-+                              "%s: register %x, zero pattern %d: %x\n",
-                               __FUNCTION__, addr[1], i, buf);
-                       return -ENODEV;
-               }
-       }
--      /* check limits (only registers with bcd values) */
--      for (i = 0; i < ARRAY_SIZE(probe_limits_pattern); i++) {
--              unsigned char reg, value;
-+      /* check limits */
--              unsigned char addr[2] = { 0, probe_limits_pattern[i].reg };
-+      for (i = 0; i < ARRAY_SIZE(probe_limits_pattern); i++)
-+      {
-+              unsigned char buf, val;
-+
-+              static unsigned char addr[2];
-               struct i2c_msg msgs[2] = {
--                      { client->addr, 0, 2, addr },
--                      { client->addr, I2C_M_RD, 1, &reg },
-+                      { client->addr, 0, 2, addr },   /* random read */
-+                      { client->addr, I2C_M_RD, 1, &buf },
-               };
-+              addr[0] = 0x00;
-+              addr[1] = probe_limits_pattern[i].reg;
-+
-               xfer = i2c_transfer(client->adapter, msgs, 2);
-               if (xfer != 2) {
--                      dev_err(&client->adapter->dev,
-+                      dev_dbg(&client->adapter->dev, 
-                               "%s: could not read register %x\n",
-                               __FUNCTION__, addr[1]);
-                       return -EIO;
-               }
--              value = BCD2BIN(reg & probe_limits_pattern[i].mask);
-+              val = BCD2BIN(buf & probe_limits_pattern[i].mask);
--              if (value > probe_limits_pattern[i].max ||
--                      value < probe_limits_pattern[i].min) {
-+              if (val > probe_limits_pattern[i].max ||
-+                      val < probe_limits_pattern[i].min) {
-                       dev_dbg(&client->adapter->dev,
--                              "%s: register=%x, lim pattern=%d, value=%d\n",
--                              __FUNCTION__, addr[1], i, value);
-+                              "%s: register %x, lim pattern %d: %d\n",
-+                              __FUNCTION__, addr[1], i, val);
-                       return -ENODEV;
-               }
-@@ -538,79 +454,66 @@ static int x1205_attach(struct i2c_adapt
-       return i2c_probe(adapter, &addr_data, x1205_probe);
- }
--int x1205_direct_attach(int adapter_id,
--      struct i2c_client_address_data *address_data)
--{
--      int err;
--      struct i2c_adapter *adapter = i2c_get_adapter(adapter_id);
--
--      if (adapter) {
--              err = i2c_probe(adapter,
--                      address_data, x1205_probe);
--
--              i2c_put_adapter(adapter);
--
--              return err;
--      }
--
--      return -ENODEV;
--}
--
- static int x1205_probe(struct i2c_adapter *adapter, int address, int kind)
- {
--      struct i2c_client *client;
--      struct x1205_data *data;
-+      struct i2c_client *new_client;
-+      struct x1205_data *xdata;
-       int err = 0;
-       dev_dbg(&adapter->dev, "%s\n", __FUNCTION__);
--      if (!i2c_check_functionality(adapter, I2C_FUNC_I2C)) {
--              err = -ENODEV;
--              goto exit;
--      }
--
--      if (!(data = kzalloc(sizeof(struct x1205_data), GFP_KERNEL))) {
-+      if (!(xdata = kmalloc(sizeof(struct x1205_data), GFP_KERNEL))) {
-               err = -ENOMEM;
-               goto exit;
-       }
--      /* Initialize our structures */
--      data->epoch = 2000;
-+      /* Fill our data structure */
--      client = &data->client;
--      client->addr = address;
--      client->driver = &x1205_driver;
--      client->adapter = adapter;
-+      memset(xdata, 0, sizeof(struct x1205_data));
--      strlcpy(client->name, "x1205", I2C_NAME_SIZE);
-+      xdata->epoch = 2000;
-+
-+
-+      /* Prepare i2c_client structure */
-+
-+      new_client              = &xdata->client;
-+      i2c_set_clientdata(new_client, xdata);
-+      new_client->addr        = address;
-+      new_client->adapter     = adapter;
-+      new_client->driver      = &x1205_driver;
-+      new_client->flags       = 0;
-+      
-+      strlcpy(new_client->name, "x1205", I2C_NAME_SIZE);
--      i2c_set_clientdata(client, data);
-       /* Verify the chip is really an X1205 */
--      if (kind < 0) {
--              if (x1205_validate_client(client) < 0) {
-+
-+      if (kind < 0)
-+      {
-+              if (x1205_validate_client(new_client) < 0) {
-                       err = -ENODEV;
-                       goto exit_kfree;
-               }
-       }
-       /* Inform the i2c layer */
--      if ((err = i2c_attach_client(client)))
-+      if ((err = i2c_attach_client(new_client)))
-               goto exit_kfree;
--      list_add(&data->list, &x1205_clients);
-+      list_add(&xdata->list, &x1205_clients);
--      dev_info(&client->dev, "chip found, driver version " DRV_VERSION "\n");
-+      dev_info(&adapter->dev, "%s: Chip found, driver " DRIVER_VERSION "\n",
-+                      DRIVER_NAME);
--      /* If requested, set the system time */
-+      /* If requested, se the system time */
-       if (hctosys)
--              x1205_hctosys(client);
-+              x1205_hctosys(new_client);
-       return 0;
- exit_kfree:
--      kfree(data);
-+      kfree(xdata);
- exit:
-       return err;
-@@ -620,23 +523,44 @@ static int x1205_detach(struct i2c_clien
- {
-       int err;
-       struct x1205_data *data = i2c_get_clientdata(client);
--
-+      
-       dev_dbg(&client->dev, "%s\n", __FUNCTION__);
-       if ((err = i2c_detach_client(client)))
-               return err;
-       list_del(&data->list);
--
-       kfree(data);
-+      return 0;
-+}
-+
-+/* make sure the rtc_time values are in bounds */
-+static int x1205_validate_tm(struct rtc_time *tm)
-+{
-+      tm->tm_year += 1900;
-+
-+      if (tm->tm_year < EPOCH_1970)
-+              return -EINVAL;
-+
-+      if ((tm->tm_mon > 11) || (tm->tm_mday == 0))
-+              return -EINVAL;
-+
-+      if (tm->tm_mday > (days_in_mo[tm->tm_mon] + ( (tm->tm_mon == 1) && 
-+              ((!(tm->tm_year % 4) && (tm->tm_year % 100) ) || !(tm->tm_year % 400)))))
-+              return -EINVAL;
-+
-+      if ((tm->tm_year -= EPOCH_1900) > 255)
-+              return -EINVAL;
-+                      
-+      if ((tm->tm_hour >= 24) || (tm->tm_min >= 60) || (tm->tm_sec >= 60))
-+              return -EINVAL;
-       return 0;
- }
--static int x1205_command(struct i2c_client *client, unsigned int cmd,
--      void *param)
-+static int x1205_command(struct i2c_client *client, unsigned int cmd, void *tm)
- {
--      if (param == NULL)
-+      if (client == NULL || tm == NULL)
-               return -EINVAL;
-       if (!capable(CAP_SYS_TIME))
-@@ -646,34 +570,26 @@ static int x1205_command(struct i2c_clie
-       switch (cmd) {
-       case X1205_CMD_GETDATETIME:
--              return x1205_get_datetime(client, param, X1205_CCR_BASE);
-+              return x1205_get_datetime(client, tm, X1205_CCR_BASE);
-       case X1205_CMD_SETTIME:
--              return x1205_set_datetime(client, param, 0,
--                              X1205_CCR_BASE);
-+              return x1205_set_datetime(client, tm, X1205_NODATE, X1205_CCR_BASE);
-       case X1205_CMD_SETDATETIME:
--              return x1205_set_datetime(client, param, 1,
--                              X1205_CCR_BASE);
-+              return x1205_set_datetime(client, tm, X1205_DATETOO, X1205_CCR_BASE);
-       case X1205_CMD_GETALARM:
--              return x1205_get_datetime(client, param, X1205_ALM0_BASE);
-+              return x1205_get_datetime(client, tm, X1205_ALM0_BASE);
-       case X1205_CMD_SETALARM:
--              return x1205_set_datetime(client, param, 1,
--                              X1205_ALM0_BASE);
--
--      case X1205_CMD_GETDTRIM:
--              return x1205_get_dtrim(client, param);
--
--      case X1205_CMD_GETATRIM:
--              return x1205_get_atrim(client, param);
-+              return x1205_set_datetime(client, tm, X1205_DATETOO, X1205_ALM0_BASE);
-       default:
-               return -EINVAL;
-       }
- }
-+
- static int __init x1205_init(void)
- {
-       return i2c_add_driver(&x1205_driver);
-@@ -689,10 +605,8 @@ MODULE_AUTHOR(
-       "Alessandro Zummo <a.zummo@towertech.it>");
- MODULE_DESCRIPTION("Xicor X1205 RTC driver");
- MODULE_LICENSE("GPL");
--MODULE_VERSION(DRV_VERSION);
- EXPORT_SYMBOL_GPL(x1205_do_command);
--EXPORT_SYMBOL_GPL(x1205_direct_attach);
- module_init(x1205_init);
- module_exit(x1205_exit);
---- linux-2.6.14/include/linux/x1205.h.orig    2005-11-07 22:38:42.196252187 -0800
-+++ linux-2.6.14/include/linux/x1205.h 2005-11-07 22:42:54.960157617 -0800
-@@ -1,31 +1,67 @@
--/*
-- *  x1205.h - defines for drivers/i2c/chips/x1205.c
-- *  Copyright 2004 Karen Spearel
-- *  Copyright 2005 Alessandro Zummo
-- *
-- *  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.
-- */
--
--#ifndef __LINUX_X1205_H__
--#define __LINUX_X1205_H__
- /* commands */
--#define X1205_CMD_GETDATETIME 0
--#define X1205_CMD_SETTIME     1
--#define X1205_CMD_SETDATETIME 2
-+#define       X1205_CMD_GETDATETIME   0
-+#define       X1205_CMD_SETTIME       1
-+#define       X1205_CMD_SETDATETIME   2
- #define X1205_CMD_GETALARM    3
- #define X1205_CMD_SETALARM    4
--#define X1205_CMD_GETDTRIM    5
--#define X1205_CMD_SETDTRIM    6
--#define X1205_CMD_GETATRIM    7
--#define X1205_CMD_SETATRIM    8
-+
-+/* flags */
-+
-+#define       X1205_NODATE            0
-+#define       X1205_DATETOO           1
-+
-+/*  offsets into read buf - add 2 for write buf */
-+
-+#define       CCR_SEC                 0
-+#define       CCR_MIN                 1
-+#define       CCR_HOUR                2
-+#define       CCR_MDAY                3
-+#define       CCR_MONTH               4
-+#define       CCR_YEAR                5
-+#define       CCR_WDAY                6
-+#define       CCR_Y2K                 7
-+
-+#define       X1205_REG_SR            0x3F    /* status register */
-+#define       X1205_REG_Y2K           0x37
-+#define       X1205_REG_DW            0x36
-+#define       X1205_REG_YR            0x35
-+#define       X1205_REG_MO            0x34
-+#define       X1205_REG_DT            0x33
-+#define       X1205_REG_HR            0x32
-+#define       X1205_REG_MN            0x31
-+#define       X1205_REG_SC            0x30
-+#define       X1205_REG_DTR           0x13
-+#define       X1205_REG_ATR           0x12
-+#define       X1205_REG_INT           0x11
-+#define       X1205_REG_0             0x10
-+#define       X1205_REG_Y2K1          0x0F
-+#define       X1205_REG_DWA1          0x0E
-+#define       X1205_REG_YRA1          0x0D
-+#define       X1205_REG_MOA1          0x0C
-+#define       X1205_REG_DTA1          0x0B
-+#define       X1205_REG_HRA1          0x0A
-+#define       X1205_REG_MNA1          0x09
-+#define       X1205_REG_SCA1          0x08
-+#define       X1205_REG_Y2K0          0x07
-+#define       X1205_REG_DWA0          0x06
-+#define       X1205_REG_YRA0          0x05
-+#define       X1205_REG_MOA0          0x04
-+#define       X1205_REG_DTA0          0x03
-+#define       X1205_REG_HRA0          0x02
-+#define       X1205_REG_MNA0          0x01
-+#define       X1205_REG_SCA0          0x00
-+
-+#define       X1205_I2C_BUS_ADDR      0x6f    /* hardwired into x1205 */
-+#define       X1205_CCR_BASE          0x30    /* Base address of CCR */
-+#define       X1205_ALM0_BASE         0x00    /* Base address of ALARM0 */
-+
-+#define X1205_SR_RTCF         0x01
-+#define       X1205_SR_WEL            0x02    /* Write Enable Latch bit */
-+#define       X1205_SR_RWEL           0x04    /* Register Write Enable Bit */
-+
-+#define       X1205_HR_MIL            0x80    /* set in ccr.hour for 24 hr mode */
- extern int x1205_do_command(unsigned int cmd, void *arg);
--extern int x1205_direct_attach(int adapter_id,
--      struct i2c_client_address_data *address_data);
--#endif /* __LINUX_X1205_H__ */
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14-mm/80-nslu2-class-device-create.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.14-mm/80-nslu2-class-device-create.patch
deleted file mode 100644 (file)
index 116f95b..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- linux-2.6.14/arch/arm/mach-ixp4xx/nslu2-io.c.orig  2005-11-07 22:26:36.010556202 -0800
-+++ linux-2.6.14/arch/arm/mach-ixp4xx/nslu2-io.c       2005-11-07 22:27:15.921067613 -0800
-@@ -504,7 +504,7 @@ static int __init n2iom_init(void)
-               return -EBUSY;
-       }
-       else {
--              class_device_create(n2lm_class, MKDEV(NSLU2LM_MAJOR, 0), NULL, "leds");
-+              class_device_create(n2lm_class, NULL, MKDEV(NSLU2LM_MAJOR, 0), NULL, "leds");
-       }
- #endif
-@@ -513,7 +513,7 @@ static int __init n2iom_init(void)
-               return -EBUSY;
-       }
-       else {
--              class_device_create(n2lm_class, MKDEV(NSLU2BZ_MAJOR, 0), NULL, "buzzer");
-+              class_device_create(n2lm_class, NULL, MKDEV(NSLU2BZ_MAJOR, 0), NULL, "buzzer");
-       }
-       return 0;
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14-mm/defconfig b/packages/obsolete/nslu2/nslu2-kernel/2.6.14-mm/defconfig
deleted file mode 100644 (file)
index ecb422f..0000000
+++ /dev/null
@@ -1,1595 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.14
-# Mon Nov  7 22:59:39 2005
-#
-CONFIG_ARM=y
-CONFIG_MMU=y
-CONFIG_UID16=y
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-
-#
-# Code maturity level options
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_CLEAN_COMPILE=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-
-#
-# General setup
-#
-CONFIG_LOCALVERSION=""
-CONFIG_LOCALVERSION_AUTO=y
-CONFIG_SWAP=y
-CONFIG_SWAP_PREFETCH=y
-CONFIG_SYSVIPC=y
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_SYSCTL=y
-# CONFIG_AUDIT is not set
-CONFIG_HOTPLUG=y
-CONFIG_KOBJECT_UEVENT=y
-# CONFIG_IKCONFIG is not set
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_EMBEDDED=y
-# CONFIG_KALLSYMS is not set
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-# CONFIG_BASE_FULL is not set
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_SHMEM=y
-CONFIG_CC_ALIGN_FUNCTIONS=0
-CONFIG_CC_ALIGN_LABELS=0
-CONFIG_CC_ALIGN_LOOPS=0
-CONFIG_CC_ALIGN_JUMPS=0
-CONFIG_SLAB=y
-# CONFIG_TINY_SHMEM is not set
-CONFIG_BASE_SMALL=1
-# CONFIG_SLOB is not set
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-CONFIG_OBSOLETE_MODPARM=y
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
-
-#
-# System Type
-#
-# CONFIG_ARCH_CLPS7500 is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_CO285 is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_CAMELOT is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_INTEGRATOR is not set
-# CONFIG_ARCH_IOP3XX is not set
-CONFIG_ARCH_IXP4XX=y
-# CONFIG_ARCH_IXP2000 is not set
-# CONFIG_ARCH_L7200 is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C2410 is not set
-# CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_LH7A40X is not set
-# CONFIG_ARCH_OMAP is not set
-# CONFIG_ARCH_VERSATILE is not set
-# CONFIG_ARCH_REALVIEW is not set
-# CONFIG_ARCH_IMX is not set
-# CONFIG_ARCH_H720X is not set
-# CONFIG_ARCH_AAEC2000 is not set
-CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
-
-#
-# Intel IXP4xx Implementation Options
-#
-
-#
-# IXP4xx Platforms
-#
-# CONFIG_ARCH_AVILA is not set
-# CONFIG_ARCH_ADI_COYOTE is not set
-# CONFIG_ARCH_IXDP425 is not set
-# CONFIG_MACH_IXDPG425 is not set
-# CONFIG_MACH_IXDP465 is not set
-CONFIG_MACH_NSLU2=y
-# CONFIG_ARCH_PRPMC1100 is not set
-# CONFIG_MACH_GTWX5715 is not set
-
-#
-# IXP4xx Options
-#
-CONFIG_IXP4XX_INDIRECT_PCI=y
-
-#
-# Processor Type
-#
-CONFIG_CPU_32=y
-CONFIG_CPU_XSCALE=y
-CONFIG_CPU_32v5=y
-CONFIG_CPU_ABRT_EV5T=y
-CONFIG_CPU_CACHE_VIVT=y
-CONFIG_CPU_TLB_V4WBI=y
-
-#
-# Processor Features
-#
-CONFIG_ARM_THUMB=y
-CONFIG_CPU_BIG_ENDIAN=y
-CONFIG_XSCALE_PMU=y
-CONFIG_DMABOUNCE=y
-
-#
-# Bus support
-#
-CONFIG_ISA_DMA_API=y
-CONFIG_PCI=y
-# CONFIG_PCI_LEGACY_PROC is not set
-
-#
-# PCCARD (PCMCIA/CardBus) support
-#
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-# CONFIG_PREEMPT is not set
-# CONFIG_NO_IDLE_HZ is not set
-# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
-# CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-# CONFIG_SPARSEMEM_STATIC is not set
-CONFIG_SPLIT_PTLOCK_CPUS=4096
-# CONFIG_LEDS is not set
-CONFIG_ALIGNMENT_TRAP=y
-
-#
-# Boot options
-#
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="root=/dev/mtdblock4 rw rootfstype=jffs2 mem=32M@0x00000000 init=/linuxrc x1205.hctosys=1 noirqdebug console=ttyS0,115200n8"
-# CONFIG_XIP_KERNEL is not set
-
-#
-# Floating point emulation
-#
-
-#
-# At least one emulation must be selected
-#
-CONFIG_FPE_NWFPE=y
-# CONFIG_FPE_FASTFPE is not set
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_AOUT is not set
-# CONFIG_BINFMT_MISC is not set
-# CONFIG_ARTHUR is not set
-
-#
-# Power management options
-#
-# CONFIG_PM is not set
-
-#
-# Networking
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=m
-CONFIG_PACKET_MMAP=y
-CONFIG_UNIX=y
-CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_FIB_HASH=y
-# CONFIG_IP_PNP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE is not set
-# CONFIG_ARPD is not set
-# CONFIG_SYN_COOKIES is not set
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_DIAG=y
-CONFIG_INET_TCP_DIAG=y
-# CONFIG_TCP_CONG_ADVANCED is not set
-CONFIG_TCP_CONG_BIC=y
-
-#
-# IP: Virtual Server Configuration
-#
-# CONFIG_IP_VS is not set
-CONFIG_IPV6=m
-# CONFIG_IPV6_PRIVACY is not set
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_IPV6_TUNNEL=m
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_BRIDGE_NETFILTER=y
-# CONFIG_NETFILTER_NETLINK is not set
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_IP_NF_CONNTRACK=m
-# CONFIG_IP_NF_CT_ACCT is not set
-# CONFIG_IP_NF_CONNTRACK_MARK is not set
-# CONFIG_IP_NF_CONNTRACK_EVENTS is not set
-CONFIG_IP_NF_CT_PROTO_SCTP=m
-CONFIG_IP_NF_FTP=m
-CONFIG_IP_NF_IRC=m
-# CONFIG_IP_NF_NETBIOS_NS is not set
-CONFIG_IP_NF_TFTP=m
-CONFIG_IP_NF_AMANDA=m
-# CONFIG_IP_NF_PPTP is not set
-CONFIG_IP_NF_QUEUE=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_LIMIT=m
-CONFIG_IP_NF_MATCH_IPRANGE=m
-CONFIG_IP_NF_MATCH_MAC=m
-CONFIG_IP_NF_MATCH_PKTTYPE=m
-CONFIG_IP_NF_MATCH_MARK=m
-CONFIG_IP_NF_MATCH_MULTIPORT=m
-CONFIG_IP_NF_MATCH_TOS=m
-CONFIG_IP_NF_MATCH_RECENT=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_DSCP=m
-CONFIG_IP_NF_MATCH_AH_ESP=m
-CONFIG_IP_NF_MATCH_LENGTH=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_MATCH_TCPMSS=m
-CONFIG_IP_NF_MATCH_HELPER=m
-CONFIG_IP_NF_MATCH_STATE=m
-CONFIG_IP_NF_MATCH_CONNTRACK=m
-CONFIG_IP_NF_MATCH_OWNER=m
-CONFIG_IP_NF_MATCH_PHYSDEV=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
-CONFIG_IP_NF_MATCH_REALM=m
-# CONFIG_IP_NF_MATCH_SCTP is not set
-# CONFIG_IP_NF_MATCH_DCCP is not set
-CONFIG_IP_NF_MATCH_COMMENT=m
-CONFIG_IP_NF_MATCH_HASHLIMIT=m
-# CONFIG_IP_NF_MATCH_STRING is not set
-CONFIG_IP_NF_FILTER=m
-# CONFIG_IP_NF_TARGET_REJECT is not set
-CONFIG_IP_NF_TARGET_LOG=m
-CONFIG_IP_NF_TARGET_ULOG=m
-CONFIG_IP_NF_TARGET_TCPMSS=m
-# CONFIG_IP_NF_TARGET_NFQUEUE is not set
-CONFIG_IP_NF_NAT=m
-CONFIG_IP_NF_NAT_NEEDED=y
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_SAME=m
-CONFIG_IP_NF_NAT_SNMP_BASIC=m
-CONFIG_IP_NF_NAT_IRC=m
-CONFIG_IP_NF_NAT_FTP=m
-CONFIG_IP_NF_NAT_TFTP=m
-CONFIG_IP_NF_NAT_AMANDA=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_TOS=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_DSCP=m
-CONFIG_IP_NF_TARGET_MARK=m
-CONFIG_IP_NF_TARGET_CLASSIFY=m
-# CONFIG_IP_NF_TARGET_TTL is not set
-# CONFIG_IP_NF_RAW is not set
-# CONFIG_IP_NF_ARPTABLES is not set
-
-#
-# IPv6: Netfilter Configuration (EXPERIMENTAL)
-#
-# CONFIG_IP6_NF_QUEUE is not set
-# CONFIG_IP6_NF_IPTABLES is not set
-# CONFIG_IP6_NF_TARGET_NFQUEUE is not set
-
-#
-# Bridge: Netfilter Configuration
-#
-# CONFIG_BRIDGE_NF_EBTABLES is not set
-
-#
-# DCCP Configuration (EXPERIMENTAL)
-#
-# CONFIG_IP_DCCP is not set
-
-#
-# SCTP Configuration (EXPERIMENTAL)
-#
-# CONFIG_IP_SCTP is not set
-# CONFIG_ATM is not set
-CONFIG_BRIDGE=m
-CONFIG_VLAN_8021Q=m
-# CONFIG_DECNET is not set
-CONFIG_LLC=m
-# CONFIG_LLC2 is not set
-CONFIG_IPX=m
-# CONFIG_IPX_INTERN is not set
-CONFIG_ATALK=m
-CONFIG_DEV_APPLETALK=y
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
-CONFIG_IPDDP_DECAP=y
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_NET_DIVERT is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-
-#
-# QoS and/or fair queueing
-#
-# CONFIG_NET_SCHED is not set
-CONFIG_NET_CLS_ROUTE=y
-
-#
-# Network testing
-#
-CONFIG_NET_PKTGEN=m
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-# CONFIG_BT_HIDP is not set
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_HCIUSB=m
-CONFIG_BT_HCIUSB_SCO=y
-# CONFIG_BT_HCIUART is not set
-CONFIG_BT_HCIBCM203X=m
-# CONFIG_BT_HCIBPA10X is not set
-# CONFIG_BT_HCIBFUSB is not set
-# CONFIG_BT_HCIVHCI is not set
-# CONFIG_IEEE80211 is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=m
-
-#
-# Memory Technology Devices (MTD)
-#
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-CONFIG_MTD_CONCAT=y
-CONFIG_MTD_PARTITIONS=y
-CONFIG_MTD_REDBOOT_PARTS=y
-CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
-# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
-# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLOCK=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=y
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=y
-CONFIG_MTD_CFI_ADV_OPTIONS=y
-# CONFIG_MTD_CFI_NOSWAP is not set
-CONFIG_MTD_CFI_BE_BYTE_SWAP=y
-# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
-CONFIG_MTD_CFI_GEOMETRY=y
-# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-# CONFIG_MTD_OTP is not set
-CONFIG_MTD_CFI_INTELEXT=y
-# CONFIG_MTD_CFI_AMDSTD is not set
-# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=y
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-# CONFIG_MTD_XIP is not set
-
-#
-# Mapping drivers for chip access
-#
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-# CONFIG_MTD_PHYSMAP is not set
-# CONFIG_MTD_ARM_INTEGRATOR is not set
-CONFIG_MTD_IXP4XX=y
-# CONFIG_MTD_EDB7312 is not set
-# CONFIG_MTD_PCI is not set
-# CONFIG_MTD_PLATRAM is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLKMTD is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-
-#
-# NAND Flash Device Drivers
-#
-# CONFIG_MTD_NAND is not set
-
-#
-# Parallel port support
-#
-# CONFIG_PARPORT is not set
-
-#
-# Plug and Play support
-#
-
-#
-# Block devices
-#
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_UMEM is not set
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=m
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_SX8 is not set
-# CONFIG_BLK_DEV_UB is not set
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=4
-CONFIG_BLK_DEV_RAM_SIZE=10240
-CONFIG_BLK_DEV_INITRD=y
-# CONFIG_BLK_DEV_IO_TRACE is not set
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-# CONFIG_IOSCHED_AS is not set
-CONFIG_IOSCHED_DEADLINE=y
-# CONFIG_IOSCHED_CFQ is not set
-# CONFIG_DEFAULT_AS is not set
-CONFIG_DEFAULT_DEADLINE=y
-# CONFIG_DEFAULT_CFQ is not set
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="deadline"
-# CONFIG_ATA_OVER_ETH is not set
-
-#
-# ATA/ATAPI/MFM/RLL support
-#
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=y
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CHR_DEV_OSST is not set
-CONFIG_BLK_DEV_SR=m
-# CONFIG_BLK_DEV_SR_VENDOR is not set
-CONFIG_CHR_DEV_SG=m
-# CONFIG_CHR_DEV_SCH is not set
-
-#
-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-#
-CONFIG_SCSI_MULTI_LUN=y
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-
-#
-# SCSI Transport Attributes
-#
-# CONFIG_SCSI_SPI_ATTRS is not set
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-# CONFIG_SCSI_SAS_ATTRS is not set
-
-#
-# SCSI Transport Layers
-#
-# CONFIG_SAS_CLASS is not set
-
-#
-# SCSI low-level drivers
-#
-# CONFIG_ISCSI_TCP is not set
-# CONFIG_SCSI_ARCMSR is not set
-# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
-# CONFIG_SCSI_3W_9XXX is not set
-# CONFIG_SCSI_ACARD is not set
-# CONFIG_SCSI_AACRAID is not set
-# CONFIG_SCSI_AIC7XXX is not set
-# CONFIG_SCSI_AIC7XXX_OLD is not set
-# CONFIG_SCSI_AIC79XX is not set
-# CONFIG_SCSI_DPT_I2O is not set
-# CONFIG_MEGARAID_NEWGEN is not set
-# CONFIG_MEGARAID_LEGACY is not set
-# CONFIG_MEGARAID_SAS is not set
-# CONFIG_SCSI_SATA is not set
-# CONFIG_SCSI_BUSLOGIC is not set
-# CONFIG_SCSI_DMX3191D is not set
-# CONFIG_SCSI_EATA is not set
-# CONFIG_SCSI_FUTURE_DOMAIN is not set
-# CONFIG_SCSI_GDTH is not set
-# CONFIG_SCSI_IPS is not set
-# CONFIG_SCSI_INITIO is not set
-# CONFIG_SCSI_INIA100 is not set
-# CONFIG_SCSI_SYM53C8XX_2 is not set
-# CONFIG_SCSI_IPR is not set
-# CONFIG_SCSI_QLOGIC_FC is not set
-# CONFIG_SCSI_QLOGIC_1280 is not set
-CONFIG_SCSI_QLA2XXX=y
-# CONFIG_SCSI_QLA21XX is not set
-# CONFIG_SCSI_QLA22XX is not set
-# CONFIG_SCSI_QLA2300 is not set
-# CONFIG_SCSI_QLA2322 is not set
-# CONFIG_SCSI_QLA6312 is not set
-# CONFIG_SCSI_QLA24XX is not set
-# CONFIG_SCSI_LPFC is not set
-# CONFIG_SCSI_DC395x is not set
-# CONFIG_SCSI_DC390T is not set
-# CONFIG_SCSI_NSP32 is not set
-# CONFIG_SCSI_DEBUG is not set
-
-#
-# Multi-device support (RAID and LVM)
-#
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=m
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID5=m
-CONFIG_MD_RAID6=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-CONFIG_BLK_DEV_DM=m
-# CONFIG_DM_CRYPT is not set
-# CONFIG_DM_SNAPSHOT is not set
-# CONFIG_DM_MIRROR is not set
-# CONFIG_DM_ZERO is not set
-# CONFIG_DM_MULTIPATH is not set
-
-#
-# Fusion MPT device support
-#
-# CONFIG_FUSION is not set
-# CONFIG_FUSION_SPI is not set
-# CONFIG_FUSION_FC is not set
-# CONFIG_FUSION_SAS is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_IEEE1394 is not set
-
-#
-# I2O device support
-#
-# CONFIG_I2O is not set
-
-#
-# Network device support
-#
-CONFIG_NETDEVICES=y
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-CONFIG_TUN=m
-
-#
-# ARCnet devices
-#
-# CONFIG_ARCNET is not set
-
-#
-# PHY device support
-#
-# CONFIG_PHYLIB is not set
-
-#
-# Ethernet (10 or 100Mbit)
-#
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=y
-# CONFIG_HAPPYMEAL is not set
-# CONFIG_SUNGEM is not set
-# CONFIG_CASSINI is not set
-# CONFIG_NET_VENDOR_3COM is not set
-# CONFIG_SMC91X is not set
-# CONFIG_DM9000 is not set
-
-#
-# Tulip family network device support
-#
-# CONFIG_NET_TULIP is not set
-# CONFIG_HP100 is not set
-CONFIG_NET_PCI=y
-# CONFIG_PCNET32 is not set
-# CONFIG_AMD8111_ETH is not set
-# CONFIG_ADAPTEC_STARFIRE is not set
-# CONFIG_B44 is not set
-# CONFIG_FORCEDETH is not set
-# CONFIG_DGRS is not set
-# CONFIG_EEPRO100 is not set
-# CONFIG_E100 is not set
-# CONFIG_FEALNX is not set
-# CONFIG_NATSEMI is not set
-# CONFIG_NE2K_PCI is not set
-# CONFIG_8139CP is not set
-# CONFIG_8139TOO is not set
-# CONFIG_SIS900 is not set
-# CONFIG_EPIC100 is not set
-# CONFIG_SUNDANCE is not set
-# CONFIG_TLAN is not set
-# CONFIG_VIA_RHINE is not set
-
-#
-# Ethernet (1000 Mbit)
-#
-# CONFIG_ACENIC is not set
-# CONFIG_DL2K is not set
-# CONFIG_E1000 is not set
-# CONFIG_NS83820 is not set
-# CONFIG_HAMACHI is not set
-# CONFIG_YELLOWFIN is not set
-# CONFIG_R8169 is not set
-# CONFIG_SIS190 is not set
-# CONFIG_SKGE is not set
-# CONFIG_SKY2 is not set
-# CONFIG_SK98LIN is not set
-# CONFIG_VIA_VELOCITY is not set
-# CONFIG_TIGON3 is not set
-# CONFIG_BNX2 is not set
-
-#
-# Ethernet (10000 Mbit)
-#
-# CONFIG_CHELSIO_T1 is not set
-# CONFIG_IXGB is not set
-# CONFIG_S2IO is not set
-
-#
-# Token Ring devices
-#
-# CONFIG_TR is not set
-
-#
-# Wireless LAN (non-hamradio)
-#
-CONFIG_NET_RADIO=y
-
-#
-# Obsolete Wireless cards support (pre-802.11)
-#
-# CONFIG_STRIP is not set
-
-#
-# Wireless 802.11b ISA/PCI cards support
-#
-# CONFIG_AIRO is not set
-# CONFIG_HERMES is not set
-# CONFIG_ATMEL is not set
-
-#
-# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
-#
-# CONFIG_PRISM54 is not set
-# CONFIG_HOSTAP is not set
-# CONFIG_ACX is not set
-CONFIG_NET_WIRELESS=y
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN is not set
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-CONFIG_PPP=m
-# CONFIG_PPP_MULTILINK is not set
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-# CONFIG_PPP_SYNC_TTY is not set
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-# CONFIG_PPP_MPPE is not set
-# CONFIG_PPPOE is not set
-# CONFIG_SLIP is not set
-# CONFIG_NET_FC is not set
-# CONFIG_SHAPER is not set
-CONFIG_NETCONSOLE=m
-# CONFIG_KGDBOE is not set
-CONFIG_NETPOLL=y
-# CONFIG_NETPOLL_RX is not set
-# CONFIG_NETPOLL_TRAP is not set
-CONFIG_NET_POLL_CONTROLLER=y
-
-#
-# ISDN subsystem
-#
-# CONFIG_ISDN is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=m
-
-#
-# Userland interfaces
-#
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_TSDEV is not set
-CONFIG_INPUT_EVDEV=m
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
-# CONFIG_INPUT_MISC is not set
-
-#
-# Hardware I/O ports
-#
-# CONFIG_SERIO is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-# CONFIG_VT is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=2
-# CONFIG_SERIAL_8250_EXTENDED is not set
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_JSM is not set
-CONFIG_UNIX98_PTYS=y
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=16
-
-#
-# IPMI
-#
-# CONFIG_IPMI_HANDLER is not set
-
-#
-# Watchdog Cards
-#
-CONFIG_WATCHDOG=y
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-
-#
-# Watchdog Device Drivers
-#
-# CONFIG_SOFT_WATCHDOG is not set
-CONFIG_IXP4XX_WATCHDOG=y
-
-#
-# PCI-based Watchdog Cards
-#
-# CONFIG_PCIPCWATCHDOG is not set
-# CONFIG_WDTPCI is not set
-
-#
-# USB-based Watchdog Cards
-#
-# CONFIG_USBPCWATCHDOG is not set
-# CONFIG_NVRAM is not set
-CONFIG_RTC=m
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-
-#
-# Ftape, the floppy tape device driver
-#
-# CONFIG_DRM is not set
-# CONFIG_RAW_DRIVER is not set
-
-#
-# TPM devices
-#
-# CONFIG_TCG_TPM is not set
-# CONFIG_TELCLOCK is not set
-
-#
-# I2C support
-#
-CONFIG_I2C=y
-CONFIG_I2C_CHARDEV=y
-
-#
-# I2C Algorithms
-#
-CONFIG_I2C_ALGOBIT=y
-# CONFIG_I2C_ALGOPCF is not set
-# CONFIG_I2C_ALGOPCA is not set
-
-#
-# I2C Hardware Bus support
-#
-# CONFIG_I2C_ALI1535 is not set
-# CONFIG_I2C_ALI1563 is not set
-# CONFIG_I2C_ALI15X3 is not set
-# CONFIG_I2C_AMD756 is not set
-# CONFIG_I2C_AMD8111 is not set
-# CONFIG_I2C_I801 is not set
-# CONFIG_I2C_I810 is not set
-# CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_IOP3XX is not set
-CONFIG_I2C_IXP4XX=y
-# CONFIG_I2C_NFORCE2 is not set
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_PROSAVAGE is not set
-# CONFIG_I2C_SAVAGE4 is not set
-# CONFIG_SCx200_ACB is not set
-# CONFIG_I2C_SIS5595 is not set
-# CONFIG_I2C_SIS630 is not set
-# CONFIG_I2C_SIS96X is not set
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_VIA is not set
-# CONFIG_I2C_VIAPRO is not set
-# CONFIG_I2C_VOODOO3 is not set
-# CONFIG_I2C_PCA_ISA is not set
-
-#
-# Miscellaneous I2C Chip support
-#
-# CONFIG_SENSORS_DS1337 is not set
-# CONFIG_SENSORS_DS1374 is not set
-CONFIG_SENSORS_EEPROM=y
-# CONFIG_SENSORS_PCF8574 is not set
-# CONFIG_SENSORS_PCA9539 is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_SENSORS_RTC8564 is not set
-# CONFIG_SENSORS_MAX6875 is not set
-CONFIG_SENSORS_X1205=y
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
-
-#
-# Hardware Monitoring support
-#
-CONFIG_HWMON=y
-# CONFIG_HWMON_VID is not set
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ADM9240 is not set
-# CONFIG_SENSORS_ASB100 is not set
-# CONFIG_SENSORS_ATXP1 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_FSCHER is not set
-# CONFIG_SENSORS_FSCPOS is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_SIS5595 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_VIA686A is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83792D is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83627HF is not set
-# CONFIG_SENSORS_W83627EHF is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Misc devices
-#
-
-#
-# Multimedia Capabilities Port drivers
-#
-
-#
-# Multimedia devices
-#
-CONFIG_VIDEO_DEV=m
-
-#
-# Video For Linux
-#
-
-#
-# Video Adapters
-#
-CONFIG_VIDEO_BT848=m
-# CONFIG_VIDEO_SAA6588 is not set
-CONFIG_VIDEO_CPIA=m
-CONFIG_VIDEO_CPIA_USB=m
-CONFIG_VIDEO_SAA5246A=m
-CONFIG_VIDEO_SAA5249=m
-CONFIG_TUNER_3036=m
-CONFIG_VIDEO_STRADIS=m
-CONFIG_VIDEO_ZORAN=m
-CONFIG_VIDEO_ZORAN_BUZ=m
-CONFIG_VIDEO_ZORAN_DC10=m
-CONFIG_VIDEO_ZORAN_DC30=m
-CONFIG_VIDEO_ZORAN_LML33=m
-CONFIG_VIDEO_ZORAN_LML33R10=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_MXB=m
-CONFIG_VIDEO_DPC=m
-CONFIG_VIDEO_HEXIUM_ORION=m
-CONFIG_VIDEO_HEXIUM_GEMINI=m
-CONFIG_VIDEO_CX88=m
-# CONFIG_VIDEO_EM28XX is not set
-CONFIG_VIDEO_OVCAMCHIP=m
-
-#
-# Radio Adapters
-#
-# CONFIG_RADIO_GEMTEK_PCI is not set
-# CONFIG_RADIO_MAXIRADIO is not set
-# CONFIG_RADIO_MAESTRO is not set
-
-#
-# Digital Video Broadcasting Devices
-#
-# CONFIG_DVB is not set
-CONFIG_VIDEO_SAA7146=m
-CONFIG_VIDEO_SAA7146_VV=m
-CONFIG_VIDEO_VIDEOBUF=m
-CONFIG_VIDEO_TUNER=m
-CONFIG_VIDEO_BUF=m
-CONFIG_VIDEO_BTCX=m
-CONFIG_VIDEO_IR=m
-CONFIG_VIDEO_TVEEPROM=m
-
-#
-# Graphics support
-#
-# CONFIG_FB is not set
-
-#
-# Speakup console speech
-#
-# CONFIG_SPEAKUP is not set
-
-#
-# Sound
-#
-CONFIG_SOUND=m
-
-#
-# Advanced Linux Sound Architecture
-#
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-CONFIG_SND_HWDEP=m
-CONFIG_SND_RAWMIDI=m
-# CONFIG_SND_SEQUENCER is not set
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-# CONFIG_SND_RTCTIMER is not set
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-
-#
-# Generic devices
-#
-# CONFIG_SND_DUMMY is not set
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-
-#
-# PCI devices
-#
-# CONFIG_SND_ALI5451 is not set
-# CONFIG_SND_ATIIXP is not set
-# CONFIG_SND_ATIIXP_MODEM is not set
-# CONFIG_SND_AU8810 is not set
-# CONFIG_SND_AU8820 is not set
-# CONFIG_SND_AU8830 is not set
-# CONFIG_SND_AZT3328 is not set
-# CONFIG_SND_BT87X is not set
-# CONFIG_SND_CS46XX is not set
-# CONFIG_SND_CS4281 is not set
-# CONFIG_SND_EMU10K1 is not set
-# CONFIG_SND_EMU10K1X is not set
-# CONFIG_SND_CA0106 is not set
-# CONFIG_SND_KORG1212 is not set
-# CONFIG_SND_MIXART is not set
-# CONFIG_SND_NM256 is not set
-# CONFIG_SND_RME32 is not set
-# CONFIG_SND_RME96 is not set
-# CONFIG_SND_RME9652 is not set
-# CONFIG_SND_HDSP is not set
-# CONFIG_SND_HDSPM is not set
-# CONFIG_SND_TRIDENT is not set
-# CONFIG_SND_YMFPCI is not set
-# CONFIG_SND_AD1889 is not set
-# CONFIG_SND_ALS4000 is not set
-# CONFIG_SND_CMIPCI is not set
-# CONFIG_SND_ENS1370 is not set
-# CONFIG_SND_ENS1371 is not set
-# CONFIG_SND_ES1938 is not set
-# CONFIG_SND_ES1968 is not set
-# CONFIG_SND_MAESTRO3 is not set
-# CONFIG_SND_FM801 is not set
-# CONFIG_SND_ICE1712 is not set
-# CONFIG_SND_ICE1724 is not set
-# CONFIG_SND_INTEL8X0 is not set
-# CONFIG_SND_INTEL8X0M is not set
-# CONFIG_SND_SONICVIBES is not set
-# CONFIG_SND_VIA82XX is not set
-# CONFIG_SND_VIA82XX_MODEM is not set
-# CONFIG_SND_VX222 is not set
-# CONFIG_SND_HDA_INTEL is not set
-
-#
-# ALSA ARM devices
-#
-
-#
-# USB devices
-#
-CONFIG_SND_USB_AUDIO=m
-
-#
-# Open Sound System
-#
-# CONFIG_SOUND_PRIME is not set
-
-#
-# USB support
-#
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB=y
-# CONFIG_USB_DEBUG is not set
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-# CONFIG_USB_BANDWIDTH is not set
-# CONFIG_USB_DYNAMIC_MINORS is not set
-# CONFIG_USB_OTG is not set
-
-#
-# USB Host Controller Drivers
-#
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_SPLIT_ISO=y
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-# CONFIG_USB_ISP116X_HCD is not set
-CONFIG_USB_OHCI_HCD=y
-# CONFIG_USB_OHCI_BIG_ENDIAN is not set
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-# CONFIG_USB_UHCI_HCD is not set
-# CONFIG_USB_SL811_HCD is not set
-
-#
-# USB Device Class drivers
-#
-# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-
-#
-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-#
-
-#
-# may also be needed; see USB_STORAGE Help for more information
-#
-CONFIG_USB_STORAGE=y
-# CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
-# CONFIG_USB_STORAGE_FREECOM is not set
-# CONFIG_USB_STORAGE_DPCM is not set
-# CONFIG_USB_STORAGE_USBAT is not set
-# CONFIG_USB_STORAGE_SDDR09 is not set
-# CONFIG_USB_STORAGE_SDDR55 is not set
-# CONFIG_USB_STORAGE_JUMPSHOT is not set
-# CONFIG_USB_STORAGE_ONETOUCH is not set
-# CONFIG_USB_LIBUSUAL is not set
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=m
-CONFIG_USB_HIDINPUT=y
-# CONFIG_HID_FF is not set
-CONFIG_USB_HIDDEV=y
-
-#
-# USB HID Boot Protocol drivers
-#
-CONFIG_USB_KBD=m
-# CONFIG_USB_MOUSE is not set
-# CONFIG_USB_AIPTEK is not set
-# CONFIG_USB_WACOM is not set
-# CONFIG_USB_ACECAD is not set
-# CONFIG_USB_KBTAB is not set
-# CONFIG_USB_POWERMATE is not set
-# CONFIG_USB_MTOUCH is not set
-# CONFIG_USB_ITMTOUCH is not set
-# CONFIG_USB_EGALAX is not set
-# CONFIG_USB_YEALINK is not set
-# CONFIG_USB_XPAD is not set
-# CONFIG_USB_ATI_REMOTE is not set
-# CONFIG_USB_KEYSPAN_REMOTE is not set
-# CONFIG_USB_APPLETOUCH is not set
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-
-#
-# USB Multimedia devices
-#
-# CONFIG_USB_DABUSB is not set
-# CONFIG_USB_VICAM is not set
-# CONFIG_USB_DSBR is not set
-# CONFIG_USB_IBMCAM is not set
-# CONFIG_USB_KONICAWC is not set
-# CONFIG_USB_OV511 is not set
-# CONFIG_USB_SE401 is not set
-# CONFIG_USB_SN9C102 is not set
-# CONFIG_USB_STV680 is not set
-# CONFIG_USB_W9968CF is not set
-CONFIG_USB_PWC=m
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_CDCETHER=m
-# CONFIG_USB_NET_GL620A is not set
-CONFIG_USB_NET_NET1080=m
-# CONFIG_USB_NET_PLUSB is not set
-# CONFIG_USB_NET_RNDIS_HOST is not set
-# CONFIG_USB_NET_CDC_SUBSET is not set
-CONFIG_USB_NET_ZAURUS=m
-# CONFIG_USB_ZD1201 is not set
-# CONFIG_USB_MON is not set
-
-#
-# USB port drivers
-#
-
-#
-# USB Serial Converter support
-#
-CONFIG_USB_SERIAL=m
-CONFIG_USB_SERIAL_GENERIC=y
-# CONFIG_USB_SERIAL_AIRPRIME is not set
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_WHITEHEAT=m
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-# CONFIG_USB_SERIAL_CP2101 is not set
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-# CONFIG_USB_SERIAL_KEYSPAN is not set
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-# CONFIG_USB_SERIAL_NOKIA_DKU2 is not set
-CONFIG_USB_SERIAL_PL2303=m
-# CONFIG_USB_SERIAL_HP4X is not set
-CONFIG_USB_SERIAL_SAFE=m
-# CONFIG_USB_SERIAL_SAFE_PADDED is not set
-CONFIG_USB_SERIAL_TI=m
-CONFIG_USB_SERIAL_CYBERJACK=m
-CONFIG_USB_SERIAL_XIRCOM=m
-CONFIG_USB_SERIAL_OMNINET=m
-CONFIG_USB_EZUSB=y
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
-# CONFIG_USB_AUERSWALD is not set
-# CONFIG_USB_RIO500 is not set
-# CONFIG_USB_LEGOTOWER is not set
-# CONFIG_USB_LCD is not set
-# CONFIG_USB_LED is not set
-# CONFIG_USB_CYTHERM is not set
-# CONFIG_USB_GOTEMP is not set
-# CONFIG_USB_PHIDGETKIT is not set
-# CONFIG_USB_PHIDGETSERVO is not set
-# CONFIG_USB_IDMOUSE is not set
-# CONFIG_USB_SISUSBVGA is not set
-# CONFIG_USB_LD is not set
-# CONFIG_USB_TEST is not set
-
-#
-# USB DSL modem support
-#
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-
-#
-# MMC/SD Card support
-#
-# CONFIG_MMC is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=m
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=m
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-CONFIG_JBD=m
-# CONFIG_JBD_DEBUG is not set
-CONFIG_FS_MBCACHE=m
-# CONFIG_REISER4_FS is not set
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-# CONFIG_JFS_FS is not set
-CONFIG_FS_POSIX_ACL=y
-# CONFIG_XFS_FS is not set
-# CONFIG_OCFS2_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_ROMFS_FS is not set
-CONFIG_INOTIFY=y
-# CONFIG_QUOTA is not set
-CONFIG_DNOTIFY=y
-# CONFIG_AUTOFS_FS is not set
-CONFIG_AUTOFS4_FS=m
-# CONFIG_FUSE_FS is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_ZISOFS_FS=m
-CONFIG_UDF_FS=m
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
-CONFIG_NTFS_FS=m
-# CONFIG_NTFS_DEBUG is not set
-CONFIG_NTFS_RW=y
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-# CONFIG_RELAYFS_FS is not set
-# CONFIG_CONFIGFS_FS is not set
-
-#
-# Miscellaneous filesystems
-#
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_ASFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_JFFS_FS is not set
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-
-#
-# Network File Systems
-#
-CONFIG_NFS_FS=m
-CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
-CONFIG_NFS_V4=y
-CONFIG_NFS_DIRECTIO=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-# CONFIG_NFSD_V3_ACL is not set
-CONFIG_NFSD_V4=y
-CONFIG_NFSD_TCP=y
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=m
-CONFIG_SUNRPC_GSS=m
-CONFIG_RPCSEC_GSS_KRB5=m
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=m
-# CONFIG_SMB_NLS_DEFAULT is not set
-CONFIG_CIFS=m
-# CONFIG_CIFS_STATS is not set
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-# CONFIG_CIFS_EXPERIMENTAL is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-# CONFIG_9P_FS is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_EFI_PARTITION is not set
-
-#
-# Native Language Support
-#
-CONFIG_NLS=m
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_UTF8=m
-
-#
-# Profiling support
-#
-# CONFIG_PROFILING is not set
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-# CONFIG_DEBUG_KERNEL is not set
-CONFIG_LOG_BUF_SHIFT=14
-# CONFIG_DEBUG_BUGVERBOSE is not set
-CONFIG_FRAME_POINTER=y
-# CONFIG_DEBUG_USER is not set
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-
-#
-# Cryptographic options
-#
-CONFIG_CRYPTO=y
-CONFIG_CRYPTO_HMAC=y
-# CONFIG_CRYPTO_NULL is not set
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=m
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_WP512=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_AES=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_CRC32C=m
-CONFIG_CRYPTO_TEST=m
-
-#
-# Hardware crypto devices
-#
-
-#
-# Library routines
-#
-CONFIG_CRC_CCITT=m
-# CONFIG_CRC16 is not set
-CONFIG_CRC32=y
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14/10-ixp4xx-copy-from.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.14/10-ixp4xx-copy-from.patch
deleted file mode 100644 (file)
index f3da2e0..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
---- linux-2.6.14/drivers/mtd/maps/ixp4xx.c     2005-10-27 17:02:08.000000000 -0700
-+++ linux-2.6.14/drivers/mtd/maps/ixp4xx.c     2005-10-29 23:11:24.990820968 -0700
-@@ -38,10 +38,14 @@
- #define       BYTE1(h)        ((h) & 0xFF)
- #endif
-+#define FLASHWORD(a)  (*(__u16*)(a))
-+#define FLASHVAL(a)   FLASHWORD(a)
-+#define FLASHSET(a,v) do { FLASHWORD(a) = (v); } while (0)
-+
- static map_word ixp4xx_read16(struct map_info *map, unsigned long ofs)
- {
-       map_word val;
--      val.x[0] = *(__u16 *) (map->map_priv_1 + ofs);
-+      val.x[0] = FLASHVAL(map->map_priv_1 + ofs);
-       return val;
- }
-@@ -53,19 +57,25 @@ static map_word ixp4xx_read16(struct map
- static void ixp4xx_copy_from(struct map_info *map, void *to,
-                            unsigned long from, ssize_t len)
- {
--      int i;
--      u8 *dest = (u8 *) to;
--      u16 *src = (u16 *) (map->map_priv_1 + from);
--      u16 data;
--
--      for (i = 0; i < (len / 2); i++) {
--              data = src[i];
--              dest[i * 2] = BYTE0(data);
--              dest[i * 2 + 1] = BYTE1(data);
-+      u8 *dest, *src;
-+
-+      if (len <= 0)
-+              return;
-+
-+      dest = (u8 *) to;
-+      src  = (u8 *) (map->map_priv_1 + from);
-+      if (from & 1)
-+              *dest++ = BYTE1(FLASHVAL(src-1)), ++src, --len;
-+
-+      while (len >= 2) {
-+              u16 data = FLASHVAL(src); src += 2;
-+              *dest++ = BYTE0(data);
-+              *dest++ = BYTE1(data);
-+              len -= 2;
-       }
--      if (len & 1)
--              dest[len - 1] = BYTE0(src[i]);
-+      if (len > 0)
-+              *dest++ = BYTE0(FLASHVAL(src));
- }
- /* 
-@@ -75,7 +85,7 @@ static void ixp4xx_copy_from(struct map_
- static void ixp4xx_probe_write16(struct map_info *map, map_word d, unsigned long adr)
- {
-       if (!(adr & 1))
--             *(__u16 *) (map->map_priv_1 + adr) = d.x[0];
-+             FLASHSET(map->map_priv_1 + adr, d.x[0]);
- }
- /* 
-@@ -83,7 +93,7 @@ static void ixp4xx_probe_write16(struct 
-  */
- static void ixp4xx_write16(struct map_info *map, map_word d, unsigned long adr)
- {
--       *(__u16 *) (map->map_priv_1 + adr) = d.x[0];
-+       FLASHSET(map->map_priv_1 + adr, d.x[0]);
- }
- struct ixp4xx_flash_info {
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14/10-ixp4xx-le.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.14/10-ixp4xx-le.patch
deleted file mode 100644 (file)
index 0b50e4e..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
---- linux-2.6.14/drivers/mtd/maps/ixp4xx.c     2005-10-27 17:02:08.000000000 -0700
-+++ linux-2.6.14/drivers/mtd/maps/ixp4xx.c     2005-10-29 23:11:24.990820968 -0700
-@@ -22,6 +22,7 @@
- #include <linux/string.h>
- #include <linux/mtd/mtd.h>
- #include <linux/mtd/map.h>
-+#include <linux/mtd/cfi_endian.h>
- #include <linux/mtd/partitions.h>
- #include <linux/ioport.h>
- #include <linux/device.h>
-@@ -30,17 +31,40 @@
- #include <linux/reboot.h>
-+/* On a little-endian IXP4XX system (tested on NSLU2) an LDRH or STRH
-+ * will flip the second address bit - i.e. XOR the address with 10b.
-+ * This causes the cfi commands (sent to the command address, 0xAA for
-+ * 16 bit flash) to fail.  This is fixed here by XOR'ing the address
-+ * before use with 10b.  The cost of this is that the flash layout ends
-+ * up with pdp-endiannes (on an LE system), however this is not a problem
-+ * as the access code consistently only accesses half words - so the
-+ * endianness is not determinable on stuff which is written and read
-+ * consistently in the little endian world.
-+ *
-+ * For flash data from the big-endian world, however, the results are
-+ * weird - the pdp-endianness results in the data apparently being
-+ * 2-byte swapped (as in dd conv=swab).  To work round this the 16
-+ * bit values are written and read using cpu_to_cfi16 and cfi16_to_cpu,
-+ * by default these are no-ops, but if the MTD driver is configed with
-+ * CONFIG_MTD_CFI_BE_BYTE_SWAP the macros will byte swap the data,
-+ * resulting in a consistently BE view of the flash on both BE (no
-+ * op) and LE systems.  This config setting also causes the command
-+ * data from the CFI implementation to get swapped - as is required
-+ * so that this code will *unswap* it and give the correct command
-+ * data to the flash.
-+ */
- #ifndef __ARMEB__
- #define       BYTE0(h)        ((h) & 0xFF)
- #define       BYTE1(h)        (((h) >> 8) & 0xFF)
-+#define       FLASHWORD(a)    (*(__u16*)((u32)(a) ^ 2))
- #else
- #define       BYTE0(h)        (((h) >> 8) & 0xFF)
- #define       BYTE1(h)        ((h) & 0xFF)
-+#define       FLASHWORD(a)    (*(__u16*)(a))
- #endif
--#define FLASHWORD(a)  (*(__u16*)(a))
--#define FLASHVAL(a)   FLASHWORD(a)
--#define FLASHSET(a,v) do { FLASHWORD(a) = (v); } while (0)
-+#define FLASHVAL(a)   cfi16_to_cpu(FLASHWORD(a))
-+#define FLASHSET(a,v) (FLASHWORD(a) = cpu_to_cfi16(v))
- static map_word ixp4xx_read16(struct map_info *map, unsigned long ofs)
- {
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14/10-mtdpart-redboot-fis-byteswap.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.14/10-mtdpart-redboot-fis-byteswap.patch
deleted file mode 100644 (file)
index 3fa0535..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-drivers/mtd/redboot.c: recognise a foreign byte sex partition table
-
-The RedBoot boot loader writes flash partition tables containing native
-byte sex 32 bit values.  When booting an opposite byte sex kernel (e.g.  an
-LE kernel from BE RedBoot) the current MTD driver fails to handle the
-partition table and therefore is unable to generate the correct partition
-map for the flash.
-
-The patch recognises that the FIS directory (the partition table) is
-byte-reversed by examining the partition table size, which is known to be
-one erase block (this is an assumption made elsewhere in redboot.c).  If
-the size matches the erase block after byte swapping the value then
-byte-reversal is assumed, if not no further action is taken.  The patched
-code is fail safe; should redboot.c be changed to support a partition table
-with a modified size field the test will fail and the partition table will
-be assumed to have the host byte sex.
-
-If byte-reversal is detected the patch byte swaps the remainder of the 32
-bit fields in the copy of the table; this copy is then used to set up the
-MTD partition map.
-
-Signed-off-by: John Bowler <jbowler@acm.org>
-Signed-off-by: Andrew Morton <akpm@osdl.org>
-Modified slightly and
-Signed-off-by: David Woodhouse <dwmw2@infradead.org>
-
-Index: drivers/mtd/redboot.c
-===================================================================
-RCS file: /home/cvs/mtd/drivers/mtd/redboot.c,v
-retrieving revision 1.18
-retrieving revision 1.19
-diff -u -p -r1.18 -r1.19
---- linux-2.6.15/drivers/mtd/redboot.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/drivers/mtd/redboot.c 1970-01-01 00:00:00.000000000 +0000
-@@ -89,8 +89,32 @@ static int parse_redboot_partitions(stru
-                       i = numslots;
-                       break;
-               }
--              if (!memcmp(buf[i].name, "FIS directory", 14))
-+              if (!memcmp(buf[i].name, "FIS directory", 14)) {
-+                      /* This is apparently the FIS directory entry for the
-+                       * FIS directory itself.  The FIS directory size is
-+                       * one erase block; if the buf[i].size field is
-+                       * swab32(erasesize) then we know we are looking at
-+                       * a byte swapped FIS directory - swap all the entries!
-+                       * (NOTE: this is 'size' not 'data_length'; size is
-+                       * the full size of the entry.)
-+                       */
-+                      if (swab32(buf[i].size) == master->erasesize) {
-+                              int j;
-+                              for (j = 0; j < numslots && buf[j].name[0] != 0xff; ++j) {
-+                                      /* The unsigned long fields were written with the
-+                                       * wrong byte sex, name and pad have no byte sex.
-+                                       */
-+                                      swab32s(&buf[j].flash_base);
-+                                      swab32s(&buf[j].mem_base);
-+                                      swab32s(&buf[j].size);
-+                                      swab32s(&buf[j].entry_point);
-+                                      swab32s(&buf[j].data_length);
-+                                      swab32s(&buf[j].desc_cksum);
-+                                      swab32s(&buf[j].file_cksum);
-+                              }
-+                      }
-                       break;
-+              }
-       }
-       if (i == numslots) {
-               /* Didn't find it */
-
-
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14/15-ixp4xx-writesb-l-w.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.14/15-ixp4xx-writesb-l-w.patch
deleted file mode 100644 (file)
index 6ac0807..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# The inline caller of these APIs were changed to have
-# const vaddr parameters...
---- linux-2.6.13/include/asm-arm/arch-ixp4xx/io.h.orig 2005-09-24 17:06:19.968099976 -0700
-+++ linux-2.6.13/include/asm-arm/arch-ixp4xx/io.h      2005-09-24 17:06:52.542149731 -0700
-@@ -113,7 +113,7 @@
- }
- static inline void
--__ixp4xx_writesb(u32 bus_addr, u8 *vaddr, int count)
-+__ixp4xx_writesb(u32 bus_addr, const u8 *vaddr, int count)
- {
-       while (count--)
-               writeb(*vaddr++, bus_addr);
-@@ -136,7 +136,7 @@
- }
- static inline void
--__ixp4xx_writesw(u32 bus_addr, u16 *vaddr, int count)
-+__ixp4xx_writesw(u32 bus_addr, const u16 *vaddr, int count)
- {
-       while (count--)
-               writew(*vaddr++, bus_addr);
-@@ -154,7 +154,7 @@
- }
- static inline void
--__ixp4xx_writesl(u32 bus_addr, u32 *vaddr, int count)
-+__ixp4xx_writesl(u32 bus_addr, const u32 *vaddr, int count)
- {
-       while (count--)
-               writel(*vaddr++, bus_addr);
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14/18-ixp4xx-io-h-addr.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.14/18-ixp4xx-io-h-addr.patch
deleted file mode 100644 (file)
index 5813bbb..0000000
+++ /dev/null
@@ -1,287 +0,0 @@
---- linux-2.6.14/include/asm-arm/arch-ixp4xx/io.h      2005-10-29 23:33:21.757679882 -0700
-+++ linux-2.6.14/include/asm-arm/arch-ixp4xx/io.h      2005-10-29 23:47:02.581331058 -0700
-@@ -80,9 +80,9 @@ __ixp4xx_iounmap(void __iomem *addr)
- #define __arch_ioremap(a, s, f, x)    __ixp4xx_ioremap(a, s, f, x)
- #define       __arch_iounmap(a)               __ixp4xx_iounmap(a)
--#define       writeb(p, v)                    __ixp4xx_writeb(p, v)
--#define       writew(p, v)                    __ixp4xx_writew(p, v)
--#define       writel(p, v)                    __ixp4xx_writel(p, v)
-+#define       writeb(v, p)                    __ixp4xx_writeb(v, p)
-+#define       writew(v, p)                    __ixp4xx_writew(v, p)
-+#define       writel(v, p)                    __ixp4xx_writel(v, p)
- #define       writesb(p, v, l)                __ixp4xx_writesb(p, v, l)
- #define       writesw(p, v, l)                __ixp4xx_writesw(p, v, l)
-@@ -97,8 +97,9 @@ __ixp4xx_iounmap(void __iomem *addr)
- #define       readsl(p, v, l)                 __ixp4xx_readsl(p, v, l)
- static inline void 
--__ixp4xx_writeb(u8 value, u32 addr)
-+__ixp4xx_writeb(u8 value, volatile void __iomem *p)
- {
-+      u32 addr = (u32)p;
-       u32 n, byte_enables, data;
-       if (addr >= VMALLOC_START) {
-@@ -113,15 +114,16 @@ __ixp4xx_writeb(u8 value, u32 addr)
- }
- static inline void
--__ixp4xx_writesb(u32 bus_addr, const u8 *vaddr, int count)
-+__ixp4xx_writesb(volatile void __iomem *bus_addr, const u8 *vaddr, int count)
- {
-       while (count--)
-               writeb(*vaddr++, bus_addr);
- }
- static inline void 
--__ixp4xx_writew(u16 value, u32 addr)
-+__ixp4xx_writew(u16 value, volatile void __iomem *p)
- {
-+      u32 addr = (u32)p;
-       u32 n, byte_enables, data;
-       if (addr >= VMALLOC_START) {
-@@ -136,15 +138,16 @@ __ixp4xx_writew(u16 value, u32 addr)
- }
- static inline void
--__ixp4xx_writesw(u32 bus_addr, const u16 *vaddr, int count)
-+__ixp4xx_writesw(volatile void __iomem *bus_addr, const u16 *vaddr, int count)
- {
-       while (count--)
-               writew(*vaddr++, bus_addr);
- }
- static inline void 
--__ixp4xx_writel(u32 value, u32 addr)
-+__ixp4xx_writel(u32 value, volatile void __iomem *p)
- {
-+      u32 addr = (u32)p;
-       if (addr >= VMALLOC_START) {
-               __raw_writel(value, addr);
-               return;
-@@ -154,15 +157,16 @@ __ixp4xx_writel(u32 value, u32 addr)
- }
- static inline void
--__ixp4xx_writesl(u32 bus_addr, const u32 *vaddr, int count)
-+__ixp4xx_writesl(volatile void __iomem *bus_addr, const u32 *vaddr, int count)
- {
-       while (count--)
-               writel(*vaddr++, bus_addr);
- }
- static inline unsigned char 
--__ixp4xx_readb(u32 addr)
-+__ixp4xx_readb(const volatile void __iomem *p)
- {
-+      u32 addr = (u32)p;
-       u32 n, byte_enables, data;
-       if (addr >= VMALLOC_START)
-@@ -177,15 +181,16 @@ __ixp4xx_readb(u32 addr)
- }
- static inline void
--__ixp4xx_readsb(u32 bus_addr, u8 *vaddr, u32 count)
-+__ixp4xx_readsb(const volatile void __iomem *bus_addr, u8 *vaddr, u32 count)
- {
-       while (count--)
-               *vaddr++ = readb(bus_addr);
- }
- static inline unsigned short 
--__ixp4xx_readw(u32 addr)
-+__ixp4xx_readw(const volatile void __iomem *p)
- {
-+      u32 addr = (u32)p;
-       u32 n, byte_enables, data;
-       if (addr >= VMALLOC_START)
-@@ -200,15 +205,16 @@ __ixp4xx_readw(u32 addr)
- }
- static inline void 
--__ixp4xx_readsw(u32 bus_addr, u16 *vaddr, u32 count)
-+__ixp4xx_readsw(const volatile void __iomem *bus_addr, u16 *vaddr, u32 count)
- {
-       while (count--)
-               *vaddr++ = readw(bus_addr);
- }
- static inline unsigned long 
--__ixp4xx_readl(u32 addr)
-+__ixp4xx_readl(const volatile void __iomem *p)
- {
-+      u32 addr = (u32)p;
-       u32 data;
-       if (addr >= VMALLOC_START)
-@@ -221,7 +227,7 @@ __ixp4xx_readl(u32 addr)
- }
- static inline void 
--__ixp4xx_readsl(u32 bus_addr, u32 *vaddr, u32 count)
-+__ixp4xx_readsl(const volatile void __iomem *bus_addr, u32 *vaddr, u32 count)
- {
-       while (count--)
-               *vaddr++ = readl(bus_addr);
-@@ -239,7 +245,7 @@ __ixp4xx_readsl(u32 bus_addr, u32 *vaddr
-                               eth_copy_and_sum((s),__mem_pci(c),(l),(b))
- static inline int
--check_signature(unsigned long bus_addr, const unsigned char *signature,
-+check_signature(const unsigned char __iomem *bus_addr, const unsigned char *signature,
-               int length)
- {
-       int retval = 0;
-@@ -389,7 +395,7 @@ __ixp4xx_insl(u32 io_addr, u32 *vaddr, u
- #define       __is_io_address(p)      (((unsigned long)p >= PIO_OFFSET) && \
-                                       ((unsigned long)p <= (PIO_MASK + PIO_OFFSET)))
- static inline unsigned int
--__ixp4xx_ioread8(void __iomem *addr)
-+__ixp4xx_ioread8(const void __iomem *addr)
- {
-       unsigned long port = (unsigned long __force)addr;
-       if (__is_io_address(port))
-@@ -398,12 +404,12 @@ __ixp4xx_ioread8(void __iomem *addr)
- #ifndef CONFIG_IXP4XX_INDIRECT_PCI
-               return (unsigned int)__raw_readb(port);
- #else
--              return (unsigned int)__ixp4xx_readb(port);
-+              return (unsigned int)__ixp4xx_readb(addr);
- #endif
- }
- static inline void
--__ixp4xx_ioread8_rep(void __iomem *addr, void *vaddr, u32 count)
-+__ixp4xx_ioread8_rep(const void __iomem *addr, void *vaddr, u32 count)
- {
-       unsigned long port = (unsigned long __force)addr;
-       if (__is_io_address(port))
-@@ -412,12 +418,12 @@ __ixp4xx_ioread8_rep(void __iomem *addr,
- #ifndef       CONFIG_IXP4XX_INDIRECT_PCI
-               __raw_readsb(addr, vaddr, count);
- #else
--              __ixp4xx_readsb(port, vaddr, count);
-+              __ixp4xx_readsb(addr, vaddr, count);
- #endif
- }
- static inline unsigned int
--__ixp4xx_ioread16(void __iomem *addr)
-+__ixp4xx_ioread16(const void __iomem *addr)
- {
-       unsigned long port = (unsigned long __force)addr;
-       if (__is_io_address(port))
-@@ -426,12 +432,12 @@ __ixp4xx_ioread16(void __iomem *addr)
- #ifndef CONFIG_IXP4XX_INDIRECT_PCI
-               return le16_to_cpu(__raw_readw((u32)port));
- #else
--              return (unsigned int)__ixp4xx_readw((u32)port);
-+              return (unsigned int)__ixp4xx_readw(addr);
- #endif
- }
- static inline void
--__ixp4xx_ioread16_rep(void __iomem *addr, void *vaddr, u32 count)
-+__ixp4xx_ioread16_rep(const void __iomem *addr, void *vaddr, u32 count)
- {
-       unsigned long port = (unsigned long __force)addr;
-       if (__is_io_address(port))
-@@ -440,12 +446,12 @@ __ixp4xx_ioread16_rep(void __iomem *addr
- #ifndef       CONFIG_IXP4XX_INDIRECT_PCI
-               __raw_readsw(addr, vaddr, count);
- #else
--              __ixp4xx_readsw(port, vaddr, count);
-+              __ixp4xx_readsw(addr, vaddr, count);
- #endif
- }
- static inline unsigned int
--__ixp4xx_ioread32(void __iomem *addr)
-+__ixp4xx_ioread32(const void __iomem *addr)
- {
-       unsigned long port = (unsigned long __force)addr;
-       if (__is_io_address(port))
-@@ -454,13 +460,13 @@ __ixp4xx_ioread32(void __iomem *addr)
- #ifndef CONFIG_IXP4XX_INDIRECT_PCI
-               return le32_to_cpu(__raw_readl((u32)port));
- #else
--              return (unsigned int)__ixp4xx_readl((u32)port);
-+              return (unsigned int)__ixp4xx_readl(addr);
- #endif
-       }
- }
- static inline void
--__ixp4xx_ioread32_rep(void __iomem *addr, void *vaddr, u32 count)
-+__ixp4xx_ioread32_rep(const void __iomem *addr, void *vaddr, u32 count)
- {
-       unsigned long port = (unsigned long __force)addr;
-       if (__is_io_address(port))
-@@ -469,7 +475,7 @@ __ixp4xx_ioread32_rep(void __iomem *addr
- #ifndef       CONFIG_IXP4XX_INDIRECT_PCI
-               __raw_readsl(addr, vaddr, count);
- #else
--              __ixp4xx_readsl(port, vaddr, count);
-+              __ixp4xx_readsl(addr, vaddr, count);
- #endif
- }
-@@ -483,7 +489,7 @@ __ixp4xx_iowrite8(u8 value, void __iomem
- #ifndef CONFIG_IXP4XX_INDIRECT_PCI
-               __raw_writeb(value, port);
- #else
--              __ixp4xx_writeb(value, port);
-+              __ixp4xx_writeb(value, addr);
- #endif
- }
-@@ -497,7 +503,7 @@ __ixp4xx_iowrite8_rep(void __iomem *addr
- #ifndef CONFIG_IXP4XX_INDIRECT_PCI
-               __raw_writesb(addr, vaddr, count);
- #else
--              __ixp4xx_writesb(port, vaddr, count);
-+              __ixp4xx_writesb(addr, vaddr, count);
- #endif
- }
-@@ -511,7 +517,7 @@ __ixp4xx_iowrite16(u16 value, void __iom
- #ifndef CONFIG_IXP4XX_INDIRECT_PCI
-               __raw_writew(cpu_to_le16(value), addr);
- #else
--              __ixp4xx_writew(value, port);
-+              __ixp4xx_writew(value, addr);
- #endif
- }
-@@ -525,7 +531,7 @@ __ixp4xx_iowrite16_rep(void __iomem *add
- #ifndef CONFIG_IXP4XX_INDIRECT_PCI
-               __raw_writesw(addr, vaddr, count);
- #else
--              __ixp4xx_writesw(port, vaddr, count);
-+              __ixp4xx_writesw(addr, vaddr, count);
- #endif
- }
-@@ -539,7 +545,7 @@ __ixp4xx_iowrite32(u32 value, void __iom
- #ifndef CONFIG_IXP4XX_INDIRECT_PCI
-               __raw_writel(cpu_to_le32(value), port);
- #else
--              __ixp4xx_writel(value, port);
-+              __ixp4xx_writel(value, addr);
- #endif
- }
-@@ -553,7 +559,7 @@ __ixp4xx_iowrite32_rep(void __iomem *add
- #ifndef CONFIG_IXP4XX_INDIRECT_PCI
-               __raw_writesl(addr, vaddr, count);
- #else
--              __ixp4xx_writesl(port, vaddr, count);
-+              __ixp4xx_writesl(addr, vaddr, count);
- #endif
- }
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14/19-jffs2-force-be.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.14/19-jffs2-force-be.patch
deleted file mode 100644 (file)
index 4406d17..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- linux-2.6.14.1/fs/jffs2/nodelist.h.orig    2005-11-09 23:12:29.641449728 -0800
-+++ linux-2.6.14.1/fs/jffs2/nodelist.h 2005-11-09 23:13:19.228570049 -0800
-@@ -44,7 +44,9 @@
- #define D2(x)
- #endif
--#define JFFS2_NATIVE_ENDIAN
-+#undef JFFS2_NATIVE_ENDIAN
-+#define JFFS2_BIG_ENDIAN 1
-+#undef JFFS2_LITTLE_ENDIAN
- /* Note we handle mode bits conversion from JFFS2 (i.e. Linux) to/from
-    whatever OS we're actually running on here too. */
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14/20-timer.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.14/20-timer.patch
deleted file mode 100644 (file)
index 3d4a03f..0000000
+++ /dev/null
@@ -1,285 +0,0 @@
---- linux-2.6.15/arch/arm/mach-ixp4xx/common.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/arch/arm/mach-ixp4xx/common.c 1970-01-01 00:00:00.000000000 +0000
-@@ -239,36 +239,165 @@ void __init ixp4xx_init_irq(void)
-  * IXP4xx timer tick
-  * We use OS timer1 on the CPU for the timer tick and the timestamp 
-  * counter as a source of real clock ticks to account for missed jiffies.
-+ *
-+ * 'CLOCK_TICK_RATE' is the nominal number of internal ticks per second,
-+ * this is significantly greater than the actual number on any ixp4xx
-+ * board.  Neither this nor 'LATCH' are required by this code because
-+ * the only requirement is to generate HZ timer_tick calls per second.
-  *************************************************************************/
-+#if TICK_NSEC * HZ != 1000000000
-+      /* This will cause the jiffies to drift unnecessarily. */
-+#     error CLOCK_TICK_RATE should be a multiple of HZ for this code
-+#endif
-+
-+/* These are the control registers for the interrupt handler, they must
-+ * only be read and written by the interrupt handler and by the init
-+ * method (which sets them to 0).
-+ */
-+static volatile u32 last_timer_time;
-+static volatile int accumulated_error;
-+
-+/* Most ixp4xx boards have 66.6666MHz crystals, so default to this, reset
-+ * this from the board level code if required.  The following variables
-+ * must be *written* only by set_board_tick_rate
-+ */
-+static u32 board_tick_rate;
-+static u32 board_tick_per_1000; /* board_tick_rate/1000 */
-+static u32 timer_count;
-+
-+/* The following symbol may be written to change the current tick rate,
-+ * it is read by the interrupt handler and used to reload the timer.
-+ * The 'real' value (the one in use) is 'board_tick_rate' above.
-+ * NOTE: this can be tweaked to match the actual crystal on a particular
-+ * machine.
-+ */
-+volatile u32 ixp4xx_board_tick_rate = 66666600;
-+EXPORT_SYMBOL(ixp4xx_board_tick_rate);
-+
-+/* The set API may run asynchronously in the presence of interrupts,
-+ * everything it does it is both atomic and complete (notice that it
-+ * doesn't change any of the 'volatile' values).  The mathematics in
-+ * here require the following values.  Changing the board tick rate
-+ * implies an unknown error in the current timestamp tick count.
-+ */
-+#if IXP4XX_OST_RELOAD_MASK != 3 || IXP4XX_OST_ENABLE != 1
-+#     error unexpected value for timer reload mask
-+#endif
-+static void set_board_tick_rate(u32 rate) {
-+      u32 reload;
-+
-+      /* Store the two effectively informational rate values, the
-+       * error calculation is (rate - count*HZ) (above), and rate
-+       * is changed first, this can cause a temporary error which
-+       * will be corrected on the next interrupt.
-+       */
-+      board_tick_rate = rate;
-+      board_tick_per_1000 = (rate+500)/1000;
-+
-+      /* Calculate the correct value to load into the timer countdown
-+       * register, the low two bits must be b01 (to enable the timer).
-+       * Select the top bits to be as close to the desired value as
-+       * possible.
-+       *
-+       * First find the best value, regardless of the low two bits -
-+       * this is the value used in the interrupt calculation even though
-+       * it cannot necessarily be set into the register.
-+       */
-+      timer_count = (rate + (HZ/2))/HZ;
-+
-+      /* Now the timer_ticks are being generated at this rate, calculate
-+       * an appropriate value for the register.  This stores a 30 bit
-+       * value which gives a period of 4*x+1, we want:
-+       *
-+       *   4*x+1 = board_tick_rate/HZ
-+       *
-+       * This needs to be rounded to the closest 4*HZ value:
-+       * 
-+       *   x = ((board_tick_rate-HZ) + (4*HZ)/2) / 4*HZ
-+       *   x = (board_tick_rate+HZ) / (4*HZ);
-+       */
-+      reload = (board_tick_rate + HZ) / HZ;
-+      reload = (reload & ~IXP4XX_OST_RELOAD_MASK) | IXP4XX_OST_ENABLE;
-+      *IXP4XX_OSRT1 = reload;
--static unsigned volatile last_jiffy_time;
-+      /* If the clock is drifing, look in syslog: */
-+      printk(KERN_INFO "IXP4xx: FREQ=%d COUNT=%d\n", rate, reload);
-+}
--#define CLOCK_TICKS_PER_USEC  ((CLOCK_TICK_RATE + USEC_PER_SEC/2) / USEC_PER_SEC)
-+/* This returns the time in timer ticks since the 'last_timer_time'
-+ * recorded above.  Use this to avoid arithmetic errors because of
-+ * the overflow when the timer wraps.
-+ */
-+static inline u32 ixp4xx_timer_delta(void)
-+{
-+      return *IXP4XX_OSTS - last_timer_time;
-+}
- /* IRQs are disabled before entering here from do_gettimeofday() */
- static unsigned long ixp4xx_gettimeoffset(void)
- {
--      u32 elapsed;
--
--      elapsed = *IXP4XX_OSTS - last_jiffy_time;
-+      /* Return the offset of the current time from the last time
-+       * timer tick in microseconds.  This is only used for the
-+       * gettimeofday call.
-+       *
-+       * The result of this API is at most about 20000 (for a 50Hz
-+       * HZ - 20000 uS/tick), the input delta is at most about
-+       * 1.3M - 21 bits.
-+       */
-+      u32 delta = ixp4xx_timer_delta(); /* About 21 bits max */
-+      /* return delta * 1000000 / board_tick_rate; */
-+      return (delta * 1000 + board_tick_per_1000/2) / board_tick_per_1000;
-+}
--      return elapsed / CLOCK_TICKS_PER_USEC;
-+/* This is the correct adjustment to the counter to compensate for an
-+ * error iff timer_count-1 <= exact_count <= timer_count+1
-+ */
-+static inline int adjustment(int error) {
-+      if (error >= HZ)
-+              return 1;
-+      else if (error <= -HZ)
-+              return -1;
-+      return 0;
- }
- static irqreturn_t ixp4xx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
- {
-+      u32 rate;
-+      u32 count;
-+      int error;
-+
-       write_seqlock(&xtime_lock);
-       /* Clear Pending Interrupt by writing '1' to it */
-       *IXP4XX_OSST = IXP4XX_OSST_TIMER_1_PEND;
-+      /* If the board tick rate has been changed update the cached
-+       * value.
-+       */
-+      if (ixp4xx_board_tick_rate != board_tick_rate) {
-+              set_board_tick_rate(ixp4xx_board_tick_rate);
-+              accumulated_error = 0;
-+      }
-+
-       /*
-        * Catch up with the real idea of time
-+       *
-+       * board_tick_rate: actual ixp4xx ticks/second, read-only
-+       * accumulated_error: aggregate error/tick * HZ, read/write
-+       * timer_count: best ixp4xx ticks per timer_tick, read-only
-        */
--      while ((*IXP4XX_OSTS - last_jiffy_time) > LATCH) {
-+      rate = board_tick_rate;
-+      error = accumulated_error;
-+      count = timer_count;
-+      do {
-+              u32 adjusted_count = count + adjustment(error);
-+              if (ixp4xx_timer_delta() < adjusted_count)
-+                      break;
-               timer_tick(regs);
--              last_jiffy_time += LATCH;
--      }
-+              last_timer_time += adjusted_count;
-+              error += rate - adjusted_count*HZ;
-+      } while (1);
-+      accumulated_error = error;
-       write_sequnlock(&xtime_lock);
-@@ -281,17 +410,30 @@ static struct irqaction ixp4xx_timer_irq
-       .handler        = ixp4xx_timer_interrupt,
- };
-+u32 ixp4xx_get_board_tick_rate(void) {
-+      return board_tick_rate;
-+}
-+
-+EXPORT_SYMBOL(ixp4xx_get_board_tick_rate);
-+
-+void ixp4xx_set_board_tick_rate(u32 rate) {
-+      ixp4xx_board_tick_rate = rate;
-+}
-+
-+EXPORT_SYMBOL(ixp4xx_set_board_tick_rate);
-+
- static void __init ixp4xx_timer_init(void)
- {
-       /* Clear Pending Interrupt by writing '1' to it */
-       *IXP4XX_OSST = IXP4XX_OSST_TIMER_1_PEND;
-       /* Setup the Timer counter value */
--      *IXP4XX_OSRT1 = (LATCH & ~IXP4XX_OST_RELOAD_MASK) | IXP4XX_OST_ENABLE;
-+      set_board_tick_rate(ixp4xx_board_tick_rate);
-       /* Reset time-stamp counter */
-       *IXP4XX_OSTS = 0;
--      last_jiffy_time = 0;
-+      last_timer_time = 0;
-+      accumulated_error = 0;
-       /* Connect the interrupt handler and enable the interrupt */
-       setup_irq(IRQ_IXP4XX_TIMER1, &ixp4xx_timer_irq);
-@@ -337,4 +479,3 @@ void __init ixp4xx_sys_init(void)
-                               ARRAY_SIZE(ixp46x_devices));
-       }
- }
--
---- linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-setup.c    1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-setup.c    1970-01-01 00:00:00.000000000 +0000
-@@ -119,6 +119,11 @@ static void nslu2_power_off(void)
- static void __init nslu2_init(void)
- {
-+      /* The NSLU2 has a 33MHz crystal on board - 1.01% different
-+       * from the typical value.
-+       */
-+      ixp4xx_set_board_tick_rate(66000000);
-+
-       ixp4xx_sys_init();
-       pm_power_off = nslu2_power_off;
---- linux-2.6.15/drivers/input/misc/nslu2spkr.c        1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/drivers/input/misc/nslu2spkr.c        1970-01-01 00:00:00.000000000 +0000
-@@ -51,7 +51,7 @@ static int nslu2_spkr_event(struct input
-       }
-       if (value > 20 && value < 32767)
--              count = (NSLU2_FREQ / (value*4)) - 1;
-+              count = (ixp4xx_get_board_tick_rate() / (value*4)) - 1;
-       spin_lock_irqsave(&beep_lock, flags);
---- linux-2.6.15/include/asm-arm/arch-ixp4xx/nslu2.h   1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/include/asm-arm/arch-ixp4xx/nslu2.h   1970-01-01 00:00:00.000000000 +0000
-@@ -38,11 +38,6 @@
- #define NSLU2_PCI_INTD_PIN    8
--/* NSLU2 Timer */
--#define NSLU2_FREQ 66000000
--#define NSLU2_CLOCK_TICK_RATE (((NSLU2_FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ)
--#define NSLU2_CLOCK_TICKS_PER_USEC ((NSLU2_CLOCK_TICK_RATE + USEC_PER_SEC/2) / USEC_PER_SEC)
--
- /* GPIO */
- #define NSLU2_GPIO0           0
---- linux-2.6.15/include/asm-arm/arch-ixp4xx/timex.h   1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/include/asm-arm/arch-ixp4xx/timex.h   1970-01-01 00:00:00.000000000 +0000
-@@ -6,10 +6,23 @@
- #include <asm/hardware.h>
- /*
-- * We use IXP425 General purpose timer for our timer needs, it runs at 
-- * 66.66... MHz. We do a convulted calculation of CLOCK_TICK_RATE b/c the
-- * timer register ignores the bottom 2 bits of the LATCH value.
-+ * In linux/timex.h 'LATCH' is defined as CLOCK_TICK_RATE/HZ and
-+ * is the number of internal counts per timer interrupt.  Thus
-+ * CLOCK_TICK_RATE is LATCH*HZ.
-+ *
-+ * The actual values of these numbers do not matter, because they
-+ * are only used to calculate ACTHZ (rate/latch as a 24.8 fixed
-+ * point number), so the value here gives a LATCH of 1 and pretty
-+ * much guarantees to flush out any off-by-one errors.
-+ *
-+ * ACTHZ is equal to HZ, because CLOCK_TICK_RATE is a multiple of
-+ * HZ, this is checked in the ixp4xx/common.c code.
-  */
--#define FREQ 66666666
--#define CLOCK_TICK_RATE (((FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ)
-+#define CLOCK_TICK_RATE HZ
-+/* The following allow the exact board tick rate to be set and
-+ * discovered.  The value should be exactly twice the frequency
-+ * (in Hz) of the onboard crystal.
-+ */
-+extern u32 ixp4xx_get_board_tick_rate(void);
-+extern void ixp4xx_set_board_tick_rate(u32 new_rate);
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14/28-spinlock-up.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.14/28-spinlock-up.patch
deleted file mode 100644 (file)
index 3ae5178..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
---- linux-2.6.14-rc5/include/linux/spinlock_up.h       2005-10-26 08:37:20.164248408 -0700
-+++ patched/include/linux/spinlock_up.h        2005-10-26 12:15:13.458898975 -0700
-@@ -47,6 +47,14 @@ static inline void __raw_spin_unlock(raw
-       lock->slock = 1;
- }
-+#else /* DEBUG_SPINLOCK */
-+#define __raw_spin_is_locked(lock)    ((void)(lock), 0)
-+/* for sched.c and kernel_lock.c: */
-+# define __raw_spin_lock(lock)                do { (void)(lock); } while (0)
-+# define __raw_spin_unlock(lock)      do { (void)(lock); } while (0)
-+# define __raw_spin_trylock(lock)     ({ (void)(lock); 1; })
-+#endif /* DEBUG_SPINLOCK */
-+
- /*
-  * Read-write spinlocks. No debug version.
-  */
-@@ -57,14 +65,6 @@ static inline void __raw_spin_unlock(raw
- #define __raw_read_unlock(lock)               do { (void)(lock); } while (0)
- #define __raw_write_unlock(lock)      do { (void)(lock); } while (0)
--#else /* DEBUG_SPINLOCK */
--#define __raw_spin_is_locked(lock)    ((void)(lock), 0)
--/* for sched.c and kernel_lock.c: */
--# define __raw_spin_lock(lock)                do { (void)(lock); } while (0)
--# define __raw_spin_unlock(lock)      do { (void)(lock); } while (0)
--# define __raw_spin_trylock(lock)     ({ (void)(lock); 1; })
--#endif /* DEBUG_SPINLOCK */
--
- #define __raw_read_can_lock(lock)     (((void)(lock), 1))
- #define __raw_write_can_lock(lock)    (((void)(lock), 1))
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14/29-ipv4-route-c-spinlock.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.14/29-ipv4-route-c-spinlock.patch
deleted file mode 100644 (file)
index 93e0705..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- linux-2.6.14-rc5/net/ipv4/route.c  2005-10-26 08:37:20.752285410 -0700
-+++ patched/net/ipv4/route.c   2005-10-26 12:17:00.761651111 -0700
-@@ -231,7 +231,7 @@ static spinlock_t  *rt_hash_locks;
-                       spin_lock_init(&rt_hash_locks[i]); \
-               }
- #else
--# define rt_hash_lock_addr(slot) NULL
-+# define rt_hash_lock_addr(slot) ((spinlock_t*)NULL)
- # define rt_hash_lock_init()
- #endif
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14/30-i2c-x1205.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.14/30-i2c-x1205.patch
deleted file mode 100644 (file)
index 1e775ba..0000000
+++ /dev/null
@@ -1,714 +0,0 @@
-diff -urN linux-2.6.14-rc3/drivers/i2c/chips/Kconfig test9/drivers/i2c/chips/Kconfig
---- linux-2.6.14-rc3/drivers/i2c/chips/Kconfig 2005-10-01 13:46:50.000000000 +0200
-+++ test9/drivers/i2c/chips/Kconfig    2005-10-03 16:10:22.000000000 +0200
-@@ -126,4 +126,13 @@
-         This driver can also be built as a module.  If so, the module
-         will be called max6875.
-+config SENSORS_X1205
-+       tristate "Xicor X1205 RTC chip"
-+       depends on I2C
-+       help
-+         If you say yes here you get support for the Xicor X1205 RTC chip.
-+
-+         This driver can also be built as a module.  If so, the module
-+         will be called x1205
-+
- endmenu
-diff -urN linux-2.6.14-rc3/drivers/i2c/chips/Makefile test9/drivers/i2c/chips/Makefile
---- linux-2.6.14-rc3/drivers/i2c/chips/Makefile        2005-09-17 12:42:33.000000000 +0200
-+++ test9/drivers/i2c/chips/Makefile   2005-10-01 15:30:06.000000000 +0200
-@@ -13,6 +13,7 @@
- obj-$(CONFIG_SENSORS_RTC8564) += rtc8564.o
- obj-$(CONFIG_ISP1301_OMAP)    += isp1301_omap.o
- obj-$(CONFIG_TPS65010)                += tps65010.o
-+obj-$(CONFIG_SENSORS_X1205)     += x1205.o
- ifeq ($(CONFIG_I2C_DEBUG_CHIP),y)
- EXTRA_CFLAGS += -DDEBUG
-diff -urN linux-2.6.14-rc3/drivers/i2c/chips/x1205.c test9/drivers/i2c/chips/x1205.c
---- linux-2.6.14-rc3/drivers/i2c/chips/x1205.c 1970-01-01 01:00:00.000000000 +0100
-+++ test9/drivers/i2c/chips/x1205.c    2005-10-03 16:02:57.000000000 +0200
-@@ -0,0 +1,612 @@
-+/*
-+ *  linux/drivers/i2c/chips/x1205.c
-+ *
-+ *  x1205.c - An 12c driver for the Xicor X1205 RTC
-+ *  Copyright 2004 Karen Spearel
-+ *  Copyright 2005 Alessandro Zummo
-+ *
-+ *  please send all reports to:
-+ *    kas11 at tampabay dot rr dot com
-+ *      a dot zummo at towertech dot it
-+ *     
-+ *  based on the other drivers in this same directory.
-+ *   
-+ *  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.
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/slab.h>
-+#include <linux/i2c.h>
-+#include <linux/string.h>
-+#include <linux/bcd.h>
-+#include <linux/rtc.h>
-+#include <linux/list.h>
-+
-+#include <linux/x1205.h>
-+
-+#define       EPOCH_1900      1900
-+#define       EPOCH_1970      1970
-+
-+#define DRIVER_VERSION        "0.9.6"
-+#define DRIVER_NAME   (x1205_driver.name)
-+
-+
-+/* Addresses to scan */
-+static unsigned short normal_i2c[] = { X1205_I2C_BUS_ADDR, I2C_CLIENT_END };
-+
-+/* Insmod parameters */
-+I2C_CLIENT_INSMOD;
-+I2C_CLIENT_MODULE_PARM(hctosys,
-+      "Set the system time from the hardware clock upon initialization");
-+
-+/* Prototypes */
-+
-+static int x1205_attach(struct i2c_adapter *adapter);
-+static int x1205_detach(struct i2c_client *client);
-+static int x1205_probe(struct i2c_adapter *adapter, int address, int kind);
-+static int x1205_validate_client(struct i2c_client *client);
-+
-+static int x1205_get_datetime(struct i2c_client *client, struct rtc_time *tm,
-+                              u8 reg_base);
-+static int x1205_set_datetime(struct i2c_client *client, struct rtc_time *tm,
-+                              int datetoo, u8 reg_base);
-+static int x1205_validate_tm(struct rtc_time *tm);
-+static int x1205_command(struct i2c_client *client, unsigned int cmd, void *arg);
-+static int x1205_hctosys(struct i2c_client *client);
-+
-+
-+static struct i2c_driver x1205_driver = {
-+      .owner          = THIS_MODULE,
-+      .name           = "x1205",
-+      .flags          = I2C_DF_NOTIFY,
-+      .attach_adapter = &x1205_attach,
-+      .detach_client  = &x1205_detach,
-+/*    .command        = &x1205_command,*/
-+};
-+
-+struct x1205_data {
-+      struct i2c_client client;
-+      struct list_head list;
-+      unsigned int epoch;
-+};
-+
-+
-+static const unsigned char days_in_mo[] = 
-+{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
-+
-+static LIST_HEAD(x1205_clients);
-+
-+/* Workaround until the I2C subsytem will allow to send
-+ * commands to a specific client. This function will send the command
-+ * to the first client.
-+ */
-+
-+int x1205_do_command(unsigned int cmd, void *arg)
-+{
-+      struct list_head *walk;
-+      struct list_head *tmp;
-+      struct x1205_data *data;
-+
-+      list_for_each_safe(walk, tmp, &x1205_clients) {
-+              data = list_entry(walk, struct x1205_data, list);
-+              return x1205_command(&data->client, cmd, arg);
-+      }
-+
-+      return -ENODEV;
-+}
-+
-+
-+/*
-+ * in the routines that deal directly with the x1205 hardware, we use
-+ * rtc_time -- month 0-11, hour 0-23, yr = calendar year-epoch
-+ * Epoch is inited as 2000. Time is set to UT
-+ */
-+
-+static int x1205_get_datetime(struct i2c_client *client, struct rtc_time *tm,
-+                              u8 reg_base)
-+{
-+      static unsigned char dt_addr[] = { 0, };
-+      static unsigned char sr_addr[] = { 0, };
-+
-+      unsigned char buf[8], sr;       
-+
-+      struct i2c_msg msgs[] = {
-+              { client->addr, 0, 2, sr_addr },        /* random read */
-+              { client->addr, I2C_M_RD, 1, &sr }, 
-+              { client->addr, 0, 2, dt_addr },        /* random read */
-+              { client->addr, I2C_M_RD, 8, buf },
-+      };
-+
-+      struct x1205_data *xdata = i2c_get_clientdata(client);
-+
-+      dt_addr[1] = reg_base;
-+      sr_addr[1] = X1205_REG_SR;
-+
-+      if ((i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs))) ==
-+              ARRAY_SIZE(msgs)) {
-+              /* did we read the correct number of messages? */
-+
-+              /* check for battery failure */
-+              if (sr & X1205_SR_RTCF)
-+              {       
-+                      dev_info(&client->adapter->dev,
-+                              "%s: Clock had a power failure, you must set the date.\n",
-+                              DRIVER_NAME);
-+
-+                      return -EINVAL;
-+              }
-+
-+              dev_dbg(&client->dev,
-+                      "%s: raw read data - sec-%02x min-%02x hr-%02x"
-+                      " mday-%02x mon-%02x year-%02x wday-%02x y2k-%02x\n", 
-+                      __FUNCTION__,
-+                      buf[0], buf[1], buf[2], buf[3],
-+                      buf[4], buf[5], buf[6], buf[7]);
-+
-+              tm->tm_sec  = BCD2BIN(buf[CCR_SEC]);
-+              tm->tm_min  = BCD2BIN(buf[CCR_MIN]);
-+              buf[CCR_HOUR] &= ~X1205_HR_MIL;
-+              tm->tm_hour = BCD2BIN(buf[CCR_HOUR]); /* hr is 0-23 */
-+              tm->tm_mday = BCD2BIN(buf[CCR_MDAY]);
-+              tm->tm_mon  = BCD2BIN(buf[CCR_MONTH]);
-+              xdata->epoch   = BCD2BIN(buf[CCR_Y2K]) * 100;
-+              tm->tm_year = BCD2BIN(buf[CCR_YEAR]) + xdata->epoch - EPOCH_1900;
-+              tm->tm_wday = buf[CCR_WDAY];
-+
-+              dev_dbg(&client->dev, "%s: tm is secs=%d, mins=%d, hours=%d, "
-+                      "mday=%d, mon=%d, year=%d, wday=%d\n",
-+                      __FUNCTION__,
-+                      tm->tm_sec, tm->tm_min, tm->tm_hour,
-+                      tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
-+
-+      } else {
-+              dev_dbg(&client->dev, "%s: read error\n", __FUNCTION__);
-+              return -EIO;
-+      }               
-+      
-+      return 0;
-+}
-+
-+
-+static int x1205_set_datetime(struct i2c_client *client, struct rtc_time *tm,
-+                              int datetoo, u8 reg_base)
-+{
-+      int i, err, xfer;
-+
-+      static unsigned char wel[3]   = { 0, X1205_REG_SR,
-+                                      X1205_SR_WEL };
-+
-+
-+      static unsigned char rwel[3]  = { 0, X1205_REG_SR,
-+                                      X1205_SR_WEL | X1205_SR_RWEL };
-+
-+      static unsigned char diswe[3] = { 0, X1205_REG_SR, 0 };
-+
-+      static unsigned char data[3]  = { 0, };
-+      static unsigned char buf[8];
-+
-+      struct x1205_data *xdata = i2c_get_clientdata(client);
-+
-+      if ((err = x1205_validate_tm(tm)) < 0)
-+              return err;
-+
-+      dev_dbg(&client->dev, "%s: secs=%d, mins=%d, hours=%d, "
-+              "mday=%d, mon=%d, year=%d, wday=%d\n",
-+              __FUNCTION__,
-+              tm->tm_sec, tm->tm_min, tm->tm_hour,
-+              tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
-+
-+
-+      buf[CCR_SEC]  = BIN2BCD(tm->tm_sec);
-+      buf[CCR_MIN]  = BIN2BCD(tm->tm_min);
-+
-+      /* Set 24HR format */
-+      buf[CCR_HOUR] = BIN2BCD(tm->tm_hour) | X1205_HR_MIL;
-+
-+      if (datetoo == X1205_DATETOO) {
-+              buf[CCR_MDAY]  = BIN2BCD(tm->tm_mday);
-+
-+              /* month, 0 - 11 */
-+              buf[CCR_MONTH] = BIN2BCD(tm->tm_mon);   /* input is 0-11 */
-+
-+              /* year, since 1900 */
-+              buf[CCR_YEAR]  = BIN2BCD((tm->tm_year + EPOCH_1900 - xdata->epoch));
-+              buf[CCR_WDAY]  = tm->tm_wday & 7;
-+              buf[CCR_Y2K]   = BIN2BCD(xdata->epoch / 100);
-+      }
-+
-+      xfer = i2c_master_send(client, wel, 3);
-+      dev_dbg(&client->dev, "%s: wen - %x\n", __FUNCTION__, xfer);
-+      if (xfer != 3)
-+              return -EIO;
-+
-+      xfer = i2c_master_send(client, rwel, 3);
-+      dev_dbg(&client->dev, "%s: wenb - %x\n", __FUNCTION__, xfer);
-+      if (xfer != 3)
-+              return -EIO;
-+
-+      for (i = 0; i < 8; i++) {
-+              data[1] = i + reg_base;
-+              data[2] =  buf[i];
-+              xfer = i2c_master_send(client, data, 3);
-+
-+              dev_dbg(&client->dev, "%s: xfer %d addr, %02x,  data %02x\n",
-+                      __FUNCTION__,
-+                       xfer, data[1], data[2]);
-+
-+              if (xfer != 3)
-+                      return -EIO;
-+      };
-+
-+      xfer = i2c_master_send(client, diswe, 3);
-+      dev_dbg(&client->dev, "%s: wdis - %x\n", __FUNCTION__, xfer);
-+      if (xfer != 3)
-+              return -EIO;            
-+
-+      return 0;
-+}
-+
-+static int x1205_hctosys(struct i2c_client *client)
-+{
-+      int err;
-+
-+      struct rtc_time tm;
-+      struct timespec tv;
-+      
-+
-+      err = x1205_command(client, X1205_CMD_GETDATETIME, &tm);
-+
-+      if (err)
-+      {
-+              dev_info(&client->adapter->dev,
-+                      "%s: Unable to set the system clock\n",
-+                      DRIVER_NAME);
-+
-+              return err;
-+
-+      }
-+
-+      /* IMPORTANT: the RTC only stores whole seconds.  It is arbitrary whether
-+       * it stores the most close value or the value with partial seconds
-+       * truncated, however it is important for x1205_sync_rtc that it be
-+       * defined to store the truncated value.  This is because otherwise it
-+       * is necessary to read both xtime.tv_sec and xtime.tv_nsec in the
-+       * sync function, and atomic reads of >32bits on ARM are not possible.
-+       * So storing the most close value would slow down the sync API.  So
-+       * Here we have the truncated value and the best guess is to add 0.5s
-+       */
-+
-+      tv.tv_nsec = NSEC_PER_SEC >> 1;
-+
-+      /* WARNING: this is not the C library 'mktime' call, it is a built in
-+       * inline function from include/linux/time.h.  It expects (requires)
-+       * the month to be in the range 1-12
-+       */
-+
-+      tv.tv_sec  = mktime(tm.tm_year + EPOCH_1900, tm.tm_mon + 1,
-+                              tm.tm_mday, tm.tm_hour,
-+                              tm.tm_min, tm.tm_sec);
-+
-+      do_settimeofday(&tv);
-+
-+      dev_info(&client->adapter->dev,
-+              "%s: Setting the system clock to %d-%d-%d %d:%d:%d\n",
-+              DRIVER_NAME,
-+              tm.tm_year + EPOCH_1900, tm.tm_mon + 1,
-+              tm.tm_mday, tm.tm_hour, tm.tm_min,
-+              tm.tm_sec);
-+
-+      return 0;
-+}
-+
-+struct x1205_limit
-+{
-+      unsigned char reg;
-+      unsigned char mask;
-+      unsigned char min;      
-+      unsigned char max;
-+};
-+
-+static int x1205_validate_client(struct i2c_client *client)
-+{
-+      int i, xfer;
-+
-+      /* Probe array. We will read the register at the specified
-+       * address and check if the given bits are zero.
-+       */
-+
-+      const unsigned char probe_zero_pattern[] = {
-+
-+              X1205_REG_SR,   0x18,
-+              X1205_REG_Y2K,  0xC6,
-+              X1205_REG_DW,   0xF8,
-+              X1205_REG_MO,   0xE0,
-+              X1205_REG_DT,   0xC0,
-+              X1205_REG_HR,   0x40,
-+              X1205_REG_MN,   0x80,
-+              X1205_REG_SC,   0x80,
-+              X1205_REG_DTR,  0xF8,
-+              X1205_REG_ATR,  0xC0,
-+              X1205_REG_INT,  0x18,
-+              X1205_REG_0,    0xFF,
-+              X1205_REG_Y2K1, 0xC6,
-+              X1205_REG_DWA1, 0x78,
-+              X1205_REG_MOA1, 0x60,
-+              X1205_REG_DTA1, 0x40,
-+              X1205_REG_HRA1, 0x40,
-+              X1205_REG_Y2K0, 0xC6,
-+              X1205_REG_DWA0, 0x78,
-+              X1205_REG_MOA0, 0x60,
-+              X1205_REG_DTA0, 0x40,
-+              X1205_REG_HRA0, 0x40,
-+      };
-+
-+      const struct x1205_limit probe_limits_pattern[] = {
-+              /* register, mask, min, max */
-+              { X1205_REG_Y2K,        0xFF,   19,     20      },
-+              { X1205_REG_DW,         0xFF,   0,      6       },
-+              { X1205_REG_YR,         0xFF,   0,      99      },
-+              { X1205_REG_MO,         0xFF,   0,      12      },
-+              { X1205_REG_DT,         0xFF,   0,      31      },
-+              { X1205_REG_HR,         0x7F,   0,      23      },
-+              { X1205_REG_MN,         0xFF,   0,      59      },
-+              { X1205_REG_SC,         0xFF,   0,      59      },
-+              { X1205_REG_Y2K1,       0xFF,   19,     20      },
-+              { X1205_REG_DWA1,       0x7F,   0,      6       },
-+              { X1205_REG_MOA1,       0x7F,   0,      12      },
-+              { X1205_REG_DTA1,       0x7F,   0,      31      },
-+              { X1205_REG_HRA1,       0x7F,   0,      23      },
-+              { X1205_REG_MNA1,       0x7F,   0,      59      },
-+              { X1205_REG_SCA1,       0x7F,   0,      59      },
-+              { X1205_REG_Y2K0,       0xFF,   19,     20      },
-+              { X1205_REG_DWA0,       0x7F,   0,      6       },
-+              { X1205_REG_MOA0,       0x7F,   0,      12      },
-+              { X1205_REG_DTA0,       0x7F,   0,      31      },
-+              { X1205_REG_HRA0,       0x7F,   0,      23      },
-+              { X1205_REG_MNA0,       0x7F,   0,      59      },
-+              { X1205_REG_SCA0,       0x7F,   0,      59      },
-+      };
-+
-+      /* check that registers have bits a 0 where expected */
-+
-+      for (i = 0; i < ARRAY_SIZE(probe_zero_pattern); i += 2)
-+      {
-+              unsigned char buf;
-+
-+              static unsigned char addr[2];
-+
-+              struct i2c_msg msgs[2] = {
-+                      { client->addr, 0, 2, addr },   /* random read */
-+                      { client->addr, I2C_M_RD, 1, &buf },
-+              };
-+
-+              addr[0] = 0x00;
-+              addr[1] = probe_zero_pattern[i];
-+
-+              xfer = i2c_transfer(client->adapter, msgs, 2);
-+
-+              if (xfer != 2) {
-+                      dev_dbg(&client->adapter->dev, 
-+                              "%s: could not read register %x\n",
-+                              __FUNCTION__, addr[1]);
-+
-+                      return -EIO;
-+              }
-+
-+              if ((buf & probe_zero_pattern[i+1]) != 0) {
-+                      dev_dbg(&client->adapter->dev,
-+                              "%s: register %x, zero pattern %d: %x\n",
-+                              __FUNCTION__, addr[1], i, buf);
-+
-+                      return -ENODEV;
-+              }
-+      }
-+
-+      /* check limits */
-+
-+      for (i = 0; i < ARRAY_SIZE(probe_limits_pattern); i++)
-+      {
-+              unsigned char buf, val;
-+
-+              static unsigned char addr[2];
-+
-+              struct i2c_msg msgs[2] = {
-+                      { client->addr, 0, 2, addr },   /* random read */
-+                      { client->addr, I2C_M_RD, 1, &buf },
-+              };
-+
-+              addr[0] = 0x00;
-+              addr[1] = probe_limits_pattern[i].reg;
-+
-+              xfer = i2c_transfer(client->adapter, msgs, 2);
-+
-+              if (xfer != 2) {
-+                      dev_dbg(&client->adapter->dev, 
-+                              "%s: could not read register %x\n",
-+                              __FUNCTION__, addr[1]);
-+
-+                      return -EIO;
-+              }
-+
-+              val = BCD2BIN(buf & probe_limits_pattern[i].mask);
-+
-+              if (val > probe_limits_pattern[i].max ||
-+                      val < probe_limits_pattern[i].min) {
-+                      dev_dbg(&client->adapter->dev,
-+                              "%s: register %x, lim pattern %d: %d\n",
-+                              __FUNCTION__, addr[1], i, val);
-+
-+                      return -ENODEV;
-+              }
-+      }
-+
-+      return 0;
-+}
-+
-+static int x1205_attach(struct i2c_adapter *adapter)
-+{
-+      dev_dbg(&adapter->dev, "%s\n", __FUNCTION__);
-+
-+      return i2c_probe(adapter, &addr_data, x1205_probe);
-+}
-+
-+static int x1205_probe(struct i2c_adapter *adapter, int address, int kind)
-+{
-+      struct i2c_client *new_client;
-+      struct x1205_data *xdata;
-+
-+      int err = 0;
-+
-+      dev_dbg(&adapter->dev, "%s\n", __FUNCTION__);
-+
-+      if (!(xdata = kmalloc(sizeof(struct x1205_data), GFP_KERNEL))) {
-+              err = -ENOMEM;
-+              goto exit;
-+      }
-+
-+      /* Fill our data structure */
-+
-+      memset(xdata, 0, sizeof(struct x1205_data));
-+
-+      xdata->epoch = 2000;
-+
-+
-+      /* Prepare i2c_client structure */
-+
-+      new_client              = &xdata->client;
-+      i2c_set_clientdata(new_client, xdata);
-+      new_client->addr        = address;
-+      new_client->adapter     = adapter;
-+      new_client->driver      = &x1205_driver;
-+      new_client->flags       = 0;
-+      
-+      strlcpy(new_client->name, "x1205", I2C_NAME_SIZE);
-+
-+
-+      /* Verify the chip is really an X1205 */
-+
-+      if (kind < 0)
-+      {
-+              if (x1205_validate_client(new_client) < 0) {
-+                      err = -ENODEV;
-+                      goto exit_kfree;
-+              }
-+      }
-+
-+      /* Inform the i2c layer */
-+      if ((err = i2c_attach_client(new_client)))
-+              goto exit_kfree;
-+
-+      list_add(&xdata->list, &x1205_clients);
-+
-+      dev_info(&adapter->dev, "%s: Chip found, driver " DRIVER_VERSION "\n",
-+                      DRIVER_NAME);
-+
-+      /* If requested, se the system time */
-+      if (hctosys)
-+              x1205_hctosys(new_client);
-+
-+      return 0;
-+
-+exit_kfree:
-+      kfree(xdata);
-+
-+exit:
-+      return err;
-+}
-+
-+static int x1205_detach(struct i2c_client *client)
-+{
-+      int err;
-+      struct x1205_data *data = i2c_get_clientdata(client);
-+      
-+      dev_dbg(&client->dev, "%s\n", __FUNCTION__);
-+
-+      if ((err = i2c_detach_client(client)))
-+              return err;
-+
-+      list_del(&data->list);
-+      kfree(data);
-+      return 0;
-+}
-+
-+/* make sure the rtc_time values are in bounds */
-+static int x1205_validate_tm(struct rtc_time *tm)
-+{
-+      tm->tm_year += 1900;
-+
-+      if (tm->tm_year < EPOCH_1970)
-+              return -EINVAL;
-+
-+      if ((tm->tm_mon > 11) || (tm->tm_mday == 0))
-+              return -EINVAL;
-+
-+      if (tm->tm_mday > (days_in_mo[tm->tm_mon] + ( (tm->tm_mon == 1) && 
-+              ((!(tm->tm_year % 4) && (tm->tm_year % 100) ) || !(tm->tm_year % 400)))))
-+              return -EINVAL;
-+
-+      if ((tm->tm_year -= EPOCH_1900) > 255)
-+              return -EINVAL;
-+                      
-+      if ((tm->tm_hour >= 24) || (tm->tm_min >= 60) || (tm->tm_sec >= 60))
-+              return -EINVAL;
-+
-+      return 0;
-+}
-+
-+static int x1205_command(struct i2c_client *client, unsigned int cmd, void *tm)
-+{
-+      if (client == NULL || tm == NULL)
-+              return -EINVAL;
-+
-+      if (!capable(CAP_SYS_TIME))
-+              return -EACCES;
-+
-+      dev_dbg(&client->dev, "%s: cmd=%d\n", __FUNCTION__, cmd);
-+
-+      switch (cmd) {
-+      case X1205_CMD_GETDATETIME:
-+              return x1205_get_datetime(client, tm, X1205_CCR_BASE);
-+
-+      case X1205_CMD_SETTIME:
-+              return x1205_set_datetime(client, tm, X1205_NODATE, X1205_CCR_BASE);
-+
-+      case X1205_CMD_SETDATETIME:
-+              return x1205_set_datetime(client, tm, X1205_DATETOO, X1205_CCR_BASE);
-+
-+      case X1205_CMD_GETALARM:
-+              return x1205_get_datetime(client, tm, X1205_ALM0_BASE);
-+
-+      case X1205_CMD_SETALARM:
-+              return x1205_set_datetime(client, tm, X1205_DATETOO, X1205_ALM0_BASE);
-+
-+      default:
-+              return -EINVAL;
-+      }
-+}
-+
-+
-+static int __init x1205_init(void)
-+{
-+      return i2c_add_driver(&x1205_driver);
-+}
-+
-+static void __exit x1205_exit(void)
-+{
-+      i2c_del_driver(&x1205_driver);
-+}
-+
-+MODULE_AUTHOR(
-+      "Karen Spearel <kas11@tampabay.rr.com>, "
-+      "Alessandro Zummo <a.zummo@towertech.it>");
-+MODULE_DESCRIPTION("Xicor X1205 RTC driver");
-+MODULE_LICENSE("GPL");
-+
-+EXPORT_SYMBOL_GPL(x1205_do_command);
-+
-+module_init(x1205_init);
-+module_exit(x1205_exit);
---- linux-2.6.14-rc3/include/linux/x1205.h     1970-01-01 01:00:00.000000000 +0100
-+++ test9/include/linux/x1205.h        2005-10-03 15:38:21.000000000 +0200
-@@ -0,0 +1,67 @@
-+
-+/* commands */
-+
-+#define       X1205_CMD_GETDATETIME   0
-+#define       X1205_CMD_SETTIME       1
-+#define       X1205_CMD_SETDATETIME   2
-+#define X1205_CMD_GETALARM    3
-+#define X1205_CMD_SETALARM    4
-+
-+/* flags */
-+
-+#define       X1205_NODATE            0
-+#define       X1205_DATETOO           1
-+
-+/*  offsets into read buf - add 2 for write buf */
-+
-+#define       CCR_SEC                 0
-+#define       CCR_MIN                 1
-+#define       CCR_HOUR                2
-+#define       CCR_MDAY                3
-+#define       CCR_MONTH               4
-+#define       CCR_YEAR                5
-+#define       CCR_WDAY                6
-+#define       CCR_Y2K                 7
-+
-+#define       X1205_REG_SR            0x3F    /* status register */
-+#define       X1205_REG_Y2K           0x37
-+#define       X1205_REG_DW            0x36
-+#define       X1205_REG_YR            0x35
-+#define       X1205_REG_MO            0x34
-+#define       X1205_REG_DT            0x33
-+#define       X1205_REG_HR            0x32
-+#define       X1205_REG_MN            0x31
-+#define       X1205_REG_SC            0x30
-+#define       X1205_REG_DTR           0x13
-+#define       X1205_REG_ATR           0x12
-+#define       X1205_REG_INT           0x11
-+#define       X1205_REG_0             0x10
-+#define       X1205_REG_Y2K1          0x0F
-+#define       X1205_REG_DWA1          0x0E
-+#define       X1205_REG_YRA1          0x0D
-+#define       X1205_REG_MOA1          0x0C
-+#define       X1205_REG_DTA1          0x0B
-+#define       X1205_REG_HRA1          0x0A
-+#define       X1205_REG_MNA1          0x09
-+#define       X1205_REG_SCA1          0x08
-+#define       X1205_REG_Y2K0          0x07
-+#define       X1205_REG_DWA0          0x06
-+#define       X1205_REG_YRA0          0x05
-+#define       X1205_REG_MOA0          0x04
-+#define       X1205_REG_DTA0          0x03
-+#define       X1205_REG_HRA0          0x02
-+#define       X1205_REG_MNA0          0x01
-+#define       X1205_REG_SCA0          0x00
-+
-+#define       X1205_I2C_BUS_ADDR      0x6f    /* hardwired into x1205 */
-+#define       X1205_CCR_BASE          0x30    /* Base address of CCR */
-+#define       X1205_ALM0_BASE         0x00    /* Base address of ALARM0 */
-+
-+#define X1205_SR_RTCF         0x01
-+#define       X1205_SR_WEL            0x02    /* Write Enable Latch bit */
-+#define       X1205_SR_RWEL           0x04    /* Register Write Enable Bit */
-+
-+#define       X1205_HR_MIL            0x80    /* set in ccr.hour for 24 hr mode */
-+
-+extern int x1205_do_command(unsigned int cmd, void *arg);
-+
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14/50-nslu2-arch.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.14/50-nslu2-arch.patch
deleted file mode 100644 (file)
index 038c71c..0000000
+++ /dev/null
@@ -1,461 +0,0 @@
---- linux-2.6.14/arch/arm/mach-ixp4xx/Kconfig  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.14/arch/arm/mach-ixp4xx/Kconfig  1970-01-01 00:00:00.000000000 +0000
-@@ -8,6 +8,16 @@ menu "Intel IXP4xx Implementation Option
- comment "IXP4xx Platforms"
-+# This entry is placed on top because otherwise it would have
-+# been shown as a submenu.
-+config MACH_NSLU2
-+      bool
-+      prompt "NSLU2" if !(MACH_IXDP465 || MACH_IXDPG425 || ARCH_IXDP425 || ARCH_ADI_COYOTE || ARCH_AVILA || ARCH_IXCDP1100 || ARCH_PRPMC1100 || MACH_GTWX5715)
-+      help
-+        Say 'Y' here if you want your kernel to support Linksys's
-+        NSLU2 NAS device. For more information on this platform,
-+        see http://www.nslu2-linux.org
-+
- config ARCH_AVILA
-       bool "Avila"
-       help
---- linux-2.6.14/arch/arm/mach-ixp4xx/Makefile 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.14/arch/arm/mach-ixp4xx/Makefile 1970-01-01 00:00:00.000000000 +0000
-@@ -8,4 +8,5 @@ obj-$(CONFIG_ARCH_IXDP4XX)     += ixdp425-pc
- obj-$(CONFIG_MACH_IXDPG425)   += ixdpg425-pci.o coyote-setup.o
- obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o
- obj-$(CONFIG_MACH_GTWX5715)   += gtwx5715-pci.o gtwx5715-setup.o
-+obj-$(CONFIG_MACH_NSLU2)      += nslu2-pci.o nslu2-setup.o nslu2-power.o
---- linux-2.6.14/arch/arm/mach-ixp4xx/nslu2-pci.c      1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.14/arch/arm/mach-ixp4xx/nslu2-pci.c      1970-01-01 00:00:00.000000000 +0000
-@@ -0,0 +1,77 @@
-+/*
-+ * arch/arm/mach-ixp4xx/nslu2-pci.c
-+ *
-+ * NSLU2 board-level PCI initialization
-+ *
-+ * based on ixdp425-pci.c:
-+ *    Copyright (C) 2002 Intel Corporation.
-+ *    Copyright (C) 2003-2004 MontaVista Software, Inc.
-+ *
-+ * Maintainer: http://www.nslu2-linux.org/
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/pci.h>
-+#include <linux/init.h>
-+
-+#include <asm/mach/pci.h>
-+#include <asm/mach-types.h>
-+
-+void __init nslu2_pci_preinit(void)
-+{
-+      set_irq_type(IRQ_NSLU2_PCI_INTA, IRQT_LOW);
-+      set_irq_type(IRQ_NSLU2_PCI_INTB, IRQT_LOW);
-+      set_irq_type(IRQ_NSLU2_PCI_INTC, IRQT_LOW);
-+
-+      gpio_line_isr_clear(NSLU2_PCI_INTA_PIN);
-+      gpio_line_isr_clear(NSLU2_PCI_INTB_PIN);
-+      gpio_line_isr_clear(NSLU2_PCI_INTC_PIN);
-+
-+      /* INTD is not configured as GPIO is used
-+       * for the power input button.
-+       */
-+
-+      ixp4xx_pci_preinit();
-+}
-+
-+static int __init nslu2_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
-+{
-+      static int pci_irq_table[NSLU2_PCI_IRQ_LINES] = {
-+              IRQ_NSLU2_PCI_INTA,
-+              IRQ_NSLU2_PCI_INTB,
-+              IRQ_NSLU2_PCI_INTC,
-+      };
-+
-+      int irq = -1;
-+
-+      if (slot >= 1 && slot <= NSLU2_PCI_MAX_DEV &&
-+              pin >= 1 && pin <= NSLU2_PCI_IRQ_LINES) {
-+                      irq = pci_irq_table[(slot + pin - 2) % NSLU2_PCI_IRQ_LINES];
-+      }
-+
-+      return irq;
-+}
-+
-+struct hw_pci __initdata nslu2_pci = {
-+      .nr_controllers = 1,
-+      .preinit        = nslu2_pci_preinit,
-+      .swizzle        = pci_std_swizzle,
-+      .setup          = ixp4xx_setup,
-+      .scan           = ixp4xx_scan_bus,
-+      .map_irq        = nslu2_map_irq,
-+};
-+
-+int __init nslu2_pci_init(void) /* monkey see, monkey do */
-+{
-+      if (machine_is_nslu2())
-+              pci_common_init(&nslu2_pci);
-+
-+      return 0;
-+}
-+
-+subsys_initcall(nslu2_pci_init);
---- linux-2.6.14/arch/arm/mach-ixp4xx/nslu2-power.c    1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.14/arch/arm/mach-ixp4xx/nslu2-power.c    1970-01-01 00:00:00.000000000 +0000
-@@ -0,0 +1,92 @@
-+/*
-+ * arch/arm/mach-ixp4xx/nslu2-power.c
-+ *
-+ * NSLU2 Power/Reset driver
-+ *
-+ * Copyright (C) 2005 Tower Technologies
-+ *
-+ * based on nslu2-io.c
-+ *  Copyright (C) 2004 Karen Spearel
-+ *
-+ * Author: Alessandro Zummo <a.zummo@towertech.it>
-+ * Maintainers: http://www.nslu2-linux.org/
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/reboot.h>
-+#include <linux/interrupt.h>
-+
-+#include <asm/mach-types.h>
-+
-+extern void ctrl_alt_del(void);
-+
-+static irqreturn_t nslu2_power_handler(int irq, void *dev_id, struct pt_regs *regs)
-+{
-+      /* Signal init to do the ctrlaltdel action, this will bypass init if
-+       * it hasn't started and do a kernel_restart.
-+       */
-+      ctrl_alt_del();
-+
-+      return IRQ_HANDLED;
-+}
-+
-+static irqreturn_t nslu2_reset_handler(int irq, void *dev_id, struct pt_regs *regs)
-+{
-+      /* This is the paper-clip reset, it shuts the machine down directly.
-+       */
-+      machine_power_off();
-+
-+      return IRQ_HANDLED;
-+}
-+
-+static int __init nslu2_power_init(void)
-+{
-+      if (!(machine_is_nslu2()))
-+              return 0;
-+
-+      *IXP4XX_GPIO_GPISR = 0x20400000;        /* read the 2 irqs to clr */
-+
-+      set_irq_type(NSLU2_RB_IRQ, IRQT_LOW);
-+      set_irq_type(NSLU2_PB_IRQ, IRQT_HIGH);
-+
-+      gpio_line_isr_clear(NSLU2_RB_GPIO);
-+      gpio_line_isr_clear(NSLU2_PB_GPIO);
-+
-+      if (request_irq(NSLU2_RB_IRQ, &nslu2_reset_handler,
-+              SA_INTERRUPT, "NSLU2 reset button", NULL) < 0) {
-+
-+              printk(KERN_DEBUG "Reset Button IRQ %d not available\n",
-+                      NSLU2_RB_IRQ);
-+
-+              return -EIO;
-+      }
-+
-+      if (request_irq(NSLU2_PB_IRQ, &nslu2_power_handler,
-+              SA_INTERRUPT, "NSLU2 power button", NULL) < 0) {
-+
-+              printk(KERN_DEBUG "Power Button IRQ %d not available\n",
-+                      NSLU2_PB_IRQ);
-+
-+              return -EIO;
-+      }
-+
-+      return 0;
-+}
-+
-+static void __exit nslu2_power_exit(void)
-+{
-+      free_irq(NSLU2_RB_IRQ, NULL);
-+      free_irq(NSLU2_PB_IRQ, NULL);
-+}
-+
-+module_init(nslu2_power_init);
-+module_exit(nslu2_power_exit);
-+
-+MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>");
-+MODULE_DESCRIPTION("NSLU2 Power/Reset driver");
-+MODULE_LICENSE("GPL");
---- linux-2.6.14/arch/arm/mach-ixp4xx/nslu2-setup.c    1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.14/arch/arm/mach-ixp4xx/nslu2-setup.c    1970-01-01 00:00:00.000000000 +0000
-@@ -0,0 +1,134 @@
-+/*
-+ * arch/arm/mach-ixp4xx/nslu2-setup.c
-+ *
-+ * NSLU2 board-setup
-+ *
-+ * based ixdp425-setup.c:
-+ *      Copyright (C) 2003-2004 MontaVista Software, Inc.
-+ *
-+ * Author: Mark Rakes <mrakes at mac.com>
-+ * Maintainers: http://www.nslu2-linux.org/
-+ *
-+ * Fixed missing init_time in MACHINE_START kas11 10/22/04
-+ * Changed to conform to new style __init ixdp425 kas11 10/22/04
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/serial.h>
-+#include <linux/serial_8250.h>
-+
-+#include <asm/mach-types.h>
-+#include <asm/mach/arch.h>
-+#include <asm/mach/flash.h>
-+
-+static struct flash_platform_data nslu2_flash_data = {
-+      .map_name               = "cfi_probe",
-+      .width                  = 2,
-+};
-+
-+static struct resource nslu2_flash_resource = {
-+      .start                  = NSLU2_FLASH_BASE,
-+      .end                    = NSLU2_FLASH_BASE + NSLU2_FLASH_SIZE,
-+      .flags                  = IORESOURCE_MEM,
-+};
-+
-+static struct platform_device nslu2_flash = {
-+      .name                   = "IXP4XX-Flash",
-+      .id                     = 0,
-+      .dev.platform_data      = &nslu2_flash_data,
-+      .num_resources          = 1,
-+      .resource               = &nslu2_flash_resource,
-+};
-+
-+static struct ixp4xx_i2c_pins nslu2_i2c_gpio_pins = {
-+      .sda_pin                = NSLU2_SDA_PIN,
-+      .scl_pin                = NSLU2_SCL_PIN,
-+};
-+
-+static struct platform_device nslu2_i2c_controller = {
-+      .name                   = "IXP4XX-I2C",
-+      .id                     = 0,
-+      .dev.platform_data      = &nslu2_i2c_gpio_pins,
-+      .num_resources          = 0,
-+};
-+
-+static struct resource nslu2_uart_resources[] = {
-+      {
-+              .start          = IXP4XX_UART1_BASE_PHYS,
-+              .end            = IXP4XX_UART1_BASE_PHYS + 0x0fff,
-+              .flags          = IORESOURCE_MEM,
-+      },
-+      {
-+              .start          = IXP4XX_UART2_BASE_PHYS,
-+              .end            = IXP4XX_UART2_BASE_PHYS + 0x0fff,
-+              .flags          = IORESOURCE_MEM,
-+      }
-+};
-+
-+static struct plat_serial8250_port nslu2_uart_data[] = {
-+      {
-+              .mapbase        = IXP4XX_UART1_BASE_PHYS,
-+              .membase        = (char *)IXP4XX_UART1_BASE_VIRT + REG_OFFSET,
-+              .irq            = IRQ_IXP4XX_UART1,
-+              .flags          = UPF_BOOT_AUTOCONF,
-+              .iotype         = UPIO_MEM,
-+              .regshift       = 2,
-+              .uartclk        = IXP4XX_UART_XTAL,
-+      },
-+      {
-+              .mapbase        = IXP4XX_UART2_BASE_PHYS,
-+              .membase        = (char *)IXP4XX_UART2_BASE_VIRT + REG_OFFSET,
-+              .irq            = IRQ_IXP4XX_UART2,
-+              .flags          = UPF_BOOT_AUTOCONF,
-+              .iotype         = UPIO_MEM,
-+              .regshift       = 2,
-+              .uartclk        = IXP4XX_UART_XTAL,
-+      },
-+      { }
-+};
-+
-+static struct platform_device nslu2_uart = {
-+      .name                   = "serial8250",
-+      .id                     = PLAT8250_DEV_PLATFORM,
-+      .dev.platform_data      = nslu2_uart_data,
-+      .num_resources          = 2,
-+      .resource               = nslu2_uart_resources,
-+};
-+
-+static struct platform_device *nslu2_devices[] __initdata = {
-+      &nslu2_i2c_controller,
-+      &nslu2_flash,
-+      &nslu2_uart,
-+};
-+
-+static void nslu2_power_off(void)
-+{
-+      /* This causes the box to drop the power and go dead. */
-+
-+      /* enable the pwr cntl gpio */
-+      gpio_line_config(NSLU2_PO_GPIO, IXP4XX_GPIO_OUT);
-+
-+      /* do the deed */
-+      gpio_line_set(NSLU2_PO_GPIO, IXP4XX_GPIO_HIGH);
-+}
-+
-+static void __init nslu2_init(void)
-+{
-+      ixp4xx_sys_init();
-+
-+      pm_power_off = nslu2_power_off;
-+
-+      platform_add_devices(nslu2_devices, ARRAY_SIZE(nslu2_devices));
-+}
-+
-+MACHINE_START(NSLU2, "Linksys NSLU2")
-+      /* Maintainer: www.nslu2-linux.org */
-+      .phys_ram       = PHYS_OFFSET,
-+      .phys_io        = IXP4XX_PERIPHERAL_BASE_PHYS,
-+      .io_pg_offst    = ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xFFFC,
-+      .boot_params    = 0x00000100,
-+      .map_io         = ixp4xx_map_io,
-+      .init_irq       = ixp4xx_init_irq,
-+      .timer          = &ixp4xx_timer,
-+      .init_machine   = nslu2_init,
-+MACHINE_END
---- linux-2.6.14/include/asm-arm/arch-ixp4xx/hardware.h        1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.14/include/asm-arm/arch-ixp4xx/hardware.h        1970-01-01 00:00:00.000000000 +0000
-@@ -44,5 +44,6 @@ extern unsigned int processor_id;
- #include "ixdp425.h"
- #include "coyote.h"
- #include "prpmc1100.h"
-+#include "nslu2.h"
- #endif  /* _ASM_ARCH_HARDWARE_H */
---- linux-2.6.14/include/asm-arm/arch-ixp4xx/irqs.h    1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.14/include/asm-arm/arch-ixp4xx/irqs.h    1970-01-01 00:00:00.000000000 +0000
-@@ -93,4 +93,11 @@
- #define       IRQ_COYOTE_PCI_SLOT1    IRQ_IXP4XX_GPIO11
- #define       IRQ_COYOTE_IDE          IRQ_IXP4XX_GPIO5
-+/*
-+ * NSLU2 board IRQs
-+ */
-+#define        IRQ_NSLU2_PCI_INTA      IRQ_IXP4XX_GPIO11
-+#define        IRQ_NSLU2_PCI_INTB      IRQ_IXP4XX_GPIO10
-+#define        IRQ_NSLU2_PCI_INTC      IRQ_IXP4XX_GPIO9
-+
- #endif
---- linux-2.6.14/include/asm-arm/arch-ixp4xx/nslu2.h   1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.14/include/asm-arm/arch-ixp4xx/nslu2.h   1970-01-01 00:00:00.000000000 +0000
-@@ -0,0 +1,96 @@
-+/*
-+ * include/asm-arm/arch-ixp4xx/nslu2.h
-+ *
-+ * NSLU2 platform specific definitions
-+ *
-+ * Author: Mark Rakes <mrakes AT mac.com>
-+ * Maintainers: http://www.nslu2-linux.org
-+ *
-+ * based on ixdp425.h:
-+ *    Copyright 2004 (c) MontaVista, Software, Inc.
-+ *
-+ * This file is licensed under  the terms of the GNU General Public
-+ * License version 2. This program is licensed "as is" without any
-+ * warranty of any kind, whether express or implied.
-+ */
-+
-+#ifndef __ASM_ARCH_HARDWARE_H__
-+#error "Do not include this directly, instead #include <asm/hardware.h>"
-+#endif
-+
-+#define NSLU2_FLASH_BASE      IXP4XX_EXP_BUS_CS0_BASE_PHYS
-+#define NSLU2_FLASH_SIZE      IXP4XX_EXP_BUS_CSX_REGION_SIZE
-+
-+#define NSLU2_SDA_PIN         7
-+#define NSLU2_SCL_PIN         6
-+
-+/*
-+ * NSLU2 PCI IRQs
-+ */
-+#define NSLU2_PCI_MAX_DEV     3
-+#define NSLU2_PCI_IRQ_LINES   3
-+
-+
-+/* PCI controller GPIO to IRQ pin mappings */
-+#define NSLU2_PCI_INTA_PIN    11
-+#define NSLU2_PCI_INTB_PIN    10
-+#define NSLU2_PCI_INTC_PIN    9
-+#define NSLU2_PCI_INTD_PIN    8
-+
-+
-+/* NSLU2 Timer */
-+#define NSLU2_FREQ 66000000
-+#define NSLU2_CLOCK_TICK_RATE (((NSLU2_FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ)
-+#define NSLU2_CLOCK_TICKS_PER_USEC ((NSLU2_CLOCK_TICK_RATE + USEC_PER_SEC/2) / USEC_PER_SEC)
-+
-+/* GPIO */
-+
-+#define NSLU2_GPIO0           0
-+#define NSLU2_GPIO1           1
-+#define NSLU2_GPIO2           2
-+#define NSLU2_GPIO3           3
-+#define NSLU2_GPIO4           4
-+#define NSLU2_GPIO5           5
-+#define NSLU2_GPIO6           6
-+#define NSLU2_GPIO7           7
-+#define NSLU2_GPIO8           8
-+#define NSLU2_GPIO9           9
-+#define NSLU2_GPIO10          10
-+#define NSLU2_GPIO11          11
-+#define NSLU2_GPIO12          12
-+#define NSLU2_GPIO13          13
-+#define NSLU2_GPIO14          14
-+#define NSLU2_GPIO15          15
-+
-+/* Buttons */
-+
-+#define NSLU2_PB_GPIO         NSLU2_GPIO5
-+#define NSLU2_PO_GPIO         NSLU2_GPIO8     /* power off */
-+#define NSLU2_RB_GPIO         NSLU2_GPIO12
-+
-+#define NSLU2_PB_IRQ          IRQ_IXP4XX_GPIO5
-+#define NSLU2_RB_IRQ          IRQ_IXP4XX_GPIO12
-+
-+#define NSLU2_PB_BM           (1L << NSLU2_PB_GPIO)
-+#define NSLU2_PO_BM           (1L << NSLU2_PO_GPIO)
-+#define NSLU2_RB_BM           (1L << NSLU2_RB_GPIO)
-+
-+/* Buzzer */
-+
-+#define NSLU2_GPIO_BUZZ               4
-+#define NSLU2_BZ_BM           (1L << NSLU2_GPIO_BUZZ)
-+/* LEDs */
-+
-+#define NSLU2_LED_RED         NSLU2_GPIO0
-+#define NSLU2_LED_GRN         NSLU2_GPIO1
-+
-+#define NSLU2_LED_RED_BM      (1L << NSLU2_LED_RED)
-+#define NSLU2_LED_GRN_BM      (1L << NSLU2_LED_GRN)
-+
-+#define NSLU2_LED_DISK1               NSLU2_GPIO2
-+#define NSLU2_LED_DISK2               NSLU2_GPIO3
-+
-+#define NSLU2_LED_DISK1_BM    (1L << NSLU2_GPIO2)
-+#define NSLU2_LED_DISK2_BM    (1L << NSLU2_GPIO3)
-+
-+
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14/55-nslu2-rtc.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.14/55-nslu2-rtc.patch
deleted file mode 100644 (file)
index be1f696..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
---- linux-2.6.13/.pc/55-nslu2-rtc.patch/arch/arm/mach-ixp4xx/Makefile  2005-10-26 15:19:43.171472071 -0700
-+++ linux-2.6.13/arch/arm/mach-ixp4xx/Makefile 2005-10-26 15:23:52.923187955 -0700
-@@ -8,5 +8,5 @@ obj-$(CONFIG_ARCH_IXDP4XX)     += ixdp425-pc
- obj-$(CONFIG_MACH_IXDPG425)   += ixdpg425-pci.o coyote-setup.o
- obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o
- obj-$(CONFIG_MACH_GTWX5715)   += gtwx5715-pci.o gtwx5715-setup.o
--obj-$(CONFIG_MACH_NSLU2)      += nslu2-pci.o nslu2-setup.o nslu2-power.o
-+obj-$(CONFIG_MACH_NSLU2)      += nslu2-pci.o nslu2-setup.o nslu2-power.o nslu2-rtc.o
---- linux-2.6.13/.pc/55-nslu2-rtc.patch/arch/arm/mach-ixp4xx/nslu2-rtc.c       2005-10-26 15:19:43.443489188 -0700
-+++ linux-2.6.13/arch/arm/mach-ixp4xx/nslu2-rtc.c      2005-10-26 15:23:52.923187955 -0700
-@@ -0,0 +1,113 @@
-+/*
-+ * arch/arm/mach-ixp4xx/nslu2-rtc.c
-+ *
-+ * NSLU2 RTC driver
-+ *
-+ * Copyright (C) 2005 Tower Technologies
-+ *
-+ * based on x1205-rtc.c  
-+ *  Copyright (C) 2004 Karen Spearel
-+ *
-+ * Author: Alessandro Zummo <a.zummo@towertech.it>
-+ * Maintainers: http://www.nslu2-linux.org/
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/time.h>
-+#include <linux/rtc.h>
-+#include <linux/init.h>
-+
-+#include <linux/x1205.h>
-+
-+#include <asm/rtc.h>
-+#include <asm/mach-types.h>
-+
-+extern int (*set_rtc)(void);
-+
-+static int nslu2_set_rtc(void)
-+{
-+      struct rtc_time new_tm, old_tm;
-+      unsigned long cur_secs = xtime.tv_sec;
-+
-+      if (x1205_do_command(X1205_CMD_GETDATETIME, &old_tm))
-+              return 0;
-+
-+      /* FIXME      xtime.tv_nsec = old_tm.tm_sec * 10000000; */
-+      new_tm.tm_sec  = cur_secs % 60;
-+      cur_secs /= 60;
-+      new_tm.tm_min  = cur_secs % 60;
-+      cur_secs /= 60;
-+      new_tm.tm_hour = cur_secs % 24;
-+
-+       /*
-+      * avoid writing when we're going to change the day
-+      * of the month.  We will retry in the next minute.
-+      * This basically means that if the RTC must not drift
-+      * by more than 1 minute in 11 minutes.
-+      */
-+      if ((old_tm.tm_hour == 23 && old_tm.tm_min == 59) ||
-+          (new_tm.tm_hour == 23 && new_tm.tm_min == 59))
-+              return 1;
-+
-+      return x1205_do_command(X1205_CMD_SETTIME, &new_tm);
-+}
-+
-+static int rtc_read_alarm(struct rtc_wkalrm *alrm)
-+{
-+      return x1205_do_command(X1205_CMD_GETALARM, &alrm->time);
-+}
-+
-+static int rtc_set_alarm(struct rtc_wkalrm *alrm)
-+{
-+      return x1205_do_command(X1205_CMD_SETALARM, &alrm->time);
-+}
-+
-+static int rtc_read_time(struct rtc_time *tm)
-+{
-+      return x1205_do_command(X1205_CMD_GETDATETIME, tm);
-+}
-+
-+static int rtc_set_time(struct rtc_time *tm)
-+{
-+      return x1205_do_command(X1205_CMD_SETDATETIME, tm);
-+}
-+
-+static struct rtc_ops rtc_ops = {
-+      .owner          = THIS_MODULE,
-+      .read_time      = rtc_read_time,
-+      .set_time       = rtc_set_time,
-+      .read_alarm     = rtc_read_alarm,
-+      .set_alarm      = rtc_set_alarm,
-+};
-+
-+static int __init nslu2_rtc_init(void)
-+{
-+      int ret;
-+
-+      if (!(machine_is_nslu2()))
-+              return 0;
-+
-+      printk(KERN_INFO "NSLU2: rtc\n");
-+
-+      if ((ret = register_rtc(&rtc_ops)) != 0)
-+              return ret;
-+
-+      set_rtc = nslu2_set_rtc;
-+
-+      return 0;
-+}
-+
-+static void __exit nslu2_rtc_exit(void)
-+{
-+      set_rtc = NULL;
-+
-+      unregister_rtc(&rtc_ops);
-+}
-+
-+module_init(nslu2_rtc_init);
-+module_exit(nslu2_rtc_exit);
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14/60-nslu2-beeper.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.14/60-nslu2-beeper.patch
deleted file mode 100644 (file)
index e8a0373..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
---- linux-2.6.13/.pc/60-nslu2-beeper.patch/drivers/input/misc/Kconfig  2005-08-28 16:41:01.000000000 -0700
-+++ linux-2.6.13/drivers/input/misc/Kconfig    2005-10-26 15:24:01.199708764 -0700
-@@ -40,6 +40,18 @@ config INPUT_M68K_BEEP
-       tristate "M68k Beeper support"
-       depends on M68K
-+config INPUT_NSLU2_BEEPER
-+      tristate "NSLU2 Beeper support"
-+      depends on MACH_NSLU2
-+      help
-+        Say Y here if you want the embedded beeper on the LinkSys NSLU2
-+        to be used for bells and whistles.
-+
-+        If unsure, say Y.
-+
-+        To compile this driver as a module, choose M here: the
-+        module will be called nslu2spkr.
-+
- config INPUT_UINPUT
-       tristate "User level driver support"
-       help
---- linux-2.6.13/.pc/60-nslu2-beeper.patch/drivers/input/misc/Makefile 2005-08-28 16:41:01.000000000 -0700
-+++ linux-2.6.13/drivers/input/misc/Makefile   2005-10-26 15:24:01.199708764 -0700
-@@ -10,3 +10,4 @@ obj-$(CONFIG_INPUT_M68K_BEEP)                += m68ksp
- obj-$(CONFIG_INPUT_98SPKR)            += 98spkr.o
- obj-$(CONFIG_INPUT_UINPUT)            += uinput.o
- obj-$(CONFIG_HP_SDC_RTC)              += hp_sdc_rtc.o
-+obj-$(CONFIG_INPUT_NSLU2_BEEPER)      += nslu2spkr.o
---- linux-2.6.13/.pc/60-nslu2-beeper.patch/drivers/input/misc/nslu2spkr.c      2005-10-26 15:19:43.711506053 -0700
-+++ linux-2.6.13/drivers/input/misc/nslu2spkr.c        2005-10-26 15:24:01.199708764 -0700
-@@ -0,0 +1,144 @@
-+/*
-+ * drivers/input/misc/nslu2spkr.c
-+ *
-+ * NSLU2 Beeper driver
-+ *
-+ * Copyright (C) 2005 Tower Technologies
-+ *
-+ * based on nslu2-io.c  
-+ *  Copyright (C) 2004 Karen Spearel
-+ *
-+ * Author: Alessandro Zummo <a.zummo@towertech.it>
-+ * Maintainers: http://www.nslu2-linux.org/
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/input.h>
-+#include <linux/delay.h>
-+
-+#include <asm/hardware.h>
-+#include <asm/irq.h>
-+
-+static unsigned int beep_on_startup = 1;
-+module_param(beep_on_startup, bool, 0);
-+MODULE_PARM_DESC(beep_on_startup, "Play a beep on module startup");
-+
-+DEFINE_SPINLOCK(beep_lock);
-+
-+static int nslu2_spkr_event(struct input_dev *dev, unsigned int type, unsigned int code, int value)
-+{
-+      unsigned int count = 0;
-+      unsigned long flags;
-+
-+      if (type != EV_SND)
-+              return -1;
-+
-+      switch (code) {
-+              case SND_BELL:
-+                      if (value) value = 1000;
-+              case SND_TONE:
-+                      break;
-+              default:
-+                      return -1;
-+      }
-+
-+      if (value > 20 && value < 32767)
-+              count = (NSLU2_FREQ / (value*4)) - 1;
-+
-+      spin_lock_irqsave(&beep_lock, flags);
-+
-+       if (count) {
-+
-+              gpio_line_config(NSLU2_GPIO_BUZZ, IXP4XX_GPIO_OUT);
-+              gpio_line_set(NSLU2_GPIO_BUZZ, IXP4XX_GPIO_LOW);
-+
-+              *IXP4XX_OSRT2 = (count & ~IXP4XX_OST_RELOAD_MASK) | IXP4XX_OST_ENABLE;
-+
-+      } else {
-+
-+              gpio_line_config(NSLU2_GPIO_BUZZ, IXP4XX_GPIO_IN);
-+              gpio_line_set(NSLU2_GPIO_BUZZ, IXP4XX_GPIO_HIGH);
-+
-+              *IXP4XX_OSRT2 = 0;
-+      }
-+
-+      spin_unlock_irqrestore(&beep_lock, flags);
-+
-+      return 0;
-+}
-+
-+static struct input_dev nslu2_spkr_dev = {
-+      .phys           = "ixp420/gpio4",
-+      .name           = "NSLU2 Beeper",
-+      .evbit[0]       = BIT(EV_SND),
-+      .sndbit[0]      = BIT(SND_BELL) | BIT(SND_TONE),
-+      .event          = nslu2_spkr_event,
-+      .id             = {
-+              .bustype        = BUS_HOST,
-+              .vendor         = 0x001f,
-+              .product        = 0x0001,
-+              .version        = 0x0100
-+      }
-+};
-+
-+static irqreturn_t nslu2_spkr_handler(int irq, void *dev_id, struct pt_regs *regs)
-+{
-+      /* clear interrupt */
-+      *IXP4XX_OSST = IXP4XX_OSST_TIMER_2_PEND;
-+
-+      /* flip the beeper output */
-+      *IXP4XX_GPIO_GPOUTR ^= NSLU2_BZ_BM;
-+
-+      return IRQ_HANDLED;
-+}
-+
-+static int __init nslu2_spkr_init(void)
-+{
-+      if (request_irq(IRQ_IXP4XX_TIMER2, &nslu2_spkr_handler,
-+              SA_INTERRUPT | SA_TIMER, "NSLU2 beeper", NULL < 0)) {
-+                      
-+              printk(KERN_INFO "NSLU2 beeper: IRQ %d not available\n",
-+                      IRQ_IXP4XX_TIMER2);
-+
-+              return -EIO;
-+      }
-+
-+      input_register_device(&nslu2_spkr_dev);
-+
-+      /* do a little beep to tell the world we are alive */
-+      if (beep_on_startup)
-+      {
-+              nslu2_spkr_event(NULL, EV_SND, SND_TONE, 440);
-+              msleep(120);
-+              nslu2_spkr_event(NULL, EV_SND, SND_TONE, 0);
-+      }
-+
-+        printk(KERN_INFO "NSLU2: beeper\n");
-+      return 0;
-+}
-+
-+static void __exit nslu2_spkr_exit(void)
-+{
-+      input_unregister_device(&nslu2_spkr_dev);
-+
-+      disable_irq(IRQ_IXP4XX_TIMER2);
-+
-+      /* turn it off */
-+      nslu2_spkr_event(NULL, EV_SND, SND_BELL, 0);
-+
-+      free_irq(IRQ_IXP4XX_TIMER2, NULL);
-+}
-+
-+module_init(nslu2_spkr_init);
-+module_exit(nslu2_spkr_exit);
-+
-+MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>");
-+MODULE_DESCRIPTION("NSLU2 Beeper driver");
-+MODULE_LICENSE("GPL");
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14/70-nslu2-io.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.14/70-nslu2-io.patch
deleted file mode 100644 (file)
index d3d200e..0000000
+++ /dev/null
@@ -1,560 +0,0 @@
---- linux-2.6.13/.pc/70-nslu2-io.patch/arch/arm/mach-ixp4xx/Makefile   2005-10-26 15:19:43.443489188 -0700
-+++ linux-2.6.13/arch/arm/mach-ixp4xx/Makefile 2005-10-26 15:24:08.652177718 -0700
-@@ -8,5 +8,5 @@ obj-$(CONFIG_ARCH_IXDP4XX)     += ixdp425-pc
- obj-$(CONFIG_MACH_IXDPG425)   += ixdpg425-pci.o coyote-setup.o
- obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o
- obj-$(CONFIG_MACH_GTWX5715)   += gtwx5715-pci.o gtwx5715-setup.o
--obj-$(CONFIG_MACH_NSLU2)      += nslu2-pci.o nslu2-setup.o nslu2-power.o nslu2-rtc.o
-+obj-$(CONFIG_MACH_NSLU2)      += nslu2-pci.o nslu2-setup.o nslu2-power.o nslu2-rtc.o nslu2-io.o
---- linux-2.6.13/.pc/70-nslu2-io.patch/arch/arm/mach-ixp4xx/nslu2-io.c 2005-10-26 15:19:43.979522918 -0700
-+++ linux-2.6.13/arch/arm/mach-ixp4xx/nslu2-io.c       2005-10-26 15:24:08.652177718 -0700
-@@ -0,0 +1,548 @@
-+//=============================================================================
-+//
-+// n2-io.c version 0.1.7
-+// Author: Karen Spearel <kas11 at tampabay.rr.com>
-+// please report problems/bugs directly to the address above
-+//
-+// Boilerplate to be added "real soon now"...it is and has always been GPL'ed per
-+// MODULE_LICENSE but is offered without warrantee of any sort..use at your own risk
-+//
-+// NOTE: THIS IS INCOMPLETE.  INCLUDED ONLY TO KEEP FROM BREAKING THE BUILD,
-+// IT BEEPS AND SENDS A MESSAGE TO /proc/poweroff.  EVENTUALLY IT
-+// WILL TALK TO THE n2_pbd DAEMON.  EVENTUALLY THE LED DRIVER
-+// WILL TALK TO SOME USERLAND APP BUT ***NOT*** SET_LEDS.
-+// 
-+//=============================================================================
-+//    GPIO            Function        State
-+//    0               Red LED         Status          
-+//    1               Green LED       Ready = 1
-+//    2               Disk 2 LED      On = 0
-+//    3               Disk 1 LED      On = 0
-+//    4               Buzzer
-+//    5               Power Button    Pressed = 1
-+//    8               Power Down      Output = 1 powers down NSLU2
-+//    12              Reset           Pressed = 0
-+
-+#include <linux/config.h>
-+#include <linux/version.h>
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/proc_fs.h>
-+#include <linux/device.h>
-+#include <linux/reboot.h>
-+
-+#include <asm/uaccess.h>
-+#include <asm-arm/irq.h>
-+#include <asm-arm/delay.h>
-+
-+/* Set this to 1 to output lots of debug messages. */
-+#define NSLU2_IO_DEBUG 0
-+
-+#if NSLU2_IO_DEBUG
-+#define nslu2_io_debug(args) printk args
-+#else
-+#define nslu2_io_debug(args) ((void)0)
-+#endif
-+
-+#define VERSION                       "0.1.7"
-+
-+#define       NSLU2BZ_MAJOR           62              //buzzer
-+#define NSLU2LM_MAJOR         126
-+
-+
-+#define NSLU2_BEEP_DUR_LONG   2000
-+#define NSLU2_BEEP_DUR_MED    400
-+#define NSLU2_BEEP_DUR_SHORT  100
-+#define NSLU2_BEEP_PITCH_HIGH 250
-+#define NSLU2_BEEP_PITCH_MED  500
-+#define NSLU2_BEEP_PITCH_LOW  1000
-+#define NSLU2_LONG_DELAY      30000
-+
-+#define NSLU2_BZ_BM           (1L << NSLU2_GPIO_BUZZ)
-+
-+// ioctls -- 'M" is used for sound cards...we don't got one so it seems safe
-+
-+#define NSLU2BZ_BEEP_STOP             _IO('M',0)       //stop multi-beep at end of audible
-+#define NSLU2BZ_BEEP          _IO('M',1)       //one beep at current defaults
-+#define NSLU2BZ_BEEPS         _IOW('M',3,long) //param beeps at current defaults
-+#define NSLU2BZ_TONESET               _IOW('M',4,long) //set tone: range is high=250 to low=2000
-+#define NSLU2BZ_ONTIME                _IOW('M',5,long) //ontime for multi-beeps in jiffies
-+#define       NSLU2BZ_SILENTTIME              _IOW('M',6,long) //offtime for multi-beeps in jiffies
-+#define NSLU2BZ_REPEATCNT             _IOW('M',7,long) //number of repeats for multi-beeps 0 = forever
-+#define NSLU2BZ_COMBINED              _IOW('M',8,long) //combine all params in a long
-+
-+#define NSLU2LM_OFF           _IOW('M',32,long)
-+#define NSLU2LM_ON                    _IOW('M',33,long)
-+#define NSLU2LM_BLINK         _IOW('M',34,long)
-+#define NSLU2LM_ALT           _IOW('M',35,long)
-+#define NSLU2LM_ALL_ON                _IO('M',36)
-+#define NSLU2LM_ALL_OFF               _IO('M',37)
-+
-+#define PHYS_LEDS             4
-+#define BLINK_DELAY           25
-+
-+//  OR Masks to turn these LEDs ON
-+
-+#define       RS_RED_ON       0x00000001      //0b0000 0000 0000 0010
-+#define       RS_GRN_ON       0x00000002      //0b0000 0000 0000 0001
-+#define RS_YEL_ON     0x00000003      //0b0000 0000 0000 0011
-+
-+// AND Masks to turn these LEDs OFF
-+
-+#define       RS_RED_OFF      0xfffffffe      //0b1111 1111 1111 1101
-+#define       RS_GRN_OFF      0xfffffffd      //0b1111 1111 1111 1110
-+#define RS_YEL_OFF    0xfffffffc      //0b1111 1111 1111 1100
-+
-+// AND Masks to turn these LEDs ON
-+
-+#define DISK1_ON      0xfffffff7      //0b1111 1111 1111 0111
-+#define       DISK2_ON        0xfffffffb      //0b1111 1111 1111 1011
-+
-+// Or Masks to turn these LEDs OFF
-+
-+#define DISK1_OFF     0x00000008      //0b0000 0000 0000 1000
-+#define       DISK2_OFF       0x00000004      //0b0000 0000 0000 0100 
-+
-+// EOR masks for toggling LEDs on/off
-+
-+#define RS_RG_ALT     0x00000003      //eor mask to toggle rs rg bits
-+#define RS_GRN_TGL    0x00000002
-+#define RS_RED_TGL    0x00000001
-+#define DISK1_TGL     0x00000008
-+#define DISK2_TGL     0x00000004
-+
-+// The LED names for switches
-+
-+#define LED_RS_RED    0
-+#define LED_RS_GRN    1
-+#define       LED_DISK1       2
-+#define LED_DISK2     3
-+#define LED_ALL               4
-+
-+static unsigned long ontime = 50;
-+static unsigned long offtime = 450;
-+static unsigned long bz_repeatcnt = 10;
-+static unsigned long tone = 1000;
-+
-+static struct timer_list n2lm_rsg_timer;      //rs green 
-+static struct timer_list n2lm_rsr_timer;      //rs red
-+static struct timer_list n2lm_d1_timer;               //drive 1
-+static struct timer_list n2lm_d2_timer;               //drive 2
-+static struct timer_list n2bz_timer;          //beeper
-+
-+// sysfs class
-+static struct class *n2lm_class;
-+
-+//==================================================================================================
-+//
-+// Blinking is handled entirely by the 4 timer handlers.  On timeout, the bit in the
-+// GPIO output register is xor'd with a mask corresponding to the selected led which simply
-+// flips that bit.  No record of what any of the other leds is doing is needed.
-+//
-+//==================================================================================================
-+// this blinks rs green or green/yellow if rs red is on
-+#ifndef CONFIG_LEDS
-+static void n2lm_rsg_handler(unsigned long data)
-+{
-+      *IXP4XX_GPIO_GPOUTR ^= RS_GRN_TGL;                      //flip the led
-+      n2lm_rsg_timer.expires = jiffies + BLINK_DELAY;         //next timeout
-+      add_timer(&n2lm_rsg_timer);                             //reinit timer
-+      return;
-+}
-+
-+// this blinks or alternates rs red green... inited wit green on/red off
-+static void n2lm_rsr_handler(unsigned long data)
-+{
-+      *IXP4XX_GPIO_GPOUTR ^= n2lm_rsr_timer.data;
-+      n2lm_rsr_timer.expires = jiffies + BLINK_DELAY;
-+      add_timer(&n2lm_rsr_timer);
-+      return; 
-+}
-+// blinks disk 1
-+static void n2lm_d1_handler(unsigned long data)
-+{
-+      *IXP4XX_GPIO_GPOUTR ^= DISK1_TGL;
-+      n2lm_d1_timer.expires = jiffies + BLINK_DELAY;
-+      add_timer(&n2lm_d1_timer);
-+      return;
-+}
-+// blinks disk 2
-+static void n2lm_d2_handler(unsigned long data)
-+{
-+      *IXP4XX_GPIO_GPOUTR ^= DISK2_TGL;
-+      n2lm_d2_timer.expires = jiffies + BLINK_DELAY;
-+      add_timer(&n2lm_d2_timer);
-+      return;
-+}
-+
-+//==================================================================================================
-+
-+static void n2lm_timer_start(unsigned long led)
-+{
-+
-+      nslu2_io_debug((KERN_DEBUG "timer: %ld\n",led));
-+
-+      switch(led) {
-+              case LED_RS_RED:
-+                      n2lm_rsr_timer.expires = jiffies + BLINK_DELAY;
-+                      add_timer(&n2lm_rsr_timer);
-+                      break;
-+
-+              case LED_RS_GRN:
-+                      n2lm_rsg_timer.expires = jiffies + BLINK_DELAY;
-+                      add_timer(&n2lm_rsg_timer);
-+                      break;
-+
-+              case LED_DISK1:
-+                      n2lm_d1_timer.expires = jiffies + BLINK_DELAY;
-+                      add_timer(&n2lm_d1_timer);
-+                      break;
-+
-+              case LED_DISK2:
-+                      n2lm_d2_timer.expires = jiffies + BLINK_DELAY; 
-+                      add_timer(&n2lm_d2_timer);
-+                      break;
-+
-+              default:
-+                      break;
-+      }
-+      return;
-+}
-+
-+//==================================================================================================
-+
-+static void n2lm_timer_stop(unsigned long led)
-+{
-+      switch (led) {
-+              case LED_RS_RED:
-+                      del_timer(&n2lm_rsr_timer);
-+                      break;
-+              case LED_RS_GRN:
-+                      del_timer(&n2lm_rsg_timer);
-+                      break;
-+              case LED_DISK1:
-+                      del_timer(&n2lm_d1_timer);
-+                      break;
-+              case LED_DISK2: 
-+                      del_timer(&n2lm_d2_timer);
-+                      break;
-+              default:
-+                      break;
-+      }
-+      return;
-+}
-+
-+//--------------------------------------------------------------------------------------------------
-+
-+static void n2lm_timer_stop_all(void)
-+{
-+      del_timer(&n2lm_rsg_timer);
-+      del_timer(&n2lm_rsr_timer);
-+      del_timer(&n2lm_d1_timer); 
-+      del_timer(&n2lm_d2_timer);
-+      return;
-+}
-+//--------------------------------------------------------------------------------------------------
-+
-+static void n2lm_ledon(unsigned long led)
-+{
-+
-+      nslu2_io_debug((KERN_DEBUG "ledon: %ld\n", led));
-+
-+      switch (led) {
-+              case LED_RS_RED:        
-+                      *IXP4XX_GPIO_GPOUTR |= RS_RED_ON;       //1
-+                      return;
-+              case LED_RS_GRN:
-+                      *IXP4XX_GPIO_GPOUTR |= RS_GRN_ON;       //2
-+                      return;
-+              case LED_DISK1:
-+                      *IXP4XX_GPIO_GPOUTR &= DISK1_ON;        //0xfffffff7
-+                      return;
-+              case LED_DISK2: 
-+                      *IXP4XX_GPIO_GPOUTR &= DISK2_ON;        //0xfffffffb
-+                      return;
-+              case LED_ALL:                                   //all green
-+                      *IXP4XX_GPIO_GPOUTR |= RS_GRN_ON;
-+                      *IXP4XX_GPIO_GPOUTR &= (DISK1_ON & DISK2_ON);
-+                      return; 
-+      }
-+}
-+
-+//--------------------------------------------------------------------------------------------------
-+
-+static void n2lm_ledoff(unsigned long led)
-+{
-+
-+      switch (led) {
-+              case LED_RS_RED:        
-+                      *IXP4XX_GPIO_GPOUTR &= RS_RED_OFF;      //0xffffffffe
-+                      return;
-+              case LED_RS_GRN:
-+                      *IXP4XX_GPIO_GPOUTR &= RS_GRN_OFF;      //0xfffffffd
-+                      return;
-+              case LED_DISK1:
-+                      *IXP4XX_GPIO_GPOUTR |= DISK1_OFF;       //0x00000008
-+                      return;
-+              case LED_DISK2: 
-+                      *IXP4XX_GPIO_GPOUTR |= DISK2_OFF;       //0x00000004
-+                      return;
-+              case LED_ALL:
-+                      *IXP4XX_GPIO_GPOUTR &= (RS_GRN_OFF & RS_RED_OFF);
-+                      *IXP4XX_GPIO_GPOUTR |= (DISK1_OFF | DISK2_OFF);
-+      }
-+}
-+
-+//==================================================================================================
-+
-+static int n2lm_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long led)
-+{
-+
-+      nslu2_io_debug((KERN_DEBUG "cmd=%d, led=%ld\n", cmd, led));
-+      
-+      if (led < 0 || led >= PHYS_LEDS)
-+              return -EINVAL;
-+
-+      switch (cmd ) {
-+              case NSLU2LM_ON:
-+                      n2lm_timer_stop(led);
-+                      n2lm_ledon(led);
-+                      break;
-+                      
-+              case NSLU2LM_OFF:
-+                      n2lm_timer_stop(led);
-+                      n2lm_ledoff(led);
-+                      break;
-+                      
-+              case NSLU2LM_BLINK:
-+                      n2lm_ledon(led);
-+                      if (led == LED_RS_RED)
-+                              n2lm_rsr_timer.data = RS_RED_TGL;
-+                      n2lm_timer_start(led);
-+                      break;
-+
-+              case NSLU2LM_ALT:
-+                      if (led == LED_RS_RED)
-+                      {
-+                              n2lm_ledon(LED_RS_GRN);
-+                              n2lm_ledoff(LED_RS_RED);
-+                              n2lm_rsr_timer.data = RS_RG_ALT;
-+                              n2lm_timer_start(LED_RS_RED);
-+                              break;
-+                      } else
-+                              return -EINVAL;
-+              
-+              case NSLU2LM_ALL_ON:
-+                      n2lm_timer_stop_all();
-+                      n2lm_ledon(LED_ALL);
-+                      break;
-+              
-+              case NSLU2LM_ALL_OFF:
-+                      n2lm_timer_stop_all();
-+                      n2lm_ledoff(LED_ALL);
-+                      break;
-+              
-+              default:
-+                      return -EINVAL;
-+      }
-+
-+      return 0;
-+}
-+
-+static struct file_operations n2lm_fops = {
-+      .owner          = THIS_MODULE,
-+      .ioctl          = n2lm_ioctl,
-+};
-+#endif
-+//==================================================================================================
-+// We can't do anything fancy here since the system tick rate is far below that required to
-+// generate a desirable tone.  Therefore we haven't much choice but to use a busy loop until
-+// I get up to speed on the timers.  The saving grace is that for the normal uses, nothing 
-+// important should be haprepening. 
-+//==================================================================================================
-+
-+static void n2_buzz(int tone_delay, int duration)
-+{
-+      int i;
-+
-+      *IXP4XX_GPIO_GPOER &= ~NSLU2_BZ_BM;
-+              
-+      for (i = 1; i < duration; i++) {
-+              *IXP4XX_GPIO_GPOUTR &= ~NSLU2_BZ_BM;
-+              udelay(tone_delay);
-+              *IXP4XX_GPIO_GPOUTR |= NSLU2_BZ_BM;
-+              udelay(tone_delay);
-+      }
-+      *IXP4XX_GPIO_GPOER |= NSLU2_BZ_BM;
-+
-+      return;
-+}
-+//=================================================================================================
-+
-+// this handles the buzzer duty cycle
-+static void n2bz_handler(unsigned long data)
-+{
-+      if (--bz_repeatcnt > 0) {                       //if just one beep left to do
-+              n2bz_timer.expires = jiffies + ontime + offtime;        //next timeout
-+              add_timer(&n2bz_timer);                                 //reinit timer
-+      }
-+      n2_buzz(tone/2, ontime);
-+      nslu2_io_debug((KERN_DEBUG "Count = %d\tOntime = %d\n", bz_repeatcnt, ontime));
-+      return;
-+}
-+
-+//==================================================================================================
-+
-+static int n2bz_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long param)
-+{
-+      switch (cmd) {
-+              case NSLU2BZ_BEEP:
-+                      n2_buzz(tone/2, ontime);
-+                      break;
-+      
-+              case NSLU2BZ_BEEP_STOP:
-+                      del_timer(&n2bz_timer);
-+                      break;
-+
-+              case NSLU2BZ_BEEPS:
-+                      if (param == 0)
-+                              bz_repeatcnt = 0xffffffff;
-+                      else
-+                              bz_repeatcnt = param;
-+                      n2bz_handler(0);
-+                      break;
-+      
-+              case NSLU2BZ_TONESET:
-+                      if (param >= 250 && param <= 2000)
-+                              tone = param;
-+                      break;
-+
-+              case NSLU2BZ_ONTIME:
-+                      if (param > 4 && param < 201)
-+                              ontime = param;
-+                      break;
-+
-+              case NSLU2BZ_SILENTTIME:
-+                      if (param > ontime)                     //enforce a reasonable duty cycle
-+                              offtime = param;
-+                      else
-+                              offtime = ontime;
-+                      break;
-+
-+              case NSLU2BZ_REPEATCNT:
-+                      if (param == 0)
-+                              bz_repeatcnt = 0xffffffff;
-+                      else
-+                              bz_repeatcnt = param;
-+                      break;
-+
-+              case NSLU2BZ_COMBINED:
-+                      bz_repeatcnt =  (param & 0xF0000000) >> 28;     //repeat 1 - 16
-+                      ontime =        (param & 0x0FF00000) >> 20;     //ontime 1 - 256 jiffies
-+                      offtime =       (param & 0x000FFF00) >> 8;      //offtime 1 - 4095 jiffies
-+                      tone =          (param & 0x000000FF) << 4;      //tone (1 - 255) * 16
-+                      break;
-+
-+              default:
-+                      break;
-+      }
-+      return 0;
-+}
-+
-+static struct file_operations n2bz_fops = {
-+      .owner          = THIS_MODULE,
-+      .ioctl          = n2bz_ioctl,
-+};
-+
-+static void n2iom_initarch(void)
-+{
-+#ifndef CONFIG_LEDS
-+      init_timer(&n2lm_rsg_timer);
-+      init_timer(&n2lm_rsr_timer);
-+      init_timer(&n2lm_d1_timer);
-+      init_timer(&n2lm_d2_timer);
-+
-+      n2lm_rsr_timer.function = n2lm_rsr_handler;
-+      n2lm_rsg_timer.function = n2lm_rsg_handler;
-+      n2lm_d2_timer.function = n2lm_d2_handler;
-+      n2lm_d1_timer.function = n2lm_d1_handler;
-+#endif
-+
-+      init_timer(&n2bz_timer);
-+      n2bz_timer.function = n2bz_handler;
-+
-+      n2lm_rsr_timer.data = n2lm_rsg_timer.data = n2lm_d1_timer.data = n2lm_d2_timer.data = n2bz_timer.data = 0;
-+
-+#ifndef CONFIG_LEDS
-+      *IXP4XX_GPIO_GPOER &= 0xfffffff0;       //enable gpio 0-3
-+      *IXP4XX_GPIO_GPOUTR |= 0x00000003;      //turn off the leds
-+      *IXP4XX_GPIO_GPOUTR &= 0xfffffffc;
-+      n2lm_ledon(LED_ALL);
-+      n2_buzz(NSLU2_BEEP_PITCH_MED, NSLU2_BEEP_DUR_SHORT);
-+      n2lm_ledoff(LED_ALL);
-+
-+      // Default the Ready/Status to Red during kernel boot, Turn Green at the end of sysvinit
-+      n2lm_ledon(LED_RS_RED);
-+#endif
-+
-+      return;
-+}
-+
-+//==================================================================================================
-+
-+static int __init n2iom_init(void)
-+{
-+      printk(KERN_INFO "NSLU2: i/o, %s\n", VERSION);
-+      
-+      n2iom_initarch();
-+
-+      n2lm_class = class_create(THIS_MODULE, "nslu2");
-+
-+#ifndef CONFIG_LEDS
-+      if (register_chrdev(NSLU2LM_MAJOR, "n2_ledm", &n2lm_fops) < 0) {
-+              printk(KERN_DEBUG "Led Manager Major %d not available\n", NSLU2LM_MAJOR);
-+              return -EBUSY;
-+      }
-+      else {
-+              class_device_create(n2lm_class, MKDEV(NSLU2LM_MAJOR, 0), NULL, "leds");
-+      }
-+#endif
-+
-+      if (register_chrdev(NSLU2BZ_MAJOR, "n2_bzm", &n2bz_fops) < 0) {
-+              printk(KERN_DEBUG "Buzzer Major %d not available\n", NSLU2BZ_MAJOR);
-+              return -EBUSY;
-+      }
-+      else {
-+              class_device_create(n2lm_class, MKDEV(NSLU2BZ_MAJOR, 0), NULL, "buzzer");
-+      }
-+
-+      return 0;
-+}
-+
-+//==================================================================================================
-+
-+static void __exit n2iom_exit(void)
-+{
-+
-+#ifndef CONFIG_LEDS
-+      del_timer(&n2lm_rsg_timer);
-+      del_timer(&n2lm_rsr_timer);
-+      del_timer(&n2lm_d1_timer);
-+      del_timer(&n2lm_d2_timer);      
-+
-+      unregister_chrdev(NSLU2LM_MAJOR, "n2lm" );
-+      class_device_destroy(n2lm_class, MKDEV(NSLU2LM_MAJOR, 0));
-+#endif
-+
-+      unregister_chrdev(NSLU2BZ_MAJOR, "n2bz");
-+      class_device_destroy(n2lm_class, MKDEV(NSLU2BZ_MAJOR, 0));
-+
-+      class_destroy(n2lm_class);
-+}
-+
-+module_init(n2iom_init);
-+module_exit(n2iom_exit);
-+
-+MODULE_AUTHOR("Karen Spearel <kas11@tampabay.rr.com>");
-+MODULE_DESCRIPTION("NSLU2 I/O driver");
-+MODULE_LICENSE("GPL");
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14/75-nslu2-leds.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.14/75-nslu2-leds.patch
deleted file mode 100644 (file)
index 2701c01..0000000
+++ /dev/null
@@ -1,267 +0,0 @@
---- linux-2.6.13/.pc/75-nslu2-leds.patch/arch/arm/Kconfig      2005-10-26 15:19:34.490925838 -0700
-+++ linux-2.6.13/arch/arm/Kconfig      2005-10-26 15:24:18.628805508 -0700
-@@ -389,7 +389,8 @@ config LEDS
-                  ARCH_EBSA285 || ARCH_IMX || ARCH_INTEGRATOR || \
-                  ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \
-                  ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \
--                 ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE
-+                 ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \
-+                 MACH_NSLU2
-       help
-         If you say Y here, the LEDs on your machine will be used
-         to provide useful information about your current system status.
-@@ -403,7 +404,7 @@ config LEDS
- config LEDS_TIMER
-       bool "Timer LED" if (!ARCH_CDB89712 && !ARCH_OMAP) || \
--                          MACH_OMAP_H2 || MACH_OMAP_PERSEUS2
-+                          MACH_OMAP_H2 || MACH_OMAP_PERSEUS2 || MACH_NSLU2
-       depends on LEDS
-       default y if ARCH_EBSA110
-       help
-@@ -419,7 +420,8 @@ config LEDS_TIMER
- config LEDS_CPU
-       bool "CPU usage LED" if (!ARCH_CDB89712 && !ARCH_EBSA110 && \
--                      !ARCH_OMAP) || MACH_OMAP_H2 || MACH_OMAP_PERSEUS2
-+                      !ARCH_OMAP) || MACH_OMAP_H2 || MACH_OMAP_PERSEUS2 \
-+                      || MACH_NSLU2
-       depends on LEDS
-       help
-         If you say Y here, the red LED will be used to give a good real
---- linux-2.6.13/.pc/75-nslu2-leds.patch/arch/arm/mach-ixp4xx/Makefile 2005-10-26 15:19:43.979522918 -0700
-+++ linux-2.6.13/arch/arm/mach-ixp4xx/Makefile 2005-10-26 15:24:18.632805759 -0700
-@@ -10,3 +10,7 @@ obj-$(CONFIG_ARCH_ADI_COYOTE)        += coyote-
- obj-$(CONFIG_MACH_GTWX5715)   += gtwx5715-pci.o gtwx5715-setup.o
- obj-$(CONFIG_MACH_NSLU2)      += nslu2-pci.o nslu2-setup.o nslu2-power.o nslu2-rtc.o nslu2-io.o
-+leds-$(CONFIG_MACH_NSLU2)     += nslu2-leds.o
-+obj-$(CONFIG_LEDS)            += $(leds-y)
-+
-+
---- linux-2.6.13/.pc/75-nslu2-leds.patch/arch/arm/mach-ixp4xx/nslu2-leds.c     2005-10-26 15:19:44.251540035 -0700
-+++ linux-2.6.13/arch/arm/mach-ixp4xx/nslu2-leds.c     2005-10-26 15:24:18.632805759 -0700
-@@ -0,0 +1,223 @@
-+/*
-+ * arch/arm/mach-ixp4xx/nslu2-leds.c
-+ *
-+ * NSLU2 LEDs driver
-+ *
-+ * Copyright (C) 2005 Tower Technologies
-+ *
-+ * based on nslu2-io.c  
-+ *  Copyright (C) 2004 Karen Spearel
-+ * and arch/arm/mach-footbridge/netwinder-leds.c
-+ *  Copyright (C) 1998-1999 Russell King 
-+ *
-+ * Author: Alessandro Zummo <a.zummo@towertech.it>
-+ * Maintainers: http://www.nslu2-linux.org/
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/spinlock.h>
-+#include <linux/notifier.h>
-+
-+#include <asm/hardware.h>
-+#include <asm/leds.h>
-+#include <asm/mach-types.h>
-+#include <asm/system.h>
-+
-+#define LED_STATE_ENABLED     0x01
-+#define LED_STATE_CLAIMED     0x02
-+#define LED_STATE_IDLE                0x04
-+
-+static unsigned char led_state;
-+static unsigned int hw_led_state;
-+
-+static const unsigned long idle_seq[4] = {
-+      
-+      NSLU2_LED_GRN_BM, 0,
-+      NSLU2_LED_GRN_BM, 0,
-+};
-+
-+static const unsigned long busy_seq[4] = {
-+
-+      NSLU2_LED_GRN_BM, 0,
-+      NSLU2_LED_GRN_BM | NSLU2_LED_RED_BM, 0,
-+};
-+
-+static unsigned char led_count = 0;
-+
-+static DEFINE_SPINLOCK(leds_lock);
-+extern spinlock_t gpio_lock;
-+
-+static void nslu2_leds_event(led_event_t evt)
-+{
-+      unsigned long flags;
-+
-+      spin_lock_irqsave(&leds_lock, flags);
-+
-+      switch (evt) {
-+      case led_start:
-+              /* Let's rock! Red led on, all others off. Remember
-+               * that disk1/disk2 works inverted. On the NSLU2, the
-+               * interface starts in a claimed state. XXX
-+               */
-+              led_state = LED_STATE_ENABLED | LED_STATE_CLAIMED;
-+              hw_led_state = NSLU2_LED_DISK1_BM | NSLU2_LED_DISK2_BM
-+                              | NSLU2_LED_RED_BM;
-+              break;
-+
-+      case led_stop:
-+              led_state &= ~LED_STATE_ENABLED;
-+              break;
-+
-+      case led_claim:
-+              /* The user claimed the interface, red and green off */
-+              led_state |= LED_STATE_CLAIMED;
-+              hw_led_state &= ~(NSLU2_LED_RED_BM | NSLU2_LED_GRN_BM);
-+              break;
-+
-+      case led_release:
-+              /* The user released the interface, preserve the last
-+               * status of the leds, except red/green.
-+               */
-+              led_state &= ~LED_STATE_CLAIMED;
-+              hw_led_state = *IXP4XX_GPIO_GPOUTR & 0x0000000C;
-+              break;
-+
-+#ifdef CONFIG_LEDS_TIMER
-+      case led_timer:
-+              /* Pulse green led */
-+              if (!(led_state & LED_STATE_CLAIMED))
-+              {
-+                      /* clear red and green bits */
-+                      hw_led_state &= ~(NSLU2_LED_RED_BM | NSLU2_LED_GRN_BM);
-+
-+                      /* copy the right sequence in */
-+                      if (led_state & LED_STATE_IDLE)
-+                              hw_led_state |= idle_seq[led_count % 4];
-+                      else
-+                              hw_led_state |= busy_seq[led_count % 4];
-+
-+                      led_count++;
-+              }
-+              break;
-+#endif
-+
-+#ifdef CONFIG_LEDS_CPU
-+
-+      case led_idle_start:
-+              led_state |= LED_STATE_IDLE;
-+#ifndef CONFIG_LEDS_TIMER
-+              /* green on, red off */
-+              hw_led_state |= NSLU2_LED_GRN_BM;
-+              hw_led_state &= ~NSLU2_LED_RED_BM;
-+#endif
-+              break;
-+
-+      case led_idle_end:
-+              led_state &= ~LED_STATE_IDLE;
-+#ifndef CONFIG_LEDS_TIMER
-+              /* green on, red on -> amber on */
-+              hw_led_state |= NSLU2_LED_GRN_BM | NSLU2_LED_RED_BM;
-+#endif
-+              break;
-+#endif
-+
-+      case led_halted:
-+              if (!(led_state & LED_STATE_CLAIMED))
-+                      hw_led_state |= NSLU2_LED_RED_BM;
-+              break;
-+
-+      /* leds */
-+
-+      case led_green_on:
-+              if (led_state & LED_STATE_CLAIMED)
-+                      hw_led_state |= NSLU2_LED_GRN_BM;
-+              break;
-+
-+      case led_green_off:
-+              if (led_state & LED_STATE_CLAIMED)
-+                      hw_led_state &= ~NSLU2_LED_GRN_BM;
-+              break;
-+
-+      case led_amber_on:
-+              if (led_state & LED_STATE_CLAIMED)
-+                      hw_led_state |= (NSLU2_LED_RED_BM | NSLU2_LED_GRN_BM);
-+              break;
-+
-+      case led_amber_off:
-+              if (led_state & LED_STATE_CLAIMED)
-+                      hw_led_state &= ~(NSLU2_LED_RED_BM | NSLU2_LED_GRN_BM);
-+              break;
-+
-+      case led_red_on:
-+              if (led_state & LED_STATE_CLAIMED)
-+                      hw_led_state |= NSLU2_LED_RED_BM;
-+              break;
-+
-+      case led_red_off:
-+              if (led_state & LED_STATE_CLAIMED)
-+                      hw_led_state &= ~NSLU2_LED_RED_BM;
-+              break;
-+
-+      default:
-+              break;
-+      }
-+
-+      spin_unlock_irqrestore(&leds_lock, flags);
-+
-+      if  (led_state & LED_STATE_ENABLED) {
-+              spin_lock_irqsave(&gpio_lock, flags);
-+              *IXP4XX_GPIO_GPOUTR = (*IXP4XX_GPIO_GPOUTR & 0xFFFFFFF0) | hw_led_state;
-+              spin_unlock_irqrestore(&gpio_lock, flags);
-+      }
-+}
-+
-+static int nslu2_leds_panic_event(struct notifier_block *this, unsigned long event,
-+      void *ptr)
-+{
-+      leds_event(led_green_off);
-+      leds_event(led_red_on);
-+
-+      return NOTIFY_DONE;
-+}
-+
-+static struct notifier_block nslu2_leds_panic_block = {
-+      .notifier_call  = nslu2_leds_panic_event,
-+};
-+
-+static int __init nslu2_leds_init(void)
-+{
-+      if (!(machine_is_nslu2()))
-+              return 0;
-+
-+      printk(KERN_INFO "NSLU2: leds\n");
-+
-+      /* register panic notifier */
-+      notifier_chain_register(&panic_notifier_list, &nslu2_leds_panic_block);
-+
-+      /* enable gpio 0-3 */
-+      gpio_line_config(NSLU2_LED_GRN, IXP4XX_GPIO_OUT);
-+      gpio_line_config(NSLU2_LED_RED, IXP4XX_GPIO_OUT);
-+      gpio_line_config(NSLU2_LED_DISK1, IXP4XX_GPIO_OUT);
-+      gpio_line_config(NSLU2_LED_DISK2, IXP4XX_GPIO_OUT);
-+
-+      leds_event = nslu2_leds_event;
-+
-+      /* this will also initialize the leds to the
-+       * default state.
-+       */
-+
-+      leds_event(led_start);
-+
-+      return 0;
-+}
-+
-+module_init(nslu2_leds_init);
-+
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14/90-ixp4xx-pci-le.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.14/90-ixp4xx-pci-le.patch
deleted file mode 100644 (file)
index 1a37b13..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- linux-2.6.13/.pc/90-ixp4xx-pci-le.patch/arch/arm/mach-ixp4xx/common-pci.c  2005-08-28 16:41:01.000000000 -0700
-+++ linux-2.6.13/arch/arm/mach-ixp4xx/common-pci.c     2005-10-26 15:24:30.337542292 -0700
-@@ -427,7 +427,7 @@ void __init ixp4xx_pci_preinit(void)
- #ifdef __ARMEB__
-       *PCI_CSR = PCI_CSR_IC | PCI_CSR_ABE | PCI_CSR_PDS | PCI_CSR_ADS;
- #else
--      *PCI_CSR = PCI_CSR_IC;
-+      *PCI_CSR = PCI_CSR_IC | PCI_CSR_ABE;
- #endif
-       pr_debug("DONE\n");
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14/90-pegasus.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.14/90-pegasus.patch
deleted file mode 100644 (file)
index ab80672..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-*** linux-2.6.13/drivers/usb/net/pegasus.h.orig        Mon Aug 29 01:41:01 2005
---- linux-2.6.13/drivers/usb/net/pegasus.h     Sat Oct 22 20:51:29 2005
-***************
-*** 181,186 ****
---- 181,188 ----
-               DEFAULT_GPIO_RESET )
-  PEGASUS_DEV( "SpeedStream USB 10/100 Ethernet", VENDOR_ACCTON, 0x5046,
-               DEFAULT_GPIO_RESET | PEGASUS_II )
-+ PEGASUS_DEV( "Philips CPWUE01/00 USB 10/100 Ethernet", VENDOR_ACCTON, 0xb004,
-+              DEFAULT_GPIO_RESET | PEGASUS_II )
-  PEGASUS_DEV( "ADMtek ADM8511 \"Pegasus II\" USB Ethernet",
-               VENDOR_ADMTEK, 0x8511,
-               DEFAULT_GPIO_RESET | PEGASUS_II | HAS_HOME_PNA )
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.14/defconfig b/packages/obsolete/nslu2/nslu2-kernel/2.6.14/defconfig
deleted file mode 100644 (file)
index 83b2521..0000000
+++ /dev/null
@@ -1,1556 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.14
-# Mon Nov 28 18:53:25 2005
-#
-CONFIG_ARM=y
-CONFIG_MMU=y
-CONFIG_UID16=y
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-
-#
-# Code maturity level options
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_CLEAN_COMPILE=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-
-#
-# General setup
-#
-CONFIG_LOCALVERSION=""
-CONFIG_LOCALVERSION_AUTO=y
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_SYSCTL=y
-# CONFIG_AUDIT is not set
-CONFIG_HOTPLUG=y
-CONFIG_KOBJECT_UEVENT=y
-# CONFIG_IKCONFIG is not set
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_EMBEDDED=y
-# CONFIG_KALLSYMS is not set
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-# CONFIG_BASE_FULL is not set
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_SHMEM=y
-CONFIG_CC_ALIGN_FUNCTIONS=0
-CONFIG_CC_ALIGN_LABELS=0
-CONFIG_CC_ALIGN_LOOPS=0
-CONFIG_CC_ALIGN_JUMPS=0
-# CONFIG_TINY_SHMEM is not set
-CONFIG_BASE_SMALL=1
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-CONFIG_OBSOLETE_MODPARM=y
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
-
-#
-# System Type
-#
-# CONFIG_ARCH_CLPS7500 is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_CO285 is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_CAMELOT is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_INTEGRATOR is not set
-# CONFIG_ARCH_IOP3XX is not set
-CONFIG_ARCH_IXP4XX=y
-# CONFIG_ARCH_IXP2000 is not set
-# CONFIG_ARCH_L7200 is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C2410 is not set
-# CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_LH7A40X is not set
-# CONFIG_ARCH_OMAP is not set
-# CONFIG_ARCH_VERSATILE is not set
-# CONFIG_ARCH_IMX is not set
-# CONFIG_ARCH_H720X is not set
-# CONFIG_ARCH_AAEC2000 is not set
-CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
-
-#
-# Intel IXP4xx Implementation Options
-#
-
-#
-# IXP4xx Platforms
-#
-CONFIG_MACH_NSLU2=y
-# CONFIG_ARCH_AVILA is not set
-# CONFIG_ARCH_ADI_COYOTE is not set
-# CONFIG_ARCH_IXDP425 is not set
-# CONFIG_MACH_IXDPG425 is not set
-# CONFIG_MACH_IXDP465 is not set
-# CONFIG_ARCH_PRPMC1100 is not set
-# CONFIG_MACH_GTWX5715 is not set
-
-#
-# IXP4xx Options
-#
-CONFIG_IXP4XX_INDIRECT_PCI=y
-
-#
-# Processor Type
-#
-CONFIG_CPU_32=y
-CONFIG_CPU_XSCALE=y
-CONFIG_CPU_32v5=y
-CONFIG_CPU_ABRT_EV5T=y
-CONFIG_CPU_CACHE_VIVT=y
-CONFIG_CPU_TLB_V4WBI=y
-
-#
-# Processor Features
-#
-CONFIG_ARM_THUMB=y
-CONFIG_CPU_BIG_ENDIAN=y
-CONFIG_XSCALE_PMU=y
-CONFIG_DMABOUNCE=y
-
-#
-# Bus support
-#
-CONFIG_ISA_DMA_API=y
-CONFIG_PCI=y
-# CONFIG_PCI_LEGACY_PROC is not set
-
-#
-# PCCARD (PCMCIA/CardBus) support
-#
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-# CONFIG_PREEMPT is not set
-# CONFIG_NO_IDLE_HZ is not set
-# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
-# CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-# CONFIG_SPARSEMEM_STATIC is not set
-# CONFIG_LEDS is not set
-CONFIG_ALIGNMENT_TRAP=y
-
-#
-# Boot options
-#
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="root=/dev/mtdblock4 rw rootfstype=jffs2 mem=32M@0x00000000 init=/linuxrc x1205.hctosys=1 noirqdebug console=ttyS0,115200n8"
-# CONFIG_XIP_KERNEL is not set
-
-#
-# Floating point emulation
-#
-
-#
-# At least one emulation must be selected
-#
-CONFIG_FPE_NWFPE=y
-# CONFIG_FPE_FASTFPE is not set
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_AOUT is not set
-# CONFIG_BINFMT_MISC is not set
-# CONFIG_ARTHUR is not set
-
-#
-# Power management options
-#
-# CONFIG_PM is not set
-
-#
-# Networking
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=m
-CONFIG_PACKET_MMAP=y
-CONFIG_UNIX=y
-CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_FIB_HASH=y
-# CONFIG_IP_PNP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE is not set
-# CONFIG_ARPD is not set
-# CONFIG_SYN_COOKIES is not set
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_DIAG=y
-CONFIG_INET_TCP_DIAG=y
-# CONFIG_TCP_CONG_ADVANCED is not set
-CONFIG_TCP_CONG_BIC=y
-
-#
-# IP: Virtual Server Configuration
-#
-# CONFIG_IP_VS is not set
-CONFIG_IPV6=m
-# CONFIG_IPV6_PRIVACY is not set
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_IPV6_TUNNEL=m
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_BRIDGE_NETFILTER=y
-# CONFIG_NETFILTER_NETLINK is not set
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_IP_NF_CONNTRACK=m
-# CONFIG_IP_NF_CT_ACCT is not set
-# CONFIG_IP_NF_CONNTRACK_MARK is not set
-# CONFIG_IP_NF_CONNTRACK_EVENTS is not set
-CONFIG_IP_NF_CT_PROTO_SCTP=m
-CONFIG_IP_NF_FTP=m
-CONFIG_IP_NF_IRC=m
-# CONFIG_IP_NF_NETBIOS_NS is not set
-CONFIG_IP_NF_TFTP=m
-CONFIG_IP_NF_AMANDA=m
-# CONFIG_IP_NF_PPTP is not set
-CONFIG_IP_NF_QUEUE=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_LIMIT=m
-CONFIG_IP_NF_MATCH_IPRANGE=m
-CONFIG_IP_NF_MATCH_MAC=m
-CONFIG_IP_NF_MATCH_PKTTYPE=m
-CONFIG_IP_NF_MATCH_MARK=m
-CONFIG_IP_NF_MATCH_MULTIPORT=m
-CONFIG_IP_NF_MATCH_TOS=m
-CONFIG_IP_NF_MATCH_RECENT=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_DSCP=m
-CONFIG_IP_NF_MATCH_AH_ESP=m
-CONFIG_IP_NF_MATCH_LENGTH=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_MATCH_TCPMSS=m
-CONFIG_IP_NF_MATCH_HELPER=m
-CONFIG_IP_NF_MATCH_STATE=m
-CONFIG_IP_NF_MATCH_CONNTRACK=m
-CONFIG_IP_NF_MATCH_OWNER=m
-CONFIG_IP_NF_MATCH_PHYSDEV=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
-CONFIG_IP_NF_MATCH_REALM=m
-# CONFIG_IP_NF_MATCH_SCTP is not set
-# CONFIG_IP_NF_MATCH_DCCP is not set
-CONFIG_IP_NF_MATCH_COMMENT=m
-CONFIG_IP_NF_MATCH_HASHLIMIT=m
-# CONFIG_IP_NF_MATCH_STRING is not set
-CONFIG_IP_NF_FILTER=m
-# CONFIG_IP_NF_TARGET_REJECT is not set
-CONFIG_IP_NF_TARGET_LOG=m
-CONFIG_IP_NF_TARGET_ULOG=m
-CONFIG_IP_NF_TARGET_TCPMSS=m
-# CONFIG_IP_NF_TARGET_NFQUEUE is not set
-CONFIG_IP_NF_NAT=m
-CONFIG_IP_NF_NAT_NEEDED=y
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_SAME=m
-CONFIG_IP_NF_NAT_SNMP_BASIC=m
-CONFIG_IP_NF_NAT_IRC=m
-CONFIG_IP_NF_NAT_FTP=m
-CONFIG_IP_NF_NAT_TFTP=m
-CONFIG_IP_NF_NAT_AMANDA=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_TOS=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_DSCP=m
-CONFIG_IP_NF_TARGET_MARK=m
-CONFIG_IP_NF_TARGET_CLASSIFY=m
-# CONFIG_IP_NF_TARGET_TTL is not set
-# CONFIG_IP_NF_RAW is not set
-# CONFIG_IP_NF_ARPTABLES is not set
-
-#
-# IPv6: Netfilter Configuration (EXPERIMENTAL)
-#
-# CONFIG_IP6_NF_QUEUE is not set
-# CONFIG_IP6_NF_IPTABLES is not set
-# CONFIG_IP6_NF_TARGET_NFQUEUE is not set
-
-#
-# Bridge: Netfilter Configuration
-#
-# CONFIG_BRIDGE_NF_EBTABLES is not set
-
-#
-# DCCP Configuration (EXPERIMENTAL)
-#
-# CONFIG_IP_DCCP is not set
-
-#
-# SCTP Configuration (EXPERIMENTAL)
-#
-# CONFIG_IP_SCTP is not set
-# CONFIG_ATM is not set
-CONFIG_BRIDGE=m
-CONFIG_VLAN_8021Q=m
-# CONFIG_DECNET is not set
-CONFIG_LLC=m
-# CONFIG_LLC2 is not set
-CONFIG_IPX=m
-# CONFIG_IPX_INTERN is not set
-CONFIG_ATALK=m
-CONFIG_DEV_APPLETALK=y
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
-CONFIG_IPDDP_DECAP=y
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_NET_DIVERT is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-# CONFIG_NET_SCHED is not set
-CONFIG_NET_CLS_ROUTE=y
-
-#
-# Network testing
-#
-CONFIG_NET_PKTGEN=m
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-# CONFIG_BT_HIDP is not set
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_HCIUSB=m
-CONFIG_BT_HCIUSB_SCO=y
-# CONFIG_BT_HCIUART is not set
-CONFIG_BT_HCIBCM203X=m
-# CONFIG_BT_HCIBPA10X is not set
-# CONFIG_BT_HCIBFUSB is not set
-# CONFIG_BT_HCIVHCI is not set
-# CONFIG_IEEE80211 is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=m
-
-#
-# Memory Technology Devices (MTD)
-#
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-CONFIG_MTD_CONCAT=y
-CONFIG_MTD_PARTITIONS=y
-CONFIG_MTD_REDBOOT_PARTS=y
-CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
-# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
-# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLOCK=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=y
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=y
-CONFIG_MTD_CFI_ADV_OPTIONS=y
-# CONFIG_MTD_CFI_NOSWAP is not set
-CONFIG_MTD_CFI_BE_BYTE_SWAP=y
-# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
-CONFIG_MTD_CFI_GEOMETRY=y
-# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-# CONFIG_MTD_OTP is not set
-CONFIG_MTD_CFI_INTELEXT=y
-# CONFIG_MTD_CFI_AMDSTD is not set
-# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=y
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-# CONFIG_MTD_XIP is not set
-
-#
-# Mapping drivers for chip access
-#
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-# CONFIG_MTD_PHYSMAP is not set
-# CONFIG_MTD_ARM_INTEGRATOR is not set
-CONFIG_MTD_IXP4XX=y
-# CONFIG_MTD_EDB7312 is not set
-# CONFIG_MTD_PCI is not set
-# CONFIG_MTD_PLATRAM is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLKMTD is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-
-#
-# NAND Flash Device Drivers
-#
-# CONFIG_MTD_NAND is not set
-
-#
-# Parallel port support
-#
-# CONFIG_PARPORT is not set
-
-#
-# Plug and Play support
-#
-
-#
-# Block devices
-#
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_UMEM is not set
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=m
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_SX8 is not set
-# CONFIG_BLK_DEV_UB is not set
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=4
-CONFIG_BLK_DEV_RAM_SIZE=10240
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-# CONFIG_IOSCHED_AS is not set
-CONFIG_IOSCHED_DEADLINE=y
-# CONFIG_IOSCHED_CFQ is not set
-# CONFIG_ATA_OVER_ETH is not set
-
-#
-# ATA/ATAPI/MFM/RLL support
-#
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=y
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CHR_DEV_OSST is not set
-CONFIG_BLK_DEV_SR=m
-# CONFIG_BLK_DEV_SR_VENDOR is not set
-CONFIG_CHR_DEV_SG=m
-# CONFIG_CHR_DEV_SCH is not set
-
-#
-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-#
-CONFIG_SCSI_MULTI_LUN=y
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-
-#
-# SCSI Transport Attributes
-#
-# CONFIG_SCSI_SPI_ATTRS is not set
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-# CONFIG_SCSI_SAS_ATTRS is not set
-
-#
-# SCSI low-level drivers
-#
-# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
-# CONFIG_SCSI_3W_9XXX is not set
-# CONFIG_SCSI_ACARD is not set
-# CONFIG_SCSI_AACRAID is not set
-# CONFIG_SCSI_AIC7XXX is not set
-# CONFIG_SCSI_AIC7XXX_OLD is not set
-# CONFIG_SCSI_AIC79XX is not set
-# CONFIG_SCSI_DPT_I2O is not set
-# CONFIG_MEGARAID_NEWGEN is not set
-# CONFIG_MEGARAID_LEGACY is not set
-# CONFIG_MEGARAID_SAS is not set
-# CONFIG_SCSI_SATA is not set
-# CONFIG_SCSI_BUSLOGIC is not set
-# CONFIG_SCSI_DMX3191D is not set
-# CONFIG_SCSI_EATA is not set
-# CONFIG_SCSI_FUTURE_DOMAIN is not set
-# CONFIG_SCSI_GDTH is not set
-# CONFIG_SCSI_IPS is not set
-# CONFIG_SCSI_INITIO is not set
-# CONFIG_SCSI_INIA100 is not set
-# CONFIG_SCSI_SYM53C8XX_2 is not set
-# CONFIG_SCSI_IPR is not set
-# CONFIG_SCSI_QLOGIC_FC is not set
-# CONFIG_SCSI_QLOGIC_1280 is not set
-CONFIG_SCSI_QLA2XXX=y
-# CONFIG_SCSI_QLA21XX is not set
-# CONFIG_SCSI_QLA22XX is not set
-# CONFIG_SCSI_QLA2300 is not set
-# CONFIG_SCSI_QLA2322 is not set
-# CONFIG_SCSI_QLA6312 is not set
-# CONFIG_SCSI_QLA24XX is not set
-# CONFIG_SCSI_LPFC is not set
-# CONFIG_SCSI_DC395x is not set
-# CONFIG_SCSI_DC390T is not set
-# CONFIG_SCSI_NSP32 is not set
-# CONFIG_SCSI_DEBUG is not set
-
-#
-# Multi-device support (RAID and LVM)
-#
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=m
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID5=m
-CONFIG_MD_RAID6=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-CONFIG_BLK_DEV_DM=m
-# CONFIG_DM_CRYPT is not set
-# CONFIG_DM_SNAPSHOT is not set
-# CONFIG_DM_MIRROR is not set
-# CONFIG_DM_ZERO is not set
-# CONFIG_DM_MULTIPATH is not set
-
-#
-# Fusion MPT device support
-#
-# CONFIG_FUSION is not set
-# CONFIG_FUSION_SPI is not set
-# CONFIG_FUSION_FC is not set
-# CONFIG_FUSION_SAS is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_IEEE1394 is not set
-
-#
-# I2O device support
-#
-# CONFIG_I2O is not set
-
-#
-# Network device support
-#
-CONFIG_NETDEVICES=y
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-CONFIG_TUN=m
-
-#
-# ARCnet devices
-#
-# CONFIG_ARCNET is not set
-
-#
-# PHY device support
-#
-# CONFIG_PHYLIB is not set
-
-#
-# Ethernet (10 or 100Mbit)
-#
-CONFIG_NET_ETHERNET=y
-CONFIG_MACLIST=y
-CONFIG_MII=y
-# CONFIG_HAPPYMEAL is not set
-# CONFIG_SUNGEM is not set
-# CONFIG_CASSINI is not set
-# CONFIG_NET_VENDOR_3COM is not set
-# CONFIG_SMC91X is not set
-# CONFIG_DM9000 is not set
-
-#
-# Tulip family network device support
-#
-# CONFIG_NET_TULIP is not set
-# CONFIG_HP100 is not set
-CONFIG_NET_PCI=y
-# CONFIG_PCNET32 is not set
-# CONFIG_AMD8111_ETH is not set
-# CONFIG_ADAPTEC_STARFIRE is not set
-# CONFIG_B44 is not set
-# CONFIG_FORCEDETH is not set
-# CONFIG_DGRS is not set
-# CONFIG_EEPRO100 is not set
-# CONFIG_E100 is not set
-# CONFIG_FEALNX is not set
-# CONFIG_NATSEMI is not set
-# CONFIG_NE2K_PCI is not set
-# CONFIG_8139CP is not set
-# CONFIG_8139TOO is not set
-# CONFIG_SIS900 is not set
-# CONFIG_EPIC100 is not set
-# CONFIG_SUNDANCE is not set
-# CONFIG_TLAN is not set
-# CONFIG_VIA_RHINE is not set
-
-#
-# Ethernet (1000 Mbit)
-#
-# CONFIG_ACENIC is not set
-# CONFIG_DL2K is not set
-# CONFIG_E1000 is not set
-# CONFIG_NS83820 is not set
-# CONFIG_HAMACHI is not set
-# CONFIG_YELLOWFIN is not set
-# CONFIG_R8169 is not set
-# CONFIG_SIS190 is not set
-# CONFIG_SKGE is not set
-# CONFIG_SK98LIN is not set
-# CONFIG_VIA_VELOCITY is not set
-# CONFIG_TIGON3 is not set
-# CONFIG_BNX2 is not set
-
-#
-# Ethernet (10000 Mbit)
-#
-# CONFIG_CHELSIO_T1 is not set
-# CONFIG_IXGB is not set
-# CONFIG_S2IO is not set
-
-#
-# Token Ring devices
-#
-# CONFIG_TR is not set
-
-#
-# Wireless LAN (non-hamradio)
-#
-CONFIG_NET_RADIO=y
-
-#
-# Obsolete Wireless cards support (pre-802.11)
-#
-# CONFIG_STRIP is not set
-
-#
-# Wireless 802.11b ISA/PCI cards support
-#
-# CONFIG_AIRO is not set
-# CONFIG_HERMES is not set
-# CONFIG_ATMEL is not set
-
-#
-# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
-#
-# CONFIG_PRISM54 is not set
-# CONFIG_HOSTAP is not set
-CONFIG_NET_WIRELESS=y
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN is not set
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-CONFIG_PPP=m
-# CONFIG_PPP_MULTILINK is not set
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-# CONFIG_PPP_SYNC_TTY is not set
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-# CONFIG_PPPOE is not set
-# CONFIG_SLIP is not set
-# CONFIG_NET_FC is not set
-# CONFIG_SHAPER is not set
-CONFIG_NETCONSOLE=m
-CONFIG_NETPOLL=y
-# CONFIG_NETPOLL_RX is not set
-# CONFIG_NETPOLL_TRAP is not set
-CONFIG_NET_POLL_CONTROLLER=y
-
-#
-# ISDN subsystem
-#
-# CONFIG_ISDN is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=m
-
-#
-# Userland interfaces
-#
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_TSDEV is not set
-CONFIG_INPUT_EVDEV=m
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
-# CONFIG_INPUT_MISC is not set
-
-#
-# Hardware I/O ports
-#
-# CONFIG_SERIO is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-# CONFIG_VT is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=2
-# CONFIG_SERIAL_8250_EXTENDED is not set
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_JSM is not set
-CONFIG_UNIX98_PTYS=y
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=16
-
-#
-# IPMI
-#
-# CONFIG_IPMI_HANDLER is not set
-
-#
-# Watchdog Cards
-#
-CONFIG_WATCHDOG=y
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-
-#
-# Watchdog Device Drivers
-#
-# CONFIG_SOFT_WATCHDOG is not set
-CONFIG_IXP4XX_WATCHDOG=y
-
-#
-# PCI-based Watchdog Cards
-#
-# CONFIG_PCIPCWATCHDOG is not set
-# CONFIG_WDTPCI is not set
-
-#
-# USB-based Watchdog Cards
-#
-# CONFIG_USBPCWATCHDOG is not set
-# CONFIG_NVRAM is not set
-CONFIG_RTC=m
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-
-#
-# Ftape, the floppy tape device driver
-#
-# CONFIG_DRM is not set
-# CONFIG_RAW_DRIVER is not set
-
-#
-# TPM devices
-#
-# CONFIG_TCG_TPM is not set
-
-#
-# I2C support
-#
-CONFIG_I2C=y
-CONFIG_I2C_CHARDEV=y
-
-#
-# I2C Algorithms
-#
-CONFIG_I2C_ALGOBIT=y
-# CONFIG_I2C_ALGOPCF is not set
-# CONFIG_I2C_ALGOPCA is not set
-
-#
-# I2C Hardware Bus support
-#
-# CONFIG_I2C_ALI1535 is not set
-# CONFIG_I2C_ALI1563 is not set
-# CONFIG_I2C_ALI15X3 is not set
-# CONFIG_I2C_AMD756 is not set
-# CONFIG_I2C_AMD8111 is not set
-# CONFIG_I2C_I801 is not set
-# CONFIG_I2C_I810 is not set
-# CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_IOP3XX is not set
-CONFIG_I2C_IXP4XX=y
-# CONFIG_I2C_NFORCE2 is not set
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_PROSAVAGE is not set
-# CONFIG_I2C_SAVAGE4 is not set
-# CONFIG_SCx200_ACB is not set
-# CONFIG_I2C_SIS5595 is not set
-# CONFIG_I2C_SIS630 is not set
-# CONFIG_I2C_SIS96X is not set
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_VIA is not set
-# CONFIG_I2C_VIAPRO is not set
-# CONFIG_I2C_VOODOO3 is not set
-# CONFIG_I2C_PCA_ISA is not set
-
-#
-# Miscellaneous I2C Chip support
-#
-# CONFIG_SENSORS_DS1337 is not set
-# CONFIG_SENSORS_DS1374 is not set
-CONFIG_SENSORS_EEPROM=y
-# CONFIG_SENSORS_PCF8574 is not set
-# CONFIG_SENSORS_PCA9539 is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_SENSORS_RTC8564 is not set
-# CONFIG_SENSORS_MAX6875 is not set
-CONFIG_SENSORS_X1205=y
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
-
-#
-# Hardware Monitoring support
-#
-CONFIG_HWMON=y
-# CONFIG_HWMON_VID is not set
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ADM9240 is not set
-# CONFIG_SENSORS_ASB100 is not set
-# CONFIG_SENSORS_ATXP1 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_FSCHER is not set
-# CONFIG_SENSORS_FSCPOS is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_SIS5595 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_VIA686A is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83792D is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83627HF is not set
-# CONFIG_SENSORS_W83627EHF is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Misc devices
-#
-
-#
-# Multimedia Capabilities Port drivers
-#
-
-#
-# Multimedia devices
-#
-CONFIG_VIDEO_DEV=m
-
-#
-# Video For Linux
-#
-
-#
-# Video Adapters
-#
-CONFIG_VIDEO_BT848=m
-# CONFIG_VIDEO_SAA6588 is not set
-CONFIG_VIDEO_CPIA=m
-CONFIG_VIDEO_CPIA_USB=m
-CONFIG_VIDEO_SAA5246A=m
-CONFIG_VIDEO_SAA5249=m
-CONFIG_TUNER_3036=m
-CONFIG_VIDEO_STRADIS=m
-CONFIG_VIDEO_ZORAN=m
-CONFIG_VIDEO_ZORAN_BUZ=m
-CONFIG_VIDEO_ZORAN_DC10=m
-CONFIG_VIDEO_ZORAN_DC30=m
-CONFIG_VIDEO_ZORAN_LML33=m
-CONFIG_VIDEO_ZORAN_LML33R10=m
-CONFIG_VIDEO_SAA7134=m
-CONFIG_VIDEO_MXB=m
-CONFIG_VIDEO_DPC=m
-CONFIG_VIDEO_HEXIUM_ORION=m
-CONFIG_VIDEO_HEXIUM_GEMINI=m
-CONFIG_VIDEO_CX88=m
-CONFIG_VIDEO_OVCAMCHIP=m
-
-#
-# Radio Adapters
-#
-# CONFIG_RADIO_GEMTEK_PCI is not set
-# CONFIG_RADIO_MAXIRADIO is not set
-# CONFIG_RADIO_MAESTRO is not set
-
-#
-# Digital Video Broadcasting Devices
-#
-# CONFIG_DVB is not set
-CONFIG_VIDEO_SAA7146=m
-CONFIG_VIDEO_SAA7146_VV=m
-CONFIG_VIDEO_VIDEOBUF=m
-CONFIG_VIDEO_TUNER=m
-CONFIG_VIDEO_BUF=m
-CONFIG_VIDEO_BTCX=m
-CONFIG_VIDEO_IR=m
-CONFIG_VIDEO_TVEEPROM=m
-
-#
-# Graphics support
-#
-# CONFIG_FB is not set
-
-#
-# Sound
-#
-CONFIG_SOUND=m
-
-#
-# Advanced Linux Sound Architecture
-#
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-CONFIG_SND_HWDEP=m
-CONFIG_SND_RAWMIDI=m
-# CONFIG_SND_SEQUENCER is not set
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-# CONFIG_SND_RTCTIMER is not set
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-
-#
-# Generic devices
-#
-# CONFIG_SND_DUMMY is not set
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-
-#
-# PCI devices
-#
-# CONFIG_SND_ALI5451 is not set
-# CONFIG_SND_ATIIXP is not set
-# CONFIG_SND_ATIIXP_MODEM is not set
-# CONFIG_SND_AU8810 is not set
-# CONFIG_SND_AU8820 is not set
-# CONFIG_SND_AU8830 is not set
-# CONFIG_SND_AZT3328 is not set
-# CONFIG_SND_BT87X is not set
-# CONFIG_SND_CS46XX is not set
-# CONFIG_SND_CS4281 is not set
-# CONFIG_SND_EMU10K1 is not set
-# CONFIG_SND_EMU10K1X is not set
-# CONFIG_SND_CA0106 is not set
-# CONFIG_SND_KORG1212 is not set
-# CONFIG_SND_MIXART is not set
-# CONFIG_SND_NM256 is not set
-# CONFIG_SND_RME32 is not set
-# CONFIG_SND_RME96 is not set
-# CONFIG_SND_RME9652 is not set
-# CONFIG_SND_HDSP is not set
-# CONFIG_SND_HDSPM is not set
-# CONFIG_SND_TRIDENT is not set
-# CONFIG_SND_YMFPCI is not set
-# CONFIG_SND_AD1889 is not set
-# CONFIG_SND_ALS4000 is not set
-# CONFIG_SND_CMIPCI is not set
-# CONFIG_SND_ENS1370 is not set
-# CONFIG_SND_ENS1371 is not set
-# CONFIG_SND_ES1938 is not set
-# CONFIG_SND_ES1968 is not set
-# CONFIG_SND_MAESTRO3 is not set
-# CONFIG_SND_FM801 is not set
-# CONFIG_SND_ICE1712 is not set
-# CONFIG_SND_ICE1724 is not set
-# CONFIG_SND_INTEL8X0 is not set
-# CONFIG_SND_INTEL8X0M is not set
-# CONFIG_SND_SONICVIBES is not set
-# CONFIG_SND_VIA82XX is not set
-# CONFIG_SND_VIA82XX_MODEM is not set
-# CONFIG_SND_VX222 is not set
-# CONFIG_SND_HDA_INTEL is not set
-
-#
-# ALSA ARM devices
-#
-
-#
-# USB devices
-#
-CONFIG_SND_USB_AUDIO=m
-
-#
-# Open Sound System
-#
-# CONFIG_SOUND_PRIME is not set
-
-#
-# USB support
-#
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB=y
-# CONFIG_USB_DEBUG is not set
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-# CONFIG_USB_BANDWIDTH is not set
-# CONFIG_USB_DYNAMIC_MINORS is not set
-# CONFIG_USB_OTG is not set
-
-#
-# USB Host Controller Drivers
-#
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_SPLIT_ISO=y
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-# CONFIG_USB_ISP116X_HCD is not set
-CONFIG_USB_OHCI_HCD=y
-# CONFIG_USB_OHCI_BIG_ENDIAN is not set
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-# CONFIG_USB_UHCI_HCD is not set
-# CONFIG_USB_SL811_HCD is not set
-
-#
-# USB Device Class drivers
-#
-# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set
-
-#
-# USB Bluetooth TTY can only be used with disabled Bluetooth subsystem
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-
-#
-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
-#
-CONFIG_USB_STORAGE=y
-# CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
-# CONFIG_USB_STORAGE_FREECOM is not set
-# CONFIG_USB_STORAGE_DPCM is not set
-# CONFIG_USB_STORAGE_USBAT is not set
-# CONFIG_USB_STORAGE_SDDR09 is not set
-# CONFIG_USB_STORAGE_SDDR55 is not set
-# CONFIG_USB_STORAGE_JUMPSHOT is not set
-# CONFIG_USB_STORAGE_ONETOUCH is not set
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=m
-CONFIG_USB_HIDINPUT=y
-# CONFIG_HID_FF is not set
-CONFIG_USB_HIDDEV=y
-
-#
-# USB HID Boot Protocol drivers
-#
-CONFIG_USB_KBD=m
-# CONFIG_USB_MOUSE is not set
-# CONFIG_USB_AIPTEK is not set
-# CONFIG_USB_WACOM is not set
-# CONFIG_USB_ACECAD is not set
-# CONFIG_USB_KBTAB is not set
-# CONFIG_USB_POWERMATE is not set
-# CONFIG_USB_MTOUCH is not set
-# CONFIG_USB_ITMTOUCH is not set
-# CONFIG_USB_EGALAX is not set
-# CONFIG_USB_YEALINK is not set
-# CONFIG_USB_XPAD is not set
-# CONFIG_USB_ATI_REMOTE is not set
-# CONFIG_USB_KEYSPAN_REMOTE is not set
-# CONFIG_USB_APPLETOUCH is not set
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-
-#
-# USB Multimedia devices
-#
-# CONFIG_USB_DABUSB is not set
-# CONFIG_USB_VICAM is not set
-# CONFIG_USB_DSBR is not set
-# CONFIG_USB_IBMCAM is not set
-# CONFIG_USB_KONICAWC is not set
-# CONFIG_USB_OV511 is not set
-# CONFIG_USB_SE401 is not set
-# CONFIG_USB_SN9C102 is not set
-# CONFIG_USB_STV680 is not set
-# CONFIG_USB_W9968CF is not set
-CONFIG_USB_PWC=m
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_CDCETHER=m
-# CONFIG_USB_NET_GL620A is not set
-CONFIG_USB_NET_NET1080=m
-# CONFIG_USB_NET_PLUSB is not set
-# CONFIG_USB_NET_RNDIS_HOST is not set
-# CONFIG_USB_NET_CDC_SUBSET is not set
-CONFIG_USB_NET_ZAURUS=m
-# CONFIG_USB_ZD1201 is not set
-# CONFIG_USB_MON is not set
-
-#
-# USB port drivers
-#
-
-#
-# USB Serial Converter support
-#
-CONFIG_USB_SERIAL=m
-CONFIG_USB_SERIAL_GENERIC=y
-# CONFIG_USB_SERIAL_AIRPRIME is not set
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_WHITEHEAT=m
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-# CONFIG_USB_SERIAL_CP2101 is not set
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-# CONFIG_USB_SERIAL_KEYSPAN is not set
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-CONFIG_USB_SERIAL_PL2303=m
-# CONFIG_USB_SERIAL_HP4X is not set
-CONFIG_USB_SERIAL_SAFE=m
-# CONFIG_USB_SERIAL_SAFE_PADDED is not set
-CONFIG_USB_SERIAL_TI=m
-CONFIG_USB_SERIAL_CYBERJACK=m
-CONFIG_USB_SERIAL_XIRCOM=m
-CONFIG_USB_SERIAL_OMNINET=m
-CONFIG_USB_EZUSB=y
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
-# CONFIG_USB_AUERSWALD is not set
-# CONFIG_USB_RIO500 is not set
-# CONFIG_USB_LEGOTOWER is not set
-# CONFIG_USB_LCD is not set
-# CONFIG_USB_LED is not set
-# CONFIG_USB_CYTHERM is not set
-# CONFIG_USB_PHIDGETKIT is not set
-# CONFIG_USB_PHIDGETSERVO is not set
-# CONFIG_USB_IDMOUSE is not set
-# CONFIG_USB_SISUSBVGA is not set
-# CONFIG_USB_LD is not set
-# CONFIG_USB_TEST is not set
-
-#
-# USB DSL modem support
-#
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-
-#
-# MMC/SD Card support
-#
-# CONFIG_MMC is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=m
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=m
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-CONFIG_JBD=m
-# CONFIG_JBD_DEBUG is not set
-CONFIG_FS_MBCACHE=m
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-# CONFIG_JFS_FS is not set
-CONFIG_FS_POSIX_ACL=y
-# CONFIG_XFS_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_ROMFS_FS is not set
-CONFIG_INOTIFY=y
-# CONFIG_QUOTA is not set
-CONFIG_DNOTIFY=y
-# CONFIG_AUTOFS_FS is not set
-CONFIG_AUTOFS4_FS=m
-# CONFIG_FUSE_FS is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_ZISOFS_FS=m
-CONFIG_UDF_FS=m
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
-CONFIG_NTFS_FS=m
-# CONFIG_NTFS_DEBUG is not set
-CONFIG_NTFS_RW=y
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-# CONFIG_RELAYFS_FS is not set
-
-#
-# Miscellaneous filesystems
-#
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_JFFS_FS is not set
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-
-#
-# Network File Systems
-#
-CONFIG_NFS_FS=m
-CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
-CONFIG_NFS_V4=y
-CONFIG_NFS_DIRECTIO=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-# CONFIG_NFSD_V3_ACL is not set
-CONFIG_NFSD_V4=y
-CONFIG_NFSD_TCP=y
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=m
-CONFIG_SUNRPC_GSS=m
-CONFIG_RPCSEC_GSS_KRB5=m
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=m
-# CONFIG_SMB_NLS_DEFAULT is not set
-CONFIG_CIFS=m
-# CONFIG_CIFS_STATS is not set
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-# CONFIG_CIFS_EXPERIMENTAL is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-# CONFIG_9P_FS is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_EFI_PARTITION is not set
-
-#
-# Native Language Support
-#
-CONFIG_NLS=m
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_UTF8=m
-
-#
-# Profiling support
-#
-# CONFIG_PROFILING is not set
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-# CONFIG_DEBUG_KERNEL is not set
-CONFIG_LOG_BUF_SHIFT=14
-# CONFIG_DEBUG_BUGVERBOSE is not set
-CONFIG_FRAME_POINTER=y
-# CONFIG_DEBUG_USER is not set
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-
-#
-# Cryptographic options
-#
-CONFIG_CRYPTO=y
-CONFIG_CRYPTO_HMAC=y
-# CONFIG_CRYPTO_NULL is not set
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=m
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_WP512=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_AES=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_CRC32C=m
-CONFIG_CRYPTO_TEST=m
-
-#
-# Hardware crypto devices
-#
-
-#
-# Library routines
-#
-CONFIG_CRC_CCITT=m
-# CONFIG_CRC16 is not set
-CONFIG_CRC32=y
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.15/00-memory-h-page-shift.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.15/00-memory-h-page-shift.patch
deleted file mode 100644 (file)
index 30d3495..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=3218/1
-
-PAGE_SHIFT is undeclared in include/asm-arm/arch-ixp4xx/memory.h, identified by the following kernel compilation error:
-
-CC [M] sound/core/memory.o
-In file included from include/asm/memory.h:27,
-from include/asm/io.h:28,
-from sound/core/memory.c:24:
-include/asm/arch/memory.h: In function `__arch_adjust_zones':
-include/asm/arch/memory.h:28: error: `PAGE_SHIFT' undeclared (first use
-in this function)
-
-This patch replaces my previous attempt at fixing this problem (Patch 3214/1) and is based on the following feedback:
-
-Russell King wrote:
-> The error you see came up on SA1100. The best solution was to move
-> the __arch_adjust_zones() function out of line. I suggest ixp4xx
-> does the same.
-
-I have moved the function out of line into arch/arm/mach-ixp4xx/common-pci.c as suggested.
-
-Signed-off-by: Rod Whitby <rod@whitby.id.au>
---- linux-2.6.15-rc7/include/asm-arm/arch-ixp4xx/memory.h~     2005-12-30 05:18:27.000000000 +1030
-+++ linux-2.6.15-rc7/include/asm-arm/arch-ixp4xx/memory.h      2005-12-30 05:36:04.000000000 +1030
-@@ -16,31 +16,10 @@
- #ifndef __ASSEMBLY__
--/*
-- * Only first 64MB of memory can be accessed via PCI.
-- * We use GFP_DMA to allocate safe buffers to do map/unmap.
-- * This is really ugly and we need a better way of specifying
-- * DMA-capable regions of memory.
-- */
--static inline void __arch_adjust_zones(int node, unsigned long *zone_size, 
--      unsigned long *zhole_size) 
--{
--      unsigned int sz = SZ_64M >> PAGE_SHIFT;
--
--      /*
--       * Only adjust if > 64M on current system
--       */
--      if (node || (zone_size[0] <= sz))
--              return;
--
--      zone_size[1] = zone_size[0] - sz;
--      zone_size[0] = sz;
--      zhole_size[1] = zhole_size[0];
--      zhole_size[0] = 0;
--}
-+void ixp4xx_adjust_zones(int node, unsigned long *size, unsigned long *holes);
- #define arch_adjust_zones(node, size, holes) \
--      __arch_adjust_zones(node, size, holes)
-+      ixp4xx_adjust_zones(node, size, holes)
- #define ISA_DMA_THRESHOLD (SZ_64M - 1)
---- linux-2.6.15-rc7/arch/arm/mach-ixp4xx/common-pci.c~        2005-12-30 05:16:03.000000000 +1030
-+++ linux-2.6.15-rc7/arch/arm/mach-ixp4xx/common-pci.c 2005-12-30 05:43:55.000000000 +1030
-@@ -341,6 +341,29 @@ int dma_needs_bounce(struct device *dev,
-       return (dev->bus == &pci_bus_type ) && ((dma_addr + size) >= SZ_64M);
- }
-+/*
-+ * Only first 64MB of memory can be accessed via PCI.
-+ * We use GFP_DMA to allocate safe buffers to do map/unmap.
-+ * This is really ugly and we need a better way of specifying
-+ * DMA-capable regions of memory.
-+ */
-+void __init ixp4xx_adjust_zones(int node, unsigned long *zone_size, 
-+      unsigned long *zhole_size) 
-+{
-+      unsigned int sz = SZ_64M >> PAGE_SHIFT;
-+
-+      /*
-+       * Only adjust if > 64M on current system
-+       */
-+      if (node || (zone_size[0] <= sz))
-+              return;
-+
-+      zone_size[1] = zone_size[0] - sz;
-+      zone_size[0] = sz;
-+      zhole_size[1] = zhole_size[0];
-+      zhole_size[0] = 0;
-+}
-+
- void __init ixp4xx_pci_preinit(void)
- {  
-       unsigned long processor_id;
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.15/10-mtdpart-redboot-fis-byteswap.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.15/10-mtdpart-redboot-fis-byteswap.patch
deleted file mode 100644 (file)
index 3fa0535..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-drivers/mtd/redboot.c: recognise a foreign byte sex partition table
-
-The RedBoot boot loader writes flash partition tables containing native
-byte sex 32 bit values.  When booting an opposite byte sex kernel (e.g.  an
-LE kernel from BE RedBoot) the current MTD driver fails to handle the
-partition table and therefore is unable to generate the correct partition
-map for the flash.
-
-The patch recognises that the FIS directory (the partition table) is
-byte-reversed by examining the partition table size, which is known to be
-one erase block (this is an assumption made elsewhere in redboot.c).  If
-the size matches the erase block after byte swapping the value then
-byte-reversal is assumed, if not no further action is taken.  The patched
-code is fail safe; should redboot.c be changed to support a partition table
-with a modified size field the test will fail and the partition table will
-be assumed to have the host byte sex.
-
-If byte-reversal is detected the patch byte swaps the remainder of the 32
-bit fields in the copy of the table; this copy is then used to set up the
-MTD partition map.
-
-Signed-off-by: John Bowler <jbowler@acm.org>
-Signed-off-by: Andrew Morton <akpm@osdl.org>
-Modified slightly and
-Signed-off-by: David Woodhouse <dwmw2@infradead.org>
-
-Index: drivers/mtd/redboot.c
-===================================================================
-RCS file: /home/cvs/mtd/drivers/mtd/redboot.c,v
-retrieving revision 1.18
-retrieving revision 1.19
-diff -u -p -r1.18 -r1.19
---- linux-2.6.15/drivers/mtd/redboot.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/drivers/mtd/redboot.c 1970-01-01 00:00:00.000000000 +0000
-@@ -89,8 +89,32 @@ static int parse_redboot_partitions(stru
-                       i = numslots;
-                       break;
-               }
--              if (!memcmp(buf[i].name, "FIS directory", 14))
-+              if (!memcmp(buf[i].name, "FIS directory", 14)) {
-+                      /* This is apparently the FIS directory entry for the
-+                       * FIS directory itself.  The FIS directory size is
-+                       * one erase block; if the buf[i].size field is
-+                       * swab32(erasesize) then we know we are looking at
-+                       * a byte swapped FIS directory - swap all the entries!
-+                       * (NOTE: this is 'size' not 'data_length'; size is
-+                       * the full size of the entry.)
-+                       */
-+                      if (swab32(buf[i].size) == master->erasesize) {
-+                              int j;
-+                              for (j = 0; j < numslots && buf[j].name[0] != 0xff; ++j) {
-+                                      /* The unsigned long fields were written with the
-+                                       * wrong byte sex, name and pad have no byte sex.
-+                                       */
-+                                      swab32s(&buf[j].flash_base);
-+                                      swab32s(&buf[j].mem_base);
-+                                      swab32s(&buf[j].size);
-+                                      swab32s(&buf[j].entry_point);
-+                                      swab32s(&buf[j].data_length);
-+                                      swab32s(&buf[j].desc_cksum);
-+                                      swab32s(&buf[j].file_cksum);
-+                              }
-+                      }
-                       break;
-+              }
-       }
-       if (i == numslots) {
-               /* Didn't find it */
-
-
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.15/15-jffs2-endian-config.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.15/15-jffs2-endian-config.patch
deleted file mode 100644 (file)
index fdebb65..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
---- linux-2.6.15/fs/Kconfig~   2006-01-03 13:51:10.000000000 +1030
-+++ linux-2.6.15/fs/Kconfig    2006-01-05 01:35:36.000000000 +1030
-@@ -1132,6 +1132,31 @@ config JFFS2_CMODE_SIZE
- endchoice
-+choice
-+        prompt "JFFS2 endianness"
-+        default JFFS2_NATIVE_ENDIAN
-+        depends on JFFS2_FS
-+        help
-+          You can set here the default endianness of JFFS2 from
-+          the available options. Don't touch if unsure.
-+
-+config JFFS2_NATIVE_ENDIAN
-+        bool "native endian"
-+        help
-+          Uses a native endian bytestream.
-+
-+config JFFS2_BIG_ENDIAN
-+        bool "big endian"
-+        help
-+          Uses a big endian bytestream.
-+
-+config JFFS2_LITTLE_ENDIAN
-+        bool "little endian"
-+        help
-+          Uses a little endian bytestream.
-+
-+endchoice
-+
- config CRAMFS
-       tristate "Compressed ROM file system support (cramfs)"
-       select ZLIB_INFLATE
---- linux-2.6.15/fs/jffs2/nodelist.h~  2006-01-05 01:37:06.000000000 +1030
-+++ linux-2.6.15/fs/jffs2/nodelist.h   2006-01-05 01:37:54.000000000 +1030
-@@ -29,12 +29,10 @@
- #include "os-linux.h"
- #endif
--#define JFFS2_NATIVE_ENDIAN
--
- /* Note we handle mode bits conversion from JFFS2 (i.e. Linux) to/from
-    whatever OS we're actually running on here too. */
--#if defined(JFFS2_NATIVE_ENDIAN)
-+#if defined(CONFIG_JFFS2_NATIVE_ENDIAN)
- #define cpu_to_je16(x) ((jint16_t){x})
- #define cpu_to_je32(x) ((jint32_t){x})
- #define cpu_to_jemode(x) ((jmode_t){os_to_jffs2_mode(x)})
-@@ -42,7 +40,7 @@
- #define je16_to_cpu(x) ((x).v16)
- #define je32_to_cpu(x) ((x).v32)
- #define jemode_to_cpu(x) (jffs2_to_os_mode((x).m))
--#elif defined(JFFS2_BIG_ENDIAN)
-+#elif defined(CONFIG_JFFS2_BIG_ENDIAN)
- #define cpu_to_je16(x) ((jint16_t){cpu_to_be16(x)})
- #define cpu_to_je32(x) ((jint32_t){cpu_to_be32(x)})
- #define cpu_to_jemode(x) ((jmode_t){cpu_to_be32(os_to_jffs2_mode(x))})
-@@ -50,7 +48,7 @@
- #define je16_to_cpu(x) (be16_to_cpu(x.v16))
- #define je32_to_cpu(x) (be32_to_cpu(x.v32))
- #define jemode_to_cpu(x) (be32_to_cpu(jffs2_to_os_mode((x).m)))
--#elif defined(JFFS2_LITTLE_ENDIAN)
-+#elif defined(CONFIG_JFFS2_LITTLE_ENDIAN)
- #define cpu_to_je16(x) ((jint16_t){cpu_to_le16(x)})
- #define cpu_to_je32(x) ((jint32_t){cpu_to_le32(x)})
- #define cpu_to_jemode(x) ((jmode_t){cpu_to_le32(os_to_jffs2_mode(x))})
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.15/40-rtc-class.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.15/40-rtc-class.patch
deleted file mode 100644 (file)
index feea3f2..0000000
+++ /dev/null
@@ -1,2719 +0,0 @@
---- linux-nslu2.orig/include/linux/rtc.h       2006-01-03 15:31:18.000000000 +0100
-+++ linux-nslu2/include/linux/rtc.h    2006-01-03 15:34:24.000000000 +0100
-@@ -91,8 +91,81 @@ struct rtc_pll_info {
- #define RTC_PLL_GET   _IOR('p', 0x11, struct rtc_pll_info)  /* Get PLL correction */
- #define RTC_PLL_SET   _IOW('p', 0x12, struct rtc_pll_info)  /* Set PLL correction */
-+/* interrupt flags */
-+#define RTC_IRQF 0x80 /* any of the following is active */
-+#define RTC_PF 0x40
-+#define RTC_AF 0x20
-+#define RTC_UF 0x10
-+
- #ifdef __KERNEL__
-+#include <linux/device.h>
-+#include <linux/seq_file.h>
-+#include <linux/cdev.h>
-+#include <linux/poll.h>
-+
-+struct rtc_class_ops {
-+      int (*open)(struct device *);
-+      void (*release)(struct device *);
-+      int (*ioctl)(struct device *, unsigned int, unsigned long);
-+      int (*read_time)(struct device *, struct rtc_time *);
-+      int (*set_time)(struct device *, struct rtc_time *);
-+      int (*read_alarm)(struct device *, struct rtc_wkalrm *);
-+      int (*set_alarm)(struct device *, struct rtc_wkalrm *);
-+      int (*proc)(struct device *, struct seq_file *);
-+      int (*set_mmss)(struct device *, unsigned long secs);
-+      int (*irq_set_state)(struct device *, int enabled);
-+      int (*irq_set_freq)(struct device *, int freq);
-+};
-+
-+#define RTC_DEVICE_NAME_SIZE 20
-+struct rtc_task;
-+
-+struct rtc_device
-+{
-+      int id;
-+      struct module *owner;
-+      struct rw_semaphore lock;
-+      struct class_device class_dev;
-+      struct rtc_class_ops *ops;
-+      char name[RTC_DEVICE_NAME_SIZE];
-+
-+      struct cdev char_dev;
-+      struct semaphore char_sem;
-+
-+      unsigned long irq_data;
-+      spinlock_t irq_lock;
-+      wait_queue_head_t irq_queue;
-+      struct fasync_struct *async_queue;
-+
-+      spinlock_t irq_task_lock;
-+      struct rtc_task *irq_task;
-+      int irq_freq;
-+};
-+#define to_rtc_device(d) container_of(d, struct rtc_device, class_dev)
-+
-+extern struct rtc_device *rtc_device_register(char *name,
-+                                      struct device *dev,
-+                                      struct rtc_class_ops *ops,
-+                                      struct module *owner);
-+extern void rtc_device_unregister(struct rtc_device *rdev);
-+extern int rtc_interface_register(struct class_interface *intf);
-+
-+
-+extern int rtc_month_days(unsigned int month, unsigned int year);
-+extern int rtc_valid_tm(struct rtc_time *tm);
-+extern int rtc_tm_to_time(struct rtc_time *tm, unsigned long *time);
-+extern void rtc_time_to_tm(unsigned long time, struct rtc_time *tm);
-+
-+extern int rtc_read_time(struct class_device *class_dev, struct rtc_time *tm);
-+extern int rtc_set_time(struct class_device *class_dev, struct rtc_time *tm);
-+extern int rtc_read_alarm(struct class_device *class_dev,
-+                              struct rtc_wkalrm *alrm);
-+extern int rtc_set_alarm(struct class_device *class_dev,
-+                              struct rtc_wkalrm *alrm);
-+extern void rtc_update_irq(struct class_device *class_dev,
-+                      unsigned long num, unsigned long events);
-+
- typedef struct rtc_task {
-       void (*func)(void *private_data);
-       void *private_data;
---- linux-nslu2.orig/drivers/Kconfig   2006-01-03 15:31:19.000000000 +0100
-+++ linux-nslu2/drivers/Kconfig        2006-01-04 01:27:31.000000000 +0100
-@@ -66,4 +66,6 @@ source "drivers/infiniband/Kconfig"
- source "drivers/sn/Kconfig"
-+source "drivers/rtc/Kconfig"
-+
- endmenu
---- linux-nslu2.orig/drivers/Makefile  2006-01-03 15:33:32.000000000 +0100
-+++ linux-nslu2/drivers/Makefile       2006-01-04 01:27:31.000000000 +0100
-@@ -54,6 +54,7 @@ obj-$(CONFIG_USB_GADGET)     += usb/gadget/
- obj-$(CONFIG_GAMEPORT)                += input/gameport/
- obj-$(CONFIG_INPUT)           += input/
- obj-$(CONFIG_I2O)             += message/
-+obj-y                         += rtc/
- obj-$(CONFIG_I2C)             += i2c/
- obj-$(CONFIG_W1)              += w1/
- obj-$(CONFIG_HWMON)           += hwmon/
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-nslu2/drivers/rtc/class.c    2006-01-03 15:45:19.000000000 +0100
-@@ -0,0 +1,141 @@
-+/*
-+ * RTC subsystem, base class
-+ *
-+ * Copyright (C) 2005 Tower Technologies
-+ * Author: Alessandro Zummo <a.zummo@towertech.it>
-+ *
-+ * class skeleton from drivers/hwmon/hwmon.c
-+ *
-+ * 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; version 2 of the License.
-+*/
-+
-+#include <linux/module.h>
-+#include <linux/rtc.h>
-+#include <linux/kdev_t.h>
-+#include <linux/idr.h>
-+
-+static DEFINE_IDR(rtc_idr);
-+static DECLARE_MUTEX(idr_lock);
-+struct class *rtc_class;
-+
-+static void rtc_device_release(struct class_device *class_dev)
-+{
-+      struct rtc_device *rtc = to_rtc_device(class_dev);
-+      down(&idr_lock);
-+      idr_remove(&rtc_idr, rtc->id);
-+      up(&idr_lock);
-+      kfree(rtc);
-+}
-+
-+/**
-+ * rtc_device_register - register w/ RTC class
-+ * @dev: the device to register
-+ *
-+ * rtc_device_unregister() must be called when the class device is no
-+ * longer needed.
-+ *
-+ * Returns the pointer to the new struct class device.
-+ */
-+struct rtc_device *rtc_device_register(char *name, struct device *dev,
-+                                      struct rtc_class_ops *ops,
-+                                      struct module *owner)
-+{
-+      struct rtc_device *rtc;
-+      int id, err;
-+
-+      if (idr_pre_get(&rtc_idr, GFP_KERNEL) == 0) {
-+              err = -ENOMEM;
-+              goto exit;
-+      }
-+
-+
-+      down(&idr_lock);
-+      err = idr_get_new(&rtc_idr, NULL, &id);
-+      up(&idr_lock);
-+
-+      if (err < 0)
-+              goto exit;
-+
-+      id = id & MAX_ID_MASK;
-+
-+      if ((rtc = kzalloc(sizeof(struct rtc_device), GFP_KERNEL)) == NULL) {
-+              err = -ENOMEM;
-+              goto exit_idr;
-+      }
-+
-+      rtc->id = id;
-+      rtc->ops = ops;
-+      rtc->owner = owner;
-+      rtc->class_dev.dev = dev;
-+      rtc->class_dev.class = rtc_class;
-+      rtc->class_dev.release = rtc_device_release;
-+
-+      init_rwsem(&rtc->lock);
-+      spin_lock_init(&rtc->irq_lock);
-+      spin_lock_init(&rtc->irq_task_lock);
-+
-+      strlcpy(rtc->name, name, RTC_DEVICE_NAME_SIZE);
-+      snprintf(rtc->class_dev.class_id, BUS_ID_SIZE, "rtc%d", id);
-+
-+      if ((err = class_device_register(&rtc->class_dev)))
-+              goto exit_kfree;
-+
-+      dev_info(dev, "rtc core: registered %s as %s\n",
-+                      rtc->name, rtc->class_dev.class_id);
-+
-+      return rtc;
-+
-+exit_kfree:
-+      kfree(rtc);
-+
-+exit_idr:
-+      idr_remove(&rtc_idr, id);
-+
-+exit:
-+      return ERR_PTR(err);
-+}
-+EXPORT_SYMBOL_GPL(rtc_device_register);
-+
-+
-+/**
-+ * rtc_device_unregister - removes the previously registered RTC class device
-+ *
-+ * @rtc: the RTC class device to destroy
-+ */
-+void rtc_device_unregister(struct rtc_device *rtc)
-+{
-+      down_write(&rtc->lock);
-+      class_device_unregister(&rtc->class_dev);
-+}
-+EXPORT_SYMBOL_GPL(rtc_device_unregister);
-+
-+int rtc_interface_register(struct class_interface *intf)
-+{
-+      intf->class = rtc_class;
-+      return class_interface_register(intf);
-+}
-+EXPORT_SYMBOL_GPL(rtc_interface_register);
-+
-+static int __init rtc_init(void)
-+{
-+      rtc_class = class_create(THIS_MODULE, "rtc");
-+      if (IS_ERR(rtc_class)) {
-+              printk(KERN_ERR "%s: couldn't create class\n", __FILE__);
-+              return PTR_ERR(rtc_class);
-+      }
-+      return 0;
-+}
-+
-+static void __exit rtc_exit(void)
-+{
-+      class_destroy(rtc_class);
-+}
-+
-+module_init(rtc_init);
-+module_exit(rtc_exit);
-+
-+MODULE_AUTHOR("Alessandro Zummo <a.zummo@towerteh.it>");
-+MODULE_DESCRIPTION("RTC class support");
-+MODULE_LICENSE("GPL");
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-nslu2/drivers/rtc/Kconfig    2006-01-04 01:27:21.000000000 +0100
-@@ -0,0 +1,93 @@
-+#
-+# RTC class/drivers configuration
-+#
-+
-+menu "Real Time Clock"
-+
-+config RTC_CLASS
-+      tristate "RTC class"
-+      depends on EXPERIMENTAL
-+      default y
-+      help
-+        Generic RTC class support. If you say yes here, you will
-+        be allowed to plug one or more RTCs to your system. You will
-+        probably want to enable one of more of the interfaces below.
-+
-+        This driver can also be built as a module. If so, the module
-+        will be called rtc-class.
-+
-+comment "RTC interfaces"
-+      depends on RTC_CLASS
-+
-+config RTC_INTF_SYSFS
-+      tristate "sysfs"
-+      depends on RTC_CLASS && SYSFS
-+      default RTC_CLASS
-+      help
-+        Say yes here if you want to use your RTC using the sysfs
-+        interface, /sys/class/rtc/rtcX .
-+
-+        This driver can also be built as a module. If so, the module
-+        will be called rtc-sysfs.
-+
-+config RTC_INTF_PROC
-+      tristate "proc"
-+      depends on RTC_CLASS && PROC_FS
-+      default RTC_CLASS
-+      help
-+        Say yes here if you want to use your RTC using the proc
-+        interface, /proc/driver/rtc .
-+
-+        This driver can also be built as a module. If so, the module
-+        will be called rtc-proc.
-+
-+config RTC_INTF_DEV
-+      tristate "dev"
-+      depends on RTC_CLASS
-+      default RTC_CLASS
-+      help
-+        Say yes here if you want to use your RTC using the dev
-+        interface, /dev/rtc .
-+
-+        This driver can also be built as a module. If so, the module
-+        will be called rtc-dev.
-+
-+comment "RTC drivers"
-+      depends on RTC_CLASS
-+
-+config RTC_DRV_X1205
-+      tristate "Xicor/Intersil X1205 RTC chip"
-+      depends on RTC_CLASS && I2C
-+      help
-+        If you say yes here you get support for the
-+        Xicor/Intersil X1205 RTC chip.
-+
-+        This driver can also be built as a module. If so, the module
-+        will be called rtc-x1205.
-+
-+config RTC_DRV_DS1672
-+      tristate "Dallas/Maxim DS1672"
-+      depends on RTC_CLASS && I2C
-+      help
-+        If you say yes here you get support for the
-+        Dallas/Maxim DS1672 timekeeping chip.
-+
-+        This driver can also be built as a module. If so, the module
-+        will be called rtc-ds1672.
-+
-+config RTC_DRV_TEST
-+      tristate "Test driver/device"
-+      depends on RTC_CLASS
-+      help
-+        If you say yes here you get support for the
-+        RTC test driver. It's a software RTC which can be
-+        used to test the RTC subsystem APIs. It gets
-+        the time from the system clock.
-+        You want this driver only if you are doing development
-+        on the RTC subsystem. Please read the source code
-+        for further details.
-+
-+        This driver can also be built as a module. If so, the module
-+        will be called rtc-test.
-+
-+endmenu
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-nslu2/drivers/rtc/Makefile   2006-01-04 01:27:21.000000000 +0100
-@@ -0,0 +1,15 @@
-+#
-+# Makefile for RTC class/drivers.
-+#
-+
-+obj-y                         += utils.o
-+obj-$(CONFIG_RTC_CLASS)               += rtc-core.o
-+rtc-core-y                    := class.o interface.o
-+obj-$(CONFIG_RTC_INTF_SYSFS)  += rtc-sysfs.o
-+obj-$(CONFIG_RTC_INTF_PROC)   += rtc-proc.o
-+obj-$(CONFIG_RTC_INTF_DEV)    += rtc-dev.o
-+
-+obj-$(CONFIG_RTC_DRV_X1205)   += rtc-x1205.o
-+obj-$(CONFIG_RTC_DRV_TEST)    += rtc-test.o
-+obj-$(CONFIG_RTC_DRV_DS1672)  += rtc-ds1672.o
-+
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-nslu2/drivers/rtc/interface.c        2006-01-03 15:34:24.000000000 +0100
-@@ -0,0 +1,189 @@
-+/*
-+ * RTC subsystem, interface functions
-+ *
-+ * Copyright (C) 2005 Tower Technologies
-+ * Author: Alessandro Zummo <a.zummo@towertech.it>
-+ *
-+ * based on arch/arm/common/rtctime.c
-+ *
-+ * 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; version 2 of the License.
-+*/
-+
-+#include <linux/rtc.h>
-+
-+extern struct class *rtc_class;
-+
-+int rtc_read_time(struct class_device *class_dev, struct rtc_time *tm)
-+{
-+      int err = -EINVAL;
-+      struct rtc_class_ops *ops = to_rtc_device(class_dev)->ops;
-+
-+      if (ops->read_time) {
-+              memset(tm, 0, sizeof(struct rtc_time));
-+              err = ops->read_time(class_dev->dev, tm);
-+      }
-+      return err;
-+}
-+EXPORT_SYMBOL(rtc_read_time);
-+
-+int rtc_set_time(struct class_device *class_dev, struct rtc_time *tm)
-+{
-+      int err;
-+      struct rtc_class_ops *ops = to_rtc_device(class_dev)->ops;
-+
-+      err = rtc_valid_tm(tm);
-+      if (err == 0 && ops->set_time)
-+              err = ops->set_time(class_dev->dev, tm);
-+
-+      return err;
-+}
-+EXPORT_SYMBOL(rtc_set_time);
-+
-+int rtc_read_alarm(struct class_device *class_dev, struct rtc_wkalrm *alarm)
-+{
-+      struct rtc_class_ops *ops = to_rtc_device(class_dev)->ops;
-+      int err = -EINVAL;
-+
-+      if (ops->read_alarm) {
-+              memset(alarm, 0, sizeof(struct rtc_wkalrm));
-+              err = ops->read_alarm(class_dev->dev, alarm);
-+      }
-+      return err;
-+}
-+EXPORT_SYMBOL(rtc_read_alarm);
-+
-+int rtc_set_alarm(struct class_device *class_dev, struct rtc_wkalrm *alarm)
-+{
-+      int err = -EINVAL;
-+      struct rtc_class_ops *ops = to_rtc_device(class_dev)->ops;
-+
-+      if (ops->set_alarm)
-+              err = ops->set_alarm(class_dev->dev, alarm);
-+      return err;
-+}
-+EXPORT_SYMBOL(rtc_set_alarm);
-+
-+void rtc_update_irq(struct class_device *class_dev,
-+              unsigned long num, unsigned long events)
-+{
-+      struct rtc_device *rtc = to_rtc_device(class_dev);
-+
-+      spin_lock(&rtc->irq_lock);
-+      rtc->irq_data = (rtc->irq_data + (num << 8)) | events;
-+      spin_unlock(&rtc->irq_lock);
-+
-+      spin_lock(&rtc->irq_task_lock);
-+      if (rtc->irq_task)
-+              rtc->irq_task->func(rtc->irq_task->private_data);
-+      spin_unlock(&rtc->irq_task_lock);
-+
-+      wake_up_interruptible(&rtc->irq_queue);
-+      kill_fasync(&rtc->async_queue, SIGIO, POLL_IN);
-+}
-+EXPORT_SYMBOL(rtc_update_irq);
-+
-+struct class_device *rtc_open(char *name)
-+{
-+      struct class_device *class_dev = NULL,
-+                              *class_dev_tmp;
-+
-+      down(&rtc_class->sem);
-+      list_for_each_entry(class_dev_tmp, &rtc_class->children, node) {
-+              if (strncmp(class_dev_tmp->class_id, name, BUS_ID_SIZE) == 0) {
-+                      class_dev = class_dev_tmp;
-+                      break;
-+              }
-+      }
-+      up(&rtc_class->sem);
-+
-+      return class_dev;
-+}
-+EXPORT_SYMBOL(rtc_open);
-+
-+void rtc_close(struct class_device *class_dev)
-+{
-+}
-+EXPORT_SYMBOL(rtc_close);
-+
-+int rtc_irq_register(struct class_device *class_dev, struct rtc_task *task)
-+{
-+      int retval = -EBUSY;
-+      struct rtc_device *rtc = to_rtc_device(class_dev);
-+
-+      if (task == NULL || task->func == NULL)
-+              return -EINVAL;
-+
-+      spin_lock(&rtc->irq_task_lock);
-+      if (rtc->irq_task == NULL) {
-+              rtc->irq_task = task;
-+              retval = 0;
-+      }
-+      spin_unlock(&rtc->irq_task_lock);
-+
-+      return retval;
-+}
-+EXPORT_SYMBOL(rtc_irq_register);
-+
-+void rtc_irq_unregister(struct class_device *class_dev, struct rtc_task *task)
-+{
-+      struct rtc_device *rtc = to_rtc_device(class_dev);
-+
-+      spin_lock(&rtc->irq_task_lock);
-+      if (rtc->irq_task == task)
-+              rtc->irq_task = NULL;
-+      spin_unlock(&rtc->irq_task_lock);
-+}
-+EXPORT_SYMBOL(rtc_irq_unregister);
-+
-+int rtc_irq_set_state(struct class_device *class_dev, struct rtc_task *task, int enabled)
-+{
-+      int err = 0;
-+      unsigned long flags;
-+      struct rtc_device *rtc = to_rtc_device(class_dev);
-+
-+      spin_lock_irqsave(&rtc->irq_task_lock, flags);
-+      if (rtc->irq_task != task)
-+              err = -ENXIO;
-+      spin_unlock_irqrestore(&rtc->irq_task_lock, flags);
-+
-+      if (err == 0)
-+              err = rtc->ops->irq_set_state(class_dev->dev, enabled);
-+
-+      return err;
-+}
-+EXPORT_SYMBOL(rtc_irq_set_state);
-+
-+int rtc_irq_set_freq(struct class_device *class_dev, struct rtc_task *task, int freq)
-+{
-+      int err = 0, tmp = 0;
-+      unsigned long flags;
-+      struct rtc_device *rtc = to_rtc_device(class_dev);
-+
-+      /* allowed range is 2-8192 */
-+      if (freq < 2 || freq > 8192)
-+              return -EINVAL;
-+
-+/*    if ((freq > rtc_max_user_freq) && (!capable(CAP_SYS_RESOURCE)))
-+              return -EACCES;
-+*/
-+      /* check if freq is a power of 2 */
-+      while (freq > (1 << tmp))
-+              tmp++;
-+
-+      if (freq != (1 << tmp))
-+              return -EINVAL;
-+
-+      spin_lock_irqsave(&rtc->irq_task_lock, flags);
-+      if (rtc->irq_task != task)
-+              err = -ENXIO;
-+      spin_unlock_irqrestore(&rtc->irq_task_lock, flags);
-+
-+      if (err == 0) {
-+              if ((err = rtc->ops->irq_set_freq(class_dev->dev, freq)) == 0)
-+                      rtc->irq_freq = freq;
-+      }
-+      return err;
-+
-+}
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-nslu2/drivers/rtc/utils.c    2006-01-03 15:34:24.000000000 +0100
-@@ -0,0 +1,97 @@
-+/*
-+ * RTC subsystem, utility functions
-+ *
-+ * Copyright (C) 2005 Tower Technologies
-+ * Author: Alessandro Zummo <a.zummo@towertech.it>
-+ *
-+ * based on arch/arm/common/rtctime.c
-+ *
-+ * 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; version 2 of the License.
-+*/
-+
-+#include <linux/rtc.h>
-+
-+static const unsigned char rtc_days_in_month[] = {
-+      31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
-+};
-+
-+#define LEAPS_THRU_END_OF(y) ((y)/4 - (y)/100 + (y)/400)
-+#define LEAP_YEAR(year) ((!(year % 4) && (year % 100)) || !(year % 400))
-+
-+int rtc_month_days(unsigned int month, unsigned int year)
-+{
-+      return rtc_days_in_month[month] + (LEAP_YEAR(year) && month == 1);
-+}
-+EXPORT_SYMBOL(rtc_month_days);
-+
-+/*
-+ * Convert seconds since 01-01-1970 00:00:00 to Gregorian date.
-+ */
-+void rtc_time_to_tm(unsigned long time, struct rtc_time *tm)
-+{
-+      int days, month, year;
-+
-+      days = time / 86400;
-+      time -= days * 86400;
-+
-+      tm->tm_wday = (days + 4) % 7;
-+
-+      year = 1970 + days / 365;
-+      days -= (year - 1970) * 365
-+              + LEAPS_THRU_END_OF(year - 1)
-+              - LEAPS_THRU_END_OF(1970 - 1);
-+      if (days < 0) {
-+              year -= 1;
-+              days += 365 + LEAP_YEAR(year);
-+      }
-+      tm->tm_year = year - 1900;
-+      tm->tm_yday = days + 1;
-+
-+      for (month = 0; month < 11; month++) {
-+              int newdays;
-+
-+              newdays = days - rtc_month_days(month, year);
-+              if (newdays < 0)
-+                      break;
-+              days = newdays;
-+      }
-+      tm->tm_mon = month;
-+      tm->tm_mday = days + 1;
-+
-+      tm->tm_hour = time / 3600;
-+      time -= tm->tm_hour * 3600;
-+      tm->tm_min = time / 60;
-+      tm->tm_sec = time - tm->tm_min * 60;
-+}
-+EXPORT_SYMBOL(rtc_time_to_tm);
-+
-+/*
-+ * Does the rtc_time represent a valid date/time?
-+ */
-+int rtc_valid_tm(struct rtc_time *tm)
-+{
-+      if (tm->tm_year < 70 ||
-+          tm->tm_mon >= 12 ||
-+          tm->tm_mday < 1 ||
-+          tm->tm_mday > rtc_month_days(tm->tm_mon, tm->tm_year + 1900) ||
-+          tm->tm_hour >= 24 ||
-+          tm->tm_min >= 60 ||
-+          tm->tm_sec >= 60)
-+              return -EINVAL;
-+
-+      return 0;
-+}
-+EXPORT_SYMBOL(rtc_valid_tm);
-+
-+/*
-+ * Convert Gregorian date to seconds since 01-01-1970 00:00:00.
-+ */
-+int rtc_tm_to_time(struct rtc_time *tm, unsigned long *time)
-+{
-+      *time = mktime(tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
-+                     tm->tm_hour, tm->tm_min, tm->tm_sec);
-+      return 0;
-+}
-+EXPORT_SYMBOL(rtc_tm_to_time);
---- linux-nslu2.orig/arch/arm/Kconfig  2006-01-04 01:27:04.000000000 +0100
-+++ linux-nslu2/arch/arm/Kconfig       2006-01-04 01:27:31.000000000 +0100
-@@ -750,6 +750,8 @@ source "drivers/usb/Kconfig"
- source "drivers/mmc/Kconfig"
-+source "drivers/rtc/Kconfig"
-+
- endmenu
- source "fs/Kconfig"
---- linux-nslu2.orig/arch/arm/common/rtctime.c 2006-01-04 01:27:04.000000000 +0100
-+++ linux-nslu2/arch/arm/common/rtctime.c      2006-01-04 01:27:09.000000000 +0100
-@@ -40,89 +40,6 @@ static struct rtc_ops *rtc_ops;
- #define rtc_epoch 1900UL
--static const unsigned char days_in_month[] = {
--      31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
--};
--
--#define LEAPS_THRU_END_OF(y) ((y)/4 - (y)/100 + (y)/400)
--#define LEAP_YEAR(year) ((!(year % 4) && (year % 100)) || !(year % 400))
--
--static int month_days(unsigned int month, unsigned int year)
--{
--      return days_in_month[month] + (LEAP_YEAR(year) && month == 1);
--}
--
--/*
-- * Convert seconds since 01-01-1970 00:00:00 to Gregorian date.
-- */
--void rtc_time_to_tm(unsigned long time, struct rtc_time *tm)
--{
--      int days, month, year;
--
--      days = time / 86400;
--      time -= days * 86400;
--
--      tm->tm_wday = (days + 4) % 7;
--
--      year = 1970 + days / 365;
--      days -= (year - 1970) * 365
--              + LEAPS_THRU_END_OF(year - 1)
--              - LEAPS_THRU_END_OF(1970 - 1);
--      if (days < 0) {
--              year -= 1;
--              days += 365 + LEAP_YEAR(year);
--      }
--      tm->tm_year = year - 1900;
--      tm->tm_yday = days + 1;
--
--      for (month = 0; month < 11; month++) {
--              int newdays;
--
--              newdays = days - month_days(month, year);
--              if (newdays < 0)
--                      break;
--              days = newdays;
--      }
--      tm->tm_mon = month;
--      tm->tm_mday = days + 1;
--
--      tm->tm_hour = time / 3600;
--      time -= tm->tm_hour * 3600;
--      tm->tm_min = time / 60;
--      tm->tm_sec = time - tm->tm_min * 60;
--}
--EXPORT_SYMBOL(rtc_time_to_tm);
--
--/*
-- * Does the rtc_time represent a valid date/time?
-- */
--int rtc_valid_tm(struct rtc_time *tm)
--{
--      if (tm->tm_year < 70 ||
--          tm->tm_mon >= 12 ||
--          tm->tm_mday < 1 ||
--          tm->tm_mday > month_days(tm->tm_mon, tm->tm_year + 1900) ||
--          tm->tm_hour >= 24 ||
--          tm->tm_min >= 60 ||
--          tm->tm_sec >= 60)
--              return -EINVAL;
--
--      return 0;
--}
--EXPORT_SYMBOL(rtc_valid_tm);
--
--/*
-- * Convert Gregorian date to seconds since 01-01-1970 00:00:00.
-- */
--int rtc_tm_to_time(struct rtc_time *tm, unsigned long *time)
--{
--      *time = mktime(tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
--                     tm->tm_hour, tm->tm_min, tm->tm_sec);
--
--      return 0;
--}
--EXPORT_SYMBOL(rtc_tm_to_time);
--
- /*
-  * Calculate the next alarm time given the requested alarm time mask
-  * and the current time.
-@@ -141,13 +58,13 @@ void rtc_next_alarm_time(struct rtc_time
-       next->tm_sec = alrm->tm_sec;
- }
--static inline int rtc_read_time(struct rtc_ops *ops, struct rtc_time *tm)
-+static inline int rtc_arm_read_time(struct rtc_ops *ops, struct rtc_time *tm)
- {
-       memset(tm, 0, sizeof(struct rtc_time));
-       return ops->read_time(tm);
- }
--static inline int rtc_set_time(struct rtc_ops *ops, struct rtc_time *tm)
-+static inline int rtc_arm_set_time(struct rtc_ops *ops, struct rtc_time *tm)
- {
-       int ret;
-@@ -158,7 +75,7 @@ static inline int rtc_set_time(struct rt
-       return ret;
- }
--static inline int rtc_read_alarm(struct rtc_ops *ops, struct rtc_wkalrm *alrm)
-+static inline int rtc_arm_read_alarm(struct rtc_ops *ops, struct rtc_wkalrm *alrm)
- {
-       int ret = -EINVAL;
-       if (ops->read_alarm) {
-@@ -168,7 +85,7 @@ static inline int rtc_read_alarm(struct 
-       return ret;
- }
--static inline int rtc_set_alarm(struct rtc_ops *ops, struct rtc_wkalrm *alrm)
-+static inline int rtc_arm_set_alarm(struct rtc_ops *ops, struct rtc_wkalrm *alrm)
- {
-       int ret = -EINVAL;
-       if (ops->set_alarm)
-@@ -256,7 +173,7 @@ static int rtc_ioctl(struct inode *inode
-       switch (cmd) {
-       case RTC_ALM_READ:
--              ret = rtc_read_alarm(ops, &alrm);
-+              ret = rtc_arm_read_alarm(ops, &alrm);
-               if (ret)
-                       break;
-               ret = copy_to_user(uarg, &alrm.time, sizeof(tm));
-@@ -278,11 +195,11 @@ static int rtc_ioctl(struct inode *inode
-               alrm.time.tm_wday = -1;
-               alrm.time.tm_yday = -1;
-               alrm.time.tm_isdst = -1;
--              ret = rtc_set_alarm(ops, &alrm);
-+              ret = rtc_arm_set_alarm(ops, &alrm);
-               break;
-       case RTC_RD_TIME:
--              ret = rtc_read_time(ops, &tm);
-+              ret = rtc_arm_read_time(ops, &tm);
-               if (ret)
-                       break;
-               ret = copy_to_user(uarg, &tm, sizeof(tm));
-@@ -300,7 +217,7 @@ static int rtc_ioctl(struct inode *inode
-                       ret = -EFAULT;
-                       break;
-               }
--              ret = rtc_set_time(ops, &tm);
-+              ret = rtc_arm_set_time(ops, &tm);
-               break;
-       case RTC_EPOCH_SET:
-@@ -331,11 +248,11 @@ static int rtc_ioctl(struct inode *inode
-                       ret = -EFAULT;
-                       break;
-               }
--              ret = rtc_set_alarm(ops, &alrm);
-+              ret = rtc_arm_set_alarm(ops, &alrm);
-               break;
-       case RTC_WKALM_RD:
--              ret = rtc_read_alarm(ops, &alrm);
-+              ret = rtc_arm_read_alarm(ops, &alrm);
-               if (ret)
-                       break;
-               ret = copy_to_user(uarg, &alrm, sizeof(alrm));
-@@ -425,7 +342,7 @@ static int rtc_read_proc(char *page, cha
-       struct rtc_time tm;
-       char *p = page;
--      if (rtc_read_time(ops, &tm) == 0) {
-+      if (rtc_arm_read_time(ops, &tm) == 0) {
-               p += sprintf(p,
-                       "rtc_time\t: %02d:%02d:%02d\n"
-                       "rtc_date\t: %04d-%02d-%02d\n"
-@@ -435,7 +352,7 @@ static int rtc_read_proc(char *page, cha
-                       rtc_epoch);
-       }
--      if (rtc_read_alarm(ops, &alrm) == 0) {
-+      if (rtc_arm_read_alarm(ops, &alrm) == 0) {
-               p += sprintf(p, "alrm_time\t: ");
-               if ((unsigned int)alrm.time.tm_hour <= 24)
-                       p += sprintf(p, "%02d:", alrm.time.tm_hour);
---- linux-nslu2.orig/include/asm-arm/rtc.h     2006-01-04 01:27:04.000000000 +0100
-+++ linux-nslu2/include/asm-arm/rtc.h  2006-01-04 01:27:09.000000000 +0100
-@@ -25,9 +25,6 @@ struct rtc_ops {
-       int             (*proc)(char *buf);
- };
--void rtc_time_to_tm(unsigned long, struct rtc_time *);
--int rtc_tm_to_time(struct rtc_time *, unsigned long *);
--int rtc_valid_tm(struct rtc_time *);
- void rtc_next_alarm_time(struct rtc_time *, struct rtc_time *, struct rtc_time *);
- void rtc_update(unsigned long, unsigned long);
- int register_rtc(struct rtc_ops *);
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-nslu2/drivers/rtc/rtc-sysfs.c        2006-01-04 01:27:12.000000000 +0100
-@@ -0,0 +1,125 @@
-+/*
-+ * RTC subsystem, sysfs interface
-+ *
-+ * Copyright (C) 2005 Tower Technologies
-+ * Author: Alessandro Zummo <a.zummo@towertech.it>
-+ *
-+ * 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; version 2 of the License.
-+*/
-+
-+#include <linux/module.h>
-+#include <linux/rtc.h>
-+
-+/* device attributes */
-+
-+static ssize_t rtc_sysfs_show_name(struct class_device *dev, char *buf)
-+{
-+      return sprintf(buf, "%s\n", to_rtc_device(dev)->name);
-+}
-+static CLASS_DEVICE_ATTR(name, S_IRUGO, rtc_sysfs_show_name, NULL);
-+
-+static ssize_t rtc_sysfs_show_date(struct class_device *dev, char *buf)
-+{
-+      ssize_t retval = 0;
-+      struct rtc_device *rtc = to_rtc_device(dev);
-+      struct rtc_time tm;
-+
-+      if (down_read_trylock(&rtc->lock) == 0)
-+              return -ENODEV;
-+
-+      if (rtc_read_time(dev, &tm) == 0) {
-+              retval = sprintf(buf, "%04d-%02d-%02d\n",
-+                      tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday);
-+      }
-+
-+      up_read(&rtc->lock);
-+      return retval;
-+}
-+static CLASS_DEVICE_ATTR(date, S_IRUGO, rtc_sysfs_show_date, NULL);
-+
-+static ssize_t rtc_sysfs_show_time(struct class_device *dev, char *buf)
-+{
-+      ssize_t retval = 0;
-+      struct rtc_device *rtc = to_rtc_device(dev);
-+      struct rtc_time tm;
-+
-+      if (down_read_trylock(&rtc->lock) == 0)
-+              return -ENODEV;
-+
-+      if (rtc_read_time(dev, &tm) == 0) {
-+              retval = sprintf(buf, "%02d:%02d:%02d\n",
-+                      tm.tm_hour, tm.tm_min, tm.tm_sec);
-+      }
-+
-+      up_read(&rtc->lock);
-+      return retval;
-+}
-+static CLASS_DEVICE_ATTR(time, S_IRUGO, rtc_sysfs_show_time, NULL);
-+
-+static ssize_t rtc_sysfs_show_since_epoch(struct class_device *dev, char *buf)
-+{
-+      ssize_t retval = 0;
-+      struct rtc_device *rtc = to_rtc_device(dev);
-+      struct rtc_time tm;
-+
-+      if (down_read_trylock(&rtc->lock) == 0)
-+              return -ENODEV;
-+
-+      if (rtc_read_time(dev, &tm) == 0) {
-+              unsigned long time;
-+              rtc_tm_to_time(&tm, &time);
-+              retval = sprintf(buf, "%lu\n", time);
-+      }
-+
-+      up_read(&rtc->lock);
-+      return retval;
-+}
-+static CLASS_DEVICE_ATTR(since_epoch, S_IRUGO, rtc_sysfs_show_since_epoch, NULL);
-+
-+/* insertion/removal hooks */
-+
-+static int __devinit rtc_sysfs_add_device(struct class_device *class_dev,
-+                                         struct class_interface *class_intf)
-+{
-+      class_device_create_file(class_dev, &class_device_attr_name);
-+      class_device_create_file(class_dev, &class_device_attr_date);
-+      class_device_create_file(class_dev, &class_device_attr_time);
-+      class_device_create_file(class_dev, &class_device_attr_since_epoch);
-+      dev_info(class_dev->dev, "rtc intf: sysfs\n");
-+      return 0;
-+}
-+
-+static void rtc_sysfs_remove_device(struct class_device *class_dev,
-+                                    struct class_interface *class_intf)
-+{
-+      class_device_remove_file(class_dev, &class_device_attr_name);
-+      class_device_remove_file(class_dev, &class_device_attr_date);
-+      class_device_remove_file(class_dev, &class_device_attr_time);
-+      class_device_remove_file(class_dev, &class_device_attr_since_epoch);
-+}
-+
-+/* interface registration */
-+
-+struct class_interface rtc_sysfs_interface = {
-+      .add = &rtc_sysfs_add_device,
-+      .remove = &rtc_sysfs_remove_device,
-+};
-+
-+static int __init rtc_sysfs_init(void)
-+{
-+      return rtc_interface_register(&rtc_sysfs_interface);
-+}
-+
-+static void __exit rtc_sysfs_exit(void)
-+{
-+      class_interface_unregister(&rtc_sysfs_interface);
-+}
-+
-+module_init(rtc_sysfs_init);
-+module_exit(rtc_sysfs_exit);
-+
-+MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>");
-+MODULE_DESCRIPTION("RTC class sysfs interface");
-+MODULE_LICENSE("GPL");
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-nslu2/drivers/rtc/rtc-proc.c 2006-01-04 01:27:14.000000000 +0100
-@@ -0,0 +1,158 @@
-+/*
-+ * RTC subsystem, proc interface
-+ *
-+ * Copyright (C) 2005 Tower Technologies
-+ * Author: Alessandro Zummo <a.zummo@towertech.it>
-+ *
-+ * based on arch/arm/common/rtctime.c
-+ *
-+ * 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; version 2 of the License.
-+*/
-+
-+#include <linux/module.h>
-+#include <linux/rtc.h>
-+#include <linux/proc_fs.h>
-+#include <linux/seq_file.h>
-+
-+static struct class_device *rtc_dev = NULL;
-+static DECLARE_MUTEX(rtc_sem);
-+
-+static int rtc_proc_show(struct seq_file *seq, void *offset)
-+{
-+      struct class_device *class_dev = seq->private;
-+      struct rtc_class_ops *ops = to_rtc_device(class_dev)->ops;
-+      struct rtc_wkalrm alrm;
-+      struct rtc_time tm;
-+
-+      if (rtc_read_time(class_dev, &tm) == 0) {
-+              seq_printf(seq,
-+                      "rtc_time\t: %02d:%02d:%02d\n"
-+                      "rtc_date\t: %04d-%02d-%02d\n",
-+                      tm.tm_hour, tm.tm_min, tm.tm_sec,
-+                      tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday);
-+      }
-+
-+      if (rtc_read_alarm(class_dev, &alrm) == 0) {
-+              seq_printf(seq, "alrm_time\t: ");
-+              if ((unsigned int)alrm.time.tm_hour <= 24)
-+                      seq_printf(seq, "%02d:", alrm.time.tm_hour);
-+              else
-+                      seq_printf(seq, "**:");
-+              if ((unsigned int)alrm.time.tm_min <= 59)
-+                      seq_printf(seq, "%02d:", alrm.time.tm_min);
-+              else
-+                      seq_printf(seq, "**:");
-+              if ((unsigned int)alrm.time.tm_sec <= 59)
-+                      seq_printf(seq, "%02d\n", alrm.time.tm_sec);
-+              else
-+                      seq_printf(seq, "**\n");
-+
-+              seq_printf(seq, "alrm_date\t: ");
-+              if ((unsigned int)alrm.time.tm_year <= 200)
-+                      seq_printf(seq, "%04d-", alrm.time.tm_year + 1900);
-+              else
-+                      seq_printf(seq, "****-");
-+              if ((unsigned int)alrm.time.tm_mon <= 11)
-+                      seq_printf(seq, "%02d-", alrm.time.tm_mon + 1);
-+              else
-+                      seq_printf(seq, "**-");
-+              if ((unsigned int)alrm.time.tm_mday <= 31)
-+                      seq_printf(seq, "%02d\n", alrm.time.tm_mday);
-+              else
-+                      seq_printf(seq, "**\n");
-+              seq_printf(seq, "alrm_wakeup\t: %s\n",
-+                           alrm.enabled ? "yes" : "no");
-+              seq_printf(seq, "alrm_pending\t: %s\n",
-+                           alrm.pending ? "yes" : "no");
-+      }
-+
-+      if (ops->proc)
-+              ops->proc(class_dev->dev, seq);
-+
-+      return 0;
-+}
-+
-+static int rtc_proc_open(struct inode *inode, struct file *file)
-+{
-+      struct class_device *class_dev = PDE(inode)->data;
-+
-+      if (!try_module_get(THIS_MODULE))
-+              return -ENODEV;
-+
-+      return single_open(file, rtc_proc_show, class_dev);
-+}
-+
-+static int rtc_proc_release(struct inode *inode, struct file *file)
-+{
-+      int res = single_release(inode, file);
-+      module_put(THIS_MODULE);
-+      return res;
-+}
-+
-+static struct file_operations rtc_proc_fops = {
-+      .open           = rtc_proc_open,
-+      .read           = seq_read,
-+      .llseek         = seq_lseek,
-+      .release        = rtc_proc_release,
-+};
-+
-+static int rtc_proc_add_device(struct class_device *class_dev,
-+                                         struct class_interface *class_intf)
-+{
-+      down(&rtc_sem);
-+      if (rtc_dev == NULL) {
-+              struct proc_dir_entry *ent;
-+
-+              rtc_dev = class_dev;
-+
-+              if ((ent = create_proc_entry("driver/rtc", 0, NULL))) {
-+                      struct rtc_device *rtc = to_rtc_device(class_dev);
-+
-+                      ent->proc_fops = &rtc_proc_fops;
-+                      ent->owner = rtc->owner;
-+                      ent->data = class_dev;
-+
-+                      dev_info(class_dev->dev, "rtc intf: proc\n");
-+              }
-+              else
-+                      rtc_dev = NULL;
-+      }
-+      up(&rtc_sem);
-+
-+      return 0;
-+}
-+
-+static void rtc_proc_remove_device(struct class_device *class_dev,
-+                                            struct class_interface *class_intf)
-+{
-+      down(&rtc_sem);
-+      if (rtc_dev == class_dev) {
-+              remove_proc_entry("driver/rtc", NULL);
-+              rtc_dev = NULL;
-+      }
-+      up(&rtc_sem);
-+}
-+
-+struct class_interface rtc_proc_interface = {
-+      .add = &rtc_proc_add_device,
-+      .remove = &rtc_proc_remove_device,
-+};
-+
-+static int __init rtc_proc_init(void)
-+{
-+      return rtc_interface_register(&rtc_proc_interface);
-+}
-+
-+static void __exit rtc_proc_exit(void)
-+{
-+      class_interface_unregister(&rtc_proc_interface);
-+}
-+
-+module_init(rtc_proc_init);
-+module_exit(rtc_proc_exit);
-+
-+MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>");
-+MODULE_DESCRIPTION("RTC class proc interface");
-+MODULE_LICENSE("GPL");
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-nslu2/drivers/rtc/rtc-dev.c  2006-01-04 01:27:15.000000000 +0100
-@@ -0,0 +1,372 @@
-+/*
-+ * RTC subsystem, dev interface
-+ *
-+ * Copyright (C) 2005 Tower Technologies
-+ * Author: Alessandro Zummo <a.zummo@towertech.it>
-+ *
-+ * based on arch/arm/common/rtctime.c
-+ *
-+ * 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; version 2 of the License.
-+*/
-+
-+#include <linux/module.h>
-+#include <linux/rtc.h>
-+
-+static dev_t rtc_devt;
-+
-+#define RTC_DEV_MAX 16 /* 16 RTCs should be enough for everyone... */
-+
-+static int rtc_dev_open(struct inode *inode, struct file *file)
-+{
-+      int err;
-+      struct rtc_device *rtc = container_of(inode->i_cdev,
-+                                      struct rtc_device, char_dev);
-+      struct rtc_class_ops *ops = rtc->ops;
-+
-+      /* We keep the lock as long as the device is in use
-+       * and return immediately if busy
-+       */
-+      if (down_trylock(&rtc->char_sem))
-+              return -EBUSY;
-+
-+      file->private_data = &rtc->class_dev;
-+
-+      err = ops->open ? ops->open(rtc->class_dev.dev) : 0;
-+      if (err == 0) {
-+
-+              spin_lock_irq(&rtc->irq_lock);
-+              rtc->irq_data = 0;
-+              spin_unlock_irq(&rtc->irq_lock);
-+
-+              return 0;
-+      }
-+
-+      /* something has gone wrong, release the lock */
-+      up(&rtc->char_sem);
-+      return err;
-+}
-+
-+
-+static ssize_t
-+rtc_dev_read(struct file *file, char __user *buf, size_t count, loff_t *ppos)
-+{
-+      struct rtc_device *rtc = to_rtc_device(file->private_data);
-+
-+      DECLARE_WAITQUEUE(wait, current);
-+      unsigned long data;
-+      ssize_t ret;
-+
-+      if (count < sizeof(unsigned long))
-+              return -EINVAL;
-+
-+      add_wait_queue(&rtc->irq_queue, &wait);
-+      do {
-+              __set_current_state(TASK_INTERRUPTIBLE);
-+
-+              spin_lock_irq(&rtc->irq_lock);
-+              data = rtc->irq_data;
-+              rtc->irq_data = 0;
-+              spin_unlock_irq(&rtc->irq_lock);
-+
-+              if (data != 0) {
-+                      ret = 0;
-+                      break;
-+              }
-+              if (file->f_flags & O_NONBLOCK) {
-+                      ret = -EAGAIN;
-+                      break;
-+              }
-+              if (signal_pending(current)) {
-+                      ret = -ERESTARTSYS;
-+                      break;
-+              }
-+              schedule();
-+      } while (1);
-+      set_current_state(TASK_RUNNING);
-+      remove_wait_queue(&rtc->irq_queue, &wait);
-+
-+      if (ret == 0) {
-+              ret = put_user(data, (unsigned long __user *)buf);
-+              if (ret == 0)
-+                      ret = sizeof(unsigned long);
-+      }
-+      return ret;
-+}
-+
-+static unsigned int rtc_dev_poll(struct file *file, poll_table *wait)
-+{
-+      struct rtc_device *rtc = to_rtc_device(file->private_data);
-+      unsigned long data;
-+
-+      poll_wait(file, &rtc->irq_queue, wait);
-+
-+      spin_lock_irq(&rtc->irq_lock);
-+      data = rtc->irq_data;
-+      spin_unlock_irq(&rtc->irq_lock);
-+
-+      return data != 0 ? POLLIN | POLLRDNORM : 0;
-+}
-+
-+static int rtc_dev_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
-+                   unsigned long arg)
-+{
-+      int err = 0;
-+      struct class_device *class_dev = file->private_data;
-+      struct rtc_device *rtc = to_rtc_device(class_dev);
-+      struct rtc_class_ops *ops = rtc->ops;
-+      struct rtc_time tm;
-+      struct rtc_wkalrm alarm;
-+      void __user *uarg = (void __user *) arg;
-+
-+      /* avoid conflicting IRQ users */
-+      if (cmd == RTC_PIE_ON || cmd == RTC_PIE_OFF || cmd == RTC_IRQP_SET) {
-+              spin_lock(&rtc->irq_task_lock);
-+              if (rtc->irq_task)
-+                      err = -EBUSY;
-+              spin_unlock(&rtc->irq_task_lock);
-+
-+              if (err < 0)
-+                      return err;
-+      }
-+
-+      /* try the driver's ioctl interface */
-+      if (ops->ioctl) {
-+              err = ops->ioctl(class_dev->dev, cmd, arg);
-+              if (err < 0 && err != -EINVAL)
-+                      return err;
-+      }
-+
-+      /* if the driver does not provide the ioctl interface
-+       * or if that particular ioctl was not implemented
-+       * (-EINVAL), we will try to emulate here.
-+       */
-+
-+      switch (cmd) {
-+      case RTC_ALM_READ:
-+              if ((err = rtc_read_alarm(class_dev, &alarm)) < 0)
-+                      return err;
-+
-+              if ((err = copy_to_user(uarg, &alarm.time, sizeof(tm))))
-+                      return -EFAULT;
-+              break;
-+
-+      case RTC_ALM_SET:
-+              if ((err = copy_from_user(&alarm.time, uarg, sizeof(tm))))
-+                      return -EFAULT;
-+
-+              alarm.enabled = 0;
-+              alarm.pending = 0;
-+              alarm.time.tm_mday = -1;
-+              alarm.time.tm_mon = -1;
-+              alarm.time.tm_year = -1;
-+              alarm.time.tm_wday = -1;
-+              alarm.time.tm_yday = -1;
-+              alarm.time.tm_isdst = -1;
-+              err = rtc_set_alarm(class_dev, &alarm);
-+              break;
-+
-+      case RTC_RD_TIME:
-+              if ((err = rtc_read_time(class_dev, &tm)) < 0)
-+                      return err;
-+
-+              if ((err = copy_to_user(uarg, &tm, sizeof(tm))))
-+                      return -EFAULT;
-+              break;
-+
-+      case RTC_SET_TIME:
-+              if (!capable(CAP_SYS_TIME))
-+                      return -EACCES;
-+
-+              if ((err = copy_from_user(&tm, uarg, sizeof(tm))))
-+                      return -EFAULT;
-+
-+              err = rtc_set_time(class_dev, &tm);
-+              break;
-+#if 0
-+      case RTC_EPOCH_SET:
-+#ifndef rtc_epoch
-+              /*
-+               * There were no RTC clocks before 1900.
-+               */
-+              if (arg < 1900) {
-+                      err = -EINVAL;
-+                      break;
-+              }
-+              if (!capable(CAP_SYS_TIME)) {
-+                      err = -EACCES;
-+                      break;
-+              }
-+              rtc_epoch = arg;
-+              err = 0;
-+#endif
-+              break;
-+
-+      case RTC_EPOCH_READ:
-+              err = put_user(rtc_epoch, (unsigned long __user *)uarg);
-+              break;
-+#endif
-+      case RTC_WKALM_SET:
-+              if ((err = copy_from_user(&alarm, uarg, sizeof(alarm))))
-+                      return -EFAULT;
-+
-+              err = rtc_set_alarm(class_dev, &alarm);
-+              break;
-+
-+      case RTC_WKALM_RD:
-+              if ((err = rtc_read_alarm(class_dev, &alarm)) < 0)
-+                      return err;
-+
-+              if ((err = copy_to_user(uarg, &alarm, sizeof(alarm))))
-+                      return -EFAULT;
-+              break;
-+
-+      default:
-+              err = -EINVAL;
-+              break;
-+      }
-+
-+      return err;
-+}
-+
-+static int rtc_dev_release(struct inode *inode, struct file *file)
-+{
-+      struct rtc_device *rtc = to_rtc_device(file->private_data);
-+
-+      if (rtc->ops->release)
-+              rtc->ops->release(rtc->class_dev.dev);
-+
-+      spin_lock_irq(&rtc->irq_lock);
-+      rtc->irq_data = 0;
-+      spin_unlock_irq(&rtc->irq_lock);
-+
-+      up(&rtc->char_sem);
-+      return 0;
-+}
-+
-+static int rtc_dev_fasync(int fd, struct file *file, int on)
-+{
-+      struct rtc_device *rtc = to_rtc_device(file->private_data);
-+      return fasync_helper(fd, file, on, &rtc->async_queue);
-+}
-+
-+static struct file_operations rtc_dev_fops = {
-+      .owner          = THIS_MODULE,
-+      .llseek         = no_llseek,
-+      .read           = rtc_dev_read,
-+      .poll           = rtc_dev_poll,
-+      .ioctl          = rtc_dev_ioctl,
-+      .open           = rtc_dev_open,
-+      .release        = rtc_dev_release,
-+      .fasync         = rtc_dev_fasync,
-+};
-+
-+static ssize_t rtc_dev_show_dev(struct class_device *class_dev, char *buf)
-+{
-+        return print_dev_t(buf, class_dev->devt);
-+}
-+static CLASS_DEVICE_ATTR(dev, S_IRUGO, rtc_dev_show_dev, NULL);
-+
-+/* insertion/removal hooks */
-+
-+static int rtc_dev_add_device(struct class_device *class_dev,
-+                              struct class_interface *class_intf)
-+{
-+      struct rtc_device *rtc = to_rtc_device(class_dev);
-+
-+      if (rtc->id >= RTC_DEV_MAX) {
-+              dev_err(class_dev->dev, "too many RTCs\n");
-+              return -EINVAL;
-+      }
-+
-+      init_MUTEX(&rtc->char_sem);
-+      spin_lock_init(&rtc->irq_lock);
-+      init_waitqueue_head(&rtc->irq_queue);
-+
-+      cdev_init(&rtc->char_dev, &rtc_dev_fops);
-+      rtc->char_dev.owner = rtc->owner;
-+      class_dev->devt = MKDEV(MAJOR(rtc_devt), rtc->id);
-+
-+      if (cdev_add(&rtc->char_dev, class_dev->devt, 1)) {
-+              cdev_del(&rtc->char_dev);
-+
-+              dev_err(class_dev->dev,
-+                      "failed to add char device %d:%d\n",
-+                      MAJOR(class_dev->devt),
-+                      MINOR(class_dev->devt));
-+
-+              class_dev->devt = MKDEV(0, 0);
-+              return -ENODEV;
-+      }
-+
-+      class_device_create_file(class_dev, &class_device_attr_dev);
-+
-+      dev_info(class_dev->dev, "rtc intf: dev (%d:%d)\n",
-+              MAJOR(class_dev->devt),
-+              MINOR(class_dev->devt));
-+
-+      kobject_hotplug(&class_dev->kobj, KOBJ_ADD);
-+
-+      return 0;
-+}
-+
-+static void rtc_dev_remove_device(struct class_device *class_dev,
-+                                      struct class_interface *class_intf)
-+{
-+      struct rtc_device *rtc = to_rtc_device(class_dev);
-+
-+      class_device_remove_file(class_dev, &class_device_attr_dev);
-+
-+      if (MAJOR(class_dev->devt)) {
-+              dev_dbg(class_dev->dev, "removing char %d:%d\n",
-+                      MAJOR(class_dev->devt),
-+                      MINOR(class_dev->devt));
-+              cdev_del(&rtc->char_dev);
-+
-+              kobject_hotplug(&class_dev->kobj, KOBJ_REMOVE);
-+
-+              class_dev->devt = MKDEV(0, 0);
-+      }
-+}
-+
-+/* interface registration */
-+
-+struct class_interface rtc_dev_interface = {
-+      .add = &rtc_dev_add_device,
-+      .remove = &rtc_dev_remove_device,
-+};
-+
-+static int __init rtc_dev_init(void)
-+{
-+      int err;
-+
-+      if ((err = alloc_chrdev_region(&rtc_devt, 0, RTC_DEV_MAX, "rtc")) < 0) {
-+              printk(KERN_ERR "%s: failed to allocate char dev region\n",
-+                      __FILE__);
-+              return err;
-+      }
-+
-+      if ((err = rtc_interface_register(&rtc_dev_interface)) < 0) {
-+              printk(KERN_ERR "%s: failed to register the interface\n",
-+                      __FILE__);
-+              unregister_chrdev_region(rtc_devt, RTC_DEV_MAX);
-+              return err;
-+      }
-+
-+      return 0;
-+}
-+
-+static void __exit rtc_dev_exit(void)
-+{
-+      class_interface_unregister(&rtc_dev_interface);
-+
-+      unregister_chrdev_region(rtc_devt, RTC_DEV_MAX);
-+}
-+
-+module_init(rtc_dev_init);
-+module_exit(rtc_dev_exit);
-+
-+MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>");
-+MODULE_DESCRIPTION("RTC class dev interface");
-+MODULE_LICENSE("GPL");
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-nslu2/drivers/rtc/rtc-x1205.c        2006-01-04 01:27:17.000000000 +0100
-@@ -0,0 +1,725 @@
-+/*
-+ * An i2c driver for the Xicor/Intersil X1205 RTC
-+ * Copyright 2004 Karen Spearel
-+ * Copyright 2005 Alessandro Zummo
-+ *
-+ * please send all reports to:
-+ *    kas11 at tampabay dot rr dot com
-+ *    a dot zummo at towertech dot it
-+ *
-+ * based on a lot of other RTC drivers.
-+ *
-+ * 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.
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/slab.h>
-+#include <linux/err.h>
-+#include <linux/i2c.h>
-+#include <linux/string.h>
-+#include <linux/bcd.h>
-+#include <linux/rtc.h>
-+#include <linux/delay.h>
-+
-+#define DRV_VERSION "1.0.5"
-+
-+/* Addresses to scan: none. This chip is located at
-+ * 0x6f and uses a two bytes register addressing.
-+ * Two bytes need to be written to read a single register,
-+ * while most other chips just require one and take the second
-+ * one as the data to be written. To prevent corrupting
-+ * unknown chips, the user must explicitely set the probe parameter.
-+ */
-+
-+static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-+
-+/* Insmod parameters */
-+I2C_CLIENT_INSMOD;
-+I2C_CLIENT_MODULE_PARM(hctosys,
-+      "Set the system time from the hardware clock upon initialization");
-+
-+/* offsets into CCR area */
-+
-+#define CCR_SEC                       0
-+#define CCR_MIN                       1
-+#define CCR_HOUR              2
-+#define CCR_MDAY              3
-+#define CCR_MONTH             4
-+#define CCR_YEAR              5
-+#define CCR_WDAY              6
-+#define CCR_Y2K                       7
-+
-+#define X1205_REG_SR          0x3F    /* status register */
-+#define X1205_REG_Y2K         0x37
-+#define X1205_REG_DW          0x36
-+#define X1205_REG_YR          0x35
-+#define X1205_REG_MO          0x34
-+#define X1205_REG_DT          0x33
-+#define X1205_REG_HR          0x32
-+#define X1205_REG_MN          0x31
-+#define X1205_REG_SC          0x30
-+#define X1205_REG_DTR         0x13
-+#define X1205_REG_ATR         0x12
-+#define X1205_REG_INT         0x11
-+#define X1205_REG_0           0x10
-+#define X1205_REG_Y2K1                0x0F
-+#define X1205_REG_DWA1                0x0E
-+#define X1205_REG_YRA1                0x0D
-+#define X1205_REG_MOA1                0x0C
-+#define X1205_REG_DTA1                0x0B
-+#define X1205_REG_HRA1                0x0A
-+#define X1205_REG_MNA1                0x09
-+#define X1205_REG_SCA1                0x08
-+#define X1205_REG_Y2K0                0x07
-+#define X1205_REG_DWA0                0x06
-+#define X1205_REG_YRA0                0x05
-+#define X1205_REG_MOA0                0x04
-+#define X1205_REG_DTA0                0x03
-+#define X1205_REG_HRA0                0x02
-+#define X1205_REG_MNA0                0x01
-+#define X1205_REG_SCA0                0x00
-+
-+#define X1205_CCR_BASE                0x30    /* Base address of CCR */
-+#define X1205_ALM0_BASE               0x00    /* Base address of ALARM0 */
-+
-+#define X1205_SR_RTCF         0x01    /* Clock failure */
-+#define X1205_SR_WEL          0x02    /* Write Enable Latch */
-+#define X1205_SR_RWEL         0x04    /* Register Write Enable */
-+
-+#define X1205_DTR_DTR0                0x01
-+#define X1205_DTR_DTR1                0x02
-+#define X1205_DTR_DTR2                0x04
-+
-+#define X1205_HR_MIL          0x80    /* Set in ccr.hour for 24 hr mode */
-+
-+/* Prototypes */
-+static int x1205_attach(struct i2c_adapter *adapter);
-+static int x1205_detach(struct i2c_client *client);
-+static int x1205_probe(struct i2c_adapter *adapter, int address, int kind);
-+
-+static struct i2c_driver x1205_driver = {
-+      .owner          = THIS_MODULE,
-+      .name           = "x1205",
-+      .flags          = I2C_DF_NOTIFY,
-+      .attach_adapter = &x1205_attach,
-+      .detach_client  = &x1205_detach,
-+};
-+
-+/*
-+ * In the routines that deal directly with the x1205 hardware, we use
-+ * rtc_time -- month 0-11, hour 0-23, yr = calendar year-epoch
-+ * Epoch is initialized as 2000. Time is set to UTC.
-+ */
-+static int x1205_get_datetime(struct i2c_client *client, struct rtc_time *tm,
-+                              unsigned char reg_base)
-+{
-+      unsigned char dt_addr[2] = { 0, reg_base };
-+
-+      unsigned char buf[8];
-+
-+      struct i2c_msg msgs[] = {
-+              { client->addr, 0, 2, dt_addr },        /* setup read ptr */
-+              { client->addr, I2C_M_RD, 8, buf },     /* read date */
-+      };
-+
-+      /* read date registers */
-+      if ((i2c_transfer(client->adapter, &msgs[0], 2)) != 2) {
-+              dev_err(&client->dev, "%s: read error\n", __FUNCTION__);
-+              return -EIO;
-+      }
-+
-+      dev_dbg(&client->dev,
-+              "%s: raw read data - sec=%02x, min=%02x, hr=%02x, "
-+              "mday=%02x, mon=%02x, year=%02x, wday=%02x, y2k=%02x\n",
-+              __FUNCTION__,
-+              buf[0], buf[1], buf[2], buf[3],
-+              buf[4], buf[5], buf[6], buf[7]);
-+
-+      tm->tm_sec = BCD2BIN(buf[CCR_SEC]);
-+      tm->tm_min = BCD2BIN(buf[CCR_MIN]);
-+      tm->tm_hour = BCD2BIN(buf[CCR_HOUR] & 0x3F); /* hr is 0-23 */
-+      tm->tm_mday = BCD2BIN(buf[CCR_MDAY]);
-+      tm->tm_mon = BCD2BIN(buf[CCR_MONTH]) - 1; /* mon is 0-11 */
-+      tm->tm_year = BCD2BIN(buf[CCR_YEAR])
-+                      + (BCD2BIN(buf[CCR_Y2K]) * 100) - 1900;
-+      tm->tm_wday = buf[CCR_WDAY];
-+
-+      dev_dbg(&client->dev, "%s: tm is secs=%d, mins=%d, hours=%d, "
-+              "mday=%d, mon=%d, year=%d, wday=%d\n",
-+              __FUNCTION__,
-+              tm->tm_sec, tm->tm_min, tm->tm_hour,
-+              tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
-+
-+      return 0;
-+}
-+
-+static int x1205_get_status(struct i2c_client *client, unsigned char *sr)
-+{
-+      static unsigned char sr_addr[2] = { 0, X1205_REG_SR };
-+
-+      struct i2c_msg msgs[] = {
-+              { client->addr, 0, 2, sr_addr },        /* setup read ptr */
-+              { client->addr, I2C_M_RD, 1, sr },      /* read status */
-+      };
-+
-+      /* read status register */
-+      if ((i2c_transfer(client->adapter, &msgs[0], 2)) != 2) {
-+              dev_err(&client->dev, "%s: read error\n", __FUNCTION__);
-+              return -EIO;
-+      }
-+
-+      return 0;
-+}
-+
-+static int x1205_set_datetime(struct i2c_client *client, struct rtc_time *tm,
-+                              int datetoo, u8 reg_base)
-+{
-+      int i, xfer;
-+      unsigned char buf[8];
-+
-+      static const unsigned char wel[3] = { 0, X1205_REG_SR,
-+                                              X1205_SR_WEL };
-+
-+      static const unsigned char rwel[3] = { 0, X1205_REG_SR,
-+                                              X1205_SR_WEL | X1205_SR_RWEL };
-+
-+      static const unsigned char diswe[3] = { 0, X1205_REG_SR, 0 };
-+
-+      dev_dbg(&client->dev,
-+              "%s: secs=%d, mins=%d, hours=%d\n",
-+              __FUNCTION__,
-+              tm->tm_sec, tm->tm_min, tm->tm_hour);
-+
-+      buf[CCR_SEC] = BIN2BCD(tm->tm_sec);
-+      buf[CCR_MIN] = BIN2BCD(tm->tm_min);
-+
-+      /* set hour and 24hr bit */
-+      buf[CCR_HOUR] = BIN2BCD(tm->tm_hour) | X1205_HR_MIL;
-+
-+      /* should we also set the date? */
-+      if (datetoo) {
-+              dev_dbg(&client->dev,
-+                      "%s: mday=%d, mon=%d, year=%d, wday=%d\n",
-+                      __FUNCTION__,
-+                      tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
-+
-+              buf[CCR_MDAY] = BIN2BCD(tm->tm_mday);
-+
-+              /* month, 1 - 12 */
-+              buf[CCR_MONTH] = BIN2BCD(tm->tm_mon + 1);
-+
-+              /* year, since the rtc epoch*/
-+              buf[CCR_YEAR] = BIN2BCD(tm->tm_year % 100);
-+              buf[CCR_WDAY] = tm->tm_wday & 0x07;
-+              buf[CCR_Y2K] = BIN2BCD(tm->tm_year / 100);
-+      }
-+
-+      /* this sequence is required to unlock the chip */
-+      xfer = i2c_master_send(client, wel, 3);
-+      if (xfer != 3) {
-+              dev_err(&client->dev, "%s: wel - %d\n", __FUNCTION__, xfer);
-+              return -EIO;
-+      }
-+
-+      xfer = i2c_master_send(client, rwel, 3);
-+      if (xfer != 3) {
-+              dev_err(&client->dev, "%s: rwel - %d\n", __FUNCTION__, xfer);
-+              return -EIO;
-+      }
-+
-+      /* write register's data */
-+      for (i = 0; i < (datetoo ? 8 : 3); i++) {
-+              unsigned char rdata[3] = { 0, reg_base + i, buf[i] };
-+
-+              xfer = i2c_master_send(client, rdata, 3);
-+              if (xfer != 3) {
-+                      dev_err(&client->dev,
-+                              "%s: xfer=%d addr=%02x, data=%02x\n",
-+                              __FUNCTION__,
-+                               xfer, rdata[1], rdata[2]);
-+                      return -EIO;
-+              }
-+      };
-+
-+      /* disable further writes */
-+      xfer = i2c_master_send(client, diswe, 3);
-+      if (xfer != 3) {
-+              dev_err(&client->dev, "%s: diswe - %d\n", __FUNCTION__, xfer);
-+              return -EIO;
-+      }
-+
-+      return 0;
-+}
-+
-+static int x1205_fix_osc(struct i2c_client *client)
-+{
-+      int err;
-+      struct rtc_time tm;
-+
-+      tm.tm_hour = 0;
-+      tm.tm_min = 0;
-+      tm.tm_sec = 0;
-+
-+      if ((err = x1205_set_datetime(client, &tm, 0, X1205_CCR_BASE)) < 0)
-+              dev_err(&client->dev,
-+                      "unable to restart the clock\n");
-+
-+      return err;
-+}
-+
-+static int x1205_get_dtrim(struct i2c_client *client, int *trim)
-+{
-+      unsigned char dtr;
-+      static unsigned char dtr_addr[2] = { 0, X1205_REG_DTR };
-+
-+      struct i2c_msg msgs[] = {
-+              { client->addr, 0, 2, dtr_addr },       /* setup read ptr */
-+              { client->addr, I2C_M_RD, 1, &dtr },    /* read dtr */
-+      };
-+
-+      /* read dtr register */
-+      if ((i2c_transfer(client->adapter, &msgs[0], 2)) != 2) {
-+              dev_err(&client->dev, "%s: read error\n", __FUNCTION__);
-+              return -EIO;
-+      }
-+
-+      dev_dbg(&client->dev, "%s: raw dtr=%x\n", __FUNCTION__, dtr);
-+
-+      *trim = 0;
-+
-+      if (dtr & X1205_DTR_DTR0)
-+              *trim += 20;
-+
-+      if (dtr & X1205_DTR_DTR1)
-+              *trim += 10;
-+
-+      if (dtr & X1205_DTR_DTR2)
-+              *trim = -*trim;
-+
-+      return 0;
-+}
-+
-+static int x1205_get_atrim(struct i2c_client *client, int *trim)
-+{
-+      s8 atr;
-+      static unsigned char atr_addr[2] = { 0, X1205_REG_ATR };
-+
-+      struct i2c_msg msgs[] = {
-+              { client->addr, 0, 2, atr_addr },       /* setup read ptr */
-+              { client->addr, I2C_M_RD, 1, &atr },    /* read atr */
-+      };
-+
-+      /* read atr register */
-+      if ((i2c_transfer(client->adapter, &msgs[0], 2)) != 2) {
-+              dev_err(&client->dev, "%s: read error\n", __FUNCTION__);
-+              return -EIO;
-+      }
-+
-+      dev_dbg(&client->dev, "%s: raw atr=%x\n", __FUNCTION__, atr);
-+
-+      /* atr is a two's complement value on 6 bits,
-+       * perform sign extension. The formula is
-+       * Catr = (atr * 0.25pF) + 11.00pF.
-+       */
-+      if (atr & 0x20)
-+              atr |= 0xC0;
-+
-+      dev_dbg(&client->dev, "%s: raw atr=%x (%d)\n", __FUNCTION__, atr, atr);
-+
-+      *trim = (atr * 250) + 11000;
-+
-+      dev_dbg(&client->dev, "%s: real=%d\n", __FUNCTION__, *trim);
-+
-+      return 0;
-+}
-+
-+static int x1205_hctosys(struct i2c_client *client)
-+{
-+      int err;
-+
-+      struct rtc_time tm;
-+      struct timespec tv;
-+      unsigned char sr;
-+
-+      if ((err = x1205_get_status(client, &sr)) < 0)
-+              return err;
-+
-+      /* Don't set if we had a power failure */
-+      if (sr & X1205_SR_RTCF)
-+              return -EINVAL;
-+
-+      if ((err = x1205_get_datetime(client, &tm, X1205_CCR_BASE)) < 0)
-+              return err;
-+
-+      /* IMPORTANT: the RTC only stores whole seconds. It is arbitrary
-+       * whether it stores the most close value or the value with partial
-+       * seconds truncated. However, it is important that we use it to store
-+       * the truncated value. This is because otherwise it is necessary,
-+       * in an rtc sync function, to read both xtime.tv_sec and
-+       * xtime.tv_nsec. On some processors (i.e. ARM), an atomic read
-+       * of >32bits is not possible. So storing the most close value would
-+       * slow down the sync API. So here we have the truncated value and
-+       * the best guess is to add 0.5s.
-+       */
-+
-+      tv.tv_nsec = NSEC_PER_SEC >> 1;
-+
-+      rtc_tm_to_time(&tm, &tv.tv_sec);
-+
-+      do_settimeofday(&tv);
-+
-+      dev_info(&client->dev,
-+              "setting the system clock to %d-%d-%d %d:%d:%d\n",
-+              tm.tm_year + 1900, tm.tm_mon + 1,
-+              tm.tm_mday, tm.tm_hour, tm.tm_min,
-+              tm.tm_sec);
-+
-+      return 0;
-+}
-+
-+struct x1205_limit
-+{
-+      unsigned char reg;
-+      unsigned char mask;
-+      unsigned char min;
-+      unsigned char max;
-+};
-+
-+static int x1205_validate_client(struct i2c_client *client)
-+{
-+      int i, xfer;
-+
-+      /* Probe array. We will read the register at the specified
-+       * address and check if the given bits are zero.
-+       */
-+      static const unsigned char probe_zero_pattern[] = {
-+              /* register, mask */
-+              X1205_REG_SR,   0x18,
-+              X1205_REG_DTR,  0xF8,
-+              X1205_REG_ATR,  0xC0,
-+              X1205_REG_INT,  0x18,
-+              X1205_REG_0,    0xFF,
-+      };
-+
-+      static const struct x1205_limit probe_limits_pattern[] = {
-+              /* register, mask, min, max */
-+              { X1205_REG_Y2K,        0xFF,   19,     20      },
-+              { X1205_REG_DW,         0xFF,   0,      6       },
-+              { X1205_REG_YR,         0xFF,   0,      99      },
-+              { X1205_REG_MO,         0xFF,   0,      12      },
-+              { X1205_REG_DT,         0xFF,   0,      31      },
-+              { X1205_REG_HR,         0x7F,   0,      23      },
-+              { X1205_REG_MN,         0xFF,   0,      59      },
-+              { X1205_REG_SC,         0xFF,   0,      59      },
-+              { X1205_REG_Y2K1,       0xFF,   19,     20      },
-+              { X1205_REG_Y2K0,       0xFF,   19,     20      },
-+      };
-+
-+      /* check that registers have bits a 0 where expected */
-+      for (i = 0; i < ARRAY_SIZE(probe_zero_pattern); i += 2) {
-+              unsigned char buf;
-+
-+              unsigned char addr[2] = { 0, probe_zero_pattern[i] };
-+
-+              struct i2c_msg msgs[2] = {
-+                      { client->addr, 0, 2, addr },
-+                      { client->addr, I2C_M_RD, 1, &buf },
-+              };
-+
-+              xfer = i2c_transfer(client->adapter, msgs, 2);
-+              if (xfer != 2) {
-+                      dev_err(&client->adapter->dev,
-+                              "%s: could not read register %x\n",
-+                              __FUNCTION__, addr[1]);
-+
-+                      return -EIO;
-+              }
-+
-+              if ((buf & probe_zero_pattern[i+1]) != 0) {
-+                      dev_err(&client->adapter->dev,
-+                              "%s: register=%02x, zero pattern=%d, value=%x\n",
-+                              __FUNCTION__, addr[1], i, buf);
-+
-+                      return -ENODEV;
-+              }
-+      }
-+
-+      /* check limits (only registers with bcd values) */
-+      for (i = 0; i < ARRAY_SIZE(probe_limits_pattern); i++) {
-+              unsigned char reg, value;
-+
-+              unsigned char addr[2] = { 0, probe_limits_pattern[i].reg };
-+
-+              struct i2c_msg msgs[2] = {
-+                      { client->addr, 0, 2, addr },
-+                      { client->addr, I2C_M_RD, 1, &reg },
-+              };
-+
-+              xfer = i2c_transfer(client->adapter, msgs, 2);
-+
-+              if (xfer != 2) {
-+                      dev_err(&client->adapter->dev,
-+                              "%s: could not read register %x\n",
-+                              __FUNCTION__, addr[1]);
-+
-+                      return -EIO;
-+              }
-+
-+              value = BCD2BIN(reg & probe_limits_pattern[i].mask);
-+
-+              if (value > probe_limits_pattern[i].max ||
-+                      value < probe_limits_pattern[i].min) {
-+                      dev_dbg(&client->adapter->dev,
-+                              "%s: register=%x, lim pattern=%d, value=%d\n",
-+                              __FUNCTION__, addr[1], i, value);
-+
-+                      return -ENODEV;
-+              }
-+      }
-+
-+      return 0;
-+}
-+
-+static int x1205_rtc_read_alarm(struct device *dev,
-+      struct rtc_wkalrm *alrm)
-+{
-+      return x1205_get_datetime(to_i2c_client(dev),
-+              &alrm->time, X1205_ALM0_BASE);
-+}
-+
-+static int x1205_rtc_set_alarm(struct device *dev,
-+      struct rtc_wkalrm *alrm)
-+{
-+      return x1205_set_datetime(to_i2c_client(dev),
-+              &alrm->time, 1, X1205_ALM0_BASE);
-+}
-+
-+static int x1205_rtc_read_time(struct device *dev,
-+      struct rtc_time *tm)
-+{
-+      return x1205_get_datetime(to_i2c_client(dev),
-+              tm, X1205_CCR_BASE);
-+}
-+
-+static int x1205_rtc_set_time(struct device *dev,
-+      struct rtc_time *tm)
-+{
-+      return x1205_set_datetime(to_i2c_client(dev),
-+              tm, 1, X1205_CCR_BASE);
-+}
-+
-+static int x1205_rtc_set_mmss(struct device *dev, unsigned long secs)
-+{
-+      int err;
-+
-+      struct rtc_time new_tm, old_tm;
-+
-+      if ((err = x1205_rtc_read_time(dev, &old_tm) == 0))
-+              return err;
-+
-+      /* FIXME      xtime.tv_nsec = old_tm.tm_sec * 10000000; */
-+      new_tm.tm_sec  = secs % 60;
-+      secs /= 60;
-+      new_tm.tm_min  = secs % 60;
-+      secs /= 60;
-+      new_tm.tm_hour = secs % 24;
-+
-+       /*
-+      * avoid writing when we're going to change the day
-+      * of the month.  We will retry in the next minute.
-+      * This basically means that if the RTC must not drift
-+      * by more than 1 minute in 11 minutes.
-+      */
-+      if ((old_tm.tm_hour == 23 && old_tm.tm_min == 59) ||
-+          (new_tm.tm_hour == 23 && new_tm.tm_min == 59))
-+              return 1;
-+
-+      return x1205_rtc_set_time(dev, &new_tm);
-+}
-+
-+static int x1205_rtc_proc(struct device *dev, struct seq_file *seq)
-+{
-+      int err, dtrim, atrim;
-+
-+      seq_printf(seq, "24hr\t\t: yes\n");
-+
-+      err = x1205_get_dtrim(to_i2c_client(dev), &dtrim);
-+      if (err == 0)
-+              seq_printf(seq, "digital_trim\t: %d ppm\n", dtrim);
-+
-+      err = x1205_get_atrim(to_i2c_client(dev), &atrim);
-+      if (err == 0)
-+              seq_printf(seq, "analog_trim\t: %d.%02d pF\n",
-+                      atrim / 1000, atrim % 1000);
-+      return 0;
-+}
-+
-+static struct rtc_class_ops x1205_rtc_ops = {
-+      .proc = x1205_rtc_proc,
-+      .read_time = x1205_rtc_read_time,
-+      .set_time = x1205_rtc_set_time,
-+      .read_alarm = x1205_rtc_read_alarm,
-+      .set_alarm = x1205_rtc_set_alarm,
-+      .set_mmss = x1205_rtc_set_mmss,
-+};
-+
-+static ssize_t x1205_sysfs_show_atrim(struct device *dev,
-+                              struct device_attribute *attr, char *buf)
-+{
-+      int atrim;
-+
-+        if (x1205_get_atrim(to_i2c_client(dev), &atrim) == 0) {
-+                return sprintf(buf, "%d.%02d pF\n",
-+                        atrim / 1000, atrim % 1000);        }
-+        return 0;
-+}
-+static DEVICE_ATTR(atrim, S_IRUGO, x1205_sysfs_show_atrim, NULL);
-+
-+static ssize_t x1205_sysfs_show_dtrim(struct device *dev,
-+                              struct device_attribute *attr, char *buf)
-+{
-+      int dtrim;
-+
-+        if (x1205_get_dtrim(to_i2c_client(dev), &dtrim) == 0) {
-+                return sprintf(buf, "%d ppm\n", dtrim);
-+        }
-+        return 0;
-+}
-+static DEVICE_ATTR(dtrim, S_IRUGO, x1205_sysfs_show_dtrim, NULL);
-+
-+
-+static int x1205_attach(struct i2c_adapter *adapter)
-+{
-+      dev_dbg(&adapter->dev, "%s\n", __FUNCTION__);
-+
-+      return i2c_probe(adapter, &addr_data, x1205_probe);
-+}
-+
-+static int x1205_probe(struct i2c_adapter *adapter, int address, int kind)
-+{
-+      int err = 0;
-+      unsigned char sr;
-+      struct i2c_client *client;
-+      struct rtc_device *rtc;
-+
-+      dev_dbg(&adapter->dev, "%s\n", __FUNCTION__);
-+
-+      if (!i2c_check_functionality(adapter, I2C_FUNC_I2C)) {
-+              err = -ENODEV;
-+              goto exit;
-+      }
-+
-+      if (!(client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL))) {
-+              err = -ENOMEM;
-+              goto exit;
-+      }
-+
-+      /* I2C client */
-+      client->addr = address;
-+      client->driver = &x1205_driver;
-+      client->adapter = adapter;
-+
-+      strlcpy(client->name, x1205_driver.name, I2C_NAME_SIZE);
-+
-+      /* Verify the chip is really an X1205 */
-+      if (kind < 0) {
-+              if (x1205_validate_client(client) < 0) {
-+                      err = -ENODEV;
-+                      goto exit_kfree;
-+              }
-+      }
-+
-+      /* Inform the i2c layer */
-+      if ((err = i2c_attach_client(client)))
-+              goto exit_kfree;
-+
-+      dev_info(&client->dev, "chip found, driver version " DRV_VERSION "\n");
-+
-+      rtc = rtc_device_register(x1205_driver.name, &client->dev,
-+                              &x1205_rtc_ops, THIS_MODULE);
-+
-+      if (IS_ERR(rtc)) {
-+              err = PTR_ERR(rtc);
-+              dev_err(&client->dev,
-+                      "unable to register the class device\n");
-+              goto exit_detach;
-+      }
-+
-+      i2c_set_clientdata(client, rtc);
-+
-+      /* Check for power failures and eventualy enable the osc */
-+      if ((err = x1205_get_status(client, &sr)) == 0) {
-+              if (sr & X1205_SR_RTCF) {
-+                      dev_err(&client->dev,
-+                              "power failure detected, "
-+                              "please set the clock\n");
-+                      udelay(50);
-+                      x1205_fix_osc(client);
-+              }
-+      }
-+      else
-+              dev_err(&client->dev, "couldn't read status\n");
-+
-+      /* If requested, set the system time */
-+      if (hctosys) {
-+              if ((err = x1205_hctosys(client)) < 0)
-+                      dev_err(&client->dev,
-+                              "unable to set the system clock\n");
-+      }
-+
-+      device_create_file(&client->dev, &dev_attr_atrim);
-+      device_create_file(&client->dev, &dev_attr_dtrim);
-+
-+      return 0;
-+
-+exit_detach:
-+      i2c_detach_client(client);
-+
-+exit_kfree:
-+      kfree(client);
-+
-+exit:
-+      return err;
-+}
-+
-+static int x1205_detach(struct i2c_client *client)
-+{
-+      int err;
-+      struct rtc_device *rtc = i2c_get_clientdata(client);
-+
-+      dev_dbg(&client->dev, "%s\n", __FUNCTION__);
-+
-+      if (rtc)
-+              rtc_device_unregister(rtc);
-+
-+      if ((err = i2c_detach_client(client)))
-+              return err;
-+
-+      kfree(client);
-+
-+      return 0;
-+}
-+
-+static int __init x1205_init(void)
-+{
-+      return i2c_add_driver(&x1205_driver);
-+}
-+
-+static void __exit x1205_exit(void)
-+{
-+      i2c_del_driver(&x1205_driver);
-+}
-+
-+MODULE_AUTHOR(
-+      "Karen Spearel <kas11@tampabay.rr.com>, "
-+      "Alessandro Zummo <a.zummo@towertech.it>");
-+MODULE_DESCRIPTION("Xicor/Intersil X1205 RTC driver");
-+MODULE_LICENSE("GPL");
-+MODULE_VERSION(DRV_VERSION);
-+
-+module_init(x1205_init);
-+module_exit(x1205_exit);
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-nslu2/drivers/rtc/rtc-test.c 2006-01-04 01:27:19.000000000 +0100
-@@ -0,0 +1,189 @@
-+/*
-+ * An RTC test device/driver
-+ * Copyright (C) 2005 Tower Technologies
-+ * Author: Alessandro Zummo <a.zummo@towertech.it>
-+ *
-+ * 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.
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/err.h>
-+#include <linux/rtc.h>
-+#include <linux/platform_device.h>
-+
-+static int test_rtc_read_alarm(struct device *dev,
-+      struct rtc_wkalrm *alrm)
-+{
-+      return 0;
-+}
-+
-+static int test_rtc_set_alarm(struct device *dev,
-+      struct rtc_wkalrm *alrm)
-+{
-+      return 0;
-+}
-+
-+static int test_rtc_read_time(struct device *dev,
-+      struct rtc_time *tm)
-+{
-+      rtc_time_to_tm(get_seconds(), tm);
-+      return 0;
-+}
-+
-+static int test_rtc_set_time(struct device *dev,
-+      struct rtc_time *tm)
-+{
-+      return 0;
-+}
-+
-+static int test_rtc_set_mmss(struct device *dev, unsigned long secs)
-+{
-+      return 0;
-+}
-+
-+static int test_rtc_proc(struct device *dev, struct seq_file *seq)
-+{
-+      struct platform_device *plat_dev = to_platform_device(dev);
-+
-+      seq_printf(seq, "24hr\t\t: yes\n");
-+      seq_printf(seq, "test\t\t: yes\n");
-+      seq_printf(seq, "id\t\t: %d\n", plat_dev->id);
-+
-+      return 0;
-+}
-+
-+static int test_rtc_ioctl(struct device *dev, unsigned int cmd,
-+      unsigned long arg)
-+{
-+      /* We do support interrupts, they're generated
-+       * using the sysfs interface.
-+       */
-+      switch (cmd) {
-+      case RTC_PIE_ON:
-+      case RTC_PIE_OFF:
-+      case RTC_UIE_ON:
-+      case RTC_UIE_OFF:
-+      case RTC_AIE_ON:
-+      case RTC_AIE_OFF:
-+              return 0;
-+
-+      default:
-+              return -EINVAL;
-+      }
-+}
-+
-+static struct rtc_class_ops test_rtc_ops = {
-+      .proc = test_rtc_proc,
-+      .read_time = test_rtc_read_time,
-+      .set_time = test_rtc_set_time,
-+      .read_alarm = test_rtc_read_alarm,
-+      .set_alarm = test_rtc_set_alarm,
-+      .set_mmss = test_rtc_set_mmss,
-+      .ioctl = test_rtc_ioctl,
-+};
-+
-+static ssize_t test_irq_show(struct device *dev,
-+                              struct device_attribute *attr, char *buf)
-+{
-+      return sprintf(buf, "%d\n", 42);
-+}
-+static ssize_t test_irq_store(struct device *dev,
-+                              struct device_attribute *attr,
-+                              const char *buf, size_t count)
-+{
-+      int retval;
-+      struct platform_device *plat_dev = to_platform_device(dev);
-+      struct rtc_device *rtc = platform_get_drvdata(plat_dev);
-+
-+      retval = count;
-+      if (strncmp(buf, "tick", 4) == 0)
-+              rtc_update_irq(&rtc->class_dev, 1, RTC_PF | RTC_IRQF);
-+      else if (strncmp(buf, "alarm", 5) == 0)
-+              rtc_update_irq(&rtc->class_dev, 1, RTC_AF | RTC_IRQF);
-+      else if (strncmp(buf, "update", 6) == 0)
-+              rtc_update_irq(&rtc->class_dev, 1, RTC_UF | RTC_IRQF);
-+      else
-+              retval = -EINVAL;
-+
-+      return retval;
-+}
-+static DEVICE_ATTR(irq, S_IRUGO | S_IWUSR, test_irq_show, test_irq_store);
-+
-+static int test_probe(struct platform_device *plat_dev)
-+{
-+      int err;
-+      struct rtc_device *rtc = rtc_device_register("test", &plat_dev->dev,
-+                                              &test_rtc_ops, THIS_MODULE);
-+      if (IS_ERR(rtc)) {
-+              err = PTR_ERR(rtc);
-+              dev_err(&plat_dev->dev,
-+                      "unable to register the class device\n");
-+              return err;
-+      }
-+      device_create_file(&plat_dev->dev, &dev_attr_irq);
-+
-+      platform_set_drvdata(plat_dev, rtc);
-+
-+      return 0;
-+}
-+
-+static int test_remove(struct platform_device *plat_dev)
-+{
-+      struct rtc_device *rtc = platform_get_drvdata(plat_dev);
-+
-+      rtc_device_unregister(rtc);
-+      device_remove_file(&plat_dev->dev, &dev_attr_irq);
-+
-+      return 0;
-+}
-+
-+static void test_release(struct device * dev)
-+{
-+}
-+
-+struct platform_device test_dev_zero = {
-+      .name   = "rtc-test",
-+      .id     = 0,
-+      .dev.release = test_release,
-+};
-+
-+struct platform_device test_dev_one = {
-+      .name   = "rtc-test",
-+      .id     = 1,
-+      .dev.release = test_release,
-+};
-+
-+struct platform_driver test_drv = {
-+      .probe  = test_probe,
-+      .remove = test_remove,
-+      .driver = {
-+              .name = "rtc-test",
-+              .owner = THIS_MODULE,
-+      },
-+};
-+
-+static int __init test_init(void)
-+{
-+      platform_device_register(&test_dev_zero);
-+      platform_device_register(&test_dev_one);
-+      platform_driver_register(&test_drv);
-+
-+      return 0;
-+}
-+
-+static void __exit test_exit(void)
-+{
-+      platform_driver_unregister(&test_drv);
-+      platform_device_unregister(&test_dev_zero);
-+      platform_device_unregister(&test_dev_one);
-+}
-+
-+MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>");
-+MODULE_DESCRIPTION("RTC test driver/device");
-+MODULE_LICENSE("GPL");
-+
-+module_init(test_init);
-+module_exit(test_exit);
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-nslu2/drivers/rtc/rtc-ds1672.c       2006-01-04 01:27:21.000000000 +0100
-@@ -0,0 +1,266 @@
-+/*
-+ * An rtc/i2c driver for the Dallas DS1672
-+ * Copyright 2005 Alessandro Zummo
-+ *
-+ * 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.
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/i2c.h>
-+#include <linux/rtc.h>
-+
-+#define DRV_VERSION "0.1"
-+
-+/* Addresses to scan: none. This chip cannot be detected. */
-+static unsigned short normal_i2c[] = { I2C_CLIENT_END };
-+
-+/* Insmod parameters */
-+I2C_CLIENT_INSMOD;
-+I2C_CLIENT_MODULE_PARM(hctosys,
-+      "Set the system time from the hardware clock upon initialization");
-+
-+/* Registers */
-+
-+#define DS1672_REG_CNT_BASE   0
-+#define DS1672_REG_CONTROL    4
-+#define DS1672_REG_TRICKLE    5
-+
-+
-+/* Prototypes */
-+static int ds1672_probe(struct i2c_adapter *adapter, int address, int kind);
-+
-+/*
-+ * In the routines that deal directly with the ds1672 hardware, we use
-+ * rtc_time -- month 0-11, hour 0-23, yr = calendar year-epoch
-+ * Epoch is initialized as 2000. Time is set to UTC.
-+ */
-+static int ds1672_get_datetime(struct i2c_client *client, struct rtc_time *tm)
-+{
-+      unsigned long time;
-+      unsigned char buf[4];
-+
-+      dev_dbg(&client->dev,
-+              "%s: raw read data - counters=%02x,%02x,%02x,%02x\n"
-+              __FUNCTION__,
-+              buf[0], buf[1], buf[2], buf[3]);
-+
-+      time = (buf[3] << 24) | (buf[2] << 16) | (buf[1] << 8) | buf[0];
-+
-+      rtc_time_to_tm(time, tm);
-+
-+      dev_dbg(&client->dev, "%s: tm is secs=%d, mins=%d, hours=%d, "
-+              "mday=%d, mon=%d, year=%d, wday=%d\n",
-+              __FUNCTION__,
-+              tm->tm_sec, tm->tm_min, tm->tm_hour,
-+              tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
-+
-+      return 0;
-+}
-+
-+static int ds1672_set_mmss(struct i2c_client *client, unsigned long secs)
-+{
-+      int xfer;
-+      unsigned char buf[5];
-+
-+      buf[0] = DS1672_REG_CNT_BASE;
-+      buf[1] = secs & 0x000000FF;
-+      buf[2] = (secs & 0x0000FF00) >> 8;
-+      buf[3] = (secs & 0x00FF0000) >> 16;
-+      buf[4] = (secs & 0xFF000000) >> 24;
-+
-+      xfer = i2c_master_send(client, buf, 5);
-+      if (xfer != 5) {
-+              dev_err(&client->dev, "%s: send: %d\n", __FUNCTION__, xfer);
-+              return -EIO;
-+      }
-+
-+      return 0;
-+}
-+
-+static int ds1672_set_datetime(struct i2c_client *client, struct rtc_time *tm)
-+{
-+      unsigned long secs;
-+
-+      dev_dbg(&client->dev,
-+              "%s: secs=%d, mins=%d, hours=%d, ",
-+              "mday=%d, mon=%d, year=%d, wday=%d\n",
-+              __FUNCTION__,
-+              tm->tm_sec, tm->tm_min, tm->tm_hour,
-+              tm->tm_mday, tm->tm_mon, tm->tm_year, tm->tm_wday);
-+
-+      rtc_tm_to_time(tm, &secs);
-+
-+      return ds1672_set_mmss(client, secs);
-+}
-+
-+static int ds1672_hctosys(struct i2c_client *client)
-+{
-+      int err;
-+      struct rtc_time tm;
-+      struct timespec tv;
-+
-+      if ((err = ds1672_get_datetime(client, &tm)) != 0)
-+              return err;
-+
-+      /* IMPORTANT: the RTC only stores whole seconds. It is arbitrary
-+       * whether it stores the most close value or the value with partial
-+       * seconds truncated. However, it is important that we use it to store
-+       * the truncated value. This is because otherwise it is necessary,
-+       * in an rtc sync function, to read both xtime.tv_sec and
-+       * xtime.tv_nsec. On some processors (i.e. ARM), an atomic read
-+       * of >32bits is not possible. So storing the most close value would
-+       * slow down the sync API. So here we have the truncated value and
-+       * the best guess is to add 0.5s.
-+       */
-+
-+      tv.tv_nsec = NSEC_PER_SEC >> 1;
-+
-+      rtc_tm_to_time(&tm, &tv.tv_sec);
-+
-+      do_settimeofday(&tv);
-+
-+      dev_info(&client->dev,
-+              "setting the system clock to %d-%02d-%02d %02d:%02d:%02d\n",
-+              tm.tm_year + 1900, tm.tm_mon + 1,
-+              tm.tm_mday, tm.tm_hour, tm.tm_min,
-+              tm.tm_sec);
-+
-+      return 0;
-+}
-+
-+static int ds1672_rtc_read_time(struct device *dev, struct rtc_time *tm)
-+{
-+      return ds1672_get_datetime(to_i2c_client(dev), tm);
-+}
-+
-+static int ds1672_rtc_set_time(struct device *dev, struct rtc_time *tm)
-+{
-+      return ds1672_set_datetime(to_i2c_client(dev), tm);
-+}
-+
-+static int ds1672_rtc_set_mmss(struct device *dev, unsigned long secs)
-+{
-+      return ds1672_set_mmss(to_i2c_client(dev), secs);
-+}
-+
-+static struct rtc_class_ops ds1672_rtc_ops = {
-+      .read_time = ds1672_rtc_read_time,
-+      .set_time = ds1672_rtc_set_time,
-+      .set_mmss = ds1672_rtc_set_mmss,
-+};
-+
-+static int ds1672_attach(struct i2c_adapter *adapter)
-+{
-+      dev_dbg(&adapter->dev, "%s\n", __FUNCTION__);
-+
-+      return i2c_probe(adapter, &addr_data, ds1672_probe);
-+}
-+
-+static int ds1672_detach(struct i2c_client *client)
-+{
-+      int err;
-+      struct rtc_device *rtc = i2c_get_clientdata(client);
-+
-+      dev_dbg(&client->dev, "%s\n", __FUNCTION__);
-+
-+      if (rtc)
-+              rtc_device_unregister(rtc);
-+
-+      if ((err = i2c_detach_client(client)))
-+              return err;
-+
-+      kfree(client);
-+
-+      return 0;
-+}
-+
-+static struct i2c_driver ds1672_driver = {
-+      .owner          = THIS_MODULE,
-+      .name           = "ds1672",
-+      .flags          = I2C_DF_NOTIFY,
-+      .attach_adapter = &ds1672_attach,
-+      .detach_client  = &ds1672_detach,
-+};
-+
-+static int ds1672_probe(struct i2c_adapter *adapter, int address, int kind)
-+{
-+      int err = 0;
-+      struct i2c_client *client;
-+      struct rtc_device *rtc;
-+
-+      dev_dbg(&adapter->dev, "%s\n", __FUNCTION__);
-+
-+      if (!i2c_check_functionality(adapter, I2C_FUNC_I2C)) {
-+              err = -ENODEV;
-+              goto exit;
-+      }
-+
-+      if (!(client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL))) {
-+              err = -ENOMEM;
-+              goto exit;
-+      }
-+
-+      /* I2C client */
-+      client->addr = address;
-+      client->driver = &ds1672_driver;
-+      client->adapter = adapter;
-+
-+      strlcpy(client->name, ds1672_driver.name, I2C_NAME_SIZE);
-+
-+      /* Inform the i2c layer */
-+      if ((err = i2c_attach_client(client)))
-+              goto exit_kfree;
-+
-+      dev_info(&client->dev, "chip found, driver version " DRV_VERSION "\n");
-+
-+      rtc = rtc_device_register(ds1672_driver.name, &client->dev,
-+                              &ds1672_rtc_ops, THIS_MODULE);
-+
-+      if (IS_ERR(rtc)) {
-+              err = PTR_ERR(rtc);
-+              dev_err(&client->dev,
-+                      "unable to register the class device\n");
-+              goto exit_detach;
-+      }
-+
-+      i2c_set_clientdata(client, rtc);
-+
-+      /* If requested, set the system time */
-+      if (hctosys) {
-+              if ((err = ds1672_hctosys(client)) < 0)
-+                      dev_err(&client->dev,
-+                              "unable to set the system clock\n");
-+      }
-+
-+      return 0;
-+
-+exit_detach:
-+      i2c_detach_client(client);
-+
-+exit_kfree:
-+      kfree(client);
-+
-+exit:
-+      return err;
-+}
-+
-+static int __init ds1672_init(void)
-+{
-+      return i2c_add_driver(&ds1672_driver);
-+}
-+
-+static void __exit ds1672_exit(void)
-+{
-+      i2c_del_driver(&ds1672_driver);
-+}
-+
-+MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>");
-+MODULE_DESCRIPTION("Dallas/Maxim DS1672 timekeeper driver");
-+MODULE_LICENSE("GPL");
-+MODULE_VERSION(DRV_VERSION);
-+
-+module_init(ds1672_init);
-+module_exit(ds1672_exit);
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.15/60-nslu2-beeper.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.15/60-nslu2-beeper.patch
deleted file mode 100644 (file)
index 12fdc4d..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
- drivers/input/misc/Kconfig     |   12 +++
- drivers/input/misc/Makefile    |    1 
- drivers/input/misc/nslu2spkr.c |  148 +++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 161 insertions(+)
-
---- linux-2.6.15/drivers/input/misc/Kconfig    1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/drivers/input/misc/Kconfig    1970-01-01 00:00:00.000000000 +0000
-@@ -40,6 +40,18 @@ config INPUT_M68K_BEEP
-       tristate "M68k Beeper support"
-       depends on M68K
-+config INPUT_NSLU2_BEEPER
-+      tristate "NSLU2 Beeper support"
-+      depends on MACH_NSLU2
-+      help
-+        Say Y here if you want the embedded beeper on the LinkSys NSLU2
-+        to be used for bells and whistles.
-+
-+        If unsure, say Y.
-+
-+        To compile this driver as a module, choose M here: the
-+        module will be called nslu2spkr.
-+
- config INPUT_UINPUT
-       tristate "User level driver support"
-       help
---- linux-2.6.15/drivers/input/misc/Makefile   1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/drivers/input/misc/Makefile   1970-01-01 00:00:00.000000000 +0000
-@@ -10,3 +10,4 @@ obj-$(CONFIG_INPUT_M68K_BEEP)                += m68ksp
- obj-$(CONFIG_INPUT_98SPKR)            += 98spkr.o
- obj-$(CONFIG_INPUT_UINPUT)            += uinput.o
- obj-$(CONFIG_HP_SDC_RTC)              += hp_sdc_rtc.o
-+obj-$(CONFIG_INPUT_NSLU2_BEEPER)      += nslu2spkr.o
---- linux-2.6.15/drivers/input/misc/nslu2spkr.c        1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/drivers/input/misc/nslu2spkr.c        1970-01-01 00:00:00.000000000 +0000
-@@ -0,0 +1,148 @@
-+/*
-+ * drivers/input/misc/nslu2spkr.c
-+ *
-+ * NSLU2 Beeper driver
-+ *
-+ * Copyright (C) 2005 Tower Technologies
-+ *
-+ * based on nslu2-io.c
-+ *  Copyright (C) 2004 Karen Spearel
-+ *
-+ * Author: Alessandro Zummo <a.zummo@towertech.it>
-+ * Maintainers: http://www.nslu2-linux.org/
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/input.h>
-+#include <linux/delay.h>
-+
-+#include <asm/hardware.h>
-+#include <asm/irq.h>
-+#include <asm/mach-types.h>
-+
-+static unsigned int beep_on_startup = 1;
-+module_param(beep_on_startup, bool, 0);
-+MODULE_PARM_DESC(beep_on_startup, "Play a beep on module startup");
-+
-+DEFINE_SPINLOCK(beep_lock);
-+
-+static int nslu2_spkr_event(struct input_dev *dev, unsigned int type, unsigned int code, int value)
-+{
-+      unsigned int count = 0;
-+      unsigned long flags;
-+
-+      if (type != EV_SND)
-+              return -1;
-+
-+      switch (code) {
-+              case SND_BELL:
-+                      if (value) value = 1000;
-+              case SND_TONE:
-+                      break;
-+              default:
-+                      return -1;
-+      }
-+
-+      if (value > 20 && value < 32767)
-+              count = (NSLU2_FREQ / (value*4)) - 1;
-+
-+      spin_lock_irqsave(&beep_lock, flags);
-+
-+       if (count) {
-+
-+              gpio_line_config(NSLU2_GPIO_BUZZ, IXP4XX_GPIO_OUT);
-+              gpio_line_set(NSLU2_GPIO_BUZZ, IXP4XX_GPIO_LOW);
-+
-+              *IXP4XX_OSRT2 = (count & ~IXP4XX_OST_RELOAD_MASK) | IXP4XX_OST_ENABLE;
-+
-+      } else {
-+
-+              gpio_line_config(NSLU2_GPIO_BUZZ, IXP4XX_GPIO_IN);
-+              gpio_line_set(NSLU2_GPIO_BUZZ, IXP4XX_GPIO_HIGH);
-+
-+              *IXP4XX_OSRT2 = 0;
-+      }
-+
-+      spin_unlock_irqrestore(&beep_lock, flags);
-+
-+      return 0;
-+}
-+
-+static struct input_dev nslu2_spkr_dev = {
-+      .phys           = "ixp420/gpio4",
-+      .name           = "NSLU2 Beeper",
-+      .evbit[0]       = BIT(EV_SND),
-+      .sndbit[0]      = BIT(SND_BELL) | BIT(SND_TONE),
-+      .event          = nslu2_spkr_event,
-+      .id             = {
-+              .bustype        = BUS_HOST,
-+              .vendor         = 0x001f,
-+              .product        = 0x0001,
-+              .version        = 0x0100
-+      }
-+};
-+
-+static irqreturn_t nslu2_spkr_handler(int irq, void *dev_id, struct pt_regs *regs)
-+{
-+      /* clear interrupt */
-+      *IXP4XX_OSST = IXP4XX_OSST_TIMER_2_PEND;
-+
-+      /* flip the beeper output */
-+      *IXP4XX_GPIO_GPOUTR ^= NSLU2_BZ_BM;
-+
-+      return IRQ_HANDLED;
-+}
-+
-+static int __init nslu2_spkr_init(void)
-+{
-+      if (!(machine_is_nslu2()))
-+              return -ENODEV;
-+
-+      if (request_irq(IRQ_IXP4XX_TIMER2, &nslu2_spkr_handler,
-+              SA_INTERRUPT | SA_TIMER, "nslu2-beeper", NULL < 0)) {
-+
-+              printk(KERN_INFO "NSLU2 beeper: IRQ %d not available\n",
-+                      IRQ_IXP4XX_TIMER2);
-+
-+              return -EIO;
-+      }
-+
-+      input_register_device(&nslu2_spkr_dev);
-+
-+      /* do a little beep to tell the world we are alive */
-+      if (beep_on_startup)
-+      {
-+              nslu2_spkr_event(NULL, EV_SND, SND_TONE, 440);
-+              msleep(120);
-+              nslu2_spkr_event(NULL, EV_SND, SND_TONE, 0);
-+      }
-+
-+        printk(KERN_INFO "NSLU2: beeper\n");
-+      return 0;
-+}
-+
-+static void __exit nslu2_spkr_exit(void)
-+{
-+      input_unregister_device(&nslu2_spkr_dev);
-+
-+      disable_irq(IRQ_IXP4XX_TIMER2);
-+
-+      /* turn it off */
-+      nslu2_spkr_event(NULL, EV_SND, SND_BELL, 0);
-+
-+      free_irq(IRQ_IXP4XX_TIMER2, NULL);
-+}
-+
-+module_init(nslu2_spkr_init);
-+module_exit(nslu2_spkr_exit);
-+
-+MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>");
-+MODULE_DESCRIPTION("NSLU2 Beeper driver");
-+MODULE_LICENSE("GPL");
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.15/75-nslu2-leds.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.15/75-nslu2-leds.patch
deleted file mode 100644 (file)
index 7497409..0000000
+++ /dev/null
@@ -1,272 +0,0 @@
- arch/arm/Kconfig                  |    8 -
- arch/arm/mach-ixp4xx/Makefile     |    4 
- arch/arm/mach-ixp4xx/nslu2-leds.c |  223 ++++++++++++++++++++++++++++++++++++++
- 3 files changed, 232 insertions(+), 3 deletions(-)
-
---- linux-2.6.15/arch/arm/Kconfig      1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/arch/arm/Kconfig      1970-01-01 00:00:00.000000000 +0000
-@@ -418,7 +418,8 @@ config LEDS
-                  ARCH_EBSA285 || ARCH_IMX || ARCH_INTEGRATOR || \
-                  ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \
-                  ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \
--                 ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE
-+                 ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \
-+                 MACH_NSLU2
-       help
-         If you say Y here, the LEDs on your machine will be used
-         to provide useful information about your current system status.
-@@ -432,7 +433,7 @@ config LEDS
- config LEDS_TIMER
-       bool "Timer LED" if (!ARCH_CDB89712 && !ARCH_OMAP) || \
--                          MACH_OMAP_H2 || MACH_OMAP_PERSEUS2
-+                          MACH_OMAP_H2 || MACH_OMAP_PERSEUS2 || MACH_NSLU2
-       depends on LEDS
-       default y if ARCH_EBSA110
-       help
-@@ -448,7 +449,8 @@ config LEDS_TIMER
- config LEDS_CPU
-       bool "CPU usage LED" if (!ARCH_CDB89712 && !ARCH_EBSA110 && \
--                      !ARCH_OMAP) || MACH_OMAP_H2 || MACH_OMAP_PERSEUS2
-+                      !ARCH_OMAP) || MACH_OMAP_H2 || MACH_OMAP_PERSEUS2 \
-+                      || MACH_NSLU2
-       depends on LEDS
-       help
-         If you say Y here, the red LED will be used to give a good real
---- linux-2.6.15/arch/arm/mach-ixp4xx/Makefile 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/arch/arm/mach-ixp4xx/Makefile 1970-01-01 00:00:00.000000000 +0000
-@@ -10,3 +10,7 @@ obj-$(CONFIG_ARCH_ADI_COYOTE)        += coyote-
- obj-$(CONFIG_MACH_GTWX5715)   += gtwx5715-pci.o gtwx5715-setup.o
- obj-$(CONFIG_MACH_NSLU2)      += nslu2-pci.o nslu2-setup.o nslu2-power.o
-+leds-$(CONFIG_MACH_NSLU2)     += nslu2-leds.o
-+obj-$(CONFIG_LEDS)            += $(leds-y)
-+
-+
---- linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-leds.c     1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-leds.c     1970-01-01 00:00:00.000000000 +0000
-@@ -0,0 +1,223 @@
-+/*
-+ * arch/arm/mach-ixp4xx/nslu2-leds.c
-+ *
-+ * NSLU2 LEDs driver
-+ *
-+ * Copyright (C) 2005 Tower Technologies
-+ *
-+ * based on nslu2-io.c
-+ *  Copyright (C) 2004 Karen Spearel
-+ * and arch/arm/mach-footbridge/netwinder-leds.c
-+ *  Copyright (C) 1998-1999 Russell King
-+ *
-+ * Author: Alessandro Zummo <a.zummo@towertech.it>
-+ * Maintainers: http://www.nslu2-linux.org/
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/spinlock.h>
-+#include <linux/notifier.h>
-+
-+#include <asm/hardware.h>
-+#include <asm/leds.h>
-+#include <asm/mach-types.h>
-+#include <asm/system.h>
-+
-+#define LED_STATE_ENABLED     0x01
-+#define LED_STATE_CLAIMED     0x02
-+#define LED_STATE_IDLE                0x04
-+
-+static unsigned char led_state;
-+static unsigned int hw_led_state;
-+
-+#ifdef CONFIG_LEDS_TIMER
-+static const unsigned long idle_seq[4] = {
-+      NSLU2_LED_GRN_BM, 0,
-+      NSLU2_LED_GRN_BM, 0,
-+};
-+
-+static const unsigned long busy_seq[4] = {
-+      NSLU2_LED_GRN_BM, 0,
-+      NSLU2_LED_GRN_BM | NSLU2_LED_RED_BM, 0,
-+};
-+#endif
-+
-+static unsigned char led_count = 0;
-+
-+static DEFINE_SPINLOCK(leds_lock);
-+extern spinlock_t gpio_lock;
-+
-+static void nslu2_leds_event(led_event_t evt)
-+{
-+      unsigned long flags;
-+
-+      spin_lock_irqsave(&leds_lock, flags);
-+
-+      switch (evt) {
-+      case led_start:
-+              /* Let's rock! Red led on, all others off. Remember
-+               * that disk1/disk2 works inverted.
-+               */
-+              led_state = LED_STATE_ENABLED;
-+              hw_led_state = NSLU2_LED_DISK1_BM | NSLU2_LED_DISK2_BM
-+                              | NSLU2_LED_RED_BM;
-+              break;
-+
-+      case led_stop:
-+              led_state &= ~LED_STATE_ENABLED;
-+              break;
-+
-+      case led_claim:
-+              /* The user claimed the interface, red and green off */
-+              led_state |= LED_STATE_CLAIMED;
-+              hw_led_state &= ~(NSLU2_LED_RED_BM | NSLU2_LED_GRN_BM);
-+              break;
-+
-+      case led_release:
-+              /* The user released the interface, preserve the last
-+               * status of the leds, except red/green.
-+               */
-+              led_state &= ~LED_STATE_CLAIMED;
-+              hw_led_state = *IXP4XX_GPIO_GPOUTR & 0x0000000C;
-+              break;
-+
-+#ifdef CONFIG_LEDS_TIMER
-+      case led_timer:
-+              /* Pulse green led */
-+              if (!(led_state & LED_STATE_CLAIMED))
-+              {
-+                      /* clear red and green bits */
-+                      hw_led_state &= ~(NSLU2_LED_RED_BM | NSLU2_LED_GRN_BM);
-+
-+                      /* copy the right sequence in */
-+                      if (led_state & LED_STATE_IDLE)
-+                              hw_led_state |= idle_seq[led_count % 4];
-+                      else
-+                              hw_led_state |= busy_seq[led_count % 4];
-+
-+                      led_count++;
-+              }
-+              break;
-+#endif
-+
-+#ifdef CONFIG_LEDS_CPU
-+      case led_idle_start:
-+              led_state |= LED_STATE_IDLE;
-+#ifndef CONFIG_LEDS_TIMER
-+              /* green on, red off */
-+              hw_led_state |= NSLU2_LED_GRN_BM;
-+              hw_led_state &= ~NSLU2_LED_RED_BM;
-+#endif
-+              break;
-+
-+      case led_idle_end:
-+              led_state &= ~LED_STATE_IDLE;
-+#ifndef CONFIG_LEDS_TIMER
-+              /* green on, red on -> amber on */
-+              hw_led_state |= NSLU2_LED_GRN_BM | NSLU2_LED_RED_BM;
-+#endif
-+              break;
-+#endif /* CONFIG_LEDS_CPU */
-+
-+      case led_halted:
-+              if (!(led_state & LED_STATE_CLAIMED))
-+                      hw_led_state |= NSLU2_LED_RED_BM;
-+              break;
-+
-+      /* leds */
-+
-+      case led_green_on:
-+              if (led_state & LED_STATE_CLAIMED)
-+                      hw_led_state |= NSLU2_LED_GRN_BM;
-+              break;
-+
-+      case led_green_off:
-+              if (led_state & LED_STATE_CLAIMED)
-+                      hw_led_state &= ~NSLU2_LED_GRN_BM;
-+              break;
-+
-+      case led_amber_on:
-+              if (led_state & LED_STATE_CLAIMED)
-+                      hw_led_state |= (NSLU2_LED_RED_BM | NSLU2_LED_GRN_BM);
-+              break;
-+
-+      case led_amber_off:
-+              if (led_state & LED_STATE_CLAIMED)
-+                      hw_led_state &= ~(NSLU2_LED_RED_BM | NSLU2_LED_GRN_BM);
-+              break;
-+
-+      case led_red_on:
-+              if (led_state & LED_STATE_CLAIMED)
-+                      hw_led_state |= NSLU2_LED_RED_BM;
-+              break;
-+
-+      case led_red_off:
-+              if (led_state & LED_STATE_CLAIMED)
-+                      hw_led_state &= ~NSLU2_LED_RED_BM;
-+              break;
-+
-+      default:
-+              break;
-+      }
-+
-+      spin_unlock_irqrestore(&leds_lock, flags);
-+
-+      if  (led_state & LED_STATE_ENABLED) {
-+              spin_lock_irqsave(&gpio_lock, flags);
-+              *IXP4XX_GPIO_GPOUTR = (*IXP4XX_GPIO_GPOUTR & 0xFFFFFFF0) | hw_led_state;
-+              spin_unlock_irqrestore(&gpio_lock, flags);
-+      }
-+}
-+
-+static int nslu2_leds_panic_event(struct notifier_block *this, unsigned long event,
-+      void *ptr)
-+{
-+#ifdef CONFIG_LEDS_TIMER
-+      leds_event(led_claim);
-+#endif
-+      leds_event(led_green_off);
-+      leds_event(led_red_on);
-+
-+      return NOTIFY_DONE;
-+}
-+
-+static struct notifier_block nslu2_leds_panic_block = {
-+      .notifier_call  = nslu2_leds_panic_event,
-+};
-+
-+static int __init nslu2_leds_init(void)
-+{
-+      if (!(machine_is_nslu2()))
-+              return 0;
-+
-+      printk(KERN_INFO "NSLU2: leds\n");
-+
-+      /* register panic notifier */
-+      notifier_chain_register(&panic_notifier_list, &nslu2_leds_panic_block);
-+
-+      /* enable gpio 0-3 */
-+      gpio_line_config(NSLU2_LED_GRN, IXP4XX_GPIO_OUT);
-+      gpio_line_config(NSLU2_LED_RED, IXP4XX_GPIO_OUT);
-+      gpio_line_config(NSLU2_LED_DISK1, IXP4XX_GPIO_OUT);
-+      gpio_line_config(NSLU2_LED_DISK2, IXP4XX_GPIO_OUT);
-+
-+      leds_event = nslu2_leds_event;
-+
-+      /* this will also initialize the leds to the
-+       * default state.
-+       */
-+
-+      leds_event(led_start);
-+
-+      return 0;
-+}
-+
-+module_init(nslu2_leds_init);
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.15/80-nslu2-io.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.15/80-nslu2-io.patch
deleted file mode 100644 (file)
index 26031f6..0000000
+++ /dev/null
@@ -1,560 +0,0 @@
---- linux-2.6.15/arch/arm/mach-ixp4xx/Makefile 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/arch/arm/mach-ixp4xx/Makefile 1970-01-01 00:00:00.000000000 +0000
-@@ -8,5 +8,5 @@ obj-$(CONFIG_ARCH_IXDP4XX)     += ixdp425-pc
- obj-$(CONFIG_MACH_IXDPG425)   += ixdpg425-pci.o coyote-setup.o
- obj-$(CONFIG_ARCH_ADI_COYOTE) += coyote-pci.o coyote-setup.o
- obj-$(CONFIG_MACH_GTWX5715)   += gtwx5715-pci.o gtwx5715-setup.o
--obj-$(CONFIG_MACH_NSLU2)      += nslu2-pci.o nslu2-setup.o nslu2-power.o
-+obj-$(CONFIG_MACH_NSLU2)      += nslu2-pci.o nslu2-setup.o nslu2-power.o nslu2-io.o
---- linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-io.c       1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-io.c       1970-01-01 00:00:00.000000000 +0000
-@@ -0,0 +1,548 @@
-+//=============================================================================
-+//
-+// n2-io.c version 0.1.7
-+// Author: Karen Spearel <kas11 at tampabay.rr.com>
-+// please report problems/bugs directly to the address above
-+//
-+// Boilerplate to be added "real soon now"...it is and has always been GPL'ed per
-+// MODULE_LICENSE but is offered without warrantee of any sort..use at your own risk
-+//
-+// NOTE: THIS IS INCOMPLETE.  INCLUDED ONLY TO KEEP FROM BREAKING THE BUILD,
-+// IT BEEPS AND SENDS A MESSAGE TO /proc/poweroff.  EVENTUALLY IT
-+// WILL TALK TO THE n2_pbd DAEMON.  EVENTUALLY THE LED DRIVER
-+// WILL TALK TO SOME USERLAND APP BUT ***NOT*** SET_LEDS.
-+// 
-+//=============================================================================
-+//    GPIO            Function        State
-+//    0               Red LED         Status          
-+//    1               Green LED       Ready = 1
-+//    2               Disk 2 LED      On = 0
-+//    3               Disk 1 LED      On = 0
-+//    4               Buzzer
-+//    5               Power Button    Pressed = 1
-+//    8               Power Down      Output = 1 powers down NSLU2
-+//    12              Reset           Pressed = 0
-+
-+#include <linux/config.h>
-+#include <linux/version.h>
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/proc_fs.h>
-+#include <linux/device.h>
-+#include <linux/reboot.h>
-+
-+#include <asm/uaccess.h>
-+#include <asm-arm/irq.h>
-+#include <asm-arm/delay.h>
-+
-+/* Set this to 1 to output lots of debug messages. */
-+#define NSLU2_IO_DEBUG 0
-+
-+#if NSLU2_IO_DEBUG
-+#define nslu2_io_debug(args) printk args
-+#else
-+#define nslu2_io_debug(args) ((void)0)
-+#endif
-+
-+#define VERSION                       "0.1.7"
-+
-+#define       NSLU2BZ_MAJOR           62              //buzzer
-+#define NSLU2LM_MAJOR         126
-+
-+
-+#define NSLU2_BEEP_DUR_LONG   2000
-+#define NSLU2_BEEP_DUR_MED    400
-+#define NSLU2_BEEP_DUR_SHORT  100
-+#define NSLU2_BEEP_PITCH_HIGH 250
-+#define NSLU2_BEEP_PITCH_MED  500
-+#define NSLU2_BEEP_PITCH_LOW  1000
-+#define NSLU2_LONG_DELAY      30000
-+
-+#define NSLU2_BZ_BM           (1L << NSLU2_GPIO_BUZZ)
-+
-+// ioctls -- 'M" is used for sound cards...we don't got one so it seems safe
-+
-+#define NSLU2BZ_BEEP_STOP             _IO('M',0)       //stop multi-beep at end of audible
-+#define NSLU2BZ_BEEP          _IO('M',1)       //one beep at current defaults
-+#define NSLU2BZ_BEEPS         _IOW('M',3,long) //param beeps at current defaults
-+#define NSLU2BZ_TONESET               _IOW('M',4,long) //set tone: range is high=250 to low=2000
-+#define NSLU2BZ_ONTIME                _IOW('M',5,long) //ontime for multi-beeps in jiffies
-+#define       NSLU2BZ_SILENTTIME              _IOW('M',6,long) //offtime for multi-beeps in jiffies
-+#define NSLU2BZ_REPEATCNT             _IOW('M',7,long) //number of repeats for multi-beeps 0 = forever
-+#define NSLU2BZ_COMBINED              _IOW('M',8,long) //combine all params in a long
-+
-+#define NSLU2LM_OFF           _IOW('M',32,long)
-+#define NSLU2LM_ON                    _IOW('M',33,long)
-+#define NSLU2LM_BLINK         _IOW('M',34,long)
-+#define NSLU2LM_ALT           _IOW('M',35,long)
-+#define NSLU2LM_ALL_ON                _IO('M',36)
-+#define NSLU2LM_ALL_OFF               _IO('M',37)
-+
-+#define PHYS_LEDS             4
-+#define BLINK_DELAY           25
-+
-+//  OR Masks to turn these LEDs ON
-+
-+#define       RS_RED_ON       0x00000001      //0b0000 0000 0000 0010
-+#define       RS_GRN_ON       0x00000002      //0b0000 0000 0000 0001
-+#define RS_YEL_ON     0x00000003      //0b0000 0000 0000 0011
-+
-+// AND Masks to turn these LEDs OFF
-+
-+#define       RS_RED_OFF      0xfffffffe      //0b1111 1111 1111 1101
-+#define       RS_GRN_OFF      0xfffffffd      //0b1111 1111 1111 1110
-+#define RS_YEL_OFF    0xfffffffc      //0b1111 1111 1111 1100
-+
-+// AND Masks to turn these LEDs ON
-+
-+#define DISK1_ON      0xfffffff7      //0b1111 1111 1111 0111
-+#define       DISK2_ON        0xfffffffb      //0b1111 1111 1111 1011
-+
-+// Or Masks to turn these LEDs OFF
-+
-+#define DISK1_OFF     0x00000008      //0b0000 0000 0000 1000
-+#define       DISK2_OFF       0x00000004      //0b0000 0000 0000 0100 
-+
-+// EOR masks for toggling LEDs on/off
-+
-+#define RS_RG_ALT     0x00000003      //eor mask to toggle rs rg bits
-+#define RS_GRN_TGL    0x00000002
-+#define RS_RED_TGL    0x00000001
-+#define DISK1_TGL     0x00000008
-+#define DISK2_TGL     0x00000004
-+
-+// The LED names for switches
-+
-+#define LED_RS_RED    0
-+#define LED_RS_GRN    1
-+#define       LED_DISK1       2
-+#define LED_DISK2     3
-+#define LED_ALL               4
-+
-+static unsigned long ontime = 50;
-+static unsigned long offtime = 450;
-+static unsigned long bz_repeatcnt = 10;
-+static unsigned long tone = 1000;
-+
-+static struct timer_list n2lm_rsg_timer;      //rs green 
-+static struct timer_list n2lm_rsr_timer;      //rs red
-+static struct timer_list n2lm_d1_timer;               //drive 1
-+static struct timer_list n2lm_d2_timer;               //drive 2
-+static struct timer_list n2bz_timer;          //beeper
-+
-+// sysfs class
-+static struct class *n2lm_class;
-+
-+//==================================================================================================
-+//
-+// Blinking is handled entirely by the 4 timer handlers.  On timeout, the bit in the
-+// GPIO output register is xor'd with a mask corresponding to the selected led which simply
-+// flips that bit.  No record of what any of the other leds is doing is needed.
-+//
-+//==================================================================================================
-+// this blinks rs green or green/yellow if rs red is on
-+#ifndef CONFIG_LEDS
-+static void n2lm_rsg_handler(unsigned long data)
-+{
-+      *IXP4XX_GPIO_GPOUTR ^= RS_GRN_TGL;                      //flip the led
-+      n2lm_rsg_timer.expires = jiffies + BLINK_DELAY;         //next timeout
-+      add_timer(&n2lm_rsg_timer);                             //reinit timer
-+      return;
-+}
-+
-+// this blinks or alternates rs red green... inited wit green on/red off
-+static void n2lm_rsr_handler(unsigned long data)
-+{
-+      *IXP4XX_GPIO_GPOUTR ^= n2lm_rsr_timer.data;
-+      n2lm_rsr_timer.expires = jiffies + BLINK_DELAY;
-+      add_timer(&n2lm_rsr_timer);
-+      return; 
-+}
-+// blinks disk 1
-+static void n2lm_d1_handler(unsigned long data)
-+{
-+      *IXP4XX_GPIO_GPOUTR ^= DISK1_TGL;
-+      n2lm_d1_timer.expires = jiffies + BLINK_DELAY;
-+      add_timer(&n2lm_d1_timer);
-+      return;
-+}
-+// blinks disk 2
-+static void n2lm_d2_handler(unsigned long data)
-+{
-+      *IXP4XX_GPIO_GPOUTR ^= DISK2_TGL;
-+      n2lm_d2_timer.expires = jiffies + BLINK_DELAY;
-+      add_timer(&n2lm_d2_timer);
-+      return;
-+}
-+
-+//==================================================================================================
-+
-+static void n2lm_timer_start(unsigned long led)
-+{
-+
-+      nslu2_io_debug((KERN_DEBUG "timer: %ld\n",led));
-+
-+      switch(led) {
-+              case LED_RS_RED:
-+                      n2lm_rsr_timer.expires = jiffies + BLINK_DELAY;
-+                      add_timer(&n2lm_rsr_timer);
-+                      break;
-+
-+              case LED_RS_GRN:
-+                      n2lm_rsg_timer.expires = jiffies + BLINK_DELAY;
-+                      add_timer(&n2lm_rsg_timer);
-+                      break;
-+
-+              case LED_DISK1:
-+                      n2lm_d1_timer.expires = jiffies + BLINK_DELAY;
-+                      add_timer(&n2lm_d1_timer);
-+                      break;
-+
-+              case LED_DISK2:
-+                      n2lm_d2_timer.expires = jiffies + BLINK_DELAY; 
-+                      add_timer(&n2lm_d2_timer);
-+                      break;
-+
-+              default:
-+                      break;
-+      }
-+      return;
-+}
-+
-+//==================================================================================================
-+
-+static void n2lm_timer_stop(unsigned long led)
-+{
-+      switch (led) {
-+              case LED_RS_RED:
-+                      del_timer(&n2lm_rsr_timer);
-+                      break;
-+              case LED_RS_GRN:
-+                      del_timer(&n2lm_rsg_timer);
-+                      break;
-+              case LED_DISK1:
-+                      del_timer(&n2lm_d1_timer);
-+                      break;
-+              case LED_DISK2: 
-+                      del_timer(&n2lm_d2_timer);
-+                      break;
-+              default:
-+                      break;
-+      }
-+      return;
-+}
-+
-+//--------------------------------------------------------------------------------------------------
-+
-+static void n2lm_timer_stop_all(void)
-+{
-+      del_timer(&n2lm_rsg_timer);
-+      del_timer(&n2lm_rsr_timer);
-+      del_timer(&n2lm_d1_timer); 
-+      del_timer(&n2lm_d2_timer);
-+      return;
-+}
-+//--------------------------------------------------------------------------------------------------
-+
-+static void n2lm_ledon(unsigned long led)
-+{
-+
-+      nslu2_io_debug((KERN_DEBUG "ledon: %ld\n", led));
-+
-+      switch (led) {
-+              case LED_RS_RED:        
-+                      *IXP4XX_GPIO_GPOUTR |= RS_RED_ON;       //1
-+                      return;
-+              case LED_RS_GRN:
-+                      *IXP4XX_GPIO_GPOUTR |= RS_GRN_ON;       //2
-+                      return;
-+              case LED_DISK1:
-+                      *IXP4XX_GPIO_GPOUTR &= DISK1_ON;        //0xfffffff7
-+                      return;
-+              case LED_DISK2: 
-+                      *IXP4XX_GPIO_GPOUTR &= DISK2_ON;        //0xfffffffb
-+                      return;
-+              case LED_ALL:                                   //all green
-+                      *IXP4XX_GPIO_GPOUTR |= RS_GRN_ON;
-+                      *IXP4XX_GPIO_GPOUTR &= (DISK1_ON & DISK2_ON);
-+                      return; 
-+      }
-+}
-+
-+//--------------------------------------------------------------------------------------------------
-+
-+static void n2lm_ledoff(unsigned long led)
-+{
-+
-+      switch (led) {
-+              case LED_RS_RED:        
-+                      *IXP4XX_GPIO_GPOUTR &= RS_RED_OFF;      //0xffffffffe
-+                      return;
-+              case LED_RS_GRN:
-+                      *IXP4XX_GPIO_GPOUTR &= RS_GRN_OFF;      //0xfffffffd
-+                      return;
-+              case LED_DISK1:
-+                      *IXP4XX_GPIO_GPOUTR |= DISK1_OFF;       //0x00000008
-+                      return;
-+              case LED_DISK2: 
-+                      *IXP4XX_GPIO_GPOUTR |= DISK2_OFF;       //0x00000004
-+                      return;
-+              case LED_ALL:
-+                      *IXP4XX_GPIO_GPOUTR &= (RS_GRN_OFF & RS_RED_OFF);
-+                      *IXP4XX_GPIO_GPOUTR |= (DISK1_OFF | DISK2_OFF);
-+      }
-+}
-+
-+//==================================================================================================
-+
-+static int n2lm_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long led)
-+{
-+
-+      nslu2_io_debug((KERN_DEBUG "cmd=%d, led=%ld\n", cmd, led));
-+      
-+      if (led < 0 || led >= PHYS_LEDS)
-+              return -EINVAL;
-+
-+      switch (cmd ) {
-+              case NSLU2LM_ON:
-+                      n2lm_timer_stop(led);
-+                      n2lm_ledon(led);
-+                      break;
-+                      
-+              case NSLU2LM_OFF:
-+                      n2lm_timer_stop(led);
-+                      n2lm_ledoff(led);
-+                      break;
-+                      
-+              case NSLU2LM_BLINK:
-+                      n2lm_ledon(led);
-+                      if (led == LED_RS_RED)
-+                              n2lm_rsr_timer.data = RS_RED_TGL;
-+                      n2lm_timer_start(led);
-+                      break;
-+
-+              case NSLU2LM_ALT:
-+                      if (led == LED_RS_RED)
-+                      {
-+                              n2lm_ledon(LED_RS_GRN);
-+                              n2lm_ledoff(LED_RS_RED);
-+                              n2lm_rsr_timer.data = RS_RG_ALT;
-+                              n2lm_timer_start(LED_RS_RED);
-+                              break;
-+                      } else
-+                              return -EINVAL;
-+              
-+              case NSLU2LM_ALL_ON:
-+                      n2lm_timer_stop_all();
-+                      n2lm_ledon(LED_ALL);
-+                      break;
-+              
-+              case NSLU2LM_ALL_OFF:
-+                      n2lm_timer_stop_all();
-+                      n2lm_ledoff(LED_ALL);
-+                      break;
-+              
-+              default:
-+                      return -EINVAL;
-+      }
-+
-+      return 0;
-+}
-+
-+static struct file_operations n2lm_fops = {
-+      .owner          = THIS_MODULE,
-+      .ioctl          = n2lm_ioctl,
-+};
-+#endif
-+//==================================================================================================
-+// We can't do anything fancy here since the system tick rate is far below that required to
-+// generate a desirable tone.  Therefore we haven't much choice but to use a busy loop until
-+// I get up to speed on the timers.  The saving grace is that for the normal uses, nothing 
-+// important should be haprepening. 
-+//==================================================================================================
-+
-+static void n2_buzz(int tone_delay, int duration)
-+{
-+      int i;
-+
-+      *IXP4XX_GPIO_GPOER &= ~NSLU2_BZ_BM;
-+              
-+      for (i = 1; i < duration; i++) {
-+              *IXP4XX_GPIO_GPOUTR &= ~NSLU2_BZ_BM;
-+              udelay(tone_delay);
-+              *IXP4XX_GPIO_GPOUTR |= NSLU2_BZ_BM;
-+              udelay(tone_delay);
-+      }
-+      *IXP4XX_GPIO_GPOER |= NSLU2_BZ_BM;
-+
-+      return;
-+}
-+//=================================================================================================
-+
-+// this handles the buzzer duty cycle
-+static void n2bz_handler(unsigned long data)
-+{
-+      if (--bz_repeatcnt > 0) {                       //if just one beep left to do
-+              n2bz_timer.expires = jiffies + ontime + offtime;        //next timeout
-+              add_timer(&n2bz_timer);                                 //reinit timer
-+      }
-+      n2_buzz(tone/2, ontime);
-+      nslu2_io_debug((KERN_DEBUG "Count = %d\tOntime = %d\n", bz_repeatcnt, ontime));
-+      return;
-+}
-+
-+//==================================================================================================
-+
-+static int n2bz_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long param)
-+{
-+      switch (cmd) {
-+              case NSLU2BZ_BEEP:
-+                      n2_buzz(tone/2, ontime);
-+                      break;
-+      
-+              case NSLU2BZ_BEEP_STOP:
-+                      del_timer(&n2bz_timer);
-+                      break;
-+
-+              case NSLU2BZ_BEEPS:
-+                      if (param == 0)
-+                              bz_repeatcnt = 0xffffffff;
-+                      else
-+                              bz_repeatcnt = param;
-+                      n2bz_handler(0);
-+                      break;
-+      
-+              case NSLU2BZ_TONESET:
-+                      if (param >= 250 && param <= 2000)
-+                              tone = param;
-+                      break;
-+
-+              case NSLU2BZ_ONTIME:
-+                      if (param > 4 && param < 201)
-+                              ontime = param;
-+                      break;
-+
-+              case NSLU2BZ_SILENTTIME:
-+                      if (param > ontime)                     //enforce a reasonable duty cycle
-+                              offtime = param;
-+                      else
-+                              offtime = ontime;
-+                      break;
-+
-+              case NSLU2BZ_REPEATCNT:
-+                      if (param == 0)
-+                              bz_repeatcnt = 0xffffffff;
-+                      else
-+                              bz_repeatcnt = param;
-+                      break;
-+
-+              case NSLU2BZ_COMBINED:
-+                      bz_repeatcnt =  (param & 0xF0000000) >> 28;     //repeat 1 - 16
-+                      ontime =        (param & 0x0FF00000) >> 20;     //ontime 1 - 256 jiffies
-+                      offtime =       (param & 0x000FFF00) >> 8;      //offtime 1 - 4095 jiffies
-+                      tone =          (param & 0x000000FF) << 4;      //tone (1 - 255) * 16
-+                      break;
-+
-+              default:
-+                      break;
-+      }
-+      return 0;
-+}
-+
-+static struct file_operations n2bz_fops = {
-+      .owner          = THIS_MODULE,
-+      .ioctl          = n2bz_ioctl,
-+};
-+
-+static void n2iom_initarch(void)
-+{
-+#ifndef CONFIG_LEDS
-+      init_timer(&n2lm_rsg_timer);
-+      init_timer(&n2lm_rsr_timer);
-+      init_timer(&n2lm_d1_timer);
-+      init_timer(&n2lm_d2_timer);
-+
-+      n2lm_rsr_timer.function = n2lm_rsr_handler;
-+      n2lm_rsg_timer.function = n2lm_rsg_handler;
-+      n2lm_d2_timer.function = n2lm_d2_handler;
-+      n2lm_d1_timer.function = n2lm_d1_handler;
-+#endif
-+
-+      init_timer(&n2bz_timer);
-+      n2bz_timer.function = n2bz_handler;
-+
-+      n2lm_rsr_timer.data = n2lm_rsg_timer.data = n2lm_d1_timer.data = n2lm_d2_timer.data = n2bz_timer.data = 0;
-+
-+#ifndef CONFIG_LEDS
-+      *IXP4XX_GPIO_GPOER &= 0xfffffff0;       //enable gpio 0-3
-+      *IXP4XX_GPIO_GPOUTR |= 0x00000003;      //turn off the leds
-+      *IXP4XX_GPIO_GPOUTR &= 0xfffffffc;
-+      n2lm_ledon(LED_ALL);
-+      n2_buzz(NSLU2_BEEP_PITCH_MED, NSLU2_BEEP_DUR_SHORT);
-+      n2lm_ledoff(LED_ALL);
-+
-+      // Default the Ready/Status to Red during kernel boot, Turn Green at the end of sysvinit
-+      n2lm_ledon(LED_RS_RED);
-+#endif
-+
-+      return;
-+}
-+
-+//==================================================================================================
-+
-+static int __init n2iom_init(void)
-+{
-+      printk(KERN_INFO "NSLU2: i/o, %s\n", VERSION);
-+      
-+      n2iom_initarch();
-+
-+      n2lm_class = class_create(THIS_MODULE, "nslu2");
-+
-+#ifndef CONFIG_LEDS
-+      if (register_chrdev(NSLU2LM_MAJOR, "n2_ledm", &n2lm_fops) < 0) {
-+              printk(KERN_DEBUG "Led Manager Major %d not available\n", NSLU2LM_MAJOR);
-+              return -EBUSY;
-+      }
-+      else {
-+              class_device_create(n2lm_class, NULL, MKDEV(NSLU2LM_MAJOR, 0), NULL, "leds");
-+      }
-+#endif
-+
-+      if (register_chrdev(NSLU2BZ_MAJOR, "n2_bzm", &n2bz_fops) < 0) {
-+              printk(KERN_DEBUG "Buzzer Major %d not available\n", NSLU2BZ_MAJOR);
-+              return -EBUSY;
-+      }
-+      else {
-+              class_device_create(n2lm_class, NULL, MKDEV(NSLU2BZ_MAJOR, 0), NULL, "buzzer");
-+      }
-+
-+      return 0;
-+}
-+
-+//==================================================================================================
-+
-+static void __exit n2iom_exit(void)
-+{
-+
-+#ifndef CONFIG_LEDS
-+      del_timer(&n2lm_rsg_timer);
-+      del_timer(&n2lm_rsr_timer);
-+      del_timer(&n2lm_d1_timer);
-+      del_timer(&n2lm_d2_timer);      
-+
-+      unregister_chrdev(NSLU2LM_MAJOR, "n2lm" );
-+      class_device_destroy(n2lm_class, MKDEV(NSLU2LM_MAJOR, 0));
-+#endif
-+
-+      unregister_chrdev(NSLU2BZ_MAJOR, "n2bz");
-+      class_device_destroy(n2lm_class, MKDEV(NSLU2BZ_MAJOR, 0));
-+
-+      class_destroy(n2lm_class);
-+}
-+
-+module_init(n2iom_init);
-+module_exit(n2iom_exit);
-+
-+MODULE_AUTHOR("Karen Spearel <kas11@tampabay.rr.com>");
-+MODULE_DESCRIPTION("NSLU2 I/O driver");
-+MODULE_LICENSE("GPL");
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.15/85-timer.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6.15/85-timer.patch
deleted file mode 100644 (file)
index 3d4a03f..0000000
+++ /dev/null
@@ -1,285 +0,0 @@
---- linux-2.6.15/arch/arm/mach-ixp4xx/common.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/arch/arm/mach-ixp4xx/common.c 1970-01-01 00:00:00.000000000 +0000
-@@ -239,36 +239,165 @@ void __init ixp4xx_init_irq(void)
-  * IXP4xx timer tick
-  * We use OS timer1 on the CPU for the timer tick and the timestamp 
-  * counter as a source of real clock ticks to account for missed jiffies.
-+ *
-+ * 'CLOCK_TICK_RATE' is the nominal number of internal ticks per second,
-+ * this is significantly greater than the actual number on any ixp4xx
-+ * board.  Neither this nor 'LATCH' are required by this code because
-+ * the only requirement is to generate HZ timer_tick calls per second.
-  *************************************************************************/
-+#if TICK_NSEC * HZ != 1000000000
-+      /* This will cause the jiffies to drift unnecessarily. */
-+#     error CLOCK_TICK_RATE should be a multiple of HZ for this code
-+#endif
-+
-+/* These are the control registers for the interrupt handler, they must
-+ * only be read and written by the interrupt handler and by the init
-+ * method (which sets them to 0).
-+ */
-+static volatile u32 last_timer_time;
-+static volatile int accumulated_error;
-+
-+/* Most ixp4xx boards have 66.6666MHz crystals, so default to this, reset
-+ * this from the board level code if required.  The following variables
-+ * must be *written* only by set_board_tick_rate
-+ */
-+static u32 board_tick_rate;
-+static u32 board_tick_per_1000; /* board_tick_rate/1000 */
-+static u32 timer_count;
-+
-+/* The following symbol may be written to change the current tick rate,
-+ * it is read by the interrupt handler and used to reload the timer.
-+ * The 'real' value (the one in use) is 'board_tick_rate' above.
-+ * NOTE: this can be tweaked to match the actual crystal on a particular
-+ * machine.
-+ */
-+volatile u32 ixp4xx_board_tick_rate = 66666600;
-+EXPORT_SYMBOL(ixp4xx_board_tick_rate);
-+
-+/* The set API may run asynchronously in the presence of interrupts,
-+ * everything it does it is both atomic and complete (notice that it
-+ * doesn't change any of the 'volatile' values).  The mathematics in
-+ * here require the following values.  Changing the board tick rate
-+ * implies an unknown error in the current timestamp tick count.
-+ */
-+#if IXP4XX_OST_RELOAD_MASK != 3 || IXP4XX_OST_ENABLE != 1
-+#     error unexpected value for timer reload mask
-+#endif
-+static void set_board_tick_rate(u32 rate) {
-+      u32 reload;
-+
-+      /* Store the two effectively informational rate values, the
-+       * error calculation is (rate - count*HZ) (above), and rate
-+       * is changed first, this can cause a temporary error which
-+       * will be corrected on the next interrupt.
-+       */
-+      board_tick_rate = rate;
-+      board_tick_per_1000 = (rate+500)/1000;
-+
-+      /* Calculate the correct value to load into the timer countdown
-+       * register, the low two bits must be b01 (to enable the timer).
-+       * Select the top bits to be as close to the desired value as
-+       * possible.
-+       *
-+       * First find the best value, regardless of the low two bits -
-+       * this is the value used in the interrupt calculation even though
-+       * it cannot necessarily be set into the register.
-+       */
-+      timer_count = (rate + (HZ/2))/HZ;
-+
-+      /* Now the timer_ticks are being generated at this rate, calculate
-+       * an appropriate value for the register.  This stores a 30 bit
-+       * value which gives a period of 4*x+1, we want:
-+       *
-+       *   4*x+1 = board_tick_rate/HZ
-+       *
-+       * This needs to be rounded to the closest 4*HZ value:
-+       * 
-+       *   x = ((board_tick_rate-HZ) + (4*HZ)/2) / 4*HZ
-+       *   x = (board_tick_rate+HZ) / (4*HZ);
-+       */
-+      reload = (board_tick_rate + HZ) / HZ;
-+      reload = (reload & ~IXP4XX_OST_RELOAD_MASK) | IXP4XX_OST_ENABLE;
-+      *IXP4XX_OSRT1 = reload;
--static unsigned volatile last_jiffy_time;
-+      /* If the clock is drifing, look in syslog: */
-+      printk(KERN_INFO "IXP4xx: FREQ=%d COUNT=%d\n", rate, reload);
-+}
--#define CLOCK_TICKS_PER_USEC  ((CLOCK_TICK_RATE + USEC_PER_SEC/2) / USEC_PER_SEC)
-+/* This returns the time in timer ticks since the 'last_timer_time'
-+ * recorded above.  Use this to avoid arithmetic errors because of
-+ * the overflow when the timer wraps.
-+ */
-+static inline u32 ixp4xx_timer_delta(void)
-+{
-+      return *IXP4XX_OSTS - last_timer_time;
-+}
- /* IRQs are disabled before entering here from do_gettimeofday() */
- static unsigned long ixp4xx_gettimeoffset(void)
- {
--      u32 elapsed;
--
--      elapsed = *IXP4XX_OSTS - last_jiffy_time;
-+      /* Return the offset of the current time from the last time
-+       * timer tick in microseconds.  This is only used for the
-+       * gettimeofday call.
-+       *
-+       * The result of this API is at most about 20000 (for a 50Hz
-+       * HZ - 20000 uS/tick), the input delta is at most about
-+       * 1.3M - 21 bits.
-+       */
-+      u32 delta = ixp4xx_timer_delta(); /* About 21 bits max */
-+      /* return delta * 1000000 / board_tick_rate; */
-+      return (delta * 1000 + board_tick_per_1000/2) / board_tick_per_1000;
-+}
--      return elapsed / CLOCK_TICKS_PER_USEC;
-+/* This is the correct adjustment to the counter to compensate for an
-+ * error iff timer_count-1 <= exact_count <= timer_count+1
-+ */
-+static inline int adjustment(int error) {
-+      if (error >= HZ)
-+              return 1;
-+      else if (error <= -HZ)
-+              return -1;
-+      return 0;
- }
- static irqreturn_t ixp4xx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
- {
-+      u32 rate;
-+      u32 count;
-+      int error;
-+
-       write_seqlock(&xtime_lock);
-       /* Clear Pending Interrupt by writing '1' to it */
-       *IXP4XX_OSST = IXP4XX_OSST_TIMER_1_PEND;
-+      /* If the board tick rate has been changed update the cached
-+       * value.
-+       */
-+      if (ixp4xx_board_tick_rate != board_tick_rate) {
-+              set_board_tick_rate(ixp4xx_board_tick_rate);
-+              accumulated_error = 0;
-+      }
-+
-       /*
-        * Catch up with the real idea of time
-+       *
-+       * board_tick_rate: actual ixp4xx ticks/second, read-only
-+       * accumulated_error: aggregate error/tick * HZ, read/write
-+       * timer_count: best ixp4xx ticks per timer_tick, read-only
-        */
--      while ((*IXP4XX_OSTS - last_jiffy_time) > LATCH) {
-+      rate = board_tick_rate;
-+      error = accumulated_error;
-+      count = timer_count;
-+      do {
-+              u32 adjusted_count = count + adjustment(error);
-+              if (ixp4xx_timer_delta() < adjusted_count)
-+                      break;
-               timer_tick(regs);
--              last_jiffy_time += LATCH;
--      }
-+              last_timer_time += adjusted_count;
-+              error += rate - adjusted_count*HZ;
-+      } while (1);
-+      accumulated_error = error;
-       write_sequnlock(&xtime_lock);
-@@ -281,17 +410,30 @@ static struct irqaction ixp4xx_timer_irq
-       .handler        = ixp4xx_timer_interrupt,
- };
-+u32 ixp4xx_get_board_tick_rate(void) {
-+      return board_tick_rate;
-+}
-+
-+EXPORT_SYMBOL(ixp4xx_get_board_tick_rate);
-+
-+void ixp4xx_set_board_tick_rate(u32 rate) {
-+      ixp4xx_board_tick_rate = rate;
-+}
-+
-+EXPORT_SYMBOL(ixp4xx_set_board_tick_rate);
-+
- static void __init ixp4xx_timer_init(void)
- {
-       /* Clear Pending Interrupt by writing '1' to it */
-       *IXP4XX_OSST = IXP4XX_OSST_TIMER_1_PEND;
-       /* Setup the Timer counter value */
--      *IXP4XX_OSRT1 = (LATCH & ~IXP4XX_OST_RELOAD_MASK) | IXP4XX_OST_ENABLE;
-+      set_board_tick_rate(ixp4xx_board_tick_rate);
-       /* Reset time-stamp counter */
-       *IXP4XX_OSTS = 0;
--      last_jiffy_time = 0;
-+      last_timer_time = 0;
-+      accumulated_error = 0;
-       /* Connect the interrupt handler and enable the interrupt */
-       setup_irq(IRQ_IXP4XX_TIMER1, &ixp4xx_timer_irq);
-@@ -337,4 +479,3 @@ void __init ixp4xx_sys_init(void)
-                               ARRAY_SIZE(ixp46x_devices));
-       }
- }
--
---- linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-setup.c    1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-setup.c    1970-01-01 00:00:00.000000000 +0000
-@@ -119,6 +119,11 @@ static void nslu2_power_off(void)
- static void __init nslu2_init(void)
- {
-+      /* The NSLU2 has a 33MHz crystal on board - 1.01% different
-+       * from the typical value.
-+       */
-+      ixp4xx_set_board_tick_rate(66000000);
-+
-       ixp4xx_sys_init();
-       pm_power_off = nslu2_power_off;
---- linux-2.6.15/drivers/input/misc/nslu2spkr.c        1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/drivers/input/misc/nslu2spkr.c        1970-01-01 00:00:00.000000000 +0000
-@@ -51,7 +51,7 @@ static int nslu2_spkr_event(struct input
-       }
-       if (value > 20 && value < 32767)
--              count = (NSLU2_FREQ / (value*4)) - 1;
-+              count = (ixp4xx_get_board_tick_rate() / (value*4)) - 1;
-       spin_lock_irqsave(&beep_lock, flags);
---- linux-2.6.15/include/asm-arm/arch-ixp4xx/nslu2.h   1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/include/asm-arm/arch-ixp4xx/nslu2.h   1970-01-01 00:00:00.000000000 +0000
-@@ -38,11 +38,6 @@
- #define NSLU2_PCI_INTD_PIN    8
--/* NSLU2 Timer */
--#define NSLU2_FREQ 66000000
--#define NSLU2_CLOCK_TICK_RATE (((NSLU2_FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ)
--#define NSLU2_CLOCK_TICKS_PER_USEC ((NSLU2_CLOCK_TICK_RATE + USEC_PER_SEC/2) / USEC_PER_SEC)
--
- /* GPIO */
- #define NSLU2_GPIO0           0
---- linux-2.6.15/include/asm-arm/arch-ixp4xx/timex.h   1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/include/asm-arm/arch-ixp4xx/timex.h   1970-01-01 00:00:00.000000000 +0000
-@@ -6,10 +6,23 @@
- #include <asm/hardware.h>
- /*
-- * We use IXP425 General purpose timer for our timer needs, it runs at 
-- * 66.66... MHz. We do a convulted calculation of CLOCK_TICK_RATE b/c the
-- * timer register ignores the bottom 2 bits of the LATCH value.
-+ * In linux/timex.h 'LATCH' is defined as CLOCK_TICK_RATE/HZ and
-+ * is the number of internal counts per timer interrupt.  Thus
-+ * CLOCK_TICK_RATE is LATCH*HZ.
-+ *
-+ * The actual values of these numbers do not matter, because they
-+ * are only used to calculate ACTHZ (rate/latch as a 24.8 fixed
-+ * point number), so the value here gives a LATCH of 1 and pretty
-+ * much guarantees to flush out any off-by-one errors.
-+ *
-+ * ACTHZ is equal to HZ, because CLOCK_TICK_RATE is a multiple of
-+ * HZ, this is checked in the ixp4xx/common.c code.
-  */
--#define FREQ 66666666
--#define CLOCK_TICK_RATE (((FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ)
-+#define CLOCK_TICK_RATE HZ
-+/* The following allow the exact board tick rate to be set and
-+ * discovered.  The value should be exactly twice the frequency
-+ * (in Hz) of the onboard crystal.
-+ */
-+extern u32 ixp4xx_get_board_tick_rate(void);
-+extern void ixp4xx_set_board_tick_rate(u32 new_rate);
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6.15/defconfig b/packages/obsolete/nslu2/nslu2-kernel/2.6.15/defconfig
deleted file mode 100644 (file)
index 9f7bf76..0000000
+++ /dev/null
@@ -1,1617 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.15
-# Mon Nov 14 10:44:43 2005
-#
-CONFIG_ARM=y
-CONFIG_MMU=y
-CONFIG_UID16=y
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-
-#
-# Code maturity level options
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_CLEAN_COMPILE=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-
-#
-# General setup
-#
-CONFIG_LOCALVERSION=""
-CONFIG_LOCALVERSION_AUTO=y
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_SYSCTL=y
-# CONFIG_AUDIT is not set
-CONFIG_HOTPLUG=y
-CONFIG_KOBJECT_UEVENT=y
-# CONFIG_IKCONFIG is not set
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_EMBEDDED=y
-# CONFIG_KALLSYMS is not set
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-# CONFIG_BASE_FULL is not set
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SHMEM=y
-CONFIG_CC_ALIGN_FUNCTIONS=0
-CONFIG_CC_ALIGN_LABELS=0
-CONFIG_CC_ALIGN_LOOPS=0
-CONFIG_CC_ALIGN_JUMPS=0
-# CONFIG_TINY_SHMEM is not set
-CONFIG_BASE_SMALL=1
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-CONFIG_OBSOLETE_MODPARM=y
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
-
-#
-# Block layer
-#
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-# CONFIG_IOSCHED_AS is not set
-CONFIG_IOSCHED_DEADLINE=y
-# CONFIG_IOSCHED_CFQ is not set
-# CONFIG_DEFAULT_AS is not set
-CONFIG_DEFAULT_DEADLINE=y
-# CONFIG_DEFAULT_CFQ is not set
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="deadline"
-
-#
-# System Type
-#
-# CONFIG_ARCH_CLPS7500 is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_CO285 is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_CAMELOT is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_INTEGRATOR is not set
-# CONFIG_ARCH_IOP3XX is not set
-CONFIG_ARCH_IXP4XX=y
-# CONFIG_ARCH_IXP2000 is not set
-# CONFIG_ARCH_L7200 is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C2410 is not set
-# CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_LH7A40X is not set
-# CONFIG_ARCH_OMAP is not set
-# CONFIG_ARCH_VERSATILE is not set
-# CONFIG_ARCH_REALVIEW is not set
-# CONFIG_ARCH_IMX is not set
-# CONFIG_ARCH_H720X is not set
-# CONFIG_ARCH_AAEC2000 is not set
-CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
-
-#
-# Intel IXP4xx Implementation Options
-#
-
-#
-# IXP4xx Platforms
-#
-CONFIG_MACH_NSLU2=y
-# CONFIG_ARCH_AVILA is not set
-# CONFIG_ARCH_ADI_COYOTE is not set
-# CONFIG_ARCH_IXDP425 is not set
-# CONFIG_MACH_IXDPG425 is not set
-# CONFIG_MACH_IXDP465 is not set
-# CONFIG_ARCH_PRPMC1100 is not set
-# CONFIG_MACH_GTWX5715 is not set
-
-#
-# IXP4xx Options
-#
-CONFIG_IXP4XX_INDIRECT_PCI=y
-
-#
-# Processor Type
-#
-CONFIG_CPU_32=y
-CONFIG_CPU_XSCALE=y
-CONFIG_CPU_32v5=y
-CONFIG_CPU_ABRT_EV5T=y
-CONFIG_CPU_CACHE_VIVT=y
-CONFIG_CPU_TLB_V4WBI=y
-
-#
-# Processor Features
-#
-CONFIG_ARM_THUMB=y
-CONFIG_CPU_BIG_ENDIAN=y
-CONFIG_XSCALE_PMU=y
-CONFIG_DMABOUNCE=y
-
-#
-# Bus support
-#
-CONFIG_ISA_DMA_API=y
-CONFIG_PCI=y
-# CONFIG_PCI_LEGACY_PROC is not set
-
-#
-# PCCARD (PCMCIA/CardBus) support
-#
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-# CONFIG_PREEMPT is not set
-# CONFIG_NO_IDLE_HZ is not set
-# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
-# CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-# CONFIG_SPARSEMEM_STATIC is not set
-CONFIG_SPLIT_PTLOCK_CPUS=4096
-# CONFIG_LEDS is not set
-CONFIG_ALIGNMENT_TRAP=y
-
-#
-# Boot options
-#
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="root=/dev/mtdblock4 rw rootfstype=jffs2 mem=32M@0x00000000 init=/linuxrc rtc-x1205.hctosys=1 rtc-x1205.probe=0,0x6f noirqdebug console=ttyS0,115200n8"
-# CONFIG_XIP_KERNEL is not set
-
-#
-# Floating point emulation
-#
-
-#
-# At least one emulation must be selected
-#
-CONFIG_FPE_NWFPE=y
-# CONFIG_FPE_NWFPE_XP is not set
-# CONFIG_FPE_FASTFPE is not set
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_BINFMT_AOUT is not set
-# CONFIG_BINFMT_MISC is not set
-# CONFIG_ARTHUR is not set
-
-#
-# Power management options
-#
-# CONFIG_PM is not set
-
-#
-# Networking
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=m
-CONFIG_PACKET_MMAP=y
-CONFIG_UNIX=y
-CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_FIB_HASH=y
-# CONFIG_IP_PNP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE is not set
-# CONFIG_ARPD is not set
-# CONFIG_SYN_COOKIES is not set
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_DIAG=y
-CONFIG_INET_TCP_DIAG=y
-# CONFIG_TCP_CONG_ADVANCED is not set
-CONFIG_TCP_CONG_BIC=y
-
-#
-# IP: Virtual Server Configuration
-#
-# CONFIG_IP_VS is not set
-CONFIG_IPV6=m
-# CONFIG_IPV6_PRIVACY is not set
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_IPV6_TUNNEL=m
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_BRIDGE_NETFILTER=y
-
-#
-# Core Netfilter Configuration
-#
-# CONFIG_NETFILTER_NETLINK is not set
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_IP_NF_CONNTRACK=m
-# CONFIG_IP_NF_CT_ACCT is not set
-# CONFIG_IP_NF_CONNTRACK_MARK is not set
-# CONFIG_IP_NF_CONNTRACK_EVENTS is not set
-CONFIG_IP_NF_CT_PROTO_SCTP=m
-CONFIG_IP_NF_FTP=m
-CONFIG_IP_NF_IRC=m
-# CONFIG_IP_NF_NETBIOS_NS is not set
-CONFIG_IP_NF_TFTP=m
-CONFIG_IP_NF_AMANDA=m
-# CONFIG_IP_NF_PPTP is not set
-CONFIG_IP_NF_QUEUE=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_LIMIT=m
-CONFIG_IP_NF_MATCH_IPRANGE=m
-CONFIG_IP_NF_MATCH_MAC=m
-CONFIG_IP_NF_MATCH_PKTTYPE=m
-CONFIG_IP_NF_MATCH_MARK=m
-CONFIG_IP_NF_MATCH_MULTIPORT=m
-CONFIG_IP_NF_MATCH_TOS=m
-CONFIG_IP_NF_MATCH_RECENT=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_DSCP=m
-CONFIG_IP_NF_MATCH_AH_ESP=m
-CONFIG_IP_NF_MATCH_LENGTH=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_MATCH_TCPMSS=m
-CONFIG_IP_NF_MATCH_HELPER=m
-CONFIG_IP_NF_MATCH_STATE=m
-CONFIG_IP_NF_MATCH_CONNTRACK=m
-CONFIG_IP_NF_MATCH_OWNER=m
-CONFIG_IP_NF_MATCH_PHYSDEV=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
-CONFIG_IP_NF_MATCH_REALM=m
-# CONFIG_IP_NF_MATCH_SCTP is not set
-# CONFIG_IP_NF_MATCH_DCCP is not set
-CONFIG_IP_NF_MATCH_COMMENT=m
-CONFIG_IP_NF_MATCH_HASHLIMIT=m
-# CONFIG_IP_NF_MATCH_STRING is not set
-CONFIG_IP_NF_FILTER=m
-# CONFIG_IP_NF_TARGET_REJECT is not set
-CONFIG_IP_NF_TARGET_LOG=m
-CONFIG_IP_NF_TARGET_ULOG=m
-CONFIG_IP_NF_TARGET_TCPMSS=m
-# CONFIG_IP_NF_TARGET_NFQUEUE is not set
-CONFIG_IP_NF_NAT=m
-CONFIG_IP_NF_NAT_NEEDED=y
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_SAME=m
-CONFIG_IP_NF_NAT_SNMP_BASIC=m
-CONFIG_IP_NF_NAT_IRC=m
-CONFIG_IP_NF_NAT_FTP=m
-CONFIG_IP_NF_NAT_TFTP=m
-CONFIG_IP_NF_NAT_AMANDA=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_TOS=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_DSCP=m
-CONFIG_IP_NF_TARGET_MARK=m
-CONFIG_IP_NF_TARGET_CLASSIFY=m
-# CONFIG_IP_NF_TARGET_TTL is not set
-# CONFIG_IP_NF_RAW is not set
-# CONFIG_IP_NF_ARPTABLES is not set
-
-#
-# IPv6: Netfilter Configuration (EXPERIMENTAL)
-#
-# CONFIG_IP6_NF_QUEUE is not set
-# CONFIG_IP6_NF_IPTABLES is not set
-
-#
-# Bridge: Netfilter Configuration
-#
-# CONFIG_BRIDGE_NF_EBTABLES is not set
-
-#
-# DCCP Configuration (EXPERIMENTAL)
-#
-# CONFIG_IP_DCCP is not set
-
-#
-# SCTP Configuration (EXPERIMENTAL)
-#
-# CONFIG_IP_SCTP is not set
-# CONFIG_ATM is not set
-CONFIG_BRIDGE=m
-CONFIG_VLAN_8021Q=m
-# CONFIG_DECNET is not set
-CONFIG_LLC=m
-# CONFIG_LLC2 is not set
-CONFIG_IPX=m
-# CONFIG_IPX_INTERN is not set
-CONFIG_ATALK=m
-CONFIG_DEV_APPLETALK=y
-CONFIG_IPDDP=m
-CONFIG_IPDDP_ENCAP=y
-CONFIG_IPDDP_DECAP=y
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_NET_DIVERT is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-
-#
-# QoS and/or fair queueing
-#
-# CONFIG_NET_SCHED is not set
-CONFIG_NET_CLS_ROUTE=y
-
-#
-# Network testing
-#
-CONFIG_NET_PKTGEN=m
-# CONFIG_HAMRADIO is not set
-# CONFIG_IRDA is not set
-CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-# CONFIG_BT_HIDP is not set
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_HCIUSB=m
-CONFIG_BT_HCIUSB_SCO=y
-# CONFIG_BT_HCIUART is not set
-CONFIG_BT_HCIBCM203X=m
-# CONFIG_BT_HCIBPA10X is not set
-# CONFIG_BT_HCIBFUSB is not set
-# CONFIG_BT_HCIVHCI is not set
-# CONFIG_IEEE80211 is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=m
-
-#
-# Connector - unified userspace <-> kernelspace linker
-#
-# CONFIG_CONNECTOR is not set
-
-#
-# Memory Technology Devices (MTD)
-#
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-CONFIG_MTD_CONCAT=y
-CONFIG_MTD_PARTITIONS=y
-CONFIG_MTD_REDBOOT_PARTS=y
-CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
-# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
-# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLOCK=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-# CONFIG_RFD_FTL is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=y
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=y
-CONFIG_MTD_CFI_ADV_OPTIONS=y
-# CONFIG_MTD_CFI_NOSWAP is not set
-CONFIG_MTD_CFI_BE_BYTE_SWAP=y
-# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
-CONFIG_MTD_CFI_GEOMETRY=y
-# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-# CONFIG_MTD_OTP is not set
-CONFIG_MTD_CFI_INTELEXT=y
-# CONFIG_MTD_CFI_AMDSTD is not set
-# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=y
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-# CONFIG_MTD_XIP is not set
-
-#
-# Mapping drivers for chip access
-#
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-# CONFIG_MTD_PHYSMAP is not set
-# CONFIG_MTD_ARM_INTEGRATOR is not set
-CONFIG_MTD_IXP4XX=y
-# CONFIG_MTD_PCI is not set
-# CONFIG_MTD_PLATRAM is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLKMTD is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-
-#
-# NAND Flash Device Drivers
-#
-# CONFIG_MTD_NAND is not set
-
-#
-# OneNAND Flash Device Drivers
-#
-# CONFIG_MTD_ONENAND is not set
-
-#
-# Parallel port support
-#
-# CONFIG_PARPORT is not set
-
-#
-# Plug and Play support
-#
-
-#
-# Block devices
-#
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_UMEM is not set
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=m
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_SX8 is not set
-# CONFIG_BLK_DEV_UB is not set
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=4
-CONFIG_BLK_DEV_RAM_SIZE=10240
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-# CONFIG_ATA_OVER_ETH is not set
-
-#
-# ATA/ATAPI/MFM/RLL support
-#
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=y
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CHR_DEV_OSST is not set
-CONFIG_BLK_DEV_SR=m
-# CONFIG_BLK_DEV_SR_VENDOR is not set
-CONFIG_CHR_DEV_SG=m
-# CONFIG_CHR_DEV_SCH is not set
-
-#
-# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-#
-CONFIG_SCSI_MULTI_LUN=y
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-
-#
-# SCSI Transport Attributes
-#
-# CONFIG_SCSI_SPI_ATTRS is not set
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-# CONFIG_SCSI_SAS_ATTRS is not set
-
-#
-# SCSI low-level drivers
-#
-# CONFIG_ISCSI_TCP is not set
-# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
-# CONFIG_SCSI_3W_9XXX is not set
-# CONFIG_SCSI_ACARD is not set
-# CONFIG_SCSI_AACRAID is not set
-# CONFIG_SCSI_AIC7XXX is not set
-# CONFIG_SCSI_AIC7XXX_OLD is not set
-# CONFIG_SCSI_AIC79XX is not set
-# CONFIG_SCSI_DPT_I2O is not set
-# CONFIG_MEGARAID_NEWGEN is not set
-# CONFIG_MEGARAID_LEGACY is not set
-# CONFIG_MEGARAID_SAS is not set
-# CONFIG_SCSI_SATA is not set
-# CONFIG_SCSI_BUSLOGIC is not set
-# CONFIG_SCSI_DMX3191D is not set
-# CONFIG_SCSI_EATA is not set
-# CONFIG_SCSI_FUTURE_DOMAIN is not set
-# CONFIG_SCSI_GDTH is not set
-# CONFIG_SCSI_IPS is not set
-# CONFIG_SCSI_INITIO is not set
-# CONFIG_SCSI_INIA100 is not set
-# CONFIG_SCSI_SYM53C8XX_2 is not set
-# CONFIG_SCSI_IPR is not set
-# CONFIG_SCSI_QLOGIC_FC is not set
-# CONFIG_SCSI_QLOGIC_1280 is not set
-CONFIG_SCSI_QLA2XXX=y
-# CONFIG_SCSI_QLA21XX is not set
-# CONFIG_SCSI_QLA22XX is not set
-# CONFIG_SCSI_QLA2300 is not set
-# CONFIG_SCSI_QLA2322 is not set
-# CONFIG_SCSI_QLA6312 is not set
-# CONFIG_SCSI_QLA24XX is not set
-# CONFIG_SCSI_LPFC is not set
-# CONFIG_SCSI_DC395x is not set
-# CONFIG_SCSI_DC390T is not set
-# CONFIG_SCSI_NSP32 is not set
-# CONFIG_SCSI_DEBUG is not set
-
-#
-# Multi-device support (RAID and LVM)
-#
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=m
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID5=m
-CONFIG_MD_RAID6=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-CONFIG_BLK_DEV_DM=m
-# CONFIG_DM_CRYPT is not set
-# CONFIG_DM_SNAPSHOT is not set
-# CONFIG_DM_MIRROR is not set
-# CONFIG_DM_ZERO is not set
-# CONFIG_DM_MULTIPATH is not set
-
-#
-# Fusion MPT device support
-#
-# CONFIG_FUSION is not set
-# CONFIG_FUSION_SPI is not set
-# CONFIG_FUSION_FC is not set
-# CONFIG_FUSION_SAS is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-# CONFIG_IEEE1394 is not set
-
-#
-# I2O device support
-#
-# CONFIG_I2O is not set
-
-#
-# Network device support
-#
-CONFIG_NETDEVICES=y
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-CONFIG_TUN=m
-
-#
-# ARCnet devices
-#
-# CONFIG_ARCNET is not set
-
-#
-# PHY device support
-#
-# CONFIG_PHYLIB is not set
-
-#
-# Ethernet (10 or 100Mbit)
-#
-CONFIG_NET_ETHERNET=y
-CONFIG_MACLIST=y
-CONFIG_MII=y
-# CONFIG_HAPPYMEAL is not set
-# CONFIG_SUNGEM is not set
-# CONFIG_CASSINI is not set
-# CONFIG_NET_VENDOR_3COM is not set
-# CONFIG_SMC91X is not set
-# CONFIG_DM9000 is not set
-
-#
-# Tulip family network device support
-#
-# CONFIG_NET_TULIP is not set
-# CONFIG_HP100 is not set
-CONFIG_NET_PCI=y
-# CONFIG_PCNET32 is not set
-# CONFIG_AMD8111_ETH is not set
-# CONFIG_ADAPTEC_STARFIRE is not set
-# CONFIG_B44 is not set
-# CONFIG_FORCEDETH is not set
-# CONFIG_DGRS is not set
-# CONFIG_EEPRO100 is not set
-# CONFIG_E100 is not set
-# CONFIG_FEALNX is not set
-# CONFIG_NATSEMI is not set
-# CONFIG_NE2K_PCI is not set
-# CONFIG_8139CP is not set
-# CONFIG_8139TOO is not set
-# CONFIG_SIS900 is not set
-# CONFIG_EPIC100 is not set
-# CONFIG_SUNDANCE is not set
-# CONFIG_TLAN is not set
-# CONFIG_VIA_RHINE is not set
-
-#
-# Ethernet (1000 Mbit)
-#
-# CONFIG_ACENIC is not set
-# CONFIG_DL2K is not set
-# CONFIG_E1000 is not set
-# CONFIG_NS83820 is not set
-# CONFIG_HAMACHI is not set
-# CONFIG_YELLOWFIN is not set
-# CONFIG_R8169 is not set
-# CONFIG_SIS190 is not set
-# CONFIG_SKGE is not set
-# CONFIG_SK98LIN is not set
-# CONFIG_VIA_VELOCITY is not set
-# CONFIG_TIGON3 is not set
-# CONFIG_BNX2 is not set
-
-#
-# Ethernet (10000 Mbit)
-#
-# CONFIG_CHELSIO_T1 is not set
-# CONFIG_IXGB is not set
-# CONFIG_S2IO is not set
-
-#
-# Token Ring devices
-#
-# CONFIG_TR is not set
-
-#
-# Wireless LAN (non-hamradio)
-#
-CONFIG_NET_RADIO=y
-
-#
-# Obsolete Wireless cards support (pre-802.11)
-#
-# CONFIG_STRIP is not set
-
-#
-# Wireless 802.11b ISA/PCI cards support
-#
-# CONFIG_AIRO is not set
-# CONFIG_HERMES is not set
-# CONFIG_ATMEL is not set
-
-#
-# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
-#
-# CONFIG_PRISM54 is not set
-# CONFIG_HOSTAP is not set
-CONFIG_NET_WIRELESS=y
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN is not set
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-CONFIG_PPP=m
-# CONFIG_PPP_MULTILINK is not set
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-# CONFIG_PPP_SYNC_TTY is not set
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-# CONFIG_PPP_MPPE is not set
-# CONFIG_PPPOE is not set
-# CONFIG_SLIP is not set
-# CONFIG_NET_FC is not set
-# CONFIG_SHAPER is not set
-CONFIG_NETCONSOLE=m
-CONFIG_NETPOLL=y
-# CONFIG_NETPOLL_RX is not set
-# CONFIG_NETPOLL_TRAP is not set
-CONFIG_NET_POLL_CONTROLLER=y
-
-#
-# ISDN subsystem
-#
-# CONFIG_ISDN is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-
-#
-# Userland interfaces
-#
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_TSDEV is not set
-CONFIG_INPUT_EVDEV=m
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_NSLU2_BEEPER=m
-# CONFIG_INPUT_UINPUT is not set
-
-#
-# Hardware I/O ports
-#
-# CONFIG_SERIO is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-# CONFIG_VT is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=2
-# CONFIG_SERIAL_8250_EXTENDED is not set
-
-#
-# Non-8250 serial port support
-#
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_JSM is not set
-CONFIG_UNIX98_PTYS=y
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=16
-
-#
-# IPMI
-#
-# CONFIG_IPMI_HANDLER is not set
-
-#
-# Watchdog Cards
-#
-CONFIG_WATCHDOG=y
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-
-#
-# Watchdog Device Drivers
-#
-# CONFIG_SOFT_WATCHDOG is not set
-CONFIG_IXP4XX_WATCHDOG=y
-
-#
-# PCI-based Watchdog Cards
-#
-# CONFIG_PCIPCWATCHDOG is not set
-# CONFIG_WDTPCI is not set
-
-#
-# USB-based Watchdog Cards
-#
-# CONFIG_USBPCWATCHDOG is not set
-# CONFIG_NVRAM is not set
-# CONFIG_RTC is not set
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-
-#
-# Ftape, the floppy tape device driver
-#
-# CONFIG_DRM is not set
-# CONFIG_RAW_DRIVER is not set
-
-#
-# TPM devices
-#
-# CONFIG_TCG_TPM is not set
-# CONFIG_TELCLOCK is not set
-
-#
-# I2C support
-#
-CONFIG_I2C=y
-CONFIG_I2C_CHARDEV=y
-
-#
-# I2C Algorithms
-#
-CONFIG_I2C_ALGOBIT=y
-# CONFIG_I2C_ALGOPCF is not set
-# CONFIG_I2C_ALGOPCA is not set
-
-#
-# I2C Hardware Bus support
-#
-# CONFIG_I2C_ALI1535 is not set
-# CONFIG_I2C_ALI1563 is not set
-# CONFIG_I2C_ALI15X3 is not set
-# CONFIG_I2C_AMD756 is not set
-# CONFIG_I2C_AMD8111 is not set
-# CONFIG_I2C_I801 is not set
-# CONFIG_I2C_I810 is not set
-# CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_IOP3XX is not set
-CONFIG_I2C_IXP4XX=y
-# CONFIG_I2C_NFORCE2 is not set
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_PROSAVAGE is not set
-# CONFIG_I2C_SAVAGE4 is not set
-# CONFIG_SCx200_ACB is not set
-# CONFIG_I2C_SIS5595 is not set
-# CONFIG_I2C_SIS630 is not set
-# CONFIG_I2C_SIS96X is not set
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_VIA is not set
-# CONFIG_I2C_VIAPRO is not set
-# CONFIG_I2C_VOODOO3 is not set
-# CONFIG_I2C_PCA_ISA is not set
-
-#
-# Miscellaneous I2C Chip support
-#
-# CONFIG_SENSORS_DS1337 is not set
-# CONFIG_SENSORS_DS1374 is not set
-CONFIG_SENSORS_EEPROM=y
-# CONFIG_SENSORS_PCF8574 is not set
-# CONFIG_SENSORS_PCA9539 is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_SENSORS_RTC8564 is not set
-# CONFIG_SENSORS_MAX6875 is not set
-# CONFIG_RTC_X1205_I2C is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
-
-#
-# Hardware Monitoring support
-#
-CONFIG_HWMON=y
-# CONFIG_HWMON_VID is not set
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ADM9240 is not set
-# CONFIG_SENSORS_ASB100 is not set
-# CONFIG_SENSORS_ATXP1 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_FSCHER is not set
-# CONFIG_SENSORS_FSCPOS is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_SIS5595 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_VIA686A is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83792D is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83627HF is not set
-# CONFIG_SENSORS_W83627EHF is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Misc devices
-#
-
-#
-# Multimedia Capabilities Port drivers
-#
-
-#
-# Multimedia devices
-#
-CONFIG_VIDEO_DEV=m
-
-#
-# Video For Linux
-#
-
-#
-# Video Adapters
-#
-CONFIG_VIDEO_BT848=m
-# CONFIG_VIDEO_SAA6588 is not set
-CONFIG_VIDEO_CPIA=m
-CONFIG_VIDEO_CPIA_USB=m
-CONFIG_VIDEO_SAA5246A=m
-CONFIG_VIDEO_SAA5249=m
-CONFIG_TUNER_3036=m
-CONFIG_VIDEO_STRADIS=m
-CONFIG_VIDEO_ZORAN=m
-CONFIG_VIDEO_ZORAN_BUZ=m
-CONFIG_VIDEO_ZORAN_DC10=m
-CONFIG_VIDEO_ZORAN_DC30=m
-CONFIG_VIDEO_ZORAN_LML33=m
-CONFIG_VIDEO_ZORAN_LML33R10=m
-CONFIG_VIDEO_SAA7134=m
-# CONFIG_VIDEO_SAA7134_ALSA is not set
-CONFIG_VIDEO_MXB=m
-CONFIG_VIDEO_DPC=m
-CONFIG_VIDEO_HEXIUM_ORION=m
-CONFIG_VIDEO_HEXIUM_GEMINI=m
-CONFIG_VIDEO_CX88=m
-# CONFIG_VIDEO_EM28XX is not set
-CONFIG_VIDEO_OVCAMCHIP=m
-# CONFIG_VIDEO_AUDIO_DECODER is not set
-# CONFIG_VIDEO_DECODER is not set
-
-#
-# Radio Adapters
-#
-# CONFIG_RADIO_GEMTEK_PCI is not set
-# CONFIG_RADIO_MAXIRADIO is not set
-# CONFIG_RADIO_MAESTRO is not set
-
-#
-# Digital Video Broadcasting Devices
-#
-# CONFIG_DVB is not set
-CONFIG_VIDEO_SAA7146=m
-CONFIG_VIDEO_SAA7146_VV=m
-CONFIG_VIDEO_VIDEOBUF=m
-CONFIG_VIDEO_TUNER=m
-CONFIG_VIDEO_BUF=m
-CONFIG_VIDEO_BTCX=m
-CONFIG_VIDEO_IR=m
-CONFIG_VIDEO_TVEEPROM=m
-
-#
-# Graphics support
-#
-# CONFIG_FB is not set
-
-#
-# Sound
-#
-CONFIG_SOUND=m
-
-#
-# Advanced Linux Sound Architecture
-#
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-CONFIG_SND_HWDEP=m
-CONFIG_SND_RAWMIDI=m
-# CONFIG_SND_SEQUENCER is not set
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-
-#
-# Generic devices
-#
-# CONFIG_SND_DUMMY is not set
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-
-#
-# PCI devices
-#
-# CONFIG_SND_ALI5451 is not set
-# CONFIG_SND_ATIIXP is not set
-# CONFIG_SND_ATIIXP_MODEM is not set
-# CONFIG_SND_AU8810 is not set
-# CONFIG_SND_AU8820 is not set
-# CONFIG_SND_AU8830 is not set
-# CONFIG_SND_AZT3328 is not set
-# CONFIG_SND_BT87X is not set
-# CONFIG_SND_CS46XX is not set
-# CONFIG_SND_CS4281 is not set
-# CONFIG_SND_EMU10K1 is not set
-# CONFIG_SND_EMU10K1X is not set
-# CONFIG_SND_CA0106 is not set
-# CONFIG_SND_KORG1212 is not set
-# CONFIG_SND_MIXART is not set
-# CONFIG_SND_NM256 is not set
-# CONFIG_SND_RME32 is not set
-# CONFIG_SND_RME96 is not set
-# CONFIG_SND_RME9652 is not set
-# CONFIG_SND_HDSP is not set
-# CONFIG_SND_HDSPM is not set
-# CONFIG_SND_TRIDENT is not set
-# CONFIG_SND_YMFPCI is not set
-# CONFIG_SND_AD1889 is not set
-# CONFIG_SND_ALS4000 is not set
-# CONFIG_SND_CMIPCI is not set
-# CONFIG_SND_ENS1370 is not set
-# CONFIG_SND_ENS1371 is not set
-# CONFIG_SND_ES1938 is not set
-# CONFIG_SND_ES1968 is not set
-# CONFIG_SND_MAESTRO3 is not set
-# CONFIG_SND_FM801 is not set
-# CONFIG_SND_ICE1712 is not set
-# CONFIG_SND_ICE1724 is not set
-# CONFIG_SND_INTEL8X0 is not set
-# CONFIG_SND_INTEL8X0M is not set
-# CONFIG_SND_SONICVIBES is not set
-# CONFIG_SND_VIA82XX is not set
-# CONFIG_SND_VIA82XX_MODEM is not set
-# CONFIG_SND_VX222 is not set
-# CONFIG_SND_HDA_INTEL is not set
-
-#
-# ALSA ARM devices
-#
-
-#
-# USB devices
-#
-CONFIG_SND_USB_AUDIO=m
-
-#
-# Open Sound System
-#
-# CONFIG_SOUND_PRIME is not set
-
-#
-# USB support
-#
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB=y
-# CONFIG_USB_DEBUG is not set
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-# CONFIG_USB_BANDWIDTH is not set
-# CONFIG_USB_DYNAMIC_MINORS is not set
-# CONFIG_USB_OTG is not set
-
-#
-# USB Host Controller Drivers
-#
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_SPLIT_ISO=y
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-# CONFIG_USB_ISP116X_HCD is not set
-CONFIG_USB_OHCI_HCD=y
-# CONFIG_USB_OHCI_BIG_ENDIAN is not set
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-# CONFIG_USB_UHCI_HCD is not set
-# CONFIG_USB_SL811_HCD is not set
-
-#
-# USB Device Class drivers
-#
-# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-
-#
-# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-#
-
-#
-# may also be needed; see USB_STORAGE Help for more information
-#
-CONFIG_USB_STORAGE=y
-# CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
-# CONFIG_USB_STORAGE_FREECOM is not set
-# CONFIG_USB_STORAGE_DPCM is not set
-# CONFIG_USB_STORAGE_USBAT is not set
-# CONFIG_USB_STORAGE_SDDR09 is not set
-# CONFIG_USB_STORAGE_SDDR55 is not set
-# CONFIG_USB_STORAGE_JUMPSHOT is not set
-# CONFIG_USB_STORAGE_ONETOUCH is not set
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=m
-CONFIG_USB_HIDINPUT=y
-# CONFIG_HID_FF is not set
-CONFIG_USB_HIDDEV=y
-
-#
-# USB HID Boot Protocol drivers
-#
-CONFIG_USB_KBD=m
-# CONFIG_USB_MOUSE is not set
-# CONFIG_USB_AIPTEK is not set
-# CONFIG_USB_WACOM is not set
-# CONFIG_USB_ACECAD is not set
-# CONFIG_USB_KBTAB is not set
-# CONFIG_USB_POWERMATE is not set
-# CONFIG_USB_MTOUCH is not set
-# CONFIG_USB_ITMTOUCH is not set
-# CONFIG_USB_EGALAX is not set
-# CONFIG_USB_YEALINK is not set
-# CONFIG_USB_XPAD is not set
-# CONFIG_USB_ATI_REMOTE is not set
-# CONFIG_USB_KEYSPAN_REMOTE is not set
-# CONFIG_USB_APPLETOUCH is not set
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-
-#
-# USB Multimedia devices
-#
-# CONFIG_USB_DABUSB is not set
-# CONFIG_USB_VICAM is not set
-# CONFIG_USB_DSBR is not set
-# CONFIG_USB_IBMCAM is not set
-# CONFIG_USB_KONICAWC is not set
-# CONFIG_USB_OV511 is not set
-# CONFIG_USB_SE401 is not set
-# CONFIG_USB_SN9C102 is not set
-# CONFIG_USB_STV680 is not set
-# CONFIG_USB_W9968CF is not set
-CONFIG_USB_PWC=m
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_CDCETHER=m
-# CONFIG_USB_NET_GL620A is not set
-CONFIG_USB_NET_NET1080=m
-# CONFIG_USB_NET_PLUSB is not set
-# CONFIG_USB_NET_RNDIS_HOST is not set
-# CONFIG_USB_NET_CDC_SUBSET is not set
-CONFIG_USB_NET_ZAURUS=m
-# CONFIG_USB_ZD1201 is not set
-# CONFIG_USB_MON is not set
-
-#
-# USB port drivers
-#
-
-#
-# USB Serial Converter support
-#
-CONFIG_USB_SERIAL=m
-CONFIG_USB_SERIAL_GENERIC=y
-# CONFIG_USB_SERIAL_AIRPRIME is not set
-# CONFIG_USB_SERIAL_ANYDATA is not set
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_WHITEHEAT=m
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-# CONFIG_USB_SERIAL_CP2101 is not set
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-# CONFIG_USB_SERIAL_KEYSPAN is not set
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-CONFIG_USB_SERIAL_PL2303=m
-# CONFIG_USB_SERIAL_HP4X is not set
-CONFIG_USB_SERIAL_SAFE=m
-# CONFIG_USB_SERIAL_SAFE_PADDED is not set
-CONFIG_USB_SERIAL_TI=m
-CONFIG_USB_SERIAL_CYBERJACK=m
-CONFIG_USB_SERIAL_XIRCOM=m
-CONFIG_USB_SERIAL_OMNINET=m
-CONFIG_USB_EZUSB=y
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
-# CONFIG_USB_AUERSWALD is not set
-# CONFIG_USB_RIO500 is not set
-# CONFIG_USB_LEGOTOWER is not set
-# CONFIG_USB_LCD is not set
-# CONFIG_USB_LED is not set
-# CONFIG_USB_CYTHERM is not set
-# CONFIG_USB_PHIDGETKIT is not set
-# CONFIG_USB_PHIDGETSERVO is not set
-# CONFIG_USB_IDMOUSE is not set
-# CONFIG_USB_SISUSBVGA is not set
-# CONFIG_USB_LD is not set
-# CONFIG_USB_TEST is not set
-
-#
-# USB DSL modem support
-#
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-
-#
-# MMC/SD Card support
-#
-# CONFIG_MMC is not set
-
-#
-# Real Time Clock
-#
-CONFIG_RTC_CLASS=y
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-
-#
-# RTC drivers
-#
-CONFIG_RTC_DRV_X1205=y
-# CONFIG_RTC_DRV_DS1672 is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=m
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=m
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-CONFIG_JBD=m
-# CONFIG_JBD_DEBUG is not set
-CONFIG_FS_MBCACHE=m
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-# CONFIG_JFS_FS is not set
-CONFIG_FS_POSIX_ACL=y
-# CONFIG_XFS_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_ROMFS_FS is not set
-CONFIG_INOTIFY=y
-# CONFIG_QUOTA is not set
-CONFIG_DNOTIFY=y
-# CONFIG_AUTOFS_FS is not set
-CONFIG_AUTOFS4_FS=m
-# CONFIG_FUSE_FS is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_ZISOFS_FS=m
-CONFIG_UDF_FS=m
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=m
-CONFIG_MSDOS_FS=m
-CONFIG_VFAT_FS=m
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
-CONFIG_NTFS_FS=m
-# CONFIG_NTFS_DEBUG is not set
-CONFIG_NTFS_RW=y
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_RAMFS=y
-# CONFIG_RELAYFS_FS is not set
-
-#
-# Miscellaneous filesystems
-#
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_JFFS_FS is not set
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_SUMMARY is not set
-# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-# CONFIG_JFFS2_NATIVE_ENDIAN is not set
-CONFIG_JFFS2_BIG_ENDIAN=y
-# CONFIG_JFFS2_LITTLE_ENDIAN is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-
-#
-# Network File Systems
-#
-CONFIG_NFS_FS=m
-CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
-CONFIG_NFS_V4=y
-CONFIG_NFS_DIRECTIO=y
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-# CONFIG_NFSD_V3_ACL is not set
-CONFIG_NFSD_V4=y
-CONFIG_NFSD_TCP=y
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=m
-CONFIG_SUNRPC_GSS=m
-CONFIG_RPCSEC_GSS_KRB5=m
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=m
-# CONFIG_SMB_NLS_DEFAULT is not set
-CONFIG_CIFS=m
-# CONFIG_CIFS_STATS is not set
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-# CONFIG_CIFS_EXPERIMENTAL is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-# CONFIG_9P_FS is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_EFI_PARTITION is not set
-
-#
-# Native Language Support
-#
-CONFIG_NLS=m
-CONFIG_NLS_DEFAULT="utf8"
-CONFIG_NLS_CODEPAGE_437=m
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=m
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_UTF8=m
-
-#
-# Profiling support
-#
-# CONFIG_PROFILING is not set
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-# CONFIG_DEBUG_KERNEL is not set
-CONFIG_LOG_BUF_SHIFT=14
-# CONFIG_DEBUG_BUGVERBOSE is not set
-CONFIG_FRAME_POINTER=y
-# CONFIG_DEBUG_USER is not set
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-
-#
-# Cryptographic options
-#
-CONFIG_CRYPTO=y
-CONFIG_CRYPTO_HMAC=y
-# CONFIG_CRYPTO_NULL is not set
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_SHA1=m
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_WP512=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_AES=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_CRC32C=m
-CONFIG_CRYPTO_TEST=m
-
-#
-# Hardware crypto devices
-#
-
-#
-# Library routines
-#
-CONFIG_CRC_CCITT=m
-# CONFIG_CRC16 is not set
-CONFIG_CRC32=y
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6/40-scsi-idle.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6/40-scsi-idle.patch
deleted file mode 100644 (file)
index e04996e..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-diff -ur linux-2.6.12.2/drivers/scsi/sd.c linux-2.6.12.2_scsi-idle/drivers/scsi/sd.c
---- linux-2.6.12.2/drivers/scsi/sd.c   2005-08-27 06:12:31.000000000 +0200
-+++ linux-2.6.12.2_scsi-idle/drivers/scsi/sd.c 2005-08-27 06:26:50.000000000 +0200
-@@ -266,6 +266,9 @@
-                           "count=%d\n", disk->disk_name,
-                        (unsigned long long)block, this_count));
-+      /* Update idle-since time */
-+      sdp->idle = jiffies;
-+
-       if (!sdp || !scsi_device_online(sdp) ||
-           block + rq->nr_sectors > get_capacity(disk)) {
-               SCSI_LOG_HLQUEUE(2, printk("Finishing %ld sectors\n", 
-@@ -600,6 +603,8 @@
-               case SCSI_IOCTL_GET_IDLUN:
-               case SCSI_IOCTL_GET_BUS_NUMBER:
-                       return scsi_ioctl(sdp, cmd, p);
-+              case SCSI_IOCTL_IDLE:
-+                      return (jiffies - sdp->idle) / HZ + 1;
-               default:
-                       error = scsi_cmd_ioctl(filp, disk, cmd, p);
-                       if (error != -ENOTTY)
-diff -ur linux-2.6.12.2/include/scsi/scsi_device.h linux-2.6.12.2_scsi-idle/include/scsi/scsi_device.h
---- linux-2.6.12.2/include/scsi/scsi_device.h  2005-08-27 06:12:44.000000000 +0200
-+++ linux-2.6.12.2_scsi-idle/include/scsi/scsi_device.h        2005-08-27 06:27:09.000000000 +0200
-@@ -125,6 +125,7 @@
-       atomic_t ioerr_cnt;
-       int timeout;
-+      unsigned long           idle;   /* scsi idle time in jiffers */
-       struct device           sdev_gendev;
-       struct class_device     sdev_classdev;
-diff -ur linux-2.6.12.2/include/scsi/scsi_ioctl.h linux-2.6.12.2_scsi-idle/include/scsi/scsi_ioctl.h
---- linux-2.6.12.2/include/scsi/scsi_ioctl.h   2005-08-27 06:12:44.000000000 +0200
-+++ linux-2.6.12.2_scsi-idle/include/scsi/scsi_ioctl.h 2005-08-28 17:32:17.000000000 +0200
-@@ -7,6 +7,7 @@
- #define SCSI_IOCTL_SYNC 4                     /* Request synchronous parameters */
- #define SCSI_IOCTL_START_UNIT 5
- #define SCSI_IOCTL_STOP_UNIT 6
-+#define SCSI_IOCTL_IDLE 4746                  /* get idle time in jiffies */
- /* The door lock/unlock constants are compatible with Sun constants for
-    the cdrom */
- #define SCSI_IOCTL_DOORLOCK 0x5380            /* lock the eject mechanism */
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6/91-maclist.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6/91-maclist.patch
deleted file mode 100644 (file)
index 27af1ea..0000000
+++ /dev/null
@@ -1,377 +0,0 @@
---- linux-2.6.15/include/net/maclist.h 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/include/net/maclist.h 1970-01-01 00:00:00.000000000 +0000
-@@ -0,0 +1,23 @@
-+#ifndef _MACLIST_H
-+#define _MACLIST_H 1
-+/*
-+ * Interfaces to the MAC repository
-+ */
-+/*
-+ * Add a single entry, returns 0 on success else an error
-+ * code.  Must *not* be called from an interrupt handler.
-+ */
-+extern int maclist_add(const u8 id_to_add[6]);
-+
-+/*
-+ * Return the current entry count (valid in any context).
-+ */
-+extern int maclist_count(void);
-+
-+/*
-+ * Return the ID from the n'th entry (valid in any context),
-+ * returns 0 on success, -EINVAL if 'n' is out of range.
-+ */
-+extern int maclist_read(u8 (*buffer_for_id)[6], int index_of_id_to_return);
-+
-+#endif /*_MACLIST_H*/
---- linux-2.6.15/drivers/net/maclist.c 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/drivers/net/maclist.c 1970-01-01 00:00:00.000000000 +0000
-@@ -0,0 +1,314 @@
-+/*
-+ * drivers/net/maclist.c
-+ *
-+ * a simple driver to remember ethernet MAC values
-+ *
-+ * Some Ethernet hardware implementations have no built-in
-+ * storage for allocated MAC values - an example is the Intel
-+ * IXP420 chip which has support for Ethernet but no defined
-+ * way of storing allocated MAC values.  With such hardware
-+ * different board level implementations store the allocated
-+ * MAC (or MACs) in different ways.  Rather than put board
-+ * level code into a specific Ethernet driver this driver
-+ * provides a generally accessible repository for the MACs
-+ * which can be written by board level code and read by the
-+ * driver.
-+ *
-+ * The implementation also allows user level programs to
-+ * access the MAC information in /proc/net/maclist.  This is
-+ * useful as it allows user space code to use the MAC if it
-+ * is not used by a built-in driver.
-+ *
-+ * Copyright (C) 2005 John Bowler
-+ * Author: John Bowler <jbowler@acm.org>
-+ * Maintainers: http://www.nslu2-linux.org/
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * version 2 as published by the Free Software Foundation.
-+ *
-+ * External interfaces:
-+ *  Interfaces to linux kernel (and modules)
-+ *   maclist_add:   add a single MAC
-+ *   maclist_count: total number of MACs stored
-+ *   maclist_read:  read a MAC 0..(maclist_count-1)
-+ */
-+#include <linux/module.h>
-+#include <linux/moduleparam.h>
-+#include <linux/etherdevice.h>
-+#include <linux/proc_fs.h>
-+#include <linux/errno.h>
-+
-+#include <net/maclist.h>
-+
-+#define MACLIST_NAME "maclist"
-+
-+MODULE_AUTHOR("John Bowler <jbowler@acm.org>");
-+MODULE_DESCRIPTION("MAC list repository");
-+MODULE_LICENSE("GPL");
-+
-+typedef struct maclist_entry {
-+      struct maclist_entry *next;  /* Linked list, first first */
-+      u8                    id[6]; /* 6 byte Ethernet MAC */
-+} maclist_entry_t;
-+
-+/* Access to this list is possible at any time - entries in
-+ * the list are never destroyed.  Modification of the list is
-+ * safe only from the init code (i.e. modification must be
-+ * single threaded), but read from an interrupt at the same
-+ * time is possible and safe.
-+ */
-+static maclist_entry_t *maclist_list = 0;
-+
-+/*
-+ * External interfaces.
-+ *
-+ * Add a single entry, returns 0 on success else an error
-+ * code.  Must be single threaded.
-+ */
-+int maclist_add(const u8 new_id[6]) {
-+      maclist_entry_t *new_entry, **tail;
-+
-+      if (new_id == 0 || !is_valid_ether_addr(new_id)) {
-+              printk(KERN_ERR MACLIST_NAME ": invalid ethernet address\n");
-+              return -EINVAL;
-+      }
-+      new_entry = kmalloc(sizeof *new_entry, GFP_KERNEL);
-+      if (new_entry == 0)
-+              return -ENOMEM;
-+      new_entry->next = 0;
-+      memcpy(new_entry->id, new_id, sizeof new_entry->id);
-+
-+      tail = &maclist_list;
-+      while (*tail != 0)
-+              tail = &(*tail)->next;
-+      *tail = new_entry;
-+      return 0;
-+}
-+EXPORT_SYMBOL(maclist_add);
-+
-+/*
-+ * Return the current entry count (valid in any context).
-+ */
-+int maclist_count(void) {
-+      maclist_entry_t *tail = maclist_list;
-+      int count = 0;
-+
-+      while (tail != 0) {
-+              tail = tail->next;
-+              ++count;
-+      }
-+
-+      return count;
-+}
-+EXPORT_SYMBOL(maclist_count);
-+
-+/*
-+ * Return the ID from the n'th entry (valid in any context),
-+ * returns 0 on success, -EINVAL if 'n' is out of range.
-+ */
-+int maclist_read(u8 (*id)[6], int n) {
-+      maclist_entry_t *entry = maclist_list;
-+
-+      while (n > 0 && entry != 0) {
-+              --n;
-+              entry = entry->next;
-+      }
-+
-+      if (n == 0 && entry != 0) {
-+              memcpy(id, entry->id, sizeof *id);
-+              return 0;
-+      }
-+
-+      printk(KERN_ERR MACLIST_NAME ": id does not exist\n");
-+      return -EINVAL;
-+}
-+EXPORT_SYMBOL(maclist_read);
-+
-+/*
-+ * Parameter parsing.  The option string is a list of MAC
-+ * addresses, comma separated.  (The parsing really should
-+ * be somewhere central...)
-+ */
-+static int __init maclist_setup(char *param) {
-+      int bytes = 0, seen_a_digit = 0;
-+      u8 id[6];
-+
-+      memset(id, 0, sizeof id);
-+
-+      if (param) do {
-+              int digit = -1;
-+              switch (*param) {
-+              case '0': digit = 0; break;
-+              case '1': digit = 1; break;
-+              case '2': digit = 2; break;
-+              case '3': digit = 3; break;
-+              case '4': digit = 4; break;
-+              case '5': digit = 5; break;
-+              case '6': digit = 6; break;
-+              case '7': digit = 7; break;
-+              case '8': digit = 8; break;
-+              case '9': digit = 9; break;
-+              case 'a': case 'A': digit = 10; break;
-+              case 'b': case 'B': digit = 11; break;
-+              case 'c': case 'C': digit = 12; break;
-+              case 'd': case 'D': digit = 13; break;
-+              case 'e': case 'E': digit = 14; break;
-+              case 'f': case 'F': digit = 15; break;
-+              case ':':
-+                      if (seen_a_digit)
-+                              bytes = (bytes+1) & ~1;
-+                      else
-+                              bytes += 2; /* i.e. ff::ff is ff:00:ff */
-+                      seen_a_digit = 0;
-+                      break;
-+              case 0:
-+                      if (bytes == 0) /* nothing new seen so far */
-+                              return 0;
-+                      /*fall through*/
-+              case ',': case ';':
-+                      if (bytes > 0)
-+                              bytes = 12; /* i.e. all trailing bytes 0 */
-+                      break;
-+              default:
-+                      printk(KERN_ERR MACLIST_NAME ": invalid character <%c[%d]>\n",
-+                                      *param, *param);
-+                      return -EINVAL;
-+              }
-+
-+              if (digit >= 0) {
-+                      id[bytes>>1] = (id[bytes>>1] << 4) + digit; break;
-+                      ++bytes;
-+                      seen_a_digit = 1;
-+              }
-+
-+              if (bytes >= 12) {
-+                      int rc = maclist_add(id);
-+                      if (rc)
-+                              return rc;
-+                      bytes = 0;
-+                      seen_a_digit = 0;
-+                      memset(id, 0, sizeof id);
-+                      if (*param == 0)
-+                              return 0;
-+              }
-+              ++param;
-+      } while (1);
-+
-+      return 0;
-+}
-+
-+/*
-+ * procfs support, if compiled in.
-+ */
-+#ifdef CONFIG_PROC_FS
-+/*
-+ * Character device read
-+ */
-+static int maclist_getchar(off_t n) {
-+      static char xdigit[16] = "0123456789abcdef";
-+      maclist_entry_t *head = maclist_list;
-+      int b;
-+
-+      do {
-+              if (head == 0)
-+                      return -1;
-+              if (n < 18)
-+                      break;
-+              head = head->next;
-+              n -= 18;
-+      } while (1);
-+
-+      if (n == 17)
-+              return '\n';
-+
-+      b = n/3;
-+      switch (n - b*3) {
-+      case 0: return xdigit[head->id[b] >> 4];
-+      case 1: return xdigit[head->id[b] & 0xf];
-+      default: return ':';
-+      }
-+}
-+
-+/*
-+ * The extensively undocumented proc_read_t callback is implemented here.
-+ * Go look in fs/proc/generic.c:
-+ *
-+ * Prototype:
-+ *    int f(char *buffer, char **start, off_t offset,
-+ *          int count, int *peof, void *dat)
-+ *
-+ * Assume that the buffer is "count" bytes in size.
-+ *
-+ * 2) Set *start = an address within the buffer.
-+ *    Put the data of the requested offset at *start.
-+ *    Return the number of bytes of data placed there.
-+ *    If this number is greater than zero and you
-+ *    didn't signal eof and the reader is prepared to
-+ *    take more data you will be called again with the
-+ *    requested offset advanced by the number of bytes
-+ *    absorbed.
-+ */
-+static int maclist_proc_read(char *buffer, char **start, off_t offset,
-+              int count, int *peof, void *dat) {
-+      int total;
-+
-+      *start = buffer;
-+      total = 0;
-+
-+      while (total < count) {
-+              int ch = maclist_getchar(offset++);
-+              if (ch == -1) {
-+                      *peof = 1;
-+                      break;
-+              }
-+              *buffer++ = ch;
-+              ++total;
-+      }
-+
-+      return total;
-+}
-+#endif
-+
-+/*
-+ * Finally, the init/exit functions.
-+ */
-+static void __exit maclist_exit(void)
-+{
-+      maclist_entry_t *list;
-+
-+      remove_proc_entry(MACLIST_NAME, proc_net);
-+
-+      list = maclist_list;
-+      maclist_list = 0;
-+
-+      while (list != 0) {
-+              maclist_entry_t *head = list;
-+              list = head->next;
-+              kfree(head);
-+      }
-+}
-+
-+#ifdef MODULE
-+static char ids[256];
-+module_param_string(ids, ids, sizeof ids, 0);
-+MODULE_PARM_DESC(ids, "comma separated list of MAC ids\n");
-+#else
-+__setup("maclist_ids=", maclist_setup);
-+#endif
-+
-+static int __init maclist_init(void)
-+{
-+#     ifdef MODULE
-+              if (ids[0])
-+                      maclist_setup(ids);
-+#     endif
-+
-+      /* Ignore failure, the module will still work. */
-+      (void)create_proc_read_entry(MACLIST_NAME, S_IRUGO, proc_net, maclist_proc_read, NULL);
-+
-+      return 0;
-+}
-+
-+module_init(maclist_init);
-+module_exit(maclist_exit);
---- linux-2.6.15/drivers/net/Makefile  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/drivers/net/Makefile  1970-01-01 00:00:00.000000000 +0000
-@@ -70,6 +70,7 @@ obj-$(CONFIG_RIONET) += rionet.o
- # end link order section
- #
-+obj-$(CONFIG_MACLIST) += maclist.o
- obj-$(CONFIG_MII) += mii.o
- obj-$(CONFIG_PHYLIB) += phy/
---- linux-2.6.15/drivers/net/Kconfig   1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/drivers/net/Kconfig   1970-01-01 00:00:00.000000000 +0000
-@@ -166,6 +166,21 @@ config NET_ETHERNET
-         kernel: saying N will just cause the configurator to skip all
-         the questions about Ethernet network cards. If unsure, say N.
-+config MACLIST
-+      tristate "Ethernet MAC repository"
-+      depends on NET_ETHERNET
-+      help
-+        Some ethernet controllers have no built-in way of obtaining an
-+        appropriate Ethernet MAC address.  Such controllers have to be
-+        initialised in a board-specific way, depending on how the allocated
-+        MAC is stored.  The MAC repository provides a set of APIs and a
-+        proc entry (/proc/net/maclist) to store MAC values from the board
-+        so that such drivers can obtain a MAC address without board-specific
-+        code.  You do not need to enable this device - it will be selected
-+        automatically by any device which requires it.  It is only useful
-+        to enable it manually when building a device driver independently
-+        of the kernel build.
-+
- config MII
-       tristate "Generic Media Independent Interface device support"
-       depends on NET_ETHERNET
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6/92-nslu2-maclist.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6/92-nslu2-maclist.patch
deleted file mode 100644 (file)
index c8b8a9b..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
---- linux-2.6.15/arch/arm/mach-ixp4xx/Kconfig  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/arch/arm/mach-ixp4xx/Kconfig  1970-01-01 00:00:00.000000000 +0000
-@@ -11,8 +11,8 @@ comment "IXP4xx Platforms"
- # This entry is placed on top because otherwise it would have
- # been shown as a submenu.
- config MACH_NSLU2
--      bool
--      prompt "NSLU2" if !(MACH_IXDP465 || MACH_IXDPG425 || ARCH_IXDP425 || ARCH_ADI_COYOTE || ARCH_AVILA || ARCH_IXCDP1100 || ARCH_PRPMC1100 || MACH_GTWX5715)
-+      bool "NSLU2"
-+      select MACLIST
-       help
-         Say 'Y' here if you want your kernel to support Linksys's
-         NSLU2 NAS device. For more information on this platform,
---- linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-setup.c    1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.15/arch/arm/mach-ixp4xx/nslu2-setup.c    1970-01-01 00:00:00.000000000 +0000
-@@ -16,11 +16,14 @@
- #include <linux/kernel.h>
- #include <linux/serial.h>
- #include <linux/serial_8250.h>
-+#include <linux/mtd/mtd.h>
- #include <asm/mach-types.h>
- #include <asm/mach/arch.h>
- #include <asm/mach/flash.h>
-+#include <net/maclist.h>
-+
- static struct flash_platform_data nslu2_flash_data = {
-       .map_name               = "cfi_probe",
-       .width                  = 2,
-@@ -112,6 +115,37 @@ static void nslu2_power_off(void)
-       gpio_line_set(NSLU2_PO_GPIO, IXP4XX_GPIO_HIGH);
- }
-+/*
-+ * When the RedBoot partition is added the MAC address is read from
-+ * it.
-+ */
-+void flash_add(struct mtd_info *mtd) {
-+      if (strcmp(mtd->name, "RedBoot") == 0) {
-+              size_t retlen;
-+              u_char mac[6];
-+
-+              /* The MAC is at a known offset... */
-+              if (mtd->read(mtd, 0x3FFB0, 6, &retlen, mac) == 0 && retlen == 6) {
-+                      printk(KERN_INFO "NSLU2 MAC: %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n",
-+                              mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
-+                      maclist_add(mac);
-+              } else {
-+                      printk(KERN_ERR "NSLU2 MAC: read failed\n");
-+              }
-+      }
-+}
-+
-+/*
-+ * Nothing to do on remove at present.
-+ */
-+void flash_remove(struct mtd_info *mtd) {
-+}
-+
-+struct mtd_notifier flash_notifier = {
-+      .add = flash_add,
-+      .remove = flash_remove,
-+};
-+
- static void __init nslu2_init(void)
- {
-       /* The NSLU2 has a 33MHz crystal on board - 1.01% different
-@@ -119,6 +153,11 @@ static void __init nslu2_init(void)
-        */
-       ixp4xx_set_board_tick_rate(66000000);
-+      /* The flash has an ethernet MAC embedded in it which we need,
-+       * that is all this notifier does.
-+       */
-+      register_mtd_user(&flash_notifier);
-+
-       ixp4xx_sys_init();
-       pm_power_off = nslu2_power_off;
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6/compile-switches.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6/compile-switches.patch
deleted file mode 100644 (file)
index 4b7a688..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
---- linux-2.6.11/arch/arm/Makefile.orig        2005-03-20 15:02:07.587138712 -0800
-+++ linux-2.6.11/arch/arm/Makefile     2005-03-20 15:10:36.546765088 -0800
-@@ -33,6 +33,12 @@
- AFLAGS                += -mlittle-endian
- endif
-+ifeq ($(CONFIG_ARM_THUMB_INTERWORK),y)
-+CFLAGS                += -mthumb-interwork
-+else
-+CFLAGS                += -mno-thumb-interwork
-+endif
-+
- comma = ,
- # This selects which instruction set is used.
-@@ -43,6 +49,8 @@
- arch-$(CONFIG_CPU_32v5)               :=-D__LINUX_ARM_ARCH__=5 $(call cc-option,-march=armv5te,-march=armv4)
- arch-$(CONFIG_CPU_32v4)               :=-D__LINUX_ARM_ARCH__=4 -march=armv4
- arch-$(CONFIG_CPU_32v3)               :=-D__LINUX_ARM_ARCH__=3 -march=armv3
-+# The following overrides the CPU_32v5 setting if specified
-+arch-$(CONFIG_ARCH_XSCALE)    :=-D__LINUX_ARM_ARCH__=5 $(call cc-option,-march=xscale,-march=armv5te)
- # This selects how we optimise for the processor.
- tune-$(CONFIG_CPU_ARM610)     :=-mtune=arm610
---- linux-2.6.11/arch/arm/mm/Kconfig.orig      2005-03-20 14:54:07.927058128 -0800
-+++ linux-2.6.11/arch/arm/mm/Kconfig   2005-03-20 15:01:26.727350344 -0800
-@@ -366,6 +366,31 @@
-         If you don't know what this all is, saying Y is a safe choice.
-+config ARM_THUMB_INTERWORK
-+      bool "Support Thumb code within the kernel"
-+      depends on CPU_ARM720T || CPU_ARM920T || CPU_ARM922T || CPU_ARM925T || CPU_ARM926T || CPU_ARM1020 || CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || CPU_XSCALE || CPU_V6
-+      default n
-+      help
-+        Say Y to compile the whole kernel with support for the interworking
-+        of the 16 bit thumb instruction set and 32 bit ARM instruction set.
-+
-+        You only need this if some parts of the kernel will be compiled
-+        as thumb code, this is not usual.  It increases the total kernel
-+        size by about 3%.
-+
-+config ARCH_XSCALE
-+      bool "Use -march=xscale in preference to -march=armv5te"
-+      depends on CPU_XSCALE
-+      default y
-+      help
-+        Say yes to ask gcc to use the xscale architecture (instruction set)
-+        in preference to armv5te.  This allows gcc to use the extra xscale
-+        instructions but means the code will not run on a standard (non-xscale)
-+        armv5te.  At present this makes no difference - gcc 3.4.3 does not
-+        generate any xscale specific instructions - however gcc 3.4.3 does
-+        generate slightly more optimal instructions if this is specified (this
-+        is an error inside gcc 3.4.3 which should be fixed in 4.1.)
-+
- config CPU_BIG_ENDIAN
-       bool "Build big-endian kernel"
-       depends on ARCH_SUPPORTS_BIG_ENDIAN
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6/ixp4xx-regs.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6/ixp4xx-regs.patch
deleted file mode 100644 (file)
index 32f7e3c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- linux-2.6.11/.pc/2.6.patch/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h       2005-03-01 23:37:49.000000000 -0800
-+++ linux-2.6.11/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h     2005-06-17 17:51:32.569981939 -0700
-@@ -52,7 +52,7 @@
-  * Expansion BUS Configuration registers
-  */
- #define IXP4XX_EXP_CFG_BASE_PHYS      (0xC4000000)
--#define IXP4XX_EXP_CFG_BASE_VIRT      (0xFFBFD000)
-+#define IXP4XX_EXP_CFG_BASE_VIRT      (0xFFBFE000)
- #define IXP4XX_EXP_CFG_REGION_SIZE    (0x00001000)
- /*
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6/nslu2-io_rpbutton.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6/nslu2-io_rpbutton.patch
deleted file mode 100644 (file)
index b5ce101..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
---- nslu2-io.c.old     2da1d3f5c0aa0804c5769588337077ddcb35c5e9
-+++ linux-2.6.12.2/arch/arm/mach-ixp4xx/nslu2-io.c     e895da638b4aae16a11fafe52ae0b063645a9a12
-@@ -158,6 +158,8 @@
- #define LED_DISK2     3
- #define LED_ALL               4
-+static int nslu2_shutdown_in_progress = 0;
-+
- static unsigned long init_jiffy = 0;                  //jiffies at init time
- static unsigned long rb_presses = 0;                  //number of reset button presses
- static unsigned long ontime = 50;
-@@ -503,40 +505,20 @@
- static irqreturn_t n2pb_handler (int irq, void *dev_id, struct pt_regs *regs)
- {
-       void *ret;
--      
--      wake_up(&n2pb_waitq);   
--      remove_proc_entry(PWR_OFF_STR, NULL);           //no parent     
--      n2_buzz(N2_BEEP_PITCH_MED, N2_BEEP_DUR_MED);
--      ret = create_proc_entry(PWR_OFF_STR, 0, NULL);
--      nslu2_io_debug((KERN_DEBUG "cpe ret = %p\n", ret));
--
--// WARNING: This is RUDE...it unconditionally pulls the power plug.
--// Your data will be at risk...since this is just a test system
--// I am leaving it enabled...eventually userland needs to get the
--// message, do an orderly shutdown and use an ioctl or something in
--// /proc/powerdowm to actually have us pull the plug.
--
--      machine_power_off();
--
-+      if (!nslu2_shutdown_in_progress++) {                    
-+              wake_up(&n2pb_waitq);   
-+              remove_proc_entry(PWR_OFF_STR, NULL);           //no parent     
-+              n2_buzz(N2_BEEP_PITCH_HIGH, N2_BEEP_DUR_SHORT); // Short, high-pitched "OK"
-+              ret = create_proc_entry(PWR_OFF_STR, 0, NULL);
-+              nslu2_io_debug((KERN_DEBUG "Powerbutton pressed. Shutting down. cpe ret = %p\n", ret));
-+              kill_proc(1,SIGINT,1);                          // Signal init to shut down
-+      } else {
-+              n2_buzz(N2_BEEP_PITCH_LOW, N2_BEEP_DUR_MED);    // Make a scary noise!
-+              nslu2_io_debug((KERN_DEBUG "Powerbutton pressed while already in shutdown")); // Whine!
-+      }                                
-       return IRQ_HANDLED;
- }
--//==================================================================================================
--//
--//static void do_rb_timeout(unsigned long data)
--//{
--//    int i;
--//
--//    for (i = 0; i < rb_presses; i++)
--//            n2_buzz(N2_BEEP_PITCH_MED,N2_BEEP_DUR_SHORT);
--//    return;
--//}
--//
--//==================================================================================================
--// does nothing -- waiting for userland to define
--// This thing is sorta braindead...edge triggered IRQs aren't available in the drivers yet...so
--// we hang in a loop until the button is no longer pressed
--
- struct testr {
-       int     ctl;
-       long    param;
-@@ -544,72 +526,11 @@
- static irqreturn_t n2rb_handler (int irq, void *dev_id, struct pt_regs *regs)
- {
-+//    This doesn't reset the NSLU2. It powers it off. Close enough, since reset is unreliable
--      static struct testr test[] = {
--                               { N2LM_ALL_OFF,0 },
--                               { N2LM_ON,0 },
--                               { N2LM_OFF,0 },
--                               { N2LM_ON,1 },
--                               { N2LM_ALL_OFF,1 },
--                               { N2LM_ON,2 },
--                               { N2LM_OFF,2 },
--                               { N2LM_ON,3 },
--                               { N2LM_OFF,3 },
--                               { N2LM_BLINK,0 },
--                               { N2LM_OFF,0 },
--                               { N2LM_BLINK,1 },
--                               { N2LM_OFF,1 },
--                               { N2LM_BLINK,2 },
--                               { N2LM_OFF,2 },
--                               { N2LM_BLINK,3 },
--                               { N2LM_OFF,3 },
--                               { N2LM_ALL_OFF,0 },
--                               { N2LM_ALT,1 },
--                               { N2LM_OFF,1 },
--                               { N2LM_ALL_ON,0 }
--      };
--
--      nslu2_io_debug(("Reset Entry IRQ =%d Presses = %d Jiffies = %08lx\tIO = %x\tIOW = %x\n", irq, rb_presses, jiffies, (int)_IO('M',rb_presses), (int)_IOW('M',rb_presses,long)));
--
-       wake_up(&n2rb_waitq);   
--      while ((*IXP4XX_GPIO_GPINR & GPIO_RB_BM) == 0)
--              ;                                       //wait for button release
--
--      if (rb_presses > 20) 
--              rb_presses = 0;
--      tone = (rb_presses * 50) + 200;
--      ontime = (rb_presses*10) + 100;
--      offtime = 500 - (rb_presses*20);
--      nslu2_io_debug(("Ontime = %d\tOfftime = %d\tTone = %d\n",ontime,offtime,tone));
--      rb_presses++;
--
--      n2bz_ioctl(NULL,NULL, N2BZ_BEEPS, rb_presses);  
--      n2lm_ioctl(NULL,NULL, test[rb_presses].ctl, test[rb_presses].param);
--//    if (rb_presses == 0) {
--//            init_jiffy = jiffies;
--//            init_timer (&n2rb_timer);
--//            n2rb_timer.function = do_rb_timeout;
--//    };
--//
--//    if (rb_presses == 8)
--//            rb_presses = 0;
--//    if (rb_presses & 1)
--//            n2lm_ledon(test[rb_presses]);
--//    else
--//            n2lm_ledoff(test[rb_presses]);
--//    
--//    n2rb_timer.expires = (jiffies + RB_DELAY);
--//    add_timer (&n2rb_timer);
--//    if (rb_presses < 5) {
--//            if (rb_presses > 0)
--//                    n2lm_ledoff(rb_presses);
--//            n2lm_ledon(++rb_presses);
--//            n2lm_timer_start(rb_presses);
--//    };
--
--      nslu2_io_debug((KERN_DEBUG "Reset Exit IRQ=%d Presses= %d Jiffies= %08lx\n", irq, rb_presses, jiffies));
--      return IRQ_HANDLED;
--
-+      machine_power_off();
-+      return IRQ_HANDLED;             // So we don't get a nobody cared error :-P
- }
- //==================================================================================================
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6/thumb-swi.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6/thumb-swi.patch
deleted file mode 100644 (file)
index 2e73bb1..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-# This patch changes the thumb swi handling for any thumb swi with
-# an immediate value != 0, those swis are mapped into the arm
-# specific swis.  This implements a thumb breakpoint swi.
---- linux-2.6.12.2/arch/arm/kernel/entry-common.S.orig 2005-09-19 12:48:42.323365573 -0700
-+++ linux-2.6.12.2/arch/arm/kernel/entry-common.S      2005-09-19 13:31:19.004247358 -0700
-@@ -137,8 +137,11 @@
-        */
- #ifdef CONFIG_ARM_THUMB
-       tst     r8, #PSR_T_BIT                  @ this is SPSR from save_user_regs
--      addne   scno, r7, #__NR_SYSCALL_BASE    @ put OS number in
--      ldreq   scno, [lr, #-4]
-+      ldrneh  ip, [lr, #-2]                   @ thumb swi instruction
-+      ldreq   scno, [lr, #-4]                 @ arm swi instruction
-+      addne   scno, r7, #__NR_SYSCALL_BASE    @ put OS number in to thumb r7 value
-+      bicnes  ip, ip, #0xff00                 @ clear thumb swi bits
-+      addne   scno, ip, #__ARM_NR_BASE        @ thumb swi0->r7, swi!0->arm swi
- #else
-       ldr     scno, [lr, #-4]                 @ get SWI instruction
- #endif
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6/timer.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6/timer.patch
deleted file mode 100644 (file)
index 6279746..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-# Fix for the NSLU2 timer problem (tickadj 10101.01 when it should be 10000)
-# Also contains a fix for the more generate problem on the ixp4xx in that the
-# Intel spec says to use a 33.33MHz crystal, not 33.333333Mhz
-
---- linux-2.6.12.2/include/asm-arm/arch-ixp4xx/timex.h.orig    2005-08-05 11:02:09.872690723 -0700
-+++ linux-2.6.12.2/include/asm-arm/arch-ixp4xx/timex.h 2005-08-05 11:45:08.786971567 -0700
-@@ -7,7 +7,14 @@
- /*
-  * We use IXP425 General purpose timer for our timer needs, it runs at 
-- * 66.66... MHz
-+ * 66.66 MHz (exactly) by the Intel specification.
-  */
--#define CLOCK_TICK_RATE (66666666)
--
-+#if 0
-+#define CLOCK_TICK_RATE (66660000)
-+#else
-+/*
-+ * Unfortunately the NSLU2 has a 33MHz crystal, so the rate is not the
-+ * specified one.
-+ */
-+#define CLOCK_TICK_RATE (66000000)
-+#endif
diff --git a/packages/obsolete/nslu2/nslu2-kernel/2.6/x1205-rtc.patch b/packages/obsolete/nslu2/nslu2-kernel/2.6/x1205-rtc.patch
deleted file mode 100644 (file)
index 913f44e..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
---- linux-2.6.11/.pc/2.6.patch/drivers/i2c/chips/Kconfig       2005-06-17 17:51:28.635578329 -0700
-+++ linux-2.6.11/drivers/i2c/chips/Kconfig     2005-06-17 17:51:32.565982545 -0700
-@@ -430,6 +430,15 @@
-         
-         This driver can also be built as a module.  If so, the module
-         will be called isp1301_omap.
-+config SENSORS_X1205
-+       tristate "Xicor X1205 RTC chip"
-+       depends on I2C && EXPERIMENTAL
-+       select I2C_SENSOR
-+       help
-+         If you say yes here you get support for the Xicor x1205 RTC chip.
-+ 
-+         This driver can also be built as a module.  If so, the module
-+         will be called x1205-rtc
- config SENSORS_M41T00
-       tristate "ST M41T00 RTC chip"
---- linux-2.6.11/.pc/2.6.patch/drivers/i2c/chips/Makefile      2005-06-17 17:51:28.636578177 -0700
-+++ linux-2.6.11/drivers/i2c/chips/Makefile    2005-06-17 17:51:32.566982394 -0700
-@@ -41,6 +41,7 @@
- obj-$(CONFIG_SENSORS_VIA686A) += via686a.o
- obj-$(CONFIG_SENSORS_W83L785TS)       += w83l785ts.o
- obj-$(CONFIG_ISP1301_OMAP)    += isp1301_omap.o
-+obj-$(CONFIG_SENSORS_X1205)     += x1205-rtc.o
- ifeq ($(CONFIG_I2C_DEBUG_CHIP),y)
- EXTRA_CFLAGS += -DDEBUG
---- linux-2.6.11/.pc/2.6.patch/include/linux/i2c-id.h  2005-06-17 17:51:31.358165630 -0700
-+++ linux-2.6.11/include/linux/i2c-id.h        2005-06-17 17:51:32.569981939 -0700
-@@ -108,6 +108,7 @@
- #define I2C_DRIVERID_TDA7313  62      /* TDA7313 audio processor      */
- #define I2C_DRIVERID_MAX6900  63      /* MAX6900 real-time clock      */
- #define I2C_DRIVERID_SAA7114H 64      /* video decoder                */
-+#define I2C_DRIVERID_X1205    0xF0
- #define I2C_DRIVERID_EXP0     0xF0    /* experimental use id's        */
diff --git a/packages/obsolete/nslu2/nslu2-kernel/files/anonymiser.patch b/packages/obsolete/nslu2/nslu2-kernel/files/anonymiser.patch
deleted file mode 100644 (file)
index 3384b15..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---- linux-2.6.11.2/scripts/mkcompile_h.orig    2005-05-07 05:27:02.440000000 +0000
-+++ linux-2.6.11.2/scripts/mkcompile_h 2005-05-07 05:28:30.360000000 +0000
-@@ -43,16 +43,9 @@
-   echo \#define UTS_VERSION \"`echo $UTS_VERSION | $UTS_TRUNCATE`\"
-   echo \#define LINUX_COMPILE_TIME \"`LC_ALL=C LANG=C date +%T`\"
--  echo \#define LINUX_COMPILE_BY \"`whoami`\"
--  echo \#define LINUX_COMPILE_HOST \"`hostname | $UTS_TRUNCATE`\"
--
--  if [ -x /bin/dnsdomainname ]; then
--    echo \#define LINUX_COMPILE_DOMAIN \"`dnsdomainname | $UTS_TRUNCATE`\"
--  elif [ -x /bin/domainname ]; then
--    echo \#define LINUX_COMPILE_DOMAIN \"`domainname | $UTS_TRUNCATE`\"
--  else
--    echo \#define LINUX_COMPILE_DOMAIN
--  fi
-+  echo \#define LINUX_COMPILE_BY \"openslug\"
-+  echo \#define LINUX_COMPILE_HOST \"openslug.org\"
-+  echo \#define LINUX_COMPILE_DOMAIN \"openslug.org\"
-   echo \#define LINUX_COMPILER \"`$CC -v 2>&1 | tail -n 1`\"
- ) > .tmpcompile
diff --git a/packages/obsolete/nslu2/nslu2-kernel_2.6.14-mm1.bb b/packages/obsolete/nslu2/nslu2-kernel_2.6.14-mm1.bb
deleted file mode 100644 (file)
index dff6b0e..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# Kernel for NSLU2
-#
-# Increment PR_CONFIG for changes to the nslu2-kernel specific
-# defconfig (do *NOT* increment anything in here for changes
-# to other kernel configs!)
-PR_CONFIG = "0"
-#
-# Increment the number below (i.e. the digits after PR) when
-# making changes within this file or for changes to the patches
-# applied to the kernel.
-PR = "r1.${PR_CONFIG}"
-
-require nslu2-kernel.inc
-
-# N2K_PATCHES - full list of patches to apply
-N2K_PATCHES = "\
-       file://00-memory-h-page-shift.patch;patch=1 \
-       file://90-ixp4xx-pci-le.patch;patch=1 \
-       file://18-ixp4xx-io-h-addr.patch;patch=1 \
-       file://19-jffs2-force-be.patch;patch=1 \
-       file://20-timer.patch;patch=1 \
-       file://29-ipv4-route-c-spinlock.patch;patch=1 \
-       file://30-i2c-x1205-mm1.patch;patch=1 \
-       file://50-nslu2-arch.patch;patch=1 \
-       file://55-nslu2-rtc.patch;patch=1 \
-       file://60-nslu2-beeper.patch;patch=1 \
-       file://70-nslu2-io.patch;patch=1 \
-       file://75-nslu2-leds.patch;patch=1 \
-       file://80-nslu2-class-device-create.patch;patch=1 \
-       file://90-pegasus.patch;patch=1 \
-       file://anonymiser.patch;patch=1 \
-"
-
-# These options get added to the kernel command line, only put things
-# specific to the bootstrap of *this* kernel in here - DISTRO specfic
-# config must be in CMDLINE_ROOT (see the full definition of CMDLINE
-# in nslu2-kernel.inc)
-CMDLINE_KERNEL_OPTIONS = "x1205.hctosys=1"
diff --git a/packages/obsolete/nslu2/nslu2-kernel_2.6.14.5.bb b/packages/obsolete/nslu2/nslu2-kernel_2.6.14.5.bb
deleted file mode 100644 (file)
index b7790be..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-# Kernel for NSLU2
-#
-# Increment PR_CONFIG for changes to the nslu2-kernel specific
-# defconfig (do *NOT* increment anything in here for changes
-# to other kernel configs!)
-PR_CONFIG = "0"
-#
-# Increment the number below (i.e. the digits after PR) when
-# making changes within this file or for changes to the patches
-# applied to the kernel.
-PR = "r0.${PR_CONFIG}"
-
-require nslu2-kernel.inc
-
-# N2K_PATCHES - full list of patches to apply
-N2K_PATCHES = "\
-       file://90-ixp4xx-pci-le.patch;patch=1 \
-       file://10-ixp4xx-copy-from.patch;patch=1 \
-       file://10-ixp4xx-le.patch;patch=1 \
-       file://10-mtdpart-redboot-fis-byteswap.patch;patch=1 \
-       file://15-ixp4xx-writesb-l-w.patch;patch=1 \
-       file://18-ixp4xx-io-h-addr.patch;patch=1 \
-       file://19-jffs2-force-be.patch;patch=1 \
-       file://29-ipv4-route-c-spinlock.patch;patch=1 \
-       file://30-i2c-x1205.patch;patch=1 \
-       file://50-nslu2-arch.patch;patch=1 \
-       file://55-nslu2-rtc.patch;patch=1 \
-       file://60-nslu2-beeper.patch;patch=1 \
-       file://70-nslu2-io.patch;patch=1 \
-       file://75-nslu2-leds.patch;patch=1 \
-       file://90-pegasus.patch;patch=1 \
-       file://20-timer.patch;patch=1 \
-       file://91-maclist.patch;patch=1 \
-       file://92-nslu2-maclist.patch;patch=1 \
-       file://anonymiser.patch;patch=1 \
-"
-
-# These options get added to the kernel command line, only put things
-# specific to the bootstrap of *this* kernel in here - DISTRO specfic
-# config must be in CMDLINE_ROOT (see the full definition of CMDLINE
-# in nslu2-kernel.inc)
-CMDLINE_KERNEL_OPTIONS = "x1205.hctosys=1"
diff --git a/packages/obsolete/nslu2/nslu2-kernel_2.6.15.bb b/packages/obsolete/nslu2/nslu2-kernel_2.6.15.bb
deleted file mode 100644 (file)
index 68b2b56..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-# Kernel for NSLU2
-#
-# Increment PR_CONFIG for changes to the nslu2-kernel specific
-# defconfig (do *NOT* increment anything in here for changes
-# to other kernel configs!)
-PR_CONFIG = "0"
-#
-# Increment the number below (i.e. the digits after PR) when
-# making changes within this file or for changes to the patches
-# applied to the kernel.
-PR = "r3.${PR_CONFIG}"
-
-require nslu2-kernel.inc
-
-# N2K_PATCHES - full list of patches to apply
-N2K_PATCHES = "\
-       file://00-memory-h-page-shift.patch;patch=1 \
-       file://10-mtdpart-redboot-fis-byteswap.patch;patch=1 \
-       file://15-jffs2-endian-config.patch;patch=1 \
-       file://40-rtc-class.patch;patch=1 \
-       file://40-scsi-idle.patch;patch=1 \
-       file://60-nslu2-beeper.patch;patch=1 \
-       file://75-nslu2-leds.patch;patch=1 \
-       file://80-nslu2-io.patch;patch=1 \
-       file://85-timer.patch;patch=1 \
-       file://91-maclist.patch;patch=1 \
-       file://92-nslu2-maclist.patch;patch=1 \
-       file://anonymiser.patch;patch=1 \
-"
-
-# These options get added to the kernel command line, only put things
-# specific to the bootstrap of *this* kernel in here - DISTRO specfic
-# config must be in CMDLINE_ROOT (see the full definition of CMDLINE
-# in nslu2-kernel.inc)
-CMDLINE_KERNEL_OPTIONS = "rtc-x1205.hctosys=1 rtc-x1205.probe=0,0x6f"
diff --git a/packages/openmoko-apps/.mtn2git_empty b/packages/openmoko-apps/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/openmoko-apps/openmoko-appmanager_svn.bb b/packages/openmoko-apps/openmoko-appmanager_svn.bb
new file mode 100644 (file)
index 0000000..d7a708b
--- /dev/null
@@ -0,0 +1,7 @@
+DESCRIPTION = "The OpenMoko Application Manager"
+SECTION = "openmoko/applications"
+DEPENDS += "ipkg"
+PV = "0.0.1+svn${SRCDATE}"
+
+inherit openmoko
+
diff --git a/packages/openmoko-apps/openmoko-dialer_svn.bb b/packages/openmoko-apps/openmoko-dialer_svn.bb
new file mode 100644 (file)
index 0000000..ef1c386
--- /dev/null
@@ -0,0 +1,8 @@
+DESCRIPTION = "The OpenMoko Dialer"
+SECTION = "openmoko/applications"
+PV = "0.0.1+svn${SRCDATE}"
+
+DEPENDS += "libgsmd"
+
+inherit openmoko
+
diff --git a/packages/openmoko-apps/openmoko-footer_svn.bb b/packages/openmoko-apps/openmoko-footer_svn.bb
new file mode 100644 (file)
index 0000000..fed6f99
--- /dev/null
@@ -0,0 +1,6 @@
+DESCRIPTION = "The OpenMoko Footer"
+SECTION = "openmoko/applications"
+PV = "0.0.1+svn${SRCDATE}"
+
+inherit openmoko
+
diff --git a/packages/openmoko-apps/openmoko-mainmenu_svn.bb b/packages/openmoko-apps/openmoko-mainmenu_svn.bb
new file mode 100644 (file)
index 0000000..d819e60
--- /dev/null
@@ -0,0 +1,9 @@
+DESCRIPTION = "The OpenMoko Main Menu"
+SECTION = "openmoko/applications"
+PV = "0.0.1+svn${SRCDATE}"
+
+inherit openmoko
+
+do_compile_prepend() {
+       sed -i -e 's:$(AM_LDFLAGS):$(AM_LDFLAGS)\ -lmb:' src/Makefile
+}
diff --git a/packages/openmoko-apps/openmoko-simplemediaplayer_svn.bb b/packages/openmoko-apps/openmoko-simplemediaplayer_svn.bb
new file mode 100644 (file)
index 0000000..0d14565
--- /dev/null
@@ -0,0 +1,19 @@
+DESCRIPTION = "The OpenMoko Media Player"
+SECTION = "openmoko/applications"
+DEPENDS += "alsa-lib dbus-glib id3lib libvorbis"
+PV = "0.0.1+svn${SRCDATE}"
+PR = "r1"
+
+inherit openmoko
+
+PARALLEL_MAKE =""
+
+do_install_prepend() {
+       touch mkinstalldirs
+}
+
+
+FILES_${PN} += " \
+                ${datadir}/images \
+               ${libdir}/bmp/*/*.so \
+              "
diff --git a/packages/openmoko-apps/openmoko-taskmanager_svn.bb b/packages/openmoko-apps/openmoko-taskmanager_svn.bb
new file mode 100644 (file)
index 0000000..5f313f1
--- /dev/null
@@ -0,0 +1,6 @@
+DESCRIPTION = "The OpenMoko Task Manager"
+SECTION = "openmoko/applications"
+PV = "0.0.1+svn${SRCDATE}"
+
+inherit openmoko
+
diff --git a/packages/openmoko-base/.mtn2git_empty b/packages/openmoko-base/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/openmoko-base/files/.mtn2git_empty b/packages/openmoko-base/files/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/openmoko-base/files/session b/packages/openmoko-base/files/session
new file mode 100644 (file)
index 0000000..e6aeaa6
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+SHOWCURSOR="no"
+
+rxvt &
+sleep 2
+
+matchbox-desktop --icon-size 100 \
+                 --icon-padding 60 \
+                 --font sans-16 \
+                 --titlefont sans-20:bold \
+                 --bg img-tiled:/usr/share/themes/openmoko-standard/gtk-2.0/mokopanedwindow-upper-enclosing.png &
+#                 --bg col-gradient-vertical:#000000,#aaaaaa &
+matchbox-panel --orientation north -b /usr/share/openmoko/pixmaps/openmoko-header-background.png &
+matchbox-panel --orientation south -b /usr/share/openmoko/pixmaps/openmoko-footer-background.png -ns -nm --id 2 &
+exec matchbox-window-manager -use_titlebar no -use_cursor $SHOWCURSOR $@
+
diff --git a/packages/openmoko-base/openmoko-common_svn.bb b/packages/openmoko-base/openmoko-common_svn.bb
new file mode 100644 (file)
index 0000000..15cc97d
--- /dev/null
@@ -0,0 +1,21 @@
+DESCRIPTION = "Common files for the OpenMoko distribution"
+SECTION = "openmoko/base"
+PV = "0.0+svn${SRCDATE}"
+PR = "r1"
+
+inherit openmoko-base
+
+SRC_URI = "${OPENMOKO_MIRROR}/src/target/${OPENMOKO_RELEASE}/artwork;module=images;proto=https"
+S = "${WORKDIR}"
+
+dirs = "images/pixmaps"
+
+do_install() {
+       find ${WORKDIR} -name ".svn" | xargs rm -rf
+       install -d ${D}${datadir}/openmoko/
+       for i in ${dirs}; do
+               cp -fpPR ${S}/$i ${D}${datadir}/openmoko/
+       done
+}
+
+FILES_${PN} = "${datadir}"
diff --git a/packages/openmoko-base/openmoko-libs_svn.bb b/packages/openmoko-base/openmoko-libs_svn.bb
new file mode 100644 (file)
index 0000000..3ac1843
--- /dev/null
@@ -0,0 +1,19 @@
+DESCRIPTION = "openmoko-libs is a set of libraries implementing a Gtk+ based application framework for mobile communication applications"
+SECTION = "openmoko/libs"
+LICENSE = "LGPL"
+DEPENDS += "gtk+"
+PV = "0.0.1+svn${SRCDATE}"
+PR = "r1"
+
+inherit openmoko
+
+do_configure_prepend() {
+       touch libmokocore/Makefile.in
+       touch libmokopim/Makefile.in
+       touch libmokonet/Makefile.in
+}
+
+do_stage() {
+       autotools_stage_all
+}
+
diff --git a/packages/openmoko-base/openmoko-session_svn.bb b/packages/openmoko-base/openmoko-session_svn.bb
new file mode 100644 (file)
index 0000000..6cf588d
--- /dev/null
@@ -0,0 +1,29 @@
+DESCRIPTION = "Matchbox session files for OpenMoko"
+SECTION = "openmoko/base"
+RDEPENDS = "matchbox matchbox-applet-startup-monitor gtk-theme-clearlooks"
+PV = "0.0+svn${SRCDATE}"
+PR = "r1"
+
+inherit openmoko-base
+
+SRC_URI = "${OPENMOKO_MIRROR}/src/target/${OPENMOKO_RELEASE};module=etc;proto=https \
+           file://session"
+S = "${WORKDIR}"
+
+do_install() {
+       cp -R ${S}/etc ${D}/etc
+       rm -fR ${D}/etc/.svn
+       rm -fR ${D}/etc/matchbox/.svn
+       chmod -R 755 ${D}/etc
+        # DEMO only!
+       install -m 0755 ${WORKDIR}/session ${D}/etc/matchbox/session
+}
+
+pkg_postinst_openmoko-session () {
+#!/bin/sh -e
+if [ "x$D" != "x" ]; then
+    exit 1
+fi
+
+gconftool-2 --config-source=xml::$D${sysconfdir}/gconf/gconf.xml.defaults --direct --type string --set /desktop/openmoko/interface/theme Clearlooks
+}
diff --git a/packages/openmoko-base/openmoko-theme-standard_svn.bb b/packages/openmoko-base/openmoko-theme-standard_svn.bb
new file mode 100644 (file)
index 0000000..d8a9ba5
--- /dev/null
@@ -0,0 +1,24 @@
+DESCRIPTION = "Standard Gtk+ theme for the OpenMoko distribution"
+SECTION = "openmoko/base"
+PV = "0.0+svn${SRCDATE}"
+PR = "r3"
+
+inherit openmoko-base
+
+SRC_URI = "${OPENMOKO_MIRROR}/src/target/${OPENMOKO_RELEASE}/artwork;module=themes;proto=https"
+S = "${WORKDIR}"
+
+dirs = "themes/openmoko-standard"
+
+do_install() {
+       find ${WORKDIR} -name ".svn" | xargs rm -rf
+       install -d ${D}${datadir}/themes/
+       for i in ${dirs}; do
+               cp -fpPR ${WORKDIR}/$i ${D}${datadir}/themes/
+       done
+       
+       install -d ${D}${sysconfdir}/gtk-2.0
+       echo 'include "${datadir}/themes/openmoko-standard/gtk-2.0/gtkrc"' >> ${D}${sysconfdir}/gtk-2.0/gtkrc
+}
+
+FILES_${PN} = "${datadir} ${sysconfdir}"
diff --git a/packages/openmoko-examples/.mtn2git_empty b/packages/openmoko-examples/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/openmoko-examples/openmoko-finger-demo_svn.bb b/packages/openmoko-examples/openmoko-finger-demo_svn.bb
new file mode 100644 (file)
index 0000000..e54f8c0
--- /dev/null
@@ -0,0 +1,6 @@
+DESCRIPTION = "An example finger application for OpenMoko"
+SECTION = "openmoko/examples"
+PV = "0.0.1+svn${SRCDATE}"
+
+inherit openmoko
+
diff --git a/packages/openmoko-examples/openmoko-panel-demo-simple_svn.bb b/packages/openmoko-examples/openmoko-panel-demo-simple_svn.bb
new file mode 100644 (file)
index 0000000..40d0f1a
--- /dev/null
@@ -0,0 +1,11 @@
+DESCRIPTION = "A simple example panel plugin for OpenMoko"
+SECTION = "openmoko/examples"
+DEPENDS += "libmatchbox"
+PV = "0.0.1+svn${SRCDATE}"
+
+inherit openmoko
+
+do_configure_prepend() {
+       sed -i -e s:-Werror::g src/Makefile.am
+}      
+
diff --git a/packages/openmoko-examples/openmoko-panel-demo_svn.bb b/packages/openmoko-examples/openmoko-panel-demo_svn.bb
new file mode 100644 (file)
index 0000000..ea40dd6
--- /dev/null
@@ -0,0 +1,7 @@
+DESCRIPTION = "An example panel plugin for OpenMoko"
+SECTION = "openmoko/examples"
+DEPENDS += "libmatchbox"
+PV = "0.0.1+svn${SRCDATE}"
+
+inherit openmoko
+
diff --git a/packages/openmoko-examples/openmoko-stylus-demo-simple_svn.bb b/packages/openmoko-examples/openmoko-stylus-demo-simple_svn.bb
new file mode 100644 (file)
index 0000000..1ba2f95
--- /dev/null
@@ -0,0 +1,6 @@
+DESCRIPTION = "A simple stylus application example for OpenMoko"
+SECTION = "openmoko/examples"
+PV = "0.0.1+svn${SRCDATE}"
+
+inherit openmoko
+
diff --git a/packages/openmoko-examples/openmoko-stylus-demo_svn.bb b/packages/openmoko-examples/openmoko-stylus-demo_svn.bb
new file mode 100644 (file)
index 0000000..a0ec472
--- /dev/null
@@ -0,0 +1,6 @@
+DESCRIPTION = "An example stylus application for OpenMoko"
+SECTION = "openmoko/examples"
+PV = "0.0.1+svn${SRCDATE}"
+
+inherit openmoko
+
diff --git a/packages/openmoko-panel-plugins/.mtn2git_empty b/packages/openmoko-panel-plugins/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/openmoko-panel-plugins/openmoko-panel-battery_svn.bb b/packages/openmoko-panel-plugins/openmoko-panel-battery_svn.bb
new file mode 100644 (file)
index 0000000..4606512
--- /dev/null
@@ -0,0 +1,5 @@
+DESCRIPTION = "Shows the battery/AC status in the OpenMoko panel"
+PV = "0.0.1+svn${SRCDATE}"
+
+inherit openmoko-panel-plugin
+
diff --git a/packages/openmoko-panel-plugins/openmoko-panel-clock_svn.bb b/packages/openmoko-panel-plugins/openmoko-panel-clock_svn.bb
new file mode 100644 (file)
index 0000000..389a6f2
--- /dev/null
@@ -0,0 +1,5 @@
+DESCRIPTION = "Shows the current time in the OpenMoko panel"
+PV = "0.0.1+svn${SRCDATE}"
+
+inherit openmoko-panel-plugin
+
diff --git a/packages/openmoko-pim/.mtn2git_empty b/packages/openmoko-pim/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/openmoko-pim/openmoko-contacts/.mtn2git_empty b/packages/openmoko-pim/openmoko-contacts/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/openmoko-pim/openmoko-contacts/index.theme b/packages/openmoko-pim/openmoko-contacts/index.theme
new file mode 100644 (file)
index 0000000..4e9cf67
--- /dev/null
@@ -0,0 +1,654 @@
+[Icon Theme]
+Name=Hicolor
+Comment=Fallback icon theme
+Hidden=true
+Directories=192x192/apps,128x128/actions,128x128/apps,128x128/devices,128x128/filesystems,128x128/mimetypes,96x96/actions,96x96/apps,96x96/devices,96x96/filesystems,96x96/mimetypes,72x72/apps,64x64/actions,64x64/apps,64x64/devices,64x64/filesystems,64x64/mimetypes,48x48/actions,48x48/apps,48x48/devices,48x48/filesystems,48x48/mimetypes,36x36/apps,32x32/actions,32x32/apps,32x32/devices,32x32/filesystems,32x32/mimetypes,22x22/actions,22x22/apps,22x22/devices,22x22/filesystems,22x22/mimetypes,16x16/actions,16x16/apps,16x16/devices,16x16/filesystems,16x16/mimetypes,scalable/actions,scalable/apps,scalable/devices,scalable/filesystems,scalable/mimetypes,16x16/stock/chart,16x16/stock/code,16x16/stock/data,16x16/stock/document,16x16/stock/form,16x16/stock/generic,16x16/stock/image,16x16/stock/io,16x16/stock/media,16x16/stock/navigation,16x16/stock/net,16x16/stock/object,16x16/stock/table,16x16/stock/text,24x24/actions,24x24/apps,24x24/devices,24x24/filesystems,24x24/mimetypes,24x24/stock/chart,24x24/stock/code,24x24/stock/data,24x24/stock/document,24x24/stock/form,24x24/stock/generic,24x24/stock/image,24x24/stock/io,24x24/stock/media,24x24/stock/navigation,24x24/stock/net,24x24/stock/object,24x24/stock/table,24x24/stock/text,32x32/stock/chart,32x32/stock/code,32x32/stock/data,32x32/stock/document,32x32/stock/form,32x32/stock/generic,32x32/stock/image,32x32/stock/io,32x32/stock/media,32x32/stock/navigation,32x32/stock/net,32x32/stock/object,32x32/stock/table,32x32/stock/text,36x36/stock/chart,36x36/stock/code,36x36/stock/data,36x36/stock/document,36x36/stock/form,36x36/stock/generic,36x36/stock/image,36x36/stock/io,36x36/stock/media,36x36/stock/navigation,36x36/stock/net,36x36/stock/object,36x36/stock/table,36x36/stock/text,48x48/stock/chart,48x48/stock/code,48x48/stock/data,48x48/stock/document,48x48/stock/form,48x48/stock/generic,48x48/stock/image,48x48/stock/io,48x48/stock/media,48x48/stock/navigation,48x48/stock/net,48x48/stock/object,48x48/stock/table,48x48/stock/text,scalable/emblems,192x192/emblems,96x96/emblems,72x72/emblems,48x48/emblems,36x36/emblems,24x24/emblems,16x16/emblems,12x12/emblems
+
+[16x16/actions]
+Size=16
+Context=Actions
+Type=Threshold
+
+[16x16/apps]
+Size=16
+Context=Applications
+Type=Threshold
+
+[16x16/devices]
+Size=16
+Context=Devices
+Type=Threshold
+
+[16x16/filesystems]
+Size=16
+Context=FileSystems
+Type=Threshold
+
+[16x16/mimetypes]
+Size=16
+Context=MimeTypes
+Type=Threshold
+
+[22x22/actions]
+Size=22
+Context=Actions
+Type=Threshold
+
+[22x22/apps]
+Size=22
+Context=Applications
+Type=Threshold
+
+[22x22/devices]
+Size=22
+Context=Devices
+Type=Threshold
+
+[22x22/filesystems]
+Size=22
+Context=FileSystems
+Type=Threshold
+
+[22x22/mimetypes]
+Size=22
+Context=MimeTypes
+Type=Threshold
+
+[24x24/actions]
+Size=24
+Context=Actions
+Type=Threshold
+
+[24x24/apps]
+Size=24
+Context=Applications
+Type=Threshold
+
+[24x24/devices]
+Size=24
+Context=Devices
+Type=Threshold
+
+[24x24/filesystems]
+Size=24
+Context=FileSystems
+Type=Threshold
+
+[24x24/mimetypes]
+Size=24
+Context=MimeTypes
+Type=Threshold
+
+[32x32/actions]
+Size=32
+Context=Actions
+Type=Threshold
+
+[32x32/apps]
+Size=32
+Context=Applications
+Type=Threshold
+
+[32x32/devices]
+Size=32
+Context=Devices
+Type=Threshold
+
+[32x32/filesystems]
+Size=32
+Context=FileSystems
+Type=Threshold
+
+[32x32/mimetypes]
+Size=32
+Context=MimeTypes
+Type=Threshold
+
+[36x36/apps]
+Size=36
+Context=Applications
+Type=Threshold
+
+[48x48/actions]
+Size=48
+Context=Actions
+Type=Threshold
+
+[48x48/apps]
+Size=48
+Context=Applications
+Type=Threshold
+
+[48x48/devices]
+Size=48
+Context=Devices
+Type=Threshold
+
+[48x48/filesystems]
+Size=48
+Context=FileSystems
+Type=Threshold
+
+[48x48/mimetypes]
+Size=48
+Context=MimeTypes
+Type=Threshold
+
+[64x64/actions]
+Size=64
+Context=Actions
+Type=Threshold
+
+[64x64/apps]
+Size=64
+Context=Applications
+Type=Threshold
+
+[64x64/devices]
+Size=64
+Context=Devices
+Type=Threshold
+
+[64x64/filesystems]
+Size=64
+Context=FileSystems
+Type=Threshold
+
+[64x64/mimetypes]
+Size=64
+Context=MimeTypes
+Type=Threshold
+
+[72x72/apps]
+Size=72
+Context=Applications
+Type=Threshold
+
+[96x96/actions]
+Size=96
+Context=Actions
+Type=Threshold
+
+[96x96/apps]
+Size=96
+Context=Applications
+Type=Threshold
+
+[96x96/devices]
+Size=96
+Context=Devices
+Type=Threshold
+
+[96x96/filesystems]
+Size=96
+Context=FileSystems
+Type=Threshold
+
+[96x96/mimetypes]
+Size=96
+Context=MimeTypes
+Type=Threshold
+
+[128x128/actions]
+Size=128
+Context=Actions
+Type=Threshold
+
+[128x128/apps]
+Size=128
+Context=Applications
+Type=Threshold
+
+[128x128/devices]
+Size=128
+Context=Devices
+Type=Threshold
+
+[128x128/filesystems]
+Size=128
+Context=FileSystems
+Type=Threshold
+
+[128x128/mimetypes]
+Size=128
+Context=MimeTypes
+Type=Threshold
+
+[192x192/apps]
+Size=192
+Context=Applications
+Type=Threshold
+
+
+[scalable/actions]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Actions
+Type=Scalable
+
+[scalable/apps]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Applications
+Type=Scalable
+
+[scalable/devices]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Devices
+Type=Scalable
+
+[scalable/filesystems]
+MinSize=1
+Size=128
+MaxSize=256
+Context=FileSystems
+Type=Scalable
+
+[scalable/mimetypes]
+MinSize=1
+Size=128
+MaxSize=256
+Context=MimeTypes
+Type=Scalable
+
+[16x16/stock/chart]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/code]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/data]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/document]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/form]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/generic]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/image]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/io]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/media]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/navigation]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/net]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/object]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/table]
+Size=16
+Context=Stock
+Type=Threshold
+
+[16x16/stock/text]
+Size=16
+Context=Stock
+Type=Threshold
+
+[24x24/stock/chart]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/code]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/data]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/document]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/form]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/generic]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/image]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/io]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/media]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/navigation]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/net]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/object]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/table]
+Size=24
+Context=Stock
+Type=Threshold
+
+[24x24/stock/text]
+Size=24
+Context=Stock
+Type=Threshold
+
+[32x32/stock/chart]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/code]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/data]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/document]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/form]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/generic]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/image]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/io]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/media]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/navigation]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/net]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/object]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/table]
+Size=32
+Context=Stock
+Type=Threshold
+
+[32x32/stock/text]
+Size=32
+Context=Stock
+Type=Threshold
+
+[36x36/stock/chart]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/code]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/data]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/document]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/form]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/generic]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/image]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/io]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/media]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/navigation]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/net]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/object]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/table]
+Size=36
+Context=Stock
+Type=Threshold
+
+[36x36/stock/text]
+Size=36
+Context=Stock
+Type=Threshold
+
+[48x48/stock/chart]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/code]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/data]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/document]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/form]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/generic]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/image]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/io]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/media]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/navigation]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/net]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/object]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/table]
+Size=48
+Context=Stock
+Type=Threshold
+
+[48x48/stock/text]
+Size=48
+Context=Stock
+Type=Threshold
+
+[scalable/emblems]
+MinSize=1
+Size=128
+MaxSize=256
+Context=Emblems
+Type=Scalable
+
+[192x192/emblems]
+Size=192
+Context=Emblems
+Type=Threshold
+
+[96x96/emblems]
+Size=96
+Context=Emblems
+Type=Threshold
+
+[72x72/emblems]
+Size=72
+Context=Emblems
+Type=Threshold
+
+[48x48/emblems]
+Size=48
+Context=Emblems
+Type=Threshold
+
+[36x36/emblems]
+Size=36
+Context=Emblems
+Type=Threshold
+
+[24x24/emblems]
+Size=24
+Context=Emblems
+Type=Threshold
+
+[16x16/emblems]
+Size=16
+Context=Emblems
+Type=Threshold
+
+[12x12/emblems]
+Size=12
+Context=Emblems
+Type=Threshold
+
diff --git a/packages/openmoko-pim/openmoko-contacts/intltool-update.in b/packages/openmoko-pim/openmoko-contacts/intltool-update.in
new file mode 100644 (file)
index 0000000..0342a27
--- /dev/null
@@ -0,0 +1,1089 @@
+#!@INTLTOOL_PERL@
+# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4  -*-
+
+#
+#  The Intltool Message Updater
+#
+#  Copyright (C) 2000-2003 Free Software Foundation.
+#
+#  Intltool is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU General Public License 
+#  version 2 published by the Free Software Foundation.
+#
+#  Intltool 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.
+#
+#  As a special exception to the GNU General Public License, if you
+#  distribute this file as part of a program that contains a
+#  configuration script generated by Autoconf, you may include it under
+#  the same distribution terms that you use for the rest of that program.
+#
+#  Authors: Kenneth Christiansen <kenneth@gnu.org>
+#           Maciej Stachowiak
+#           Darin Adler <darin@bentspoon.com>
+
+## Release information
+my $PROGRAM = "intltool-update";
+my $VERSION = "0.35.0";
+my $PACKAGE = "intltool";
+
+## Loaded modules
+use strict;
+use Getopt::Long;
+use Cwd;
+use File::Copy;
+use File::Find;
+
+## Scalars used by the option stuff
+my $HELP_ARG      = 0;
+my $VERSION_ARG    = 0;
+my $DIST_ARG      = 0;
+my $POT_ARG       = 0;
+my $HEADERS_ARG    = 0;
+my $MAINTAIN_ARG   = 0;
+my $REPORT_ARG     = 0;
+my $VERBOSE       = 0;
+my $GETTEXT_PACKAGE = "";
+my $OUTPUT_FILE    = "";
+
+my @languages;
+my %varhash = ();
+my %po_files_by_lang = ();
+
+# Regular expressions to categorize file types.
+# FIXME: Please check if the following is correct
+
+my $xml_support =
+"xml(?:\\.in)*|".      # http://www.w3.org/XML/ (Note: .in is not required)
+"ui|".                 # Bonobo specific - User Interface desc. files
+"lang|".               # ?
+"glade2?(?:\\.in)*|".  # Glade specific - User Interface desc. files (Note: .in is not required)
+"scm(?:\\.in)*|".      # ? (Note: .in is not required)
+"oaf(?:\\.in)+|".      # DEPRECATED: Replaces by Bonobo .server files 
+"etspec|".             # ?
+"server(?:\\.in)+|".   # Bonobo specific
+"sheet(?:\\.in)+|".    # ?
+"schemas(?:\\.in)+|".  # GConf specific
+"pong(?:\\.in)+|".     # DEPRECATED: PONG is not used [by GNOME] any longer.
+"kbd(?:\\.in)+";       # GOK specific. 
+
+my $ini_support =
+"icon(?:\\.in)+|".     # http://www.freedesktop.org/Standards/icon-theme-spec
+"desktop(?:\\.in)+|".  # http://www.freedesktop.org/Standards/menu-spec
+"caves(?:\\.in)+|".    # GNOME Games specific
+"directory(?:\\.in)+|".        # http://www.freedesktop.org/Standards/menu-spec
+"soundlist(?:\\.in)+|".        # GNOME specific
+"keys(?:\\.in)+|".     # GNOME Mime database specific
+"theme(?:\\.in)+|".    # http://www.freedesktop.org/Standards/icon-theme-spec
+"service(?:\\.in)+";    # DBus specific
+
+my $buildin_gettext_support = 
+"c|y|cs|cc|cpp|c\\+\\+|h|hh|gob|py";
+
+## Always flush buffer when printing
+$| = 1;
+
+## Sometimes the source tree will be rooted somewhere else.
+my $SRCDIR = ".";
+my $POTFILES_in;
+
+$SRCDIR = $ENV{"srcdir"} if $ENV{"srcdir"};
+$POTFILES_in = "<$SRCDIR/POTFILES.in";
+
+my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null');
+
+## Handle options
+GetOptions 
+(
+ "help"               => \$HELP_ARG,
+ "version"            => \$VERSION_ARG,
+ "dist|d"             => \$DIST_ARG,
+ "pot|p"              => \$POT_ARG,
+ "headers|s"          => \$HEADERS_ARG,
+ "maintain|m"         => \$MAINTAIN_ARG,
+ "report|r"           => \$REPORT_ARG,
+ "verbose|x"          => \$VERBOSE,
+ "gettext-package|g=s" => \$GETTEXT_PACKAGE,
+ "output-file|o=s"     => \$OUTPUT_FILE,
+ ) or &Console_WriteError_InvalidOption;
+
+&Console_Write_IntltoolHelp if $HELP_ARG;
+&Console_Write_IntltoolVersion if $VERSION_ARG;
+
+my $arg_count = ($DIST_ARG > 0)
+    + ($POT_ARG > 0)
+    + ($HEADERS_ARG > 0)
+    + ($MAINTAIN_ARG > 0)
+    + ($REPORT_ARG > 0);
+
+&Console_Write_IntltoolHelp if $arg_count > 1;
+
+# --version and --help don't require a module name
+my $MODULE = $GETTEXT_PACKAGE || &FindPackageName || "unknown";
+
+if ($POT_ARG)
+{
+    &GenerateHeaders;
+    &GeneratePOTemplate;
+}
+elsif ($HEADERS_ARG)
+{
+    &GenerateHeaders;
+}
+elsif ($MAINTAIN_ARG)
+{
+    &FindLeftoutFiles;
+}
+elsif ($REPORT_ARG)
+{
+    &GenerateHeaders;
+    &GeneratePOTemplate;
+    &Console_Write_CoverageReport;
+}
+elsif ((defined $ARGV[0]) && $ARGV[0] =~ /^[a-z]/)
+{
+    my $lang = $ARGV[0];
+
+    ## Report error if the language file supplied
+    ## to the command line is non-existent
+    &Console_WriteError_NotExisting("$SRCDIR/$lang.po")
+        if ! -s "$SRCDIR/$lang.po";
+
+    if (!$DIST_ARG)
+    {
+       print "Working, please wait..." if $VERBOSE;
+       &GenerateHeaders;
+       &GeneratePOTemplate;
+    }
+    &POFile_Update ($lang, $OUTPUT_FILE);
+    &Console_Write_TranslationStatus ($lang, $OUTPUT_FILE);
+} 
+else 
+{
+    &Console_Write_IntltoolHelp;
+}
+
+exit;
+
+#########
+
+sub Console_Write_IntltoolVersion
+{
+    print <<_EOF_;
+${PROGRAM} (${PACKAGE}) $VERSION
+Written by Kenneth Christiansen, Maciej Stachowiak, and Darin Adler.
+
+Copyright (C) 2000-2003 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+_EOF_
+    exit;
+}
+
+sub Console_Write_IntltoolHelp
+{
+    print <<_EOF_;
+Usage: ${PROGRAM} [OPTION]... LANGCODE
+Updates PO template files and merge them with the translations.
+
+Mode of operation (only one is allowed):
+  -p, --pot                   generate the PO template only
+  -s, --headers               generate the header files in POTFILES.in
+  -m, --maintain              search for left out files from POTFILES.in
+  -r, --report                display a status report for the module
+  -d, --dist                  merge LANGCODE.po with existing PO template
+
+Extra options:
+  -g, --gettext-package=NAME  override PO template name, useful with --pot
+  -o, --output-file=FILE      write merged translation to FILE
+  -x, --verbose               display lots of feedback
+      --help                  display this help and exit
+      --version               output version information and exit
+
+Examples of use:
+${PROGRAM} --pot    just create a new PO template
+${PROGRAM} xy       create new PO template and merge xy.po with it
+
+Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE")
+or send email to <xml-i18n-tools\@gnome.org>.
+_EOF_
+    exit;
+}
+
+sub echo_n
+{
+    my $str = shift;
+    my $ret = `echo "$str"`;
+
+    $ret =~ s/\n$//; # do we need the "s" flag?
+
+    return $ret;
+}
+
+sub POFile_DetermineType ($) 
+{
+   my $type = $_;
+   my $gettext_type;
+
+   my $xml_regex     = "(?:" . $xml_support . ")";
+   my $ini_regex     = "(?:" . $ini_support . ")";
+   my $buildin_regex = "(?:" . $buildin_gettext_support . ")";
+
+   if ($type =~ /\[type: gettext\/([^\]].*)]/) 
+   {
+       $gettext_type=$1;
+   }
+   elsif ($type =~ /schemas(\.in)+$/) 
+   {
+       $gettext_type="schemas";
+   }
+   elsif ($type =~ /glade2?(\.in)*$/) 
+   {
+       $gettext_type="glade";
+   }
+   elsif ($type =~ /scm(\.in)*$/) 
+   {
+       $gettext_type="scheme";
+   }
+   elsif ($type =~ /keys(\.in)+$/) 
+   {
+       $gettext_type="keys";
+   }
+
+   # bucket types
+
+   elsif ($type =~ /$xml_regex$/) 
+   {
+       $gettext_type="xml";
+   }
+   elsif ($type =~ /$ini_regex$/) 
+   { 
+       $gettext_type="ini";
+   }
+   elsif ($type =~ /$buildin_regex$/) 
+   {
+       $gettext_type="buildin";
+   }
+   else
+   { 
+       $gettext_type="unknown"; 
+   }
+
+   return "gettext\/$gettext_type";
+}
+
+sub TextFile_DetermineEncoding ($) 
+{
+    my $gettext_code="ASCII"; # All files are ASCII by default
+    my $filetype=`file $_ | cut -d ' ' -f 2`;
+
+    if ($? eq "0")
+    {
+       if ($filetype =~ /^(ISO|UTF)/)
+       {
+           chomp ($gettext_code = $filetype);
+       }
+       elsif ($filetype =~ /^XML/)
+       {
+           $gettext_code="UTF-8"; # We asume that .glade and other .xml files are UTF-8
+       }
+    }
+
+    return $gettext_code;
+}
+
+sub isNotValidMissing
+{
+    my ($file) = @_;
+
+    return if $file =~ /^\{arch\}\/.*$/;
+    return if $file =~ /^$varhash{"PACKAGE"}-$varhash{"VERSION"}\/.*$/;
+}
+
+sub FindLeftoutFiles
+{
+    my (@buf_i18n_plain,
+       @buf_i18n_xml,
+       @buf_i18n_xml_unmarked,
+       @buf_i18n_ini,
+       @buf_potfiles,
+       @buf_potfiles_ignore,
+       @buf_allfiles,
+       @buf_allfiles_sorted,
+       @buf_potfiles_sorted
+    );
+
+    ## Search and find all translatable files
+    find sub { 
+       push @buf_i18n_plain,        "$File::Find::name" if /\.($buildin_gettext_support)$/;
+       push @buf_i18n_xml,          "$File::Find::name" if /\.($xml_support)$/;
+       push @buf_i18n_ini,          "$File::Find::name" if /\.($ini_support)$/;
+       push @buf_i18n_xml_unmarked, "$File::Find::name" if /\.(schemas(\.in)+)$/;
+       }, "..";
+
+
+    open POTFILES, $POTFILES_in or die "$PROGRAM:  there's no POTFILES.in!\n";
+    @buf_potfiles = grep !/^(#|\s*$)/, <POTFILES>;
+    close POTFILES;
+
+    foreach (@buf_potfiles) {
+       s/^\[.*]\s*//;
+    }
+
+    print "Searching for missing translatable files...\n" if $VERBOSE;
+
+    ## Check if we should ignore some found files, when
+    ## comparing with POTFILES.in
+    foreach my $ignore ("POTFILES.skip", "POTFILES.ignore")
+    {
+       (-s $ignore) or next;
+
+       if ("$ignore" eq "POTFILES.ignore")
+       {
+           print "The usage of POTFILES.ignore is deprecated. Please consider moving the\n".
+                 "content of this file to POTFILES.skip.\n";
+       }
+
+       print "Found $ignore: Ignoring files...\n" if $VERBOSE;
+       open FILE, "<$ignore" or die "ERROR: Failed to open $ignore!\n";
+           
+       while (<FILE>)
+       {
+           push @buf_potfiles_ignore, $_ unless /^(#|\s*$)/;
+       }
+       close FILE;
+
+       @buf_potfiles = (@buf_potfiles_ignore, @buf_potfiles);
+    }
+
+    foreach my $file (@buf_i18n_plain)
+    {
+       my $in_comment = 0;
+       my $in_macro = 0;
+
+       open FILE, "<$file";
+       while (<FILE>)
+       {
+           # Handle continued multi-line comment.
+           if ($in_comment)
+           {
+               next unless s-.*\*/--;
+               $in_comment = 0;
+           }
+
+           # Handle continued macro.
+           if ($in_macro)
+           {
+               $in_macro = 0 unless /\\$/;
+               next;
+           }
+
+           # Handle start of macro (or any preprocessor directive).
+           if (/^\s*\#/)
+           {
+               $in_macro = 1 if /^([^\\]|\\.)*\\$/;
+               next;
+           }
+
+           # Handle comments and quoted text.
+           while (m-(/\*|//|\'|\")-) # \' and \" keep emacs perl mode happy
+           {
+               my $match = $1;
+               if ($match eq "/*")
+               {
+                   if (!s-/\*.*?\*/--)
+                   {
+                       s-/\*.*--;
+                       $in_comment = 1;
+                   }
+               }
+               elsif ($match eq "//")
+               {
+                   s-//.*--;
+               }
+               else # ' or "
+               {
+                   if (!s-$match([^\\]|\\.)*?$match-QUOTEDTEXT-)
+                   {
+                       warn "mismatched quotes at line $. in $file\n";
+                       s-$match.*--;
+                   }
+               }
+           }       
+
+           if (/\.GetString ?\(QUOTEDTEXT/)
+           {
+                if (defined isNotValidMissing (unpack("x3 A*", $file))) {
+                    ## Remove the first 3 chars and add newline
+                    push @buf_allfiles, unpack("x3 A*", $file) . "\n";
+                }
+               last;
+           }
+
+           if (/_\(QUOTEDTEXT/)
+           {
+                if (defined isNotValidMissing (unpack("x3 A*", $file))) {
+                    ## Remove the first 3 chars and add newline
+                    push @buf_allfiles, unpack("x3 A*", $file) . "\n";
+                }
+               last;
+           }
+       }
+       close FILE;
+    }
+
+    foreach my $file (@buf_i18n_xml) 
+    {
+       open FILE, "<$file";
+       
+       while (<FILE>) 
+       {
+           # FIXME: share the pattern matching code with intltool-extract
+           if (/\s_[-A-Za-z0-9._:]+\s*=\s*\"([^"]+)\"/ || /<_[^>]+>/ || /translatable=\"yes\"/)
+           {
+                if (defined isNotValidMissing (unpack("x3 A*", $file))) {
+                    push @buf_allfiles, unpack("x3 A*", $file) . "\n";
+                }
+               last;
+           }
+       }
+       close FILE;
+    }
+
+    foreach my $file (@buf_i18n_ini)
+    {
+       open FILE, "<$file";
+       while (<FILE>) 
+       {
+           if (/_(.*)=/)
+           {
+                if (defined isNotValidMissing (unpack("x3 A*", $file))) {
+                    push @buf_allfiles, unpack("x3 A*", $file) . "\n";
+                }
+               last;
+           }
+       }
+       close FILE;
+    }
+
+    foreach my $file (@buf_i18n_xml_unmarked)
+    {
+        if (defined isNotValidMissing (unpack("x3 A*", $file))) {
+            push @buf_allfiles, unpack("x3 A*", $file) . "\n";
+        }
+    }
+
+
+    @buf_allfiles_sorted = sort (@buf_allfiles);
+    @buf_potfiles_sorted = sort (@buf_potfiles);
+
+    my %in2;
+    foreach (@buf_potfiles_sorted) 
+    {
+       $in2{$_} = 1;
+    }
+
+    my @result;
+
+    foreach (@buf_allfiles_sorted)
+    {
+       if (!exists($in2{$_}))
+       {
+           push @result, $_
+       }
+    }
+
+    my @buf_potfiles_notexist;
+
+    foreach (@buf_potfiles_sorted)
+    {
+       chomp (my $dummy = $_);
+       if ("$dummy" ne "" and ! -f "../$dummy")
+       {
+           push @buf_potfiles_notexist, $_;
+       }
+    }
+
+    ## Save file with information about the files missing
+    ## if any, and give information about this procedure.
+    if (@result + @buf_potfiles_notexist > 0)
+    {
+       if (@result) 
+       {
+           print "\n" if $VERBOSE;
+           unlink "missing";
+           open OUT, ">missing";
+           print OUT @result;
+           close OUT;
+           warn "\e[1mThe following files contain translations and are currently not in use. Please\e[0m\n".
+                "\e[1mconsider adding these to the POTFILES.in file, located in the po/ directory.\e[0m\n\n";
+           print STDERR @result, "\n";
+           warn "If some of these files are left out on purpose then please add them to\n".
+                "POTFILES.skip instead of POTFILES.in. A file \e[1m'missing'\e[0m containing this list\n".
+                "of left out files has been written in the current directory.\n";
+       }
+       if (@buf_potfiles_notexist)
+       {
+           unlink "notexist";
+           open OUT, ">notexist";
+           print OUT @buf_potfiles_notexist;
+           close OUT;
+           warn "\n" if ($VERBOSE or @result);
+           warn "\e[1mThe following files do not exist anymore:\e[0m\n\n";
+           warn @buf_potfiles_notexist, "\n";
+           warn "Please remove them from POTFILES.in or POTFILES.skip. A file \e[1m'notexist'\e[0m\n".
+                "containing this list of absent files has been written in the current directory.\n";
+       }
+    }
+
+    ## If there is nothing to complain about, notify the user
+    else {
+       print "\nAll files containing translations are present in POTFILES.in.\n" if $VERBOSE;
+    }
+}
+
+sub Console_WriteError_InvalidOption
+{
+    ## Handle invalid arguments
+    print STDERR "Try `${PROGRAM} --help' for more information.\n";
+    exit 1;
+}
+
+sub GenerateHeaders
+{
+    my $EXTRACT = "@INTLTOOL_EXTRACT@";
+    chomp $EXTRACT;
+
+    $EXTRACT = $ENV{"INTLTOOL_EXTRACT"} if $ENV{"INTLTOOL_EXTRACT"};
+
+    ## Generate the .h header files, so we can allow glade and
+    ## xml translation support
+    if (! -x "$EXTRACT")
+    {
+       print STDERR "\n *** The intltool-extract script wasn't found!"
+            ."\n *** Without it, intltool-update can not generate files.\n";
+       exit;
+    }
+    else
+    {
+       open (FILE, $POTFILES_in) or die "$PROGRAM: POTFILES.in not found.\n";
+       
+       while (<FILE>) 
+       {
+          chomp;
+          next if /^\[\s*encoding/;
+
+          ## Find xml files in POTFILES.in and generate the
+          ## files with help from the extract script
+
+          my $gettext_type= &POFile_DetermineType ($1);
+
+          if (/\.($xml_support|$ini_support)$/ || /^\[/)
+          {
+              s/^\[[^\[].*]\s*//;
+
+              my $filename = "../$_";
+
+              if ($VERBOSE)
+              {
+                  system ($EXTRACT, "--update", "--srcdir=$SRCDIR",
+                          "--type=$gettext_type", $filename);
+              } 
+              else 
+              {
+                  system ($EXTRACT, "--update", "--type=$gettext_type", 
+                          "--srcdir=$SRCDIR", "--quiet", $filename);
+              }
+          }
+       }
+       close FILE;
+   }
+}
+
+#
+# Generate .pot file from POTFILES.in
+#
+sub GeneratePOTemplate
+{
+    my $XGETTEXT = $ENV{"XGETTEXT"} || "@INTLTOOL_XGETTEXT@";
+    my $XGETTEXT_ARGS = $ENV{"XGETTEXT_ARGS"} || '';
+    chomp $XGETTEXT;
+
+    if (! -x $XGETTEXT)
+    {
+       print STDERR " *** xgettext is not found on this system!\n".
+                    " *** Without it, intltool-update can not extract strings.\n";
+       exit;
+    }
+
+    print "Building $MODULE.pot...\n" if $VERBOSE;
+
+    open INFILE, $POTFILES_in;
+    unlink "POTFILES.in.temp";
+    open OUTFILE, ">POTFILES.in.temp" or die("Cannot open POTFILES.in.temp for writing");
+
+    my $gettext_support_nonascii = 0;
+
+    # checks for GNU gettext >= 0.12
+    my $dummy = `$XGETTEXT --version --from-code=UTF-8 >$devnull 2>$devnull`;
+    if ($? == 0)
+    {
+       $gettext_support_nonascii = 1;
+    }
+    else
+    {
+       # urge everybody to upgrade gettext
+       print STDERR "WARNING: This version of gettext does not support extracting non-ASCII\n".
+                    "         strings. That means you should install a version of gettext\n".
+                    "         that supports non-ASCII strings (such as GNU gettext >= 0.12),\n".
+                    "         or have to let non-ASCII strings untranslated. (If there is any)\n";
+    }
+
+    my $encoding = "ASCII";
+    my $forced_gettext_code;
+    my @temp_headers;
+    my $encoding_problem_is_reported = 0;
+
+    while (<INFILE>) 
+    {
+       next if (/^#/ or /^\s*$/);
+
+       chomp;
+
+       my $gettext_code;
+
+       if (/^\[\s*encoding:\s*(.*)\s*\]/)
+       {
+           $forced_gettext_code=$1;
+       }
+       elsif (/\.($xml_support|$ini_support)$/ || /^\[/)
+       {
+           s/^\[.*]\s*//;
+            print OUTFILE "../$_.h\n";
+           push @temp_headers, "../$_.h";
+           $gettext_code = &TextFile_DetermineEncoding ("../$_.h") if ($gettext_support_nonascii and not defined $forced_gettext_code);
+       } 
+       else 
+       {
+           if ($SRCDIR eq ".") {
+               print OUTFILE "../$_\n";
+           } else {
+               print OUTFILE "$SRCDIR/../$_\n";
+           }
+           $gettext_code = &TextFile_DetermineEncoding ("../$_") if ($gettext_support_nonascii and not defined $forced_gettext_code);
+       }
+
+       next if (! $gettext_support_nonascii);
+
+       if (defined $forced_gettext_code)
+       {
+           $encoding=$forced_gettext_code;
+       }
+       elsif (defined $gettext_code and "$encoding" ne "$gettext_code")
+       {
+           if ($encoding eq "ASCII")
+           {
+               $encoding=$gettext_code;
+           }
+           elsif ($gettext_code ne "ASCII")
+           {
+               # Only report once because the message is quite long
+               if (! $encoding_problem_is_reported)
+               {
+                   print STDERR "WARNING: You should use the same file encoding for all your project files,\n".
+                                "         but $PROGRAM thinks that most of the source files are in\n".
+                                "         $encoding encoding, while \"$_\" is (likely) in\n".
+                                "         $gettext_code encoding. If you are sure that all translatable strings\n".
+                                "         are in same encoding (say UTF-8), please \e[1m*prepend*\e[0m the following\n".
+                                "         line to POTFILES.in:\n\n".
+                                "                 [encoding: UTF-8]\n\n".
+                                "         and make sure that configure.in/ac checks for $PACKAGE >= 0.27 .\n".
+                                "(such warning message will only be reported once.)\n";
+                   $encoding_problem_is_reported = 1;
+               }
+           }
+       }
+    }
+
+    close OUTFILE;
+    close INFILE;
+
+    unlink "$MODULE.pot";
+    my @xgettext_argument=("$XGETTEXT",
+                          "--add-comments",
+                          "--directory\=\.",
+                          "--output\=$MODULE\.pot",
+                          "--files-from\=\.\/POTFILES\.in\.temp");
+    my $XGETTEXT_KEYWORDS = &FindPOTKeywords;
+    push @xgettext_argument, $XGETTEXT_KEYWORDS;
+    my $MSGID_BUGS_ADDRESS = &FindMakevarsBugAddress;
+    push @xgettext_argument, "--msgid-bugs-address\=$MSGID_BUGS_ADDRESS" if $MSGID_BUGS_ADDRESS;
+    push @xgettext_argument, "--from-code\=$encoding" if ($gettext_support_nonascii);
+    push @xgettext_argument, $XGETTEXT_ARGS if $XGETTEXT_ARGS;
+    my $xgettext_command = join ' ', @xgettext_argument;
+
+    # intercept xgettext error message
+    print "Running $xgettext_command\n" if $VERBOSE;
+    my $xgettext_error_msg = `$xgettext_command 2>\&1`;
+    my $command_failed = $?;
+
+    unlink "POTFILES.in.temp";
+
+    print "Removing generated header (.h) files..." if $VERBOSE;
+    unlink foreach (@temp_headers);
+    print "done.\n" if $VERBOSE;
+
+    if (! $command_failed)
+    {
+       if (! -e "$MODULE.pot")
+       {
+           print "None of the files in POTFILES.in contain strings marked for translation.\n" if $VERBOSE;
+       }
+       else
+       {
+           print "Wrote $MODULE.pot\n" if $VERBOSE;
+       }
+    }
+    else
+    {
+       if ($xgettext_error_msg =~ /--from-code/)
+       {
+           # replace non-ASCII error message with a more useful one.
+           print STDERR "ERROR: xgettext failed to generate PO template file because there is non-ASCII\n".
+                        "       string marked for translation. Please make sure that all strings marked\n".
+                        "       for translation are in uniform encoding (say UTF-8), then \e[1m*prepend*\e[0m the\n".
+                        "       following line to POTFILES.in and rerun $PROGRAM:\n\n".
+                        "           [encoding: UTF-8]\n\n";
+       }
+       else
+       {
+           print STDERR "$xgettext_error_msg";
+           if (-e "$MODULE.pot")
+           {
+               # is this possible?
+               print STDERR "ERROR: xgettext failed but still managed to generate PO template file.\n".
+                            "       Please consult error message above if there is any.\n";
+           }
+           else
+           {
+               print STDERR "ERROR: xgettext failed to generate PO template file. Please consult\n".
+                            "       error message above if there is any.\n";
+           }
+       }
+       exit (1);
+    }
+}
+
+sub POFile_Update
+{
+    -f "$MODULE.pot" or die "$PROGRAM: $MODULE.pot does not exist.\n";
+
+    my $MSGMERGE = $ENV{"MSGMERGE"} || "@INTLTOOL_MSGMERGE@";
+    my ($lang, $outfile) = @_;
+
+    print "Merging $SRCDIR/$lang.po with $MODULE.pot..." if $VERBOSE;
+
+    my $infile = "$SRCDIR/$lang.po";
+    $outfile = "$SRCDIR/$lang.po" if ($outfile eq "");
+
+    # I think msgmerge won't overwrite old file if merge is not successful
+    system ("$MSGMERGE", "-o", $outfile, $infile, "$MODULE.pot");
+}
+
+sub Console_WriteError_NotExisting
+{
+    my ($file) = @_;
+
+    ## Report error if supplied language file is non-existing
+    print STDERR "$PROGRAM: $file does not exist!\n";
+    print STDERR "Try '$PROGRAM --help' for more information.\n";
+    exit;
+}
+
+sub GatherPOFiles
+{
+    my @po_files = glob ("./*.po");
+
+    @languages = map (&POFile_GetLanguage, @po_files);
+
+    foreach my $lang (@languages) 
+    {
+       $po_files_by_lang{$lang} = shift (@po_files);
+    }
+}
+
+sub POFile_GetLanguage ($)
+{
+    s/^(.*\/)?(.+)\.po$/$2/;
+    return $_;
+}
+
+sub Console_Write_TranslationStatus
+{
+    my ($lang, $output_file) = @_;
+    my $MSGFMT = $ENV{"MSGFMT"} || "@INTLTOOL_MSGFMT@";
+
+    $output_file = "$SRCDIR/$lang.po" if ($output_file eq "");
+
+    system ("$MSGFMT", "-o", "$devnull", "--verbose", $output_file);
+}
+
+sub Console_Write_CoverageReport
+{
+    my $MSGFMT = $ENV{"MSGFMT"} || "@INTLTOOL_MSGFMT@";
+
+    &GatherPOFiles;
+
+    foreach my $lang (@languages) 
+    {
+       print "$lang: ";
+       &POFile_Update ($lang, "");
+    }
+
+    print "\n\n * Current translation support in $MODULE \n\n";
+
+    foreach my $lang (@languages)
+    {
+       print "$lang: ";
+       system ("$MSGFMT", "-o", "$devnull", "--verbose", "$SRCDIR/$lang.po");
+    }
+}
+
+sub SubstituteVariable
+{
+    my ($str) = @_;
+    
+    # always need to rewind file whenever it has been accessed
+    seek (CONF, 0, 0);
+
+    # cache each variable. varhash is global to we can add
+    # variables elsewhere.
+    while (<CONF>)
+    {
+       if (/^(\w+)=(.*)$/)
+       {
+           ($varhash{$1} = $2) =~  s/^["'](.*)["']$/$1/;
+       }
+    }
+    
+    if ($str =~ /^(.*)\${?([A-Z_]+)}?(.*)$/)
+    {
+       my $rest = $3;
+       my $untouched = $1;
+       my $sub = "";
+        # Ignore recursive definitions of variables
+        $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\${?$2}?/;
+
+       return SubstituteVariable ("$untouched$sub$rest");
+    }
+    
+    # We're using Perl backticks ` and "echo -n" here in order to 
+    # expand any shell escapes (such as backticks themselves) in every variable
+    return echo_n ($str);
+}
+
+sub CONF_Handle_Open
+{
+    my $base_dirname = getcwd();
+    $base_dirname =~ s@.*/@@;
+
+    my ($conf_in, $src_dir);
+
+    if ($base_dirname =~ /^po(-.+)?$/) 
+    {
+       if (-f "Makevars") 
+       {
+           my $makefile_source;
+
+           local (*IN);
+           open (IN, "<Makevars") || die "can't open Makevars: $!";
+
+           while (<IN>) 
+           {
+               if (/^top_builddir[ \t]*=/) 
+               {
+                   $src_dir = $_;
+                   $src_dir =~ s/^top_builddir[ \t]*=[ \t]*([^ \t\n\r]*)/$1/;
+
+                   chomp $src_dir;
+                    if (-f "$src_dir" . "/configure.ac") {
+                        $conf_in = "$src_dir" . "/configure.ac" . "\n";
+                    } else {
+                        $conf_in = "$src_dir" . "/configure.in" . "\n";
+                    }
+                   last;
+               }
+           }
+           close IN;
+
+           $conf_in || die "Cannot find top_builddir in Makevars.";
+       }
+       elsif (-f "../configure.ac") 
+       {
+           $conf_in = "../configure.ac";
+       } 
+       elsif (-f "../configure.in") 
+       {
+           $conf_in = "../configure.in";
+       } 
+       else 
+       {
+           my $makefile_source;
+
+           local (*IN);
+           open (IN, "<Makefile") || return;
+
+           while (<IN>) 
+           {
+               if (/^top_srcdir[ \t]*=/) 
+               {
+                   $src_dir = $_;                  
+                   $src_dir =~ s/^top_srcdir[ \t]*=[ \t]*([^ \t\n\r]*)/$1/;
+
+                   chomp $src_dir;
+                   $conf_in = "$src_dir" . "/configure.in" . "\n";
+
+                   last;
+               }
+           }
+           close IN;
+
+           $conf_in || die "Cannot find top_srcdir in Makefile.";
+       }
+
+       open (CONF, "<$conf_in");
+    }
+    else
+    {
+       print STDERR "$PROGRAM: Unable to proceed.\n" .
+                    "Make sure to run this script inside the po directory.\n";
+       exit;
+    }
+}
+
+sub FindPackageName
+{
+    my $version;
+    my $domain = &FindMakevarsDomain;
+    my $name = $domain || "untitled";
+
+    &CONF_Handle_Open;
+
+    my $conf_source; {
+       local (*IN);
+       open (IN, "<&CONF") || return $name;
+       seek (IN, 0, 0);
+       local $/; # slurp mode
+       $conf_source = <IN>;
+       close IN;
+    }
+
+    # priority for getting package name:
+    # 1. GETTEXT_PACKAGE
+    # 2. first argument of AC_INIT (with >= 2 arguments)
+    # 3. first argument of AM_INIT_AUTOMAKE (with >= 2 argument)
+
+    # /^AM_INIT_AUTOMAKE\([\s\[]*([^,\)\s\]]+)/m 
+    # the \s makes this not work, why?
+    if ($conf_source =~ /^AM_INIT_AUTOMAKE\(([^,\)]+),([^,\)]+)/m)
+    {
+       ($name, $version) = ($1, $2);
+       $name    =~ s/[\[\]\s]//g;
+       $version =~ s/[\[\]\s]//g;
+       $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/);
+       $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/);
+       $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/);
+       $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/);
+    }
+    
+    if ($conf_source =~ /^AC_INIT\(([^,\)]+),([^,\)]+)/m) 
+    {
+       ($name, $version) = ($1, $2);
+       $name    =~ s/[\[\]\s]//g;
+       $version =~ s/[\[\]\s]//g;
+       $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/);
+       $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/);
+       $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/);
+       $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/);
+    }
+
+    # \s makes this not work, why?
+    $name = $1 if $conf_source =~ /^GETTEXT_PACKAGE=\[?([^\n\]]+)/m;
+    
+    # m4 macros AC_PACKAGE_NAME, AC_PACKAGE_VERSION etc. have same value
+    # as corresponding $PACKAGE_NAME, $PACKAGE_VERSION etc. shell variables.
+    $name =~ s/\bAC_PACKAGE_/\$PACKAGE_/g;
+
+    $name = $domain if $domain;
+
+    $name = SubstituteVariable ($name);
+    $name =~ s/^["'](.*)["']$/$1/;
+
+    return $name if $name;
+}
+
+
+sub FindPOTKeywords
+{
+
+    my $keywords = "--keyword\=\_ --keyword\=N\_ --keyword\=U\_ --keyword\=Q\_";
+    my $varname = "XGETTEXT_OPTIONS";
+    my $make_source; {
+       local (*IN);
+       open (IN, "<Makevars") || (open(IN, "<Makefile.in.in") && ($varname = "XGETTEXT_KEYWORDS")) || return $keywords;
+       seek (IN, 0, 0);
+       local $/; # slurp mode
+       $make_source = <IN>;
+       close IN;
+    }
+
+    $keywords = $1 if $make_source =~ /^$varname[ ]*=\[?([^\n\]]+)/m;
+    
+    return $keywords;
+}
+
+sub FindMakevarsDomain
+{
+
+    my $domain = "";
+    my $makevars_source; { 
+       local (*IN);
+       open (IN, "<Makevars") || return $domain;
+       seek (IN, 0, 0);
+       local $/; # slurp mode
+       $makevars_source = <IN>;
+       close IN;
+    }
+
+    $domain = $1 if $makevars_source =~ /^DOMAIN[ ]*=\[?([^\n\]\$]+)/m;
+    $domain =~ s/^\s+//;
+    $domain =~ s/\s+$//;
+    
+    return $domain;
+}
+
+sub FindMakevarsBugAddress
+{
+
+    my $address = "";
+    my $makevars_source; { 
+       local (*IN);
+       open (IN, "<Makevars") || return undef;
+       seek (IN, 0, 0);
+       local $/; # slurp mode
+       $makevars_source = <IN>;
+       close IN;
+    }
+
+    $address = $1 if $makevars_source =~ /^MSGID_BUGS_ADDRESS[ ]*=\[?([^\n\]\$]+)/m;
+    $address =~ s/^\s+//;
+    $address =~ s/\s+$//;
+    
+    return $address;
+}
diff --git a/packages/openmoko-pim/openmoko-contacts/stock_contact.png b/packages/openmoko-pim/openmoko-contacts/stock_contact.png
new file mode 100644 (file)
index 0000000..123b448
Binary files /dev/null and b/packages/openmoko-pim/openmoko-contacts/stock_contact.png differ
diff --git a/packages/openmoko-pim/openmoko-contacts/stock_person.png b/packages/openmoko-pim/openmoko-contacts/stock_person.png
new file mode 100644 (file)
index 0000000..2b1328b
Binary files /dev/null and b/packages/openmoko-pim/openmoko-contacts/stock_person.png differ
diff --git a/packages/openmoko-pim/openmoko-contacts_svn.bb b/packages/openmoko-pim/openmoko-contacts_svn.bb
new file mode 100644 (file)
index 0000000..af34eea
--- /dev/null
@@ -0,0 +1,31 @@
+DESCRIPTION = "The OpenMoko address book"
+LICENSE = "GPL"
+SECTION = "openmoko/pim"
+DEPENDS += "glib-2.0 gtk+ libglade eds-dbus gnome-vfs openmoko-libs"
+RDEPENDS = "gnome-vfs-plugin-file"
+RRECOMMENDS = "gnome-vfs-plugin-http"
+PV = "0.1+svn${SRCDATE}"
+PR = "r1"
+
+inherit openmoko
+
+SRC_URI += "\
+  file://intltool-update.in \  
+  file://stock_contact.png \
+  file://stock_person.png"
+
+EXTRA_OECONF = "--enable-gnome-vfs"
+
+do_configure_prepend() {
+       install -m 644 ${WORKDIR}/intltool-update.in ${S} 
+}
+
+do_install_append () {
+       install -d ${D}/${datadir}/pixmaps
+       install -m 0644 ${WORKDIR}/stock_contact.png ${D}/${datadir}/pixmaps
+       install -m 0644 ${WORKDIR}/stock_person.png ${D}/${datadir}/pixmaps
+}
+
+FILES_${PN} += "${datadir}/pixmaps/stock_contact.png \
+               ${datadir}/pixmaps/stock_person.png"
+
diff --git a/packages/openmoko-pim/openmoko-dates/.mtn2git_empty b/packages/openmoko-pim/openmoko-dates/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/openmoko-pim/openmoko-dates/compile-fix.patch b/packages/openmoko-pim/openmoko-dates/compile-fix.patch
new file mode 100644 (file)
index 0000000..41b1f17
--- /dev/null
@@ -0,0 +1,12 @@
+Index: omoko/src/dates_navigator.c
+===================================================================
+--- omoko.orig/src/dates_navigator.c   2007-02-06 16:49:45.000000000 +0100
++++ omoko/src/dates_navigator.c        2007-02-06 16:51:18.000000000 +0100
+@@ -18,7 +18,6 @@
+ #include <string.h>
+-#include <libedataserver/e-data-server-util.h>
+ #include <libecal/e-cal.h>
+ #include <libecal/e-cal-time-util.h>
+ #include <libical/ical.h>
diff --git a/packages/openmoko-pim/openmoko-dates_svn.bb b/packages/openmoko-pim/openmoko-dates_svn.bb
new file mode 100644 (file)
index 0000000..1d3baa9
--- /dev/null
@@ -0,0 +1,22 @@
+DESCRIPTION = "Dates is a calendar application."
+SECTION = "openmoko/pim"
+LICENSE = "GPL"
+DEPENDS = "glib-2.0 gtk+ libglade eds-dbus openmoko-libs"
+PV = "0.1+svn${SRCDATE}"
+PR = "r1"
+
+SRC_URI = "svn://svn.o-hand.com/repos/dates/branches/private;module=omoko;proto=https \
+  file://compile-fix.patch;patch=1;maxdate=20070213"
+S = "${WORKDIR}/omoko"
+
+inherit autotools pkgconfig gtk-icon-cache
+
+EXTRA_OECONF = "--enable-omoko"
+
+do_install_append () {
+       install -d ${D}/${datadir}/pixmaps
+       install -m 0644 ${D}/${datadir}/icons/hicolor/48x48/apps/dates.png ${D}/${datadir}/pixmaps/
+}
+
+FILES_${PN} += "${datadir}/pixmaps/dates.png"
+
diff --git a/packages/openmoko-tools/.mtn2git_empty b/packages/openmoko-tools/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/openmoko-tools/openmoko-chordmaster_svn.bb b/packages/openmoko-tools/openmoko-chordmaster_svn.bb
new file mode 100644 (file)
index 0000000..5dd6056
--- /dev/null
@@ -0,0 +1,6 @@
+DESCRIPTION = "A guitar chord database for OpenMoko"
+SECTION = "openmoko/tools"
+PV = "0.0.1+svn${SRCDATE}"
+
+inherit openmoko
+
index ddfab22..c7b6ffe 100644 (file)
@@ -3,11 +3,10 @@ SECTION =  "apps"
 PRIORITY = "optional"
 LICENSE = "GPL"
 PV = "0.0.0+svn${SRCDATE}"
-PR = "r0"
 
 DEPENDS = "ossiecf"
 
-S="${WORKDIR}/ChannelDemo"
+S = "${WORKDIR}/ChannelDemo"
 
 
 SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/components/ChannelDemo/trunk;module=ChannelDemo;proto=https"
index c83ec25..cef94f4 100644 (file)
@@ -3,12 +3,11 @@ SECTION =  "apps"
 PRIORITY = "optional"
 LICENSE = "GPL"
 PV = "0.0.0+svn${SRCDATE}"
-PR = "r0"
 
 DEPENDS = "ossiecf ossie-channeldemo ossie-rxdemo"
 RDEPENDS = "ossie-channeldemo ossie-rxdemo"
 
-S="${WORKDIR}/ossie_demo"
+S = "${WORKDIR}/ossie_demo"
 
 
 SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/waveforms/ossie_demo/trunk;module=ossie_demo;proto=https"
index f2a5636..2409974 100644 (file)
@@ -4,11 +4,10 @@ PRIORITY = "optional"
 MAINTAINER = "Philip Balister philip@balister.org"
 LICENSE = "GPL"
 PV = "0.0.0+svn${SRCDATE}"
-PR = "r0"
 
 DEPENDS = "ossiecf"
 
-S="${WORKDIR}/GPP"
+S = "${WORKDIR}/GPP"
 
 SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/platform/GPP/trunk;module=GPP;proto=https"
 
index 5efca0b..24d641d 100644 (file)
@@ -3,11 +3,10 @@ SECTION =  "apps"
 PRIORITY = "optional"
 LICENSE = "GPL"
 PV = "0.0.0+svn${SRCDATE}"
-PR = "r0"
 
 DEPENDS = "ossiecf ossie-standardinterfaces ossie-sigproc"
 
-S="${WORKDIR}/Interpolator"
+S = "${WORKDIR}/Interpolator"
 
 
 SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/components/Interpolator/trunk;module=Interpolator;proto=https"
index 4090b67..bead988 100644 (file)
@@ -3,11 +3,10 @@ SECTION =  "apps"
 PRIORITY = "optional"
 LICENSE = "GPL"
 PV = "0.0.0+svn${SRCDATE}"
-PR = "r0"
 
 DEPENDS = "ossiecf ossie-standardinterfaces ossie-sigproc"
 
-S="${WORKDIR}/Modulator"
+S = "${WORKDIR}/Modulator"
 
 
 SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/components/Modulator/trunk;module=Modulator;proto=https"
index 0e4a461..f37df3d 100644 (file)
@@ -3,11 +3,10 @@ SECTION =  "apps"
 PRIORITY = "optional"
 LICENSE = "GPL"
 PV = "0.0.0+svn${SRCDATE}"
-PR = "r0"
 
 DEPENDS = "ossiecf"
 
-S="${WORKDIR}/nodebooter"
+S = "${WORKDIR}/nodebooter"
 
 SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/platform/nodebooter/trunk;module=nodebooter;proto=https"
 
index 7e98546..6f91859 100644 (file)
@@ -3,12 +3,10 @@ SECTION =  "apps"
 PRIORITY = "optional"
 LICENSE = "GPL"
 PV = "0.0.0+svn${SRCDATE}"
-PR = "r0"
 
 DEPENDS = "ossiecf ossie-standardinterfaces ossie-sigproc"
 
-S="${WORKDIR}/RandomBits"
-
+S = "${WORKDIR}/RandomBits"
 
 SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/components/RandomBits/trunk;module=RandomBits;proto=https"
 
index 8a0d435..2260cb9 100644 (file)
@@ -3,11 +3,10 @@ SECTION =  "apps"
 PRIORITY = "optional"
 LICENSE = "GPL"
 PV = "0.0.0+svn${SRCDATE}"
-PR = "r0"
 
 DEPENDS = "ossiecf"
 
-S="${WORKDIR}/RxDemo"
+S = "${WORKDIR}/RxDemo"
 
 
 SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/components/RxDemo/trunk;module=RxDemo;proto=https"
index a8fa030..20fe0b6 100644 (file)
@@ -3,11 +3,10 @@ SECTION =  "libs"
 PRIORITY = "optional"
 LICENSE = "LGPL"
 PV = "0.0.0+svn${SRCDATE}"
-PR = "r0"
 
 DEPENDS = "ossiecf"
 
-S="${WORKDIR}/SigProc"
+S = "${WORKDIR}/SigProc"
 
 SRCDATE = "now"
 SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/SigProc/trunk;module=SigProc;proto=https"
index 111a96f..83daa5b 100644 (file)
@@ -4,11 +4,10 @@ PRIORITY = "optional"
 MAINTAINER = "Philip Balister philip@balister.org"
 LICENSE = "GPL"
 PV = "0.0.0+svn${SRCDATE}"
-PR = "r0"
 
 DEPENDS = "alsa-lib ossiecf ossie-standardinterfaces"
 
-S="${WORKDIR}/Sound_out"
+S = "${WORKDIR}/Sound_out"
 
 SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/platform/Sound_out/trunk;module=Sound_out;proto=https"
 
index c00bcd5..44e2f38 100644 (file)
@@ -3,11 +3,10 @@ SECTION =  "libs"
 PRIORITY = "optional"
 LICENSE = "LGPL"
 PV = "0.0.0+svn${SRCDATE}"
-PR = "r0"
 
 DEPENDS = "ossiecf"
 
-S="${WORKDIR}/standardInterfaces"
+S = "${WORKDIR}/standardInterfaces"
 
 SRCDATE = "now"
 SRC_URI = "svn://ossie-dev.mprg.org/repos/ossie/standardInterfaces/trunk;module=standardInterfaces;proto=https"
index 89ffe27..744e505 100644 (file)
@@ -3,12 +3,11 @@ SECTION =  "apps"
 PRIORITY = "optional"
 LICENSE = "GPL"
 PV = "0.0.0+svn${SRCDATE}"
-PR = "r0"
 
 DEPENDS = "ossiecf ossie-randombits ossie-modulator ossie-interpolator ossie-usrp-tx-control ossie-usrp-device ossie-gpp-device"
 RDEPENDS = "ossie-randombits ossie-modulator ossie-interpolator ossie-usrp-tx-control ossie-usrp-device ossie-gpp-device"
 
-S="${WORKDIR}/TX_Random_data"
+S = "${WORKDIR}/TX_Random_data"
 
 
 SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/waveforms/TX_Random_data/trunk;module=TX_Random_data;proto=https"
index 3f29c2c..e28996c 100644 (file)
@@ -4,11 +4,10 @@ PRIORITY = "optional"
 MAINTAINER = "Philip Balister philip@balister.org"
 LICENSE = "GPL"
 PV = "0.0.0+svn${SRCDATE}"
-PR = "r0"
 
 DEPENDS = "ossiecf usrp ossie-standardinterfaces"
 
-S="${WORKDIR}/USRP"
+S = "${WORKDIR}/USRP"
 
 SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/platform/USRP/trunk;module=USRP;proto=https"
 
index c3af96c..0171b2d 100644 (file)
@@ -3,11 +3,10 @@ SECTION =  "apps"
 PRIORITY = "optional"
 LICENSE = "GPL"
 PV = "0.0.0+svn${SRCDATE}"
-PR = "r0"
 
 DEPENDS = "ossiecf ossie-standardinterfaces"
 
-S="${WORKDIR}/USRP_TX_Control"
+S = "${WORKDIR}/USRP_TX_Control"
 
 
 SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/waveforms/USRP_TX_Control/trunk;module=USRP_TX_Control;proto=https"
index 2c7b27e..35bf752 100644 (file)
@@ -4,9 +4,8 @@ PRIORITY = "optional"
 LICENSE = "LGPL"
 DEPENDS = "xerces-c omniorb libtool-cross"
 PV = "0.0.0+svn${SRCDATE}"
-PR = "r0"
 
-S="${WORKDIR}/ossie"
+S = "${WORKDIR}/ossie"
 
 SRC_URI = "svn://oe:oe@ossie-dev.mprg.org/repos/ossie/ossie/trunk;module=ossie;proto=https"
 
index c19d0ff..14dab42 100644 (file)
@@ -17,7 +17,7 @@ Administrators' Guide."
 HOMEPAGE = "http://www.kernel.org/pub/linux/libs/pam"
 SECTION = "libs"
 PRIORITY = "optional"
-LICENSE = "GPL-2"
+LICENSE = "GPLv2"
 PR = "r1"
 
 # The project is actually called Linux-PAM but that gives
diff --git a/packages/pciutils/pciutils-2.2.4/configure-uclibc.patch b/packages/pciutils/pciutils-2.2.4/configure-uclibc.patch
new file mode 100644 (file)
index 0000000..0e6e774
--- /dev/null
@@ -0,0 +1,14 @@
+--- /lib/orig-configure        2007-02-13 16:36:54.000000000 +0200
++++ /lib/configure     2007-02-13 16:37:33.000000000 +0200
+@@ -39,6 +39,11 @@
+       sys=linux
+ fi
++if [ "$host" = "linux--uclibc" ]
++then
++      sys=linux
++fi
++
+ c=config.h
+ m=config.mk
+ echo >$c "#define PCI_ARCH_`echo $cpu | tr 'a-z' 'A-Z'`"
index 57d9e20..0cd335e 100644 (file)
@@ -6,12 +6,15 @@ HOMEPAGE = "http://atrey.karlin.mff.cuni.cz/~mj/pciutils.shtml"
 LICENSE = "GPLv2"
 DEPENDS = "zlib"
 
-SRC_URI = "${KERNELORG_MIRROR}/pub/software/utils/pciutils/pciutils-${PV}.tar.bz2 \
+SRC_URI = "ftp://ftp.kernel.org/pub/software/utils/pciutils/pciutils-${PV}.tar.bz2 \
           file://configure.patch;patch=1 \
+           file://configure-uclibc.patch;patch=1 \
           file://pcimodules-pciutils.diff;patch=1"
 
 PARALLEL_MAKE = ""
 
+PR="r1"
+
 do_configure () {
        (cd lib && ./configure ${datadir} ${PV} ${TARGET_OS} 2.4.21 ${TARGET_ARCH})
 }
index 0ad4588..da7ebe6 100644 (file)
@@ -6,7 +6,7 @@ For more info visit http://www.poptop.org/"
 
 HOMEPAGE    = "http://www.poptop.org/"
 LICENSE     = "GPL"
-SECTION     = "network"
+SECTION = "network"
 PRIORITY    = "optional"
 DEPENDS     = "ppp"
 RDEPENDS    = "ppp"
index 7fdcd4d..6855144 100644 (file)
@@ -4,7 +4,7 @@ Tunneling Protocol, PPTP. Allows connection to a PPTP based \
 Virtual Private Network (VPN) as used by employers and some \
 cable and ADSL internet service providers."
 LICENSE     = "GPL"
-SECTION     = "network"
+SECTION = "network"
 PRIORITY    = "optional"
 DEPENDS     = "ppp "
 
index 123810c..2416935 100644 (file)
@@ -1,5 +1,5 @@
 DESCRIPTION = "Hexatrolic a Ball Game"
-SECTION     = "opie/games"
+SECTION = "opie/games"
 PRIORITY    = "optional"
 LICENSE     = "GPL"
 AUTHOR      = "Helge Plehn"
index 9075b01..f6e9299 100644 (file)
@@ -1,5 +1,5 @@
 DESCRIPTION = "A traditional (german?) boardgame"
-SECTION     = "opie/games"
+SECTION = "opie/games"
 PRIORITY    = "optional"
 LICENSE     = "GPL"
 AUTHOR      = "Helge Plehn"
index 23c00e1..6d2e4ab 100644 (file)
@@ -6,7 +6,8 @@ LICENSE = "GPL"
 PACKAGE_ARCH = "all"
 PR = "r2"
 
-SRC_URI = "http://www.mn-solutions.de/downloads/mnci/terminus-fonts.tar.bz2"
+#SRC_URI = "http://www.mn-solutions.de/downloads/mnci/terminus-fonts.tar.bz2" -> 404 error
+SRC_URI = "http://openzaurus.linuxtogo.org/download/3.5.4/sources/terminus-fonts.tar.bz2"
 S = "${WORKDIR}/terminus-fonts"
 
 do_install() {
index bb289bf..1eb9bc0 100644 (file)
@@ -1,7 +1,7 @@
-SECTION = "libs"
-LICENSE = "BSD"
 DESCRIPTION = "radlib is a rapid application development library for unix interprocess communications, sockets, SHA utilities, CRC utilities and much more."
 HOMEPAGE = "http://www.radlib.teel.ws/"
+SECTION = "libs"
+LICENSE = "BSD"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/radlib/radlib-${PV}.tar.gz \
        file://Makefile.am.patch;patch=1"
@@ -17,32 +17,32 @@ do_compile_prepend() {
        rm -f ${STAGING_LIBDIR}/librad.so.0.0.0
 }
 
-headers =       "radbuffers.h \
-                radconffile.h \
-                radcrc.h \
-                raddebug.h \
-                radevents.h \
-                radlist.h \
-                radmsgLog.h \
-                radmsgRouter.h \
-                radprocess.h \
-                radproclist.h \
-                radprocutils.h \
-                radqueue.h \
-                radsemaphores.h \
-                radsha.h \
-                radshmem.h \
-                radsocket.h \
-                radsortlist.h \
-                radstack.h \
-                radstates.h \
-                radsysdefs.h \
-                radsystem.h \
-                radsysutils.h \
-                radtimers.h \
-                radtimeUtils.h \
-                raddatabase.h \
-                radUDPsocket.h"
+headers = "radbuffers.h \
+           radconffile.h \
+           radcrc.h \
+           raddebug.h \
+           radevents.h \
+           radlist.h \
+           radmsgLog.h \
+           radmsgRouter.h \
+           radprocess.h \
+           radproclist.h \
+           radprocutils.h \
+           radqueue.h \
+           radsemaphores.h \
+           radsha.h \
+           radshmem.h \
+           radsocket.h \
+           radsortlist.h \
+           radstack.h \
+           radstates.h \
+           radsysdefs.h \
+           radsystem.h \
+           radsysutils.h \
+           radtimers.h \
+           radtimeUtils.h \
+           raddatabase.h \
+           radUDPsocket.h"
 
 do_stage () {
         cd ${S}/src/.libs
index 8185b8d..c54b2f1 100644 (file)
@@ -5,7 +5,7 @@ PR = "r1"
 DESCRIPTION = "User-level tools for Reiser4 filesystems"
 HOMEPAGE = "http://www.namesys.com"
 SECTION = "base"
-LICENSE = "GPL-2"
+LICENSE = "GPLv2"
 
 SRC_URI = "ftp://ftp.namesys.com/pub/${PN}/old-versions/${P}.tar.gz \
                file://oid40.c.patch;patch=1 \
@@ -1,17 +1,17 @@
 SECTION = "base"
-PR = "r1"
-
+LICENSE = "GPL"
 DEPENDS = "libxml2 intltool-native"
+PR = "r0"
 
-SRC_URI = "http://freedesktop.org/~jrb/shared-mime-info-${PV}.tar.gz"
-LICENSE = "GPL"
-inherit autotools pkgconfig gettext
+SRC_URI = "http://freedesktop.org/~hadess/shared-mime-info-${PV}.tar.bz2"
 
-FILES_${PN} += "${datadir}/mime"
-#FILES_${PN}-doc += " ${datadir}/gtk-doc"
+inherit autotools pkgconfig gettext
 
 EXTRA_OECONF = "--disable-update-mimedb"
 
+FILES_${PN} += "${datadir}/mime"
+FILES_${PN}-dev += "${datadir}/pkgconfig/shared-mime-info.pc"
+
 pkg_postinst () {
   echo "Updating MIME database... this may take a while."
   ${bindir}/update-mime-database ${datadir}/mime
index b75511e..0e32c06 100644 (file)
@@ -4,7 +4,7 @@ PRIORITY = "required"
 LICENSE = "GPL"
 DEPENDS = "base-files devio"
 RDEPENDS = "busybox devio"
-PR = "r77"
+PR = "r78"
 
 SRC_URI = "file://boot/flash \
           file://boot/disk \
@@ -29,7 +29,6 @@ SRC_URI = "file://boot/flash \
           file://leds \
           file://turnup \
           file://reflash \
-          file://links.conf \
           "
 
 SBINPROGS = ""
@@ -96,10 +95,6 @@ do_install() {
                install -m 0755 initscripts/$s ${D}${sysconfdir}/init.d/
        done
 
-       #
-       # Udev configuration files
-       install -m 0644 links.conf ${D}${sysconfdir}/udev
-
        #
        # Boot scripts
        for p in ${BOOTSCRIPTS}
diff --git a/packages/sqlite/sqlite3-3.3.12/.mtn2git_empty b/packages/sqlite/sqlite3-3.3.12/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/sqlite/sqlite3-3.3.7/ldflags.patch b/packages/sqlite/sqlite3-3.3.7/ldflags.patch
deleted file mode 100644 (file)
index ee5105f..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
---- sqlite-3.3.7/Makefile.in.orig      2006-08-20 23:05:36.000000000 +0200
-+++ sqlite-3.3.7/Makefile.in   2006-08-20 23:42:49.000000000 +0200
-@@ -31,6 +31,10 @@
- #
- TCC = @TARGET_CC@ @TARGET_CFLAGS@ -I. -I${TOP}/src
-+# OE overrides
-+#
-+TARGET_LFLAGS = @TARGET_LFLAGS@
-+
- # Define -DNDEBUG to compile without debugging (i.e., for production usage)
- # Omitting the define will cause extra debugging code to be inserted and
- # includes extra comments when "EXPLAIN stmt" is used.
-@@ -257,17 +261,17 @@
-           | $(NAWK) '{print $$5,$$6}' >last_change
- libsqlite3.la:        $(LIBOBJ)
--      $(LTLINK) -o libsqlite3.la $(LIBOBJ) $(LIBPTHREAD) \
-+      $(LTLINK) -o libsqlite3.la $(LIBOBJ) $(TARGET_LFLAGS) $(LIBPTHREAD) \
-               ${ALLOWRELEASE} -rpath $(libdir) -version-info "8:6:8"
- libtclsqlite3.la:     tclsqlite.lo libsqlite3.la
-       $(LTLINK) -o libtclsqlite3.la tclsqlite.lo \
--              $(LIBOBJ) @TCL_STUB_LIB_SPEC@ $(LIBPTHREAD) \
-+              $(LIBOBJ) @TCL_STUB_LIB_SPEC@ $(TARGET_LFLAGS) $(LIBPTHREAD) \
-                 -rpath $(libdir)/sqlite \
-               -version-info "8:6:8"
- sqlite3$(TEXE):       $(TOP)/src/shell.c libsqlite3.la sqlite3.h
--      $(LTLINK) $(READLINE_FLAGS) $(LIBPTHREAD) \
-+      $(LTLINK) $(TARGET_LFLAGS) $(READLINE_FLAGS) $(LIBPTHREAD) \
-               -o $@ $(TOP)/src/shell.c libsqlite3.la \
-               $(LIBREADLINE) $(TLIBS)
-@@ -456,12 +460,12 @@
- tclsqlite3:   tclsqlite-shell.lo libsqlite3.la
-       $(LTLINK) -o tclsqlite3 tclsqlite-shell.lo \
--               libsqlite3.la $(LIBTCL)
-+               libsqlite3.la $(TARGET_LFLAGS) $(LIBTCL)
- testfixture$(TEXE):   $(TOP)/src/tclsqlite.c libsqlite3.la $(TESTSRC)
-       $(LTLINK) -DTCLSH=1 -DSQLITE_TEST=1 -DSQLITE_CRASH_TEST=1 \
-               $(TEMP_STORE) -o testfixture $(TESTSRC) $(TOP)/src/tclsqlite.c \
--              libsqlite3.la $(LIBTCL)
-+              libsqlite3.la $(TARGET_LFLAGS) $(LIBTCL)
- fulltest:     testfixture$(TEXE) sqlite3$(TEXE)
-@@ -471,7 +475,7 @@
-       ./testfixture $(TOP)/test/quick.test
- sqlite3_analyzer$(TEXE):      $(TOP)/src/tclsqlite.c libtclsqlite3.la \
--                              $(TESTSRC) $(TOP)/tool/spaceanal.tcl
-+                              $(TARGET_LFLAGS) $(TESTSRC) $(TOP)/tool/spaceanal.tcl
-       sed \
-         -e '/^#/d' \
-         -e 's,\\,\\\\,g' \
-@@ -481,7 +485,7 @@
-         $(TOP)/tool/spaceanal.tcl >spaceanal_tcl.h
-       $(LTLINK) -DTCLSH=2 -DSQLITE_TEST=1 $(TEMP_STORE)\
-                 -o sqlite3_analyzer$(EXE) $(TESTSRC) $(TOP)/src/tclsqlite.c \
--              libtclsqlite3.la $(LIBTCL)
-+              libtclsqlite3.la $(TARGET_LFLAGS) $(LIBTCL)
- # Rules used to build documentation
- #
diff --git a/packages/sqlite/sqlite3-3.3.9/cross-compile.patch b/packages/sqlite/sqlite3-3.3.9/cross-compile.patch
deleted file mode 100644 (file)
index 31d4f0d..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
---- sqlite-3.3.7/configure.ac.orig     2006-08-21 00:20:50.000000000 +0200
-+++ sqlite-3.3.7/configure.ac  2006-08-21 00:22:35.000000000 +0200
-@@ -187,10 +187,11 @@
- default_build_cflags="-g"
- if test "$config_BUILD_CC" = ""; then
-   AC_PROG_CC
--  if test "$cross_compiling" = "yes"; then
--    AC_MSG_ERROR([unable to find a compiler for building build tools])
--  fi
--  BUILD_CC=$CC
-+#  if test "$cross_compiling" = "yes"; then
-+#    AC_MSG_ERROR([unable to find a compiler for building build tools])
-+#  fi
-+#  BUILD_CC=$CC
-+BUILD_CC=gcc
-   default_build_cflags=$CFLAGS
- else
-   BUILD_CC=$config_BUILD_CC
-@@ -238,6 +239,12 @@
-   TARGET_LINK=$config_TARGET_LINK
- fi
- AC_MSG_RESULT($TARGET_LINK)
-+if test "$config_TARGET_LFLAGS" != ""; then
-+  TARGET_LFLAGS=$config_TARGET_LFLAGS
-+  else
-+    TARGET_LFLAGS=$BUILD_LFLAGS
-+  fi
-+AC_MSG_RESULT($TARGET_LFLAGS)
- AC_MSG_CHECKING([switches on the target compiler])
- if test "$config_TARGET_TFLAGS" != ""; then
-   TARGET_TFLAGS=$config_TARGET_TFLAGS
-@@ -592,15 +599,7 @@
- # Figure out what C libraries are required to compile programs
- # that use "readline()" library.
- #
--if test "$config_TARGET_READLINE_LIBS" != ""; then
--  TARGET_READLINE_LIBS="$config_TARGET_READLINE_LIBS"
--else
--  CC=$TARGET_CC
--  LIBS=""
--  AC_SEARCH_LIBS(tgetent, [readline ncurses curses termcap])
--  AC_CHECK_LIB([readline], [readline])
--  TARGET_READLINE_LIBS="$LIBS"
--fi
-+TARGET_READLINE_LIBS="-lreadline"
- AC_SUBST(TARGET_READLINE_LIBS)
- ##########
-@@ -615,41 +614,8 @@
- ##########
- # Figure out where to get the READLINE header files.
- #
--AC_MSG_CHECKING([readline header files])
--found=no
--if test "$config_TARGET_READLINE_INC" != ""; then
--  TARGET_READLINE_INC=$config_TARGET_READLINE_INC
--  found=yes
--fi
--if test "$found" = "yes"; then
--  AC_MSG_RESULT($TARGET_READLINE_INC)
--else
--  AC_MSG_RESULT(not specified: still searching...)
--  AC_CHECK_HEADER(readline.h, [found=yes])
--fi
--if test "$found" = "no"; then
--  for dir in /usr /usr/local /usr/local/readline /usr/contrib /mingw; do
--    AC_CHECK_FILE($dir/include/readline.h, found=yes)
--    if test "$found" = "yes"; then
--      TARGET_READLINE_INC="-I$dir/include"
--      break
--    fi
--    AC_CHECK_FILE($dir/include/readline/readline.h, found=yes)
--    if test "$found" = "yes"; then
--      TARGET_READLINE_INC="-I$dir/include/readline"
--      break
--    fi
--  done
--fi
--if test "$found" = "yes"; then
--  if test "$TARGET_READLINE_LIBS" = ""; then
--    TARGET_HAVE_READLINE=0
--  else
--    TARGET_HAVE_READLINE=1
--  fi
--else
--  TARGET_HAVE_READLINE=0
--fi
-+TARGET_READLINE_INC=""
-+TARGET_HAVE_READLINE=1
- AC_SUBST(TARGET_READLINE_INC)
- AC_SUBST(TARGET_HAVE_READLINE)
diff --git a/packages/sqlite/sqlite3-3.3.9/libtool.patch b/packages/sqlite/sqlite3-3.3.9/libtool.patch
deleted file mode 100644 (file)
index ccf9993..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-Index: sqlite-3.2.1/Makefile.in
-===================================================================
---- sqlite-3.2.1.orig/Makefile.in      2005-03-23 17:09:39.000000000 +0100
-+++ sqlite-3.2.1/Makefile.in   2005-04-25 23:11:20.000000000 +0200
-@@ -15,7 +15,10 @@
- # The toplevel directory of the source tree.  This is the directory
- # that contains this "Makefile.in" and the "configure.in" script.
- #
--TOP = @srcdir@
-+TOP = $(srcdir)
-+srcdir = @srcdir@
-+top_srcdir = @top_srcdir@
-+top_builddir = .
- # C Compiler and options for use in building executables that
- # will run on the platform that is doing the build.
-@@ -96,7 +99,7 @@
- exec_prefix = @exec_prefix@
- libdir = @libdir@
- INSTALL = @INSTALL@
--LIBTOOL = ./libtool
-+LIBTOOL = @LIBTOOL@
- ALLOWRELEASE = @ALLOWRELEASE@
- # libtool compile/link/install
similarity index 66%
rename from packages/sqlite/sqlite3_3.3.7.bb
rename to packages/sqlite/sqlite3_3.3.12.bb
index d21fb6a..59c13ee 100644 (file)
@@ -1,2 +1,2 @@
 require sqlite3.inc
-PR = "r2"
+PR = "r0"
diff --git a/packages/sqlite/sqlite3_3.3.9.bb b/packages/sqlite/sqlite3_3.3.9.bb
deleted file mode 100644 (file)
index d21fb6a..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-require sqlite3.inc
-PR = "r2"
index ba74337..fa9efba 100644 (file)
@@ -1,4 +1,4 @@
-SECTION     = "gpe"
+SECTION = "gpe"
 PRIORITY    = "optional"
 DESCRIPTION = "Suspend feature for the application launcher menu."
 LICENSE     = "GPL"
diff --git a/packages/tasks/task-openmoko.bb b/packages/tasks/task-openmoko.bb
new file mode 100644 (file)
index 0000000..08b3c80
--- /dev/null
@@ -0,0 +1,246 @@
+DESCRIPTION = "OpenMoko: Tasks for the OpenMoko Linux Distribution"
+SECTION = "openmoko/base"
+ALLOW_EMPTY = "1"
+PACKAGE_ARCH = "all"
+LICENSE = "MIT"
+PROVIDES = "task-openmoko-everything"
+
+PR = "r25"
+
+PACKAGES = "\
+  task-openmoko-linux \
+  task-openmoko-ui \
+  task-openmoko-base \
+  task-openmoko-phone \
+  task-openmoko-finger \
+  task-openmoko-pim \
+  task-openmoko-net \
+  \
+  task-openmoko-demo \
+  task-openmoko-examples \
+  task-openmoko-debug \
+  task-openmoko-native-sdk \
+"
+
+RDEPENDS_task-openmoko-everything := "${PACKAGES}"
+
+#
+# task-openmoko-core
+#
+DESCRIPTION_task-openmoko-linux = "OpenMoko: Linux Core Services"
+RDEPENDS_task-openmoko-linux = "\
+  task-base \
+  base-files \
+  base-passwd \
+  busybox \
+  dropbear \
+  fuser \
+  initscripts \
+  netbase \
+  sysfsutils \
+  setserial \
+  sysvinit \
+  sysvinit-pidof \
+  tinylogin \
+  modutils-initscripts \
+  module-init-tools-depmod \
+  udev \
+  rsync \
+#  update-alternatives \
+"
+
+#
+# task-openmoko-base
+#
+DESCRIPTION_task-openmoko-base = "OpenMoko: Main-Menu Launcher, and Panel"
+RDEPENDS_task-openmoko-base = "\
+"
+
+#
+# task-openmoko-phone
+#
+DESCRIPTION_task-openmoko-phone = "OpenMoko: GSM Phone Services"
+RDEPENDS_task-openmoko-phone = "\
+  gsmd \
+  libgsmd-tools \
+  openmoko-dialer \
+"
+
+#
+# task-openmoko-ui
+#
+DESCRIPTION_task-openmoko-ui = "OpenMoko: The X11/Gtk+2 based native User Interface"
+RDEPENDS_task-openmoko-ui = "\
+  gdk-pixbuf-loader-png \
+  gdk-pixbuf-loader-gif \
+  gdk-pixbuf-loader-xpm \
+  gdk-pixbuf-loader-jpeg \
+  pango-module-basic-x \
+  pango-module-basic-fc \
+  gtk+ \
+  matchbox-common \
+  matchbox-wm \
+  matchbox-panel \
+  xserver-kdrive-fbdev \
+  xserver-kdrive-common \
+  xserver-nodm-init \
+  ttf-bitstream-vera \
+  xauth \
+  xhost \
+  xset \
+  xrandr \
+  openmoko-common \
+  openmoko-session \
+  openmoko-theme-standard \
+#  psplash \
+"
+
+#
+# task-openmoko-base
+#
+DESCRIPTION_task-openmoko-base = "OpenMoko: Main-Menu Launcher, Top Panel, and Footer"
+RDEPENDS_task-openmoko-base = "\
+  openmoko-mainmenu \
+# matchbox-panel-2 \
+  openmoko-footer \
+  openmoko-taskmanager \
+"
+
+#
+# task-openmoko-phone
+#
+DESCRIPTION_task-openmoko-phone = "OpenMoko: GSM and GPRS Phone Services"
+RDEPENDS_task-openmoko-phone = "\
+  gsmd \
+  libgsmd-tools \
+  openmoko-dialer \
+# ppp \
+"
+
+#
+# task-openmoko-finger
+#
+DESCRIPTION_task-openmoko-finger = "OpenMoko: Finger UI Applications"
+RDEPENDS_task-openmoko-finger = "\
+"
+
+#
+# task-openmoko-pim
+#
+DESCRIPTION_task-openmoko-pim = "OpenMoko: PIM Applications"
+RDEPENDS_task-openmoko-pim = "\
+  eds-dbus \
+  openmoko-contacts \
+  openmoko-dates \
+"
+
+#
+# task-openmoko-net
+#
+DESCRIPTION_task-openmoko-net = "OpenMoko: Linux Advanced Networking"
+RDEPENDS_task-openmoko-net = "\
+  bluez-utils \
+"
+
+#
+# task-openmoko-demo
+#
+DESCRIPTION_task-openmoko-demo = "OpenMoko: Demo Applications"
+RDEPENDS_task-openmoko-demo = "\
+  matchbox-desktop \
+  matchbox-keyboard \
+  matchbox-stroke \
+  matchbox-config-gtk \
+  matchbox-panel-manager \
+  matchbox-panel-hacks \
+  matchbox-themes-extra \
+  matchbox-themes-gtk \
+  matchbox-applet-inputmanager \
+  matchbox-applet-startup-monitor \
+  xcursor-transparent-theme \
+  settings-daemon \
+  web \
+  rxvt-unicode \
+  mtpaint \
+"
+
+#
+# task-openmoko-examples
+#
+DESCRIPTION_task-openmoko-examples = "OpenMoko: Example Applications"
+RDEPENDS_task-openmoko-examples = "\
+  openmoko-stylus-demo-simple \
+  openmoko-stylus-demo \
+  openmoko-finger-demo \
+  openmoko-panel-demo-simple \
+  openmoko-panel-demo \
+  openmoko-chordmaster"
+
+#
+# task-openmoko-debug
+#
+DESCRIPTION_task-openmoko-debug = "OpenMoko: Debugging Tools"
+RDEPENDS_task-openmoko-debug = "\
+  alsa-utils-amixer \
+  alsa-utils-aplay \
+  alsa-utils-aconnect \
+  alsa-utils-alsamixer \
+  alsa-utils-speakertest \
+  madplay \
+  vorbis-tools \
+  strace \
+#  ltrace \
+  gdb \
+  gdbserver \
+  tcpdump \
+  tslib-calibrate \
+  tslib-tests \
+  fstests \
+  lsof \
+  lrzsz \
+  udev-utils \
+  usbutils \
+  uucp \
+  cu \
+  sensors-i2cdetect sensors-i2cdump sensors-i2cset \
+  xev \
+"
+
+#
+# task-openmoko-sdk-native
+#
+DESCRIPTION_task-openmoko-native-sdk = "OpenMoko: Native SDK"
+RDEPENDS_task-openmoko-native-sdk = "\
+  binutils \
+  binutils-symlinks \
+  gcc \
+  gcc-symlinks \
+  cpp \
+  cpp-symlinks \
+  libc6-dev \
+  libgcc-dev \
+  libgcc-s-dev \
+  glibc-utils \
+  ldd \
+  g++ \
+  g++-symlinks \
+  libstdc++-dev \
+  \
+  make \
+  flex \
+  flex-dev \
+  bison \
+  gawk \
+  grep \
+  sed \
+  automake \
+  autoconf \
+  patch \
+  patchutils \
+  diffstat \
+  diffutils \
+  libtool \
+  pkgconfig \
+  \
+  xoo \
+"
diff --git a/packages/tasks/task-slugos.bb b/packages/tasks/task-slugos.bb
new file mode 100644 (file)
index 0000000..c25dcd9
--- /dev/null
@@ -0,0 +1,51 @@
+# This describes a generic SlugOS image, even though the bb file is
+# called 'slugos-image.bb' the distro specific configuration is
+# done in conf/distro/${DISTRO}.conf (which should always include
+# conf/distro/slugos.conf to get the standard settings).
+#
+DESCRIPTION = "Task packages for the SlugOS distribution"
+HOMEPAGE = "http://www.nslu2-linux.org"
+LICENSE = "MIT"
+PR = "r2"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+ALLOW_EMPTY = "1"
+
+# CONFIG:
+# SLUGOS_EXTRA_RDEPENDS: set in conf, things to add to the image
+# SLUGOS_SUPPORT:        set here, see below, added to the image.
+# SLUGOS_KERNEL:         set here, kernel modules added to the image
+#
+# Do not override the last two unless you really know what you
+# are doing - there is more information below.
+
+# diff, cpio and find are required for reflash and turnup ram.
+# Removing these probably leaves the system bootable, but standard
+# openslug and ucslugc stuff won't work, so only take these out in
+# very non-standard turnkey slugos builds.
+#
+# udev is the default way of handling devices, there is no guarantee
+# that the static device table is completely correct (it is just
+# known to be sufficient for boot.)
+SLUGOS_SUPPORT ?= "diffutils cpio findutils udev"
+
+SLUGOS_KERNEL ?= ""
+
+SLUGOS_EXTRA_RDEPENDS ?= ""
+
+RDEPENDS = "kernel ixp4xx-npe \
+       base-files base-passwd netbase \
+        busybox initscripts-slugos slugos-init \
+        update-modules sysvinit tinylogin \
+       module-init-tools modutils-initscripts \
+        ipkg-collateral ipkg ipkg-link \
+       portmap \
+       dropbear \
+       beep \
+       e2fsprogs-blkid \
+       util-linux-mount \
+       util-linux-umount \
+       util-linux-swaponoff \
+       util-linux-losetup \
+       ${SLUGOS_SUPPORT} \
+       ${SLUGOS_KERNEL} \
+       ${SLUGOS_EXTRA_RDEPENDS}"
index 7f14e90..5682338 100644 (file)
@@ -1,6 +1,6 @@
 DESCRIPTION = "TeXmaker is a free cross-platform LaTeX editor"
 HOMEPAGE = "http://www.xm1math.net/texmaker"
-SECTION = "x11/apps"
+SECTION = "x11/applications"
 LICENSE = "GPL"
 
 SRC_URI = "http://www.xm1math.net/texmaker/texmaker-${PV}.tar.bz2"
index 9019ffc..f48c84b 100644 (file)
@@ -1,8 +1,7 @@
-SECTION = "x11/utils"
-DEPENDS = "gtk+ glib-2.0 gnome-vfs gconf-dbus libgnomeui"
 DESCRIPTION = "TinyMail is an attempt to create an E-mail framework for mobile devices"
+SECTION = "x11/utils"
 LICENSE = "GPL"
-
+DEPENDS = "gtk+ glib-2.0 gnome-vfs gconf-dbus libgnomeui"
 PV = "0.0+svn${SRCDATE}"
 PR = "r3"
 
index 9a6c7c8..e54beb4 100644 (file)
@@ -1,6 +1,6 @@
 DESCRIPTION = "Tree Compiler-Compiler from dotGNU"
 SECTION = "devel"
-LICENSE = "GPL-2"
+LICENSE = "GPLv2"
 HOMEPAGE = "http://www.southern-storm.com.au/treecc.html"
 PRIORITY = "optional"
 
index 638f1cb..3bcf1eb 100644 (file)
@@ -1,4 +1,5 @@
 DESCRIPTION = "U-boot bootloader OS env. access tools for PPC"
+SECTION = "bootloaders"
 PRIORITY = "optional"
 LICENSE = "GPL"
 DEPENDS = "mtd-utils"
diff --git a/packages/uboot/files/fix-arm920t-eabi.patch b/packages/uboot/files/fix-arm920t-eabi.patch
new file mode 100644 (file)
index 0000000..9896388
--- /dev/null
@@ -0,0 +1,9 @@
+--- /tmp/config.mk     2007-02-14 17:23:15.000000000 +0100
++++ git/cpu/arm920t/config.mk  2007-02-14 17:23:38.475251000 +0100
+@@ -30,5 +30,5 @@
+ # Supply options according to compiler version
+ #
+ # =========================================================================
+-PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
++PLATFORM_CPPFLAGS +=$(call cc-option)
+ PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
diff --git a/packages/uboot/files/gta01_nand.h b/packages/uboot/files/gta01_nand.h
new file mode 100644 (file)
index 0000000..04cb743
--- /dev/null
@@ -0,0 +1,233 @@
+/*
+ * (C) Copyright 2006 Harald Welte <hwelte@hmw-consulting.de>
+ *
+ * Configuation settings for the FIC GTA01 Linux GSM phone
+ *
+ * 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
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+/* we want to start u-boot directly from within NAND flash */
+#define CONFIG_S3C2410_NAND_BOOT       1
+
+/*
+ * High Level Configuration Options
+ * (easy to change)
+ */
+#define CONFIG_ARM920T         1       /* This is an ARM920T Core      */
+#define        CONFIG_S3C2410          1       /* in a SAMSUNG S3C2410 SoC     */
+#define CONFIG_SMDK2410                1       /* on a SAMSUNG SMDK2410 Board  */
+
+/* input clock of PLL */
+#define CONFIG_SYS_CLK_FREQ    12000000/* the GTA01 has 12MHz input clock */
+
+
+#define USE_920T_MMU           1
+#define CONFIG_USE_IRQ         1
+
+/*
+ * Size of malloc() pool
+ */
+#define CFG_MALLOC_LEN         (CFG_ENV_SIZE + 128*1024)
+#define CFG_GBL_DATA_SIZE      128     /* size in bytes reserved for initial data */
+
+/*
+ * Hardware drivers
+ */
+
+/*
+ * select serial console configuration
+ */
+#define CONFIG_SERIAL1          1      /* we use SERIAL 1 on GTA01 */
+//#define CONFIG_HWFLOW                1
+
+/************************************************************
+ * RTC
+ ************************************************************/
+#define        CONFIG_RTC_S3C24X0      1
+
+/* allow to overwrite serial and ethaddr */
+#define CONFIG_ENV_OVERWRITE
+
+#define CONFIG_BAUDRATE                115200
+
+/***********************************************************
+ * Command definition
+ ***********************************************************/
+#define CONFIG_COMMANDS (\
+                       CFG_CMD_BDI      | \
+                       CFG_CMD_LOADS    | \
+                       CFG_CMD_LAODB    | \
+                       CFG_CMD_IMI      | \
+                       CFG_CMD_CACHE    | \
+                       CFG_CMD_MEMORY   | \
+                       CFG_CMD_ENV      | \
+                       /* CFG_CMD_IRQ   | */  \
+                       CFG_CMD_BOOTD    | \
+                       CFG_CMD_CONSOLE  | \
+                       CFG_CMD_ASKENV   | \
+                       CFG_CMD_RUN      | \
+                       CFG_CMD_ECHO     | \
+                       CFG_CMD_I2C      | \
+                       CFG_CMD_REGINFO  | \
+                       CFG_CMD_IMMAP    | \
+                       CFG_CMD_DATE     | \
+                       CFG_CMD_AUTOSCRIPT | \
+                       CFG_CMD_BSP      | \
+                       CFG_CMD_ELF      | \
+                       CFG_CMD_MISC     | \
+                       CFG_CMD_USB      | \
+                       CFG_CMD_JFFS2    | \
+                       CFG_CMD_DIAG     | \
+                       /* CFG_CMD_HWFLOW        | */ \
+                       CFG_CMD_SAVES    | \
+                       CFG_CMD_NAND     | \
+                       CFG_CMD_PORTIO   | \
+                       CFG_CMD_MMC      | \
+                       CFG_CMD_FAT      | \
+                       CFG_CMD_EXT2     | \
+                       0)
+/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
+#include <cmd_confdefs.h>
+
+#define CONFIG_BOOTDELAY       3
+#define CONFIG_BOOTARGS        "rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8"
+/*#define CONFIG_BOOTFILE      "elinos-lart" */
+#define CONFIG_BOOTCOMMAND     "nand load 0x32000000 0x34000 0x200000; bootm 0x32000000"
+
+#define CONFIG_DOS_PARTITION   1
+
+#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
+#define CONFIG_KGDB_BAUDRATE   115200          /* speed to run kgdb serial port */
+/* what's this ? it's not used anywhere */
+#define CONFIG_KGDB_SER_INDEX  1               /* which serial port to use */
+#endif
+
+/*
+ * Miscellaneous configurable options
+ */
+#define        CFG_LONGHELP                            /* undef to save memory         */
+#define        CFG_PROMPT              "GTA01 # "      /* Monitor Command Prompt       */
+#define        CFG_CBSIZE              256             /* Console I/O Buffer Size      */
+#define        CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
+#define        CFG_MAXARGS             16              /* max number of command args   */
+#define CFG_BARGSIZE           CFG_CBSIZE      /* Boot Argument Buffer Size    */
+
+#define CFG_MEMTEST_START      0x30000000      /* memtest works on     */
+#define CFG_MEMTEST_END                0x33F00000      /* 63 MB in DRAM        */
+
+#undef  CFG_CLKS_IN_HZ         /* everything, incl board info, in Hz */
+
+#define        CFG_LOAD_ADDR           0x33000000      /* default load address */
+
+/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */
+/* it to wrap 100 times (total 1562500) to get 1 sec. */
+#define        CFG_HZ                  1562500
+
+/* valid baudrates */
+#define CFG_BAUDRATE_TABLE     { 9600, 19200, 38400, 57600, 115200 }
+
+/*-----------------------------------------------------------------------
+ * Stack sizes
+ *
+ * The stack sizes are set up in start.S using the settings below
+ */
+#define CONFIG_STACKSIZE       (128*1024)      /* regular stack */
+#ifdef CONFIG_USE_IRQ
+#define CONFIG_STACKSIZE_IRQ   (4*1024)        /* IRQ stack */
+#define CONFIG_STACKSIZE_FIQ   (4*1024)        /* FIQ stack */
+#endif
+
+#define CONFIG_USB_OHCI                1
+
+/*-----------------------------------------------------------------------
+ * Physical Memory Map
+ */
+#define CONFIG_NR_DRAM_BANKS   1          /* we have 1 bank of DRAM */
+#define PHYS_SDRAM_1           0x30000000 /* SDRAM Bank #1 */
+#define PHYS_SDRAM_1_SIZE      0x04000000 /* 64 MB */
+#define PHYS_SDRAM_RES_SIZE    0x00200000 /* 2 MB for frame buffer */
+
+/*-----------------------------------------------------------------------
+ * FLASH and environment organization
+ */
+
+#if 1
+#define CFG_NO_FLASH           1
+#else
+#define CFG_MAX_FLASH_SECT     1
+#define CFG_MAX_FLASH_BANKS    1
+#endif
+
+#define        CFG_ENV_IS_IN_NAND      1
+#define CFG_ENV_SIZE           0x4000          /* 16k Total Size of Environment Sector */
+#define CFG_ENV_OFFSET         0x30000         /* environment after bootloader */
+
+#define NAND_MAX_CHIPS         1
+#define CFG_NAND_BASE          0x4e000000
+#define CFG_MAX_NAND_DEVICE    1
+
+#define CONFIG_MMC             1
+#define CFG_MMC_BASE           0xff000000
+
+/* EXT2 driver */
+#define CONFIG_EXT2            1
+
+/* FAT driver in u-boot is broken currently */
+#define CONFIG_FAT             1
+#define CONFIG_SUPPORT_VFAT    1
+
+/* JFFS2 driver */
+#define CONFIG_JFFS2_NAND      1
+#define CONFIG_JFFS2_NAND_DEV  0
+#define CONFIG_JFFS2_NAND_OFF  0x634000
+#define CONFIG_JFFS2_NAND_SIZE 0x39cc000
+
+/* ATAG configuration */
+#define CONFIG_INITRD_TAG              1
+#define CONFIG_SETUP_MEMORY_TAGS       1
+#define CONFIG_CMDLINE_TAG             1
+#if 0
+#define CONFIG_SERIAL_TAG              1
+#define CONFIG_REVISION_TAG            1
+#endif
+
+#define CONFIG_DRIVER_S3C24X0_I2C      1
+#define CONFIG_HARD_I2C                        1
+#define CFG_I2C_SPEED                  400000  /* 400kHz according to PCF50707 data sheet */
+#define CFG_I2C_SLAVE                  0x7f
+
+
+#if 0
+#define CONFIG_VIDEO
+#define CONFIG_VIDEO_S3C2410
+#define CONFIG_CFB_CONSOLE
+#define CONFIG_VIDEO_LOGO
+#define CONFIG_VGA_AS_SINGLE_DEVICE
+
+#define VIDEO_KBD_INIT_FCT     0
+#define VIDEO_TSTC_FCT         serial_tstc
+#define VIDEO_GETC_FCT         serial_getc
+
+#define LCD_VIDEO_ADDR         0x33d00000
+#endif
+
+#endif /* __CONFIG_H */
diff --git a/packages/uboot/files/qt2410.h b/packages/uboot/files/qt2410.h
new file mode 100644 (file)
index 0000000..627f365
--- /dev/null
@@ -0,0 +1,256 @@
+/*
+ * (C) Copyright 2002
+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
+ * Marius Groeger <mgroeger@sysgo.de>
+ * Gary Jennejohn <gj@denx.de>
+ * David Mueller <d.mueller@elsoft.ch>
+ *
+ * Configuation settings for the SAMSUNG SMDK2410 board.
+ *
+ * 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
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+#if 0
+/* If we want to start u-boot from usb bootloader in NOR flash */
+#define CONFIG_SKIP_RELOCATE_UBOOT     1
+#define        CONFIG_SKIP_LOWLEVEL_INIT       1
+#else
+/* If we want to start u-boot directly from within NAND flash */
+#define CONFIG_S3C2410_NAND_BOOT       1
+#endif
+
+/*
+ * High Level Configuration Options
+ * (easy to change)
+ */
+#define CONFIG_ARM920T         1       /* This is an ARM920T Core      */
+#define        CONFIG_S3C2410          1       /* in a SAMSUNG S3C2410 SoC     */
+#define CONFIG_SMDK2410                1       /* on a SAMSUNG SMDK2410 Board  */
+
+/* input clock of PLL */
+#define CONFIG_SYS_CLK_FREQ    12000000/* the SMDK2410 has 12MHz input clock */
+
+
+#define USE_920T_MMU           1
+#define CONFIG_USE_IRQ         1
+//#undef CONFIG_USE_IRQ                        /* we don't need IRQ/FIQ stuff */
+
+/*
+ * Size of malloc() pool
+ */
+#define CFG_MALLOC_LEN         (CFG_ENV_SIZE + 128*1024)
+#define CFG_GBL_DATA_SIZE      128     /* size in bytes reserved for initial data */
+
+/*
+ * Hardware drivers
+ */
+#define CONFIG_DRIVER_CS8900   1       /* we have a CS8900 on-board */
+#define CS8900_BASE            0x19000300
+#define CS8900_BUS16           1 /* the Linux driver does accesses as shorts */
+
+/*
+ * select serial console configuration
+ */
+#define CONFIG_SERIAL1          1      /* we use SERIAL 1 on SMDK2410 */
+#define CONFIG_HWFLOW          1
+
+/************************************************************
+ * RTC
+ ************************************************************/
+#define        CONFIG_RTC_S3C24X0      1
+
+/* allow to overwrite serial and ethaddr */
+#define CONFIG_ENV_OVERWRITE
+
+#define CONFIG_BAUDRATE                115200
+
+/***********************************************************
+ * Command definition
+ ***********************************************************/
+#define CONFIG_COMMANDS \
+                       (CONFIG_CMD_DFL  | \
+                       CFG_CMD_BSP      | \
+                       CFG_CMD_CACHE    | \
+                       CFG_CMD_DATE     | \
+                       CFG_CMD_DHCP     | \
+                       CFG_CMD_DIAG     | \
+                       CFG_CMD_ELF      | \
+                       CFG_CMD_EXT2     | \
+                       CFG_CMD_FAT      | \
+                       CFG_CMD_HWFLOW   | \
+                       /* CFG_CMD_IDE   | */ \
+                       /* CFG_CMD_IRQ   | */ \
+                       CFG_CMD_JFFS2    | \
+                       CFG_CMD_MMC      | \
+                       CFG_CMD_NAND     | \
+                       CFG_CMD_PING     | \
+                       CFG_CMD_PORTIO   | \
+                       CFG_CMD_REGINFO  | \
+                       CFG_CMD_SAVES    | \
+                       CFG_CMD_USB)
+
+/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
+#include <cmd_confdefs.h>
+
+#define CONFIG_BOOTDELAY       3
+#define CONFIG_BOOTARGS        "root=/dev/sda1 console=ttySAC0,115200 loglevel=8 rootdelay=10"
+/*#define CONFIG_ETHADDR       08:00:3e:26:0a:5b */
+#define CONFIG_NETMASK          255.255.255.0
+#define CONFIG_IPADDR          10.0.0.110
+#define CONFIG_SERVERIP                10.0.0.1
+/*#define CONFIG_BOOTFILE      "elinos-lart" */
+#define CONFIG_BOOTCOMMAND     "mmcinit; ext2load mmc 0 0x32000000 uImage; bootm 0x32000000"
+
+#define CONFIG_DOS_PARTITION   1
+
+#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
+#define CONFIG_KGDB_BAUDRATE   115200          /* speed to run kgdb serial port */
+/* what's this ? it's not used anywhere */
+#define CONFIG_KGDB_SER_INDEX  1               /* which serial port to use */
+#endif
+
+/*
+ * Miscellaneous configurable options
+ */
+#define        CFG_LONGHELP                            /* undef to save memory         */
+#define        CFG_PROMPT              "QT2410 # "     /* Monitor Command Prompt       */
+#define        CFG_CBSIZE              256             /* Console I/O Buffer Size      */
+#define        CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
+#define        CFG_MAXARGS             16              /* max number of command args   */
+#define CFG_BARGSIZE           CFG_CBSIZE      /* Boot Argument Buffer Size    */
+
+#define CFG_MEMTEST_START      0x30000000      /* memtest works on     */
+#define CFG_MEMTEST_END                0x33F00000      /* 63 MB in DRAM        */
+
+#undef  CFG_CLKS_IN_HZ         /* everything, incl board info, in Hz */
+
+#define        CFG_LOAD_ADDR           0x33000000      /* default load address */
+
+/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */
+/* it to wrap 100 times (total 1562500) to get 1 sec. */
+#define        CFG_HZ                  1562500
+
+/* valid baudrates */
+#define CFG_BAUDRATE_TABLE     { 9600, 19200, 38400, 57600, 115200 }
+
+/*-----------------------------------------------------------------------
+ * Stack sizes
+ *
+ * The stack sizes are set up in start.S using the settings below
+ */
+#define CONFIG_STACKSIZE       (128*1024)      /* regular stack */
+#ifdef CONFIG_USE_IRQ
+#define CONFIG_STACKSIZE_IRQ   (4*1024)        /* IRQ stack */
+#define CONFIG_STACKSIZE_FIQ   (4*1024)        /* FIQ stack */
+#endif
+
+/* IDE/ATA config */
+
+#if 0
+#define CFG_IDE_MAXBUS         1
+#define CFG_IDE_MAXDEVICE      2
+#define CFG_IDE_PREINIT                0
+
+#define CFG_ATA_BASE_ADDR      
+#endif
+
+#define CONFIG_USB_OHCI                1
+
+/*-----------------------------------------------------------------------
+ * Physical Memory Map
+ */
+#define CONFIG_NR_DRAM_BANKS   1          /* we have 1 bank of DRAM */
+#define PHYS_SDRAM_1           0x30000000 /* SDRAM Bank #1 */
+#define PHYS_SDRAM_1_SIZE      0x04000000 /* 64 MB */
+#define PHYS_SDRAM_RES_SIZE    0x00200000 /* 2 MB for frame buffer */
+
+#define PHYS_FLASH_1           0x00000000 /* Flash Bank #1 */
+
+#define CFG_FLASH_BASE         PHYS_FLASH_1
+
+/*-----------------------------------------------------------------------
+ * FLASH and environment organization
+ */
+
+#define CONFIG_AMD_LV400       1       /* uncomment this if you have a LV400 flash */
+#if 0
+#define CONFIG_AMD_LV800       1       /* uncomment this if you have a LV800 flash */
+#endif
+
+#define CFG_MAX_FLASH_BANKS    1       /* max number of memory banks */
+#ifdef CONFIG_AMD_LV800
+#define PHYS_FLASH_SIZE                0x00100000 /* 1MB */
+#define CFG_MAX_FLASH_SECT     (19)    /* max number of sectors on one chip */
+#define CFG_ENV_ADDR           (CFG_FLASH_BASE + 0x0F0000) /* addr of environment */
+#endif
+#ifdef CONFIG_AMD_LV400
+#define PHYS_FLASH_SIZE                0x00080000 /* 512KB */
+#define CFG_MAX_FLASH_SECT     (11)    /* max number of sectors on one chip */
+#define CFG_ENV_ADDR           (CFG_FLASH_BASE + 0x070000) /* addr of environment */
+#endif
+
+/* timeout values are in ticks */
+#define CFG_FLASH_ERASE_TOUT   (5*CFG_HZ) /* Timeout for Flash Erase */
+#define CFG_FLASH_WRITE_TOUT   (5*CFG_HZ) /* Timeout for Flash Write */
+
+#define        CFG_ENV_IS_IN_NAND      1
+#define CFG_ENV_SIZE           0x4000          /* 16k Total Size of Environment Sector */
+#define CFG_ENV_OFFSET         0x30000         /* environment after bootloader */
+
+#define NAND_MAX_CHIPS         1
+#define CFG_NAND_BASE          0x4e000000
+#define CFG_MAX_NAND_DEVICE    1
+
+#define CONFIG_MMC             1
+#define CFG_MMC_BASE           0xff000000
+
+#define CONFIG_EXT2            1
+
+/* FAT driver in u-boot is broken currently */
+#define CONFIG_FAT             1
+#define CONFIG_SUPPORT_VFAT
+
+/* ATAG configuration */
+#define CONFIG_INITRD_TAG              1
+#define CONFIG_SETUP_MEMORY_TAGS       1
+#define CONFIG_CMDLINE_TAG             1
+#if 0
+#define CONFIG_SERIAL_TAG              1
+#define CONFIG_REVISION_TAG            1
+#endif
+
+
+#if 0
+#define CONFIG_VIDEO
+#define CONFIG_VIDEO_S3C2410
+#define CONFIG_CFB_CONSOLE
+#define CONFIG_VIDEO_LOGO
+#define CONFIG_VGA_AS_SINGLE_DEVICE
+
+#define VIDEO_KBD_INIT_FCT     0
+#define VIDEO_TSTC_FCT         serial_tstc
+#define VIDEO_GETC_FCT         serial_getc
+
+#define LCD_VIDEO_ADDR         0x33d00000
+#endif
+
+#endif /* __CONFIG_H */
diff --git a/packages/uboot/files/qt2410_nand.h b/packages/uboot/files/qt2410_nand.h
new file mode 100644 (file)
index 0000000..627f365
--- /dev/null
@@ -0,0 +1,256 @@
+/*
+ * (C) Copyright 2002
+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
+ * Marius Groeger <mgroeger@sysgo.de>
+ * Gary Jennejohn <gj@denx.de>
+ * David Mueller <d.mueller@elsoft.ch>
+ *
+ * Configuation settings for the SAMSUNG SMDK2410 board.
+ *
+ * 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
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+#if 0
+/* If we want to start u-boot from usb bootloader in NOR flash */
+#define CONFIG_SKIP_RELOCATE_UBOOT     1
+#define        CONFIG_SKIP_LOWLEVEL_INIT       1
+#else
+/* If we want to start u-boot directly from within NAND flash */
+#define CONFIG_S3C2410_NAND_BOOT       1
+#endif
+
+/*
+ * High Level Configuration Options
+ * (easy to change)
+ */
+#define CONFIG_ARM920T         1       /* This is an ARM920T Core      */
+#define        CONFIG_S3C2410          1       /* in a SAMSUNG S3C2410 SoC     */
+#define CONFIG_SMDK2410                1       /* on a SAMSUNG SMDK2410 Board  */
+
+/* input clock of PLL */
+#define CONFIG_SYS_CLK_FREQ    12000000/* the SMDK2410 has 12MHz input clock */
+
+
+#define USE_920T_MMU           1
+#define CONFIG_USE_IRQ         1
+//#undef CONFIG_USE_IRQ                        /* we don't need IRQ/FIQ stuff */
+
+/*
+ * Size of malloc() pool
+ */
+#define CFG_MALLOC_LEN         (CFG_ENV_SIZE + 128*1024)
+#define CFG_GBL_DATA_SIZE      128     /* size in bytes reserved for initial data */
+
+/*
+ * Hardware drivers
+ */
+#define CONFIG_DRIVER_CS8900   1       /* we have a CS8900 on-board */
+#define CS8900_BASE            0x19000300
+#define CS8900_BUS16           1 /* the Linux driver does accesses as shorts */
+
+/*
+ * select serial console configuration
+ */
+#define CONFIG_SERIAL1          1      /* we use SERIAL 1 on SMDK2410 */
+#define CONFIG_HWFLOW          1
+
+/************************************************************
+ * RTC
+ ************************************************************/
+#define        CONFIG_RTC_S3C24X0      1
+
+/* allow to overwrite serial and ethaddr */
+#define CONFIG_ENV_OVERWRITE
+
+#define CONFIG_BAUDRATE                115200
+
+/***********************************************************
+ * Command definition
+ ***********************************************************/
+#define CONFIG_COMMANDS \
+                       (CONFIG_CMD_DFL  | \
+                       CFG_CMD_BSP      | \
+                       CFG_CMD_CACHE    | \
+                       CFG_CMD_DATE     | \
+                       CFG_CMD_DHCP     | \
+                       CFG_CMD_DIAG     | \
+                       CFG_CMD_ELF      | \
+                       CFG_CMD_EXT2     | \
+                       CFG_CMD_FAT      | \
+                       CFG_CMD_HWFLOW   | \
+                       /* CFG_CMD_IDE   | */ \
+                       /* CFG_CMD_IRQ   | */ \
+                       CFG_CMD_JFFS2    | \
+                       CFG_CMD_MMC      | \
+                       CFG_CMD_NAND     | \
+                       CFG_CMD_PING     | \
+                       CFG_CMD_PORTIO   | \
+                       CFG_CMD_REGINFO  | \
+                       CFG_CMD_SAVES    | \
+                       CFG_CMD_USB)
+
+/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
+#include <cmd_confdefs.h>
+
+#define CONFIG_BOOTDELAY       3
+#define CONFIG_BOOTARGS        "root=/dev/sda1 console=ttySAC0,115200 loglevel=8 rootdelay=10"
+/*#define CONFIG_ETHADDR       08:00:3e:26:0a:5b */
+#define CONFIG_NETMASK          255.255.255.0
+#define CONFIG_IPADDR          10.0.0.110
+#define CONFIG_SERVERIP                10.0.0.1
+/*#define CONFIG_BOOTFILE      "elinos-lart" */
+#define CONFIG_BOOTCOMMAND     "mmcinit; ext2load mmc 0 0x32000000 uImage; bootm 0x32000000"
+
+#define CONFIG_DOS_PARTITION   1
+
+#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
+#define CONFIG_KGDB_BAUDRATE   115200          /* speed to run kgdb serial port */
+/* what's this ? it's not used anywhere */
+#define CONFIG_KGDB_SER_INDEX  1               /* which serial port to use */
+#endif
+
+/*
+ * Miscellaneous configurable options
+ */
+#define        CFG_LONGHELP                            /* undef to save memory         */
+#define        CFG_PROMPT              "QT2410 # "     /* Monitor Command Prompt       */
+#define        CFG_CBSIZE              256             /* Console I/O Buffer Size      */
+#define        CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
+#define        CFG_MAXARGS             16              /* max number of command args   */
+#define CFG_BARGSIZE           CFG_CBSIZE      /* Boot Argument Buffer Size    */
+
+#define CFG_MEMTEST_START      0x30000000      /* memtest works on     */
+#define CFG_MEMTEST_END                0x33F00000      /* 63 MB in DRAM        */
+
+#undef  CFG_CLKS_IN_HZ         /* everything, incl board info, in Hz */
+
+#define        CFG_LOAD_ADDR           0x33000000      /* default load address */
+
+/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */
+/* it to wrap 100 times (total 1562500) to get 1 sec. */
+#define        CFG_HZ                  1562500
+
+/* valid baudrates */
+#define CFG_BAUDRATE_TABLE     { 9600, 19200, 38400, 57600, 115200 }
+
+/*-----------------------------------------------------------------------
+ * Stack sizes
+ *
+ * The stack sizes are set up in start.S using the settings below
+ */
+#define CONFIG_STACKSIZE       (128*1024)      /* regular stack */
+#ifdef CONFIG_USE_IRQ
+#define CONFIG_STACKSIZE_IRQ   (4*1024)        /* IRQ stack */
+#define CONFIG_STACKSIZE_FIQ   (4*1024)        /* FIQ stack */
+#endif
+
+/* IDE/ATA config */
+
+#if 0
+#define CFG_IDE_MAXBUS         1
+#define CFG_IDE_MAXDEVICE      2
+#define CFG_IDE_PREINIT                0
+
+#define CFG_ATA_BASE_ADDR      
+#endif
+
+#define CONFIG_USB_OHCI                1
+
+/*-----------------------------------------------------------------------
+ * Physical Memory Map
+ */
+#define CONFIG_NR_DRAM_BANKS   1          /* we have 1 bank of DRAM */
+#define PHYS_SDRAM_1           0x30000000 /* SDRAM Bank #1 */
+#define PHYS_SDRAM_1_SIZE      0x04000000 /* 64 MB */
+#define PHYS_SDRAM_RES_SIZE    0x00200000 /* 2 MB for frame buffer */
+
+#define PHYS_FLASH_1           0x00000000 /* Flash Bank #1 */
+
+#define CFG_FLASH_BASE         PHYS_FLASH_1
+
+/*-----------------------------------------------------------------------
+ * FLASH and environment organization
+ */
+
+#define CONFIG_AMD_LV400       1       /* uncomment this if you have a LV400 flash */
+#if 0
+#define CONFIG_AMD_LV800       1       /* uncomment this if you have a LV800 flash */
+#endif
+
+#define CFG_MAX_FLASH_BANKS    1       /* max number of memory banks */
+#ifdef CONFIG_AMD_LV800
+#define PHYS_FLASH_SIZE                0x00100000 /* 1MB */
+#define CFG_MAX_FLASH_SECT     (19)    /* max number of sectors on one chip */
+#define CFG_ENV_ADDR           (CFG_FLASH_BASE + 0x0F0000) /* addr of environment */
+#endif
+#ifdef CONFIG_AMD_LV400
+#define PHYS_FLASH_SIZE                0x00080000 /* 512KB */
+#define CFG_MAX_FLASH_SECT     (11)    /* max number of sectors on one chip */
+#define CFG_ENV_ADDR           (CFG_FLASH_BASE + 0x070000) /* addr of environment */
+#endif
+
+/* timeout values are in ticks */
+#define CFG_FLASH_ERASE_TOUT   (5*CFG_HZ) /* Timeout for Flash Erase */
+#define CFG_FLASH_WRITE_TOUT   (5*CFG_HZ) /* Timeout for Flash Write */
+
+#define        CFG_ENV_IS_IN_NAND      1
+#define CFG_ENV_SIZE           0x4000          /* 16k Total Size of Environment Sector */
+#define CFG_ENV_OFFSET         0x30000         /* environment after bootloader */
+
+#define NAND_MAX_CHIPS         1
+#define CFG_NAND_BASE          0x4e000000
+#define CFG_MAX_NAND_DEVICE    1
+
+#define CONFIG_MMC             1
+#define CFG_MMC_BASE           0xff000000
+
+#define CONFIG_EXT2            1
+
+/* FAT driver in u-boot is broken currently */
+#define CONFIG_FAT             1
+#define CONFIG_SUPPORT_VFAT
+
+/* ATAG configuration */
+#define CONFIG_INITRD_TAG              1
+#define CONFIG_SETUP_MEMORY_TAGS       1
+#define CONFIG_CMDLINE_TAG             1
+#if 0
+#define CONFIG_SERIAL_TAG              1
+#define CONFIG_REVISION_TAG            1
+#endif
+
+
+#if 0
+#define CONFIG_VIDEO
+#define CONFIG_VIDEO_S3C2410
+#define CONFIG_CFB_CONSOLE
+#define CONFIG_VIDEO_LOGO
+#define CONFIG_VGA_AS_SINGLE_DEVICE
+
+#define VIDEO_KBD_INIT_FCT     0
+#define VIDEO_TSTC_FCT         serial_tstc
+#define VIDEO_GETC_FCT         serial_getc
+
+#define LCD_VIDEO_ADDR         0x33d00000
+#endif
+
+#endif /* __CONFIG_H */
diff --git a/packages/uboot/files/qt2410_ram.h b/packages/uboot/files/qt2410_ram.h
new file mode 100644 (file)
index 0000000..62cc88e
--- /dev/null
@@ -0,0 +1,256 @@
+/*
+ * (C) Copyright 2002
+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
+ * Marius Groeger <mgroeger@sysgo.de>
+ * Gary Jennejohn <gj@denx.de>
+ * David Mueller <d.mueller@elsoft.ch>
+ *
+ * Configuation settings for the SAMSUNG SMDK2410 board.
+ *
+ * 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
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+#if 1
+/* If we want to start u-boot from usb bootloader in NOR flash */
+#define CONFIG_SKIP_RELOCATE_UBOOT     1
+#define        CONFIG_SKIP_LOWLEVEL_INIT       1
+#else
+/* If we want to start u-boot directly from within NAND flash */
+#define CONFIG_S3C2410_NAND_BOOT       1
+#endif
+
+/*
+ * High Level Configuration Options
+ * (easy to change)
+ */
+#define CONFIG_ARM920T         1       /* This is an ARM920T Core      */
+#define        CONFIG_S3C2410          1       /* in a SAMSUNG S3C2410 SoC     */
+#define CONFIG_SMDK2410                1       /* on a SAMSUNG SMDK2410 Board  */
+
+/* input clock of PLL */
+#define CONFIG_SYS_CLK_FREQ    12000000/* the SMDK2410 has 12MHz input clock */
+
+
+#define USE_920T_MMU           1
+#define CONFIG_USE_IRQ         1
+//#undef CONFIG_USE_IRQ                        /* we don't need IRQ/FIQ stuff */
+
+/*
+ * Size of malloc() pool
+ */
+#define CFG_MALLOC_LEN         (CFG_ENV_SIZE + 128*1024)
+#define CFG_GBL_DATA_SIZE      128     /* size in bytes reserved for initial data */
+
+/*
+ * Hardware drivers
+ */
+#define CONFIG_DRIVER_CS8900   1       /* we have a CS8900 on-board */
+#define CS8900_BASE            0x19000300
+#define CS8900_BUS16           1 /* the Linux driver does accesses as shorts */
+
+/*
+ * select serial console configuration
+ */
+#define CONFIG_SERIAL1          1      /* we use SERIAL 1 on SMDK2410 */
+#define CONFIG_HWFLOW          1
+
+/************************************************************
+ * RTC
+ ************************************************************/
+#define        CONFIG_RTC_S3C24X0      1
+
+/* allow to overwrite serial and ethaddr */
+#define CONFIG_ENV_OVERWRITE
+
+#define CONFIG_BAUDRATE                115200
+
+/***********************************************************
+ * Command definition
+ ***********************************************************/
+#define CONFIG_COMMANDS \
+                       (CONFIG_CMD_DFL  | \
+                       CFG_CMD_BSP      | \
+                       CFG_CMD_CACHE    | \
+                       CFG_CMD_DATE     | \
+                       CFG_CMD_DHCP     | \
+                       CFG_CMD_DIAG     | \
+                       CFG_CMD_ELF      | \
+                       CFG_CMD_EXT2     | \
+                       CFG_CMD_FAT      | \
+                       CFG_CMD_HWFLOW   | \
+                       /* CFG_CMD_IDE   | */ \
+                       /* CFG_CMD_IRQ   | */ \
+                       CFG_CMD_JFFS2    | \
+                       CFG_CMD_MMC      | \
+                       CFG_CMD_NAND     | \
+                       CFG_CMD_PING     | \
+                       CFG_CMD_PORTIO   | \
+                       CFG_CMD_REGINFO  | \
+                       CFG_CMD_SAVES    | \
+                       CFG_CMD_USB)
+
+/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
+#include <cmd_confdefs.h>
+
+#define CONFIG_BOOTDELAY       3
+#define CONFIG_BOOTARGS        "root=/dev/sda1 console=ttySAC0,115200 loglevel=8 rootdelay=10"
+/*#define CONFIG_ETHADDR       08:00:3e:26:0a:5b */
+#define CONFIG_NETMASK          255.255.255.0
+#define CONFIG_IPADDR          10.0.0.110
+#define CONFIG_SERVERIP                10.0.0.1
+/*#define CONFIG_BOOTFILE      "elinos-lart" */
+#define CONFIG_BOOTCOMMAND     "mmcinit; ext2load mmc 0 0x32000000 uImage; bootm 0x32000000"
+
+#define CONFIG_DOS_PARTITION   1
+
+#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
+#define CONFIG_KGDB_BAUDRATE   115200          /* speed to run kgdb serial port */
+/* what's this ? it's not used anywhere */
+#define CONFIG_KGDB_SER_INDEX  1               /* which serial port to use */
+#endif
+
+/*
+ * Miscellaneous configurable options
+ */
+#define        CFG_LONGHELP                            /* undef to save memory         */
+#define        CFG_PROMPT              "QT2410 # "     /* Monitor Command Prompt       */
+#define        CFG_CBSIZE              256             /* Console I/O Buffer Size      */
+#define        CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
+#define        CFG_MAXARGS             16              /* max number of command args   */
+#define CFG_BARGSIZE           CFG_CBSIZE      /* Boot Argument Buffer Size    */
+
+#define CFG_MEMTEST_START      0x30000000      /* memtest works on     */
+#define CFG_MEMTEST_END                0x33F00000      /* 63 MB in DRAM        */
+
+#undef  CFG_CLKS_IN_HZ         /* everything, incl board info, in Hz */
+
+#define        CFG_LOAD_ADDR           0x33000000      /* default load address */
+
+/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */
+/* it to wrap 100 times (total 1562500) to get 1 sec. */
+#define        CFG_HZ                  1562500
+
+/* valid baudrates */
+#define CFG_BAUDRATE_TABLE     { 9600, 19200, 38400, 57600, 115200 }
+
+/*-----------------------------------------------------------------------
+ * Stack sizes
+ *
+ * The stack sizes are set up in start.S using the settings below
+ */
+#define CONFIG_STACKSIZE       (128*1024)      /* regular stack */
+#ifdef CONFIG_USE_IRQ
+#define CONFIG_STACKSIZE_IRQ   (4*1024)        /* IRQ stack */
+#define CONFIG_STACKSIZE_FIQ   (4*1024)        /* FIQ stack */
+#endif
+
+/* IDE/ATA config */
+
+#if 0
+#define CFG_IDE_MAXBUS         1
+#define CFG_IDE_MAXDEVICE      2
+#define CFG_IDE_PREINIT                0
+
+#define CFG_ATA_BASE_ADDR      
+#endif
+
+#define CONFIG_USB_OHCI                1
+
+/*-----------------------------------------------------------------------
+ * Physical Memory Map
+ */
+#define CONFIG_NR_DRAM_BANKS   1          /* we have 1 bank of DRAM */
+#define PHYS_SDRAM_1           0x30000000 /* SDRAM Bank #1 */
+#define PHYS_SDRAM_1_SIZE      0x04000000 /* 64 MB */
+#define PHYS_SDRAM_RES_SIZE    0x00200000 /* 2 MB for frame buffer */
+
+#define PHYS_FLASH_1           0x00000000 /* Flash Bank #1 */
+
+#define CFG_FLASH_BASE         PHYS_FLASH_1
+
+/*-----------------------------------------------------------------------
+ * FLASH and environment organization
+ */
+
+#define CONFIG_AMD_LV400       1       /* uncomment this if you have a LV400 flash */
+#if 0
+#define CONFIG_AMD_LV800       1       /* uncomment this if you have a LV800 flash */
+#endif
+
+#define CFG_MAX_FLASH_BANKS    1       /* max number of memory banks */
+#ifdef CONFIG_AMD_LV800
+#define PHYS_FLASH_SIZE                0x00100000 /* 1MB */
+#define CFG_MAX_FLASH_SECT     (19)    /* max number of sectors on one chip */
+#define CFG_ENV_ADDR           (CFG_FLASH_BASE + 0x0F0000) /* addr of environment */
+#endif
+#ifdef CONFIG_AMD_LV400
+#define PHYS_FLASH_SIZE                0x00080000 /* 512KB */
+#define CFG_MAX_FLASH_SECT     (11)    /* max number of sectors on one chip */
+#define CFG_ENV_ADDR           (CFG_FLASH_BASE + 0x070000) /* addr of environment */
+#endif
+
+/* timeout values are in ticks */
+#define CFG_FLASH_ERASE_TOUT   (5*CFG_HZ) /* Timeout for Flash Erase */
+#define CFG_FLASH_WRITE_TOUT   (5*CFG_HZ) /* Timeout for Flash Write */
+
+#define        CFG_ENV_IS_IN_NAND      1
+#define CFG_ENV_SIZE           0x4000          /* 16k Total Size of Environment Sector */
+#define CFG_ENV_OFFSET         0x30000         /* environment after bootloader */
+
+#define NAND_MAX_CHIPS         1
+#define CFG_NAND_BASE          0x4e000000
+#define CFG_MAX_NAND_DEVICE    1
+
+#define CONFIG_MMC             1
+#define CFG_MMC_BASE           0xff000000
+
+#define CONFIG_EXT2            1
+
+/* FAT driver in u-boot is broken currently */
+#define CONFIG_FAT             1
+#define CONFIG_SUPPORT_VFAT
+
+/* ATAG configuration */
+#define CONFIG_INITRD_TAG              1
+#define CONFIG_SETUP_MEMORY_TAGS       1
+#define CONFIG_CMDLINE_TAG             1
+#if 0
+#define CONFIG_SERIAL_TAG              1
+#define CONFIG_REVISION_TAG            1
+#endif
+
+
+#if 0
+#define CONFIG_VIDEO
+#define CONFIG_VIDEO_S3C2410
+#define CONFIG_CFB_CONSOLE
+#define CONFIG_VIDEO_LOGO
+#define CONFIG_VGA_AS_SINGLE_DEVICE
+
+#define VIDEO_KBD_INIT_FCT     0
+#define VIDEO_TSTC_FCT         serial_tstc
+#define VIDEO_GETC_FCT         serial_getc
+
+#define LCD_VIDEO_ADDR         0x33d00000
+#endif
+
+#endif /* __CONFIG_H */
diff --git a/packages/uboot/files/u-boot-20060807-qt2410.patch b/packages/uboot/files/u-boot-20060807-qt2410.patch
new file mode 100644 (file)
index 0000000..ed9f987
--- /dev/null
@@ -0,0 +1,8435 @@
+diff --git a/Makefile b/Makefile
+index 128ae59..5d7b5bb 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1638,6 +1638,9 @@ omap730p2_cs3boot_config :       unconfig
+ sbc2410x_config: unconfig
+       @./mkconfig $(@:_config=) arm arm920t sbc2410x NULL s3c24x0
++qt2410_config :       unconfig
++      @./mkconfig $(@:_config=) arm arm920t qt2410 NULL s3c24x0
++
+ scb9328_config        :       unconfig
+       @./mkconfig $(@:_config=) arm arm920t scb9328 NULL imx
+diff --git a/board/qt2410/Makefile b/board/qt2410/Makefile
+new file mode 100644
+index 0000000..407b256
+--- /dev/null
++++ b/board/qt2410/Makefile
+@@ -0,0 +1,47 @@
++#
++# (C) Copyright 2000, 2001, 2002
++# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
++#
++# 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 $(TOPDIR)/config.mk
++
++LIB   = lib$(BOARD).a
++
++OBJS  := qt2410.o flash.o
++SOBJS := lowlevel_init.o
++
++$(LIB):       $(OBJS) $(SOBJS)
++      $(AR) crv $@ $(OBJS) $(SOBJS)
++
++clean:
++      rm -f $(SOBJS) $(OBJS)
++
++distclean:    clean
++      rm -f $(LIB) core *.bak .depend
++
++#########################################################################
++
++.depend:      Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c)
++              $(CC) -M $(CPPFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@
++
++-include .depend
++
++#########################################################################
+diff --git a/board/qt2410/config.mk b/board/qt2410/config.mk
+new file mode 100644
+index 0000000..1af85da
+--- /dev/null
++++ b/board/qt2410/config.mk
+@@ -0,0 +1,25 @@
++#
++# (C) Copyright 2002
++# Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
++# David Mueller, ELSOFT AG, <d.mueller@elsoft.ch>
++#
++# SAMSUNG SMDK2410 board with S3C2410X (ARM920T) cpu
++#
++# see http://www.samsung.com/ for more information on SAMSUNG
++#
++
++#
++# SMDK2410 has 1 bank of 64 MB DRAM
++#
++# 3000'0000 to 3400'0000
++#
++# Linux-Kernel is expected to be at 3000'8000, entry 3000'8000
++# optionally with a ramdisk at 3080'0000
++#
++# we load ourself to 33F8'0000
++#
++# download area is 3300'0000
++#
++
++
++TEXT_BASE = 0x33F80000
+diff --git a/board/qt2410/flash.c b/board/qt2410/flash.c
+new file mode 100644
+index 0000000..993946b
+--- /dev/null
++++ b/board/qt2410/flash.c
+@@ -0,0 +1,433 @@
++/*
++ * (C) Copyright 2002
++ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
++ * Alex Zuepke <azu@sysgo.de>
++ *
++ * 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>
++
++ulong myflush (void);
++
++
++#define FLASH_BANK_SIZE       PHYS_FLASH_SIZE
++#define MAIN_SECT_SIZE  0x10000       /* 64 KB */
++
++flash_info_t flash_info[CFG_MAX_FLASH_BANKS];
++
++
++#define CMD_READ_ARRAY                0x000000F0
++#define CMD_UNLOCK1           0x000000AA
++#define CMD_UNLOCK2           0x00000055
++#define CMD_ERASE_SETUP               0x00000080
++#define CMD_ERASE_CONFIRM     0x00000030
++#define CMD_PROGRAM           0x000000A0
++#define CMD_UNLOCK_BYPASS     0x00000020
++
++#define MEM_FLASH_ADDR1               (*(volatile u16 *)(CFG_FLASH_BASE + (0x00000555 << 1)))
++#define MEM_FLASH_ADDR2               (*(volatile u16 *)(CFG_FLASH_BASE + (0x000002AA << 1)))
++
++#define BIT_ERASE_DONE                0x00000080
++#define BIT_RDY_MASK          0x00000080
++#define BIT_PROGRAM_ERROR     0x00000020
++#define BIT_TIMEOUT           0x80000000      /* our flag */
++
++#define READY 1
++#define ERR   2
++#define TMO   4
++
++/*-----------------------------------------------------------------------
++ */
++
++ulong flash_init (void)
++{
++      int i, j;
++      ulong size = 0;
++
++      for (i = 0; i < CFG_MAX_FLASH_BANKS; i++) {
++              ulong flashbase = 0;
++
++              flash_info[i].flash_id =
++#if defined(CONFIG_AMD_LV400)
++                      (AMD_MANUFACT & FLASH_VENDMASK) |
++                      (AMD_ID_LV400B & FLASH_TYPEMASK);
++#elif defined(CONFIG_AMD_LV800)
++                      (AMD_MANUFACT & FLASH_VENDMASK) |
++                      (AMD_ID_LV800B & FLASH_TYPEMASK);
++#else
++#error "Unknown flash configured"
++#endif
++                      flash_info[i].size = FLASH_BANK_SIZE;
++              flash_info[i].sector_count = CFG_MAX_FLASH_SECT;
++              memset (flash_info[i].protect, 0, CFG_MAX_FLASH_SECT);
++              if (i == 0)
++                      flashbase = PHYS_FLASH_1;
++              else
++                      panic ("configured too many flash banks!\n");
++              for (j = 0; j < flash_info[i].sector_count; j++) {
++                      if (j <= 3) {
++                              /* 1st one is 16 KB */
++                              if (j == 0) {
++                                      flash_info[i].start[j] =
++                                              flashbase + 0;
++                              }
++
++                              /* 2nd and 3rd are both 8 KB */
++                              if ((j == 1) || (j == 2)) {
++                                      flash_info[i].start[j] =
++                                              flashbase + 0x4000 + (j -
++                                                                    1) *
++                                              0x2000;
++                              }
++
++                              /* 4th 32 KB */
++                              if (j == 3) {
++                                      flash_info[i].start[j] =
++                                              flashbase + 0x8000;
++                              }
++                      } else {
++                              flash_info[i].start[j] =
++                                      flashbase + (j - 3) * MAIN_SECT_SIZE;
++                      }
++              }
++              size += flash_info[i].size;
++      }
++
++      flash_protect (FLAG_PROTECT_SET,
++                     CFG_FLASH_BASE,
++                     CFG_FLASH_BASE + monitor_flash_len - 1,
++                     &flash_info[0]);
++
++      flash_protect (FLAG_PROTECT_SET,
++                     CFG_ENV_ADDR,
++                     CFG_ENV_ADDR + CFG_ENV_SIZE - 1, &flash_info[0]);
++
++      return size;
++}
++
++/*-----------------------------------------------------------------------
++ */
++void flash_print_info (flash_info_t * info)
++{
++      int i;
++
++      switch (info->flash_id & FLASH_VENDMASK) {
++      case (AMD_MANUFACT & FLASH_VENDMASK):
++              printf ("AMD: ");
++              break;
++      default:
++              printf ("Unknown Vendor ");
++              break;
++      }
++
++      switch (info->flash_id & FLASH_TYPEMASK) {
++      case (AMD_ID_LV400B & FLASH_TYPEMASK):
++              printf ("1x Amd29LV400BB (4Mbit)\n");
++              break;
++      case (AMD_ID_LV800B & FLASH_TYPEMASK):
++              printf ("1x Amd29LV800BB (8Mbit)\n");
++              break;
++      default:
++              printf ("Unknown Chip Type\n");
++              goto Done;
++              break;
++      }
++
++      printf ("  Size: %ld MB in %d Sectors\n",
++              info->size >> 20, info->sector_count);
++
++      printf ("  Sector Start Addresses:");
++      for (i = 0; i < info->sector_count; i++) {
++              if ((i % 5) == 0) {
++                      printf ("\n   ");
++              }
++              printf (" %08lX%s", info->start[i],
++                      info->protect[i] ? " (RO)" : "     ");
++      }
++      printf ("\n");
++
++      Done:;
++}
++
++/*-----------------------------------------------------------------------
++ */
++
++int flash_erase (flash_info_t * info, int s_first, int s_last)
++{
++      ushort result;
++      int iflag, cflag, prot, sect;
++      int rc = ERR_OK;
++      int chip;
++
++      /* first look for protection bits */
++
++      if (info->flash_id == FLASH_UNKNOWN)
++              return ERR_UNKNOWN_FLASH_TYPE;
++
++      if ((s_first < 0) || (s_first > s_last)) {
++              return ERR_INVAL;
++      }
++
++      if ((info->flash_id & FLASH_VENDMASK) !=
++          (AMD_MANUFACT & FLASH_VENDMASK)) {
++              return ERR_UNKNOWN_FLASH_VENDOR;
++      }
++
++      prot = 0;
++      for (sect = s_first; sect <= s_last; ++sect) {
++              if (info->protect[sect]) {
++                      prot++;
++              }
++      }
++      if (prot)
++              return ERR_PROTECTED;
++
++      /*
++       * Disable interrupts which might cause a timeout
++       * here. Remember that our exception vectors are
++       * at address 0 in the flash, and we don't want a
++       * (ticker) exception to happen while the flash
++       * chip is in programming mode.
++       */
++      cflag = icache_status ();
++      icache_disable ();
++      iflag = disable_interrupts ();
++
++      /* Start erase on unprotected sectors */
++      for (sect = s_first; sect <= s_last && !ctrlc (); sect++) {
++              printf ("Erasing sector %2d ... ", sect);
++
++              /* arm simple, non interrupt dependent timer */
++              reset_timer_masked ();
++
++              if (info->protect[sect] == 0) { /* not protected */
++                      vu_short *addr = (vu_short *) (info->start[sect]);
++
++                      MEM_FLASH_ADDR1 = CMD_UNLOCK1;
++                      MEM_FLASH_ADDR2 = CMD_UNLOCK2;
++                      MEM_FLASH_ADDR1 = CMD_ERASE_SETUP;
++
++                      MEM_FLASH_ADDR1 = CMD_UNLOCK1;
++                      MEM_FLASH_ADDR2 = CMD_UNLOCK2;
++                      *addr = CMD_ERASE_CONFIRM;
++
++                      /* wait until flash is ready */
++                      chip = 0;
++
++                      do {
++                              result = *addr;
++
++                              /* check timeout */
++                              if (get_timer_masked () >
++                                  CFG_FLASH_ERASE_TOUT) {
++                                      MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
++                                      chip = TMO;
++                                      break;
++                              }
++
++                              if (!chip
++                                  && (result & 0xFFFF) & BIT_ERASE_DONE)
++                                      chip = READY;
++
++                              if (!chip
++                                  && (result & 0xFFFF) & BIT_PROGRAM_ERROR)
++                                      chip = ERR;
++
++                      } while (!chip);
++
++                      MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
++
++                      if (chip == ERR) {
++                              rc = ERR_PROG_ERROR;
++                              goto outahere;
++                      }
++                      if (chip == TMO) {
++                              rc = ERR_TIMOUT;
++                              goto outahere;
++                      }
++
++                      printf ("ok.\n");
++              } else {        /* it was protected */
++
++                      printf ("protected!\n");
++              }
++      }
++
++      if (ctrlc ())
++              printf ("User Interrupt!\n");
++
++      outahere:
++      /* allow flash to settle - wait 10 ms */
++      udelay_masked (10000);
++
++      if (iflag)
++              enable_interrupts ();
++
++      if (cflag)
++              icache_enable ();
++
++      return rc;
++}
++
++/*-----------------------------------------------------------------------
++ * Copy memory to flash
++ */
++
++volatile static int write_hword (flash_info_t * info, ulong dest, ushort data)
++{
++      vu_short *addr = (vu_short *) dest;
++      ushort result;
++      int rc = ERR_OK;
++      int cflag, iflag;
++      int chip;
++
++      /*
++       * Check if Flash is (sufficiently) erased
++       */
++      result = *addr;
++      if ((result & data) != data)
++              return ERR_NOT_ERASED;
++
++
++      /*
++       * Disable interrupts which might cause a timeout
++       * here. Remember that our exception vectors are
++       * at address 0 in the flash, and we don't want a
++       * (ticker) exception to happen while the flash
++       * chip is in programming mode.
++       */
++      cflag = icache_status ();
++      icache_disable ();
++      iflag = disable_interrupts ();
++
++      MEM_FLASH_ADDR1 = CMD_UNLOCK1;
++      MEM_FLASH_ADDR2 = CMD_UNLOCK2;
++      MEM_FLASH_ADDR1 = CMD_UNLOCK_BYPASS;
++      *addr = CMD_PROGRAM;
++      *addr = data;
++
++      /* arm simple, non interrupt dependent timer */
++      reset_timer_masked ();
++
++      /* wait until flash is ready */
++      chip = 0;
++      do {
++              result = *addr;
++
++              /* check timeout */
++              if (get_timer_masked () > CFG_FLASH_ERASE_TOUT) {
++                      chip = ERR | TMO;
++                      break;
++              }
++              if (!chip && ((result & 0x80) == (data & 0x80)))
++                      chip = READY;
++
++              if (!chip && ((result & 0xFFFF) & BIT_PROGRAM_ERROR)) {
++                      result = *addr;
++
++                      if ((result & 0x80) == (data & 0x80))
++                              chip = READY;
++                      else
++                              chip = ERR;
++              }
++
++      } while (!chip);
++
++      *addr = CMD_READ_ARRAY;
++
++      if (chip == ERR || *addr != data)
++              rc = ERR_PROG_ERROR;
++
++      if (iflag)
++              enable_interrupts ();
++
++      if (cflag)
++              icache_enable ();
++
++      return rc;
++}
++
++/*-----------------------------------------------------------------------
++ * Copy memory to flash.
++ */
++
++int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
++{
++      ulong cp, wp;
++      int l;
++      int i, rc;
++      ushort data;
++
++      wp = (addr & ~1);       /* get lower word aligned address */
++
++      /*
++       * handle unaligned start bytes
++       */
++      if ((l = addr - wp) != 0) {
++              data = 0;
++              for (i = 0, cp = wp; i < l; ++i, ++cp) {
++                      data = (data >> 8) | (*(uchar *) cp << 8);
++              }
++              for (; i < 2 && cnt > 0; ++i) {
++                      data = (data >> 8) | (*src++ << 8);
++                      --cnt;
++                      ++cp;
++              }
++              for (; cnt == 0 && i < 2; ++i, ++cp) {
++                      data = (data >> 8) | (*(uchar *) cp << 8);
++              }
++
++              if ((rc = write_hword (info, wp, data)) != 0) {
++                      return (rc);
++              }
++              wp += 2;
++      }
++
++      /*
++       * handle word aligned part
++       */
++      while (cnt >= 2) {
++              data = *((vu_short *) src);
++              if ((rc = write_hword (info, wp, data)) != 0) {
++                      return (rc);
++              }
++              src += 2;
++              wp += 2;
++              cnt -= 2;
++      }
++
++      if (cnt == 0) {
++              return ERR_OK;
++      }
++
++      /*
++       * handle unaligned tail bytes
++       */
++      data = 0;
++      for (i = 0, cp = wp; i < 2 && cnt > 0; ++i, ++cp) {
++              data = (data >> 8) | (*src++ << 8);
++              --cnt;
++      }
++      for (; i < 2; ++i, ++cp) {
++              data = (data >> 8) | (*(uchar *) cp << 8);
++      }
++
++      return write_hword (info, wp, data);
++}
+diff --git a/board/qt2410/lowlevel_init.S b/board/qt2410/lowlevel_init.S
+new file mode 100644
+index 0000000..310f2a0
+--- /dev/null
++++ b/board/qt2410/lowlevel_init.S
+@@ -0,0 +1,167 @@
++/*
++ * Memory Setup stuff - taken from blob memsetup.S
++ *
++ * Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) and
++ *                     Jan-Derk Bakker (J.D.Bakker@its.tudelft.nl)
++ *
++ * Modified for the Samsung SMDK2410 by
++ * (C) Copyright 2002
++ * David Mueller, ELSOFT AG, <d.mueller@elsoft.ch>
++ *
++ * 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 <config.h>
++#include <version.h>
++
++
++/* some parameters for the board */
++
++/*
++ *
++ * Taken from linux/arch/arm/boot/compressed/head-s3c2410.S
++ *
++ * Copyright (C) 2002 Samsung Electronics SW.LEE  <hitchcar@sec.samsung.com>
++ *
++ */
++
++#define BWSCON        0x48000000
++
++/* BWSCON */
++#define DW8                   (0x0)
++#define DW16                  (0x1)
++#define DW32                  (0x2)
++#define WAIT                  (0x1<<2)
++#define UBLB                  (0x1<<3)
++
++#define B1_BWSCON             (DW32)
++#define B2_BWSCON             (DW16)
++#define B3_BWSCON             (DW16 + WAIT + UBLB)
++#define B4_BWSCON             (DW16)
++#define B5_BWSCON             (DW16)
++#define B6_BWSCON             (DW32)
++#define B7_BWSCON             (DW32)
++
++/* BANK0CON */
++#define B0_Tacs                       0x0     /*  0clk */
++#define B0_Tcos                       0x0     /*  0clk */
++#define B0_Tacc                       0x7     /* 14clk */
++#define B0_Tcoh                       0x0     /*  0clk */
++#define B0_Tah                        0x0     /*  0clk */
++#define B0_Tacp                       0x0
++#define B0_PMC                        0x0     /* normal */
++
++/* BANK1CON */
++#define B1_Tacs                       0x0     /*  0clk */
++#define B1_Tcos                       0x0     /*  0clk */
++#define B1_Tacc                       0x7     /* 14clk */
++#define B1_Tcoh                       0x0     /*  0clk */
++#define B1_Tah                        0x0     /*  0clk */
++#define B1_Tacp                       0x0
++#define B1_PMC                        0x0
++
++#define B2_Tacs                       0x0
++#define B2_Tcos                       0x0
++#define B2_Tacc                       0x7
++#define B2_Tcoh                       0x0
++#define B2_Tah                        0x0
++#define B2_Tacp                       0x0
++#define B2_PMC                        0x0
++
++#define B3_Tacs                       0x0     /*  0clk */
++#define B3_Tcos                       0x3     /*  4clk */
++#define B3_Tacc                       0x7     /* 14clk */
++#define B3_Tcoh                       0x1     /*  1clk */
++#define B3_Tah                        0x0     /*  0clk */
++#define B3_Tacp                       0x3     /*  6clk */
++#define B3_PMC                        0x0     /* normal */
++
++#define B4_Tacs                       0x0     /*  0clk */
++#define B4_Tcos                       0x0     /*  0clk */
++#define B4_Tacc                       0x7     /* 14clk */
++#define B4_Tcoh                       0x0     /*  0clk */
++#define B4_Tah                        0x0     /*  0clk */
++#define B4_Tacp                       0x0
++#define B4_PMC                        0x0     /* normal */
++
++#define B5_Tacs                       0x0     /*  0clk */
++#define B5_Tcos                       0x0     /*  0clk */
++#define B5_Tacc                       0x7     /* 14clk */
++#define B5_Tcoh                       0x0     /*  0clk */
++#define B5_Tah                        0x0     /*  0clk */
++#define B5_Tacp                       0x0
++#define B5_PMC                        0x0     /* normal */
++
++#define B6_MT                 0x3     /* SDRAM */
++#define B6_Trcd                       0x1
++#define B6_SCAN                       0x1     /* 9bit */
++
++#define B7_MT                 0x3     /* SDRAM */
++#define B7_Trcd                       0x1     /* 3clk */
++#define B7_SCAN                       0x1     /* 9bit */
++
++/* REFRESH parameter */
++#define REFEN                 0x1     /* Refresh enable */
++#define TREFMD                        0x0     /* CBR(CAS before RAS)/Auto refresh */
++#define Trp                   0x0     /* 2clk */
++#define Trc                   0x3     /* 7clk */
++#define Tchr                  0x2     /* 3clk */
++#define REFCNT                        1113    /* period=15.6us, HCLK=60Mhz, (2048+1-15.6*60) */
++/**************************************/
++
++_TEXT_BASE:
++      .word   TEXT_BASE
++
++.globl lowlevel_init
++lowlevel_init:
++      /* memory control configuration */
++      /* make r0 relative the current location so that it */
++      /* reads SMRDATA out of FLASH rather than memory ! */
++      ldr     r0, =SMRDATA
++      ldr     r1, _TEXT_BASE
++      sub     r0, r0, r1
++      ldr     r1, =BWSCON     /* Bus Width Status Controller */
++      add     r2, r0, #13*4
++0:
++      ldr     r3, [r0], #4
++      str     r3, [r1], #4
++      cmp     r2, r0
++      bne     0b
++
++      /* everything is fine now */
++      mov     pc, lr
++
++      .ltorg
++/* the literal pools origin */
++
++SMRDATA:
++    .word (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28))
++    .word ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))
++    .word ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC))
++    .word ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC))
++    .word ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC))
++    .word ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC))
++    .word ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC))
++    .word ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN))
++    .word ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN))
++    .word ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT)
++    .word 0x32
++    .word 0x30
++    .word 0x30
+diff --git a/board/qt2410/qt2410.c b/board/qt2410/qt2410.c
+new file mode 100644
+index 0000000..133b748
+--- /dev/null
++++ b/board/qt2410/qt2410.c
+@@ -0,0 +1,130 @@
++/*
++ * (C) Copyright 2002
++ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
++ * Marius Groeger <mgroeger@sysgo.de>
++ *
++ * (C) Copyright 2002
++ * David Mueller, ELSOFT AG, <d.mueller@elsoft.ch>
++ *
++ * 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>
++#include <s3c2410.h>
++
++DECLARE_GLOBAL_DATA_PTR;
++
++#define FCLK_SPEED 1
++
++#if FCLK_SPEED==0             /* Fout = 203MHz, Fin = 12MHz for Audio */
++#define M_MDIV        0xC3
++#define M_PDIV        0x4
++#define M_SDIV        0x1
++#elif FCLK_SPEED==1           /* Fout = 202.8MHz */
++#if 0
++#define M_MDIV        0xA1
++#define M_PDIV        0x3
++#define M_SDIV        0x1
++#else
++#define M_MDIV        0x5c
++#define M_PDIV        0x4
++#define M_SDIV        0x0
++#endif
++#endif
++
++#define USB_CLOCK 1
++
++#if USB_CLOCK==0
++#define U_M_MDIV      0xA1
++#define U_M_PDIV      0x3
++#define U_M_SDIV      0x1
++#elif USB_CLOCK==1
++#define U_M_MDIV      0x48
++#define U_M_PDIV      0x3
++#define U_M_SDIV      0x2
++#endif
++
++static inline void delay (unsigned long loops)
++{
++      __asm__ volatile ("1:\n"
++        "subs %0, %1, #1\n"
++        "bne 1b":"=r" (loops):"0" (loops));
++}
++
++/*
++ * Miscellaneous platform dependent initialisations
++ */
++
++int board_init (void)
++{
++      S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
++      S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
++
++      /* to reduce PLL lock time, adjust the LOCKTIME register */
++      clk_power->LOCKTIME = 0xFFFFFF;
++
++      /* configure MPLL */
++      clk_power->MPLLCON = ((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV);
++
++      /* some delay between MPLL and UPLL */
++      delay (4000);
++
++      /* configure UPLL */
++      clk_power->UPLLCON = ((U_M_MDIV << 12) + (U_M_PDIV << 4) + U_M_SDIV);
++
++      /* some delay between MPLL and UPLL */
++      delay (8000);
++
++      /* set up the I/O ports */
++      gpio->GPACON = 0x007FFFFF;
++      gpio->GPBCON = 0x00044555;
++      gpio->GPBUP = 0x000007FF;
++      gpio->GPCCON = 0xAAAAAAAA;
++      gpio->GPCUP = 0x0000FFFF;
++      gpio->GPDCON = 0xAAAAAAAA;
++      gpio->GPDUP = 0x0000FFFF;
++      gpio->GPECON = 0xAAAAAAAA;
++      gpio->GPEUP = 0x0000FFFF;
++      gpio->GPFCON = 0x000055AA;
++      gpio->GPFUP = 0x000000FF;
++      gpio->GPGCON = 0xFF95FFBA;
++      //gpio->GPGUP = 0x0000FFFF;
++      gpio->GPGUP = 0x0000AFEF;
++      gpio->GPHCON = 0x0028FAAA;
++      gpio->GPHUP = 0x000007FF;
++
++      /* arch number of SMDK2410-Board */
++      gd->bd->bi_arch_number = MACH_TYPE_QT2410;
++
++      /* adress of boot parameters */
++      gd->bd->bi_boot_params = 0x30000100;
++
++      icache_enable();
++      dcache_enable();
++
++      return 0;
++}
++
++int dram_init (void)
++{
++      gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
++      gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
++
++      return 0;
++}
+diff --git a/board/qt2410/u-boot.lds b/board/qt2410/u-boot.lds
+new file mode 100644
+index 0000000..f4fbf96
+--- /dev/null
++++ b/board/qt2410/u-boot.lds
+@@ -0,0 +1,57 @@
++/*
++ * (C) Copyright 2002
++ * Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
++ *
++ * 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
++ */
++
++OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
++/*OUTPUT_FORMAT("elf32-arm", "elf32-arm", "elf32-arm")*/
++OUTPUT_ARCH(arm)
++ENTRY(_start)
++SECTIONS
++{
++      . = 0x00000000;
++
++      . = ALIGN(4);
++      .text      :
++      {
++        cpu/arm920t/start.o   (.text)
++        *(.text)
++      }
++
++      . = ALIGN(4);
++      .rodata : { *(.rodata) }
++
++      . = ALIGN(4);
++      .data : { *(.data) }
++
++      . = ALIGN(4);
++      .got : { *(.got) }
++
++      . = .;
++      __u_boot_cmd_start = .;
++      .u_boot_cmd : { *(.u_boot_cmd) }
++      __u_boot_cmd_end = .;
++
++      . = ALIGN(4);
++      __bss_start = .;
++      .bss : { *(.bss) }
++      _end = .;
++}
+diff --git a/cpu/arm920t/s3c24x0/Makefile b/cpu/arm920t/s3c24x0/Makefile
+index af9e4ef..10f33f2 100644
+--- a/cpu/arm920t/s3c24x0/Makefile
++++ b/cpu/arm920t/s3c24x0/Makefile
+@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
+ LIB   = lib$(SOC).a
+ OBJS  = i2c.o interrupts.o serial.o speed.o \
+-        usb_ohci.o
++        usb_ohci.o mmc.o nand_read.o nand.o
+ all:  .depend $(LIB)
+diff --git a/cpu/arm920t/s3c24x0/mmc.c b/cpu/arm920t/s3c24x0/mmc.c
+new file mode 100644
+index 0000000..b7057e2
+--- /dev/null
++++ b/cpu/arm920t/s3c24x0/mmc.c
+@@ -0,0 +1,568 @@
++/*
++ * u-boot S3C2410 MMC/SD card driver
++ * (C) Copyright 2006 by Harald Welte <laforge@gnumonks.org>
++ *
++ * based on u-boot pxa MMC driver and linux/drivers/mmc/s3c2410mci.c
++ * (C) 2005-2005 Thomas Kleffel
++ *
++ * 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 <config.h>
++#include <common.h>
++#include <mmc.h>
++#include <asm/errno.h>
++#include <asm/io.h>
++#include <s3c2410.h>
++#include <part.h>
++
++#ifdef CONFIG_MMC
++
++#define CONFIG_MMC_WIDE
++
++//#define MMC_DEBUG
++
++#ifdef MMC_DEBUG
++#ifdef debug
++#undef debug
++#endif
++#define debug printf
++#endif
++
++static S3C2410_SDI *sdi;
++
++extern int
++fat_register_device(block_dev_desc_t *dev_desc, int part_no);
++
++static block_dev_desc_t mmc_dev;
++
++block_dev_desc_t * mmc_get_dev(int dev)
++{
++      return ((block_dev_desc_t *)&mmc_dev);
++}
++
++/*
++ * FIXME needs to read cid and csd info to determine block size
++ * and other parameters
++ */
++static uchar mmc_buf[MMC_BLOCK_SIZE];
++static mmc_csd_t mmc_csd;
++static int mmc_ready = 0;
++static int wide = 0;
++
++
++#define CMD_F_RESP    0x01
++#define CMD_F_RESP_LONG       0x02
++
++static u_int32_t *
++/****************************************************/
++mmc_cmd(ushort cmd, ulong arg, ushort flags)
++/****************************************************/
++{
++      static u_int32_t resp[5];
++      ulong status;
++      int i;
++
++      u_int32_t ccon, csta;
++      u_int32_t csta_rdy_bit = S3C2410_SDICMDSTAT_CMDSENT;
++
++      memset(resp, 0, sizeof(resp));
++
++      debug("mmc_cmd CMD%d arg=0x%08x flags=%x\n", cmd, arg, flags);
++
++      sdi->SDICSTA = 0xffffffff;
++      sdi->SDIDSTA = 0xffffffff;
++      sdi->SDIFSTA = 0xffffffff;
++
++      sdi->SDICARG = arg;
++
++      ccon = cmd & S3C2410_SDICMDCON_INDEX;
++      ccon |= S3C2410_SDICMDCON_SENDERHOST|S3C2410_SDICMDCON_CMDSTART;
++      
++      if (flags & CMD_F_RESP) {
++              ccon |= S3C2410_SDICMDCON_WAITRSP;
++              csta_rdy_bit = S3C2410_SDICMDSTAT_RSPFIN; /* 1 << 9 */
++      }
++
++      if (flags & CMD_F_RESP_LONG)
++              ccon |= S3C2410_SDICMDCON_LONGRSP;
++
++      sdi->SDICCON = ccon;
++
++      while (1) {
++              csta = sdi->SDICSTA;
++              if (csta & csta_rdy_bit)
++                      break;
++              if (csta & S3C2410_SDICMDSTAT_CMDTIMEOUT) {
++                      printf("===============> MMC CMD Timeout\n");
++                      sdi->SDICSTA |= S3C2410_SDICMDSTAT_CMDTIMEOUT;
++                      break;
++              }
++      }
++
++      debug("final MMC CMD status 0x%x\n", csta);
++
++      sdi->SDICSTA |= csta_rdy_bit;
++
++      if (flags & CMD_F_RESP) {
++              resp[0] = sdi->SDIRSP0;
++              resp[1] = sdi->SDIRSP1;
++              resp[2] = sdi->SDIRSP2;
++              resp[3] = sdi->SDIRSP3;
++      } 
++
++#if 0
++      for (i=0; i<4; i ++) {
++              debug("MMC resp[%d] = 0x%08x\n", i, resp[i]);
++      }
++#endif
++
++      return resp;
++}
++
++#define FIFO_FILL(host) ((host->SDIFSTA & S3C2410_SDIFSTA_COUNTMASK) >> 2)
++
++static int
++/****************************************************/
++mmc_block_read(uchar *dst, ulong src, ulong len)
++/****************************************************/
++{
++      u_int32_t dcon, fifo;
++      u_int32_t *dst_u32 = (u_int32_t *)dst;
++      u_int32_t *resp;
++
++      if (len == 0) {
++              return 0;
++      }
++
++      debug("mmc_block_rd dst %lx src %lx len %d\n", (ulong)dst, src, len);
++
++      /* set block len */
++      resp = mmc_cmd(MMC_CMD_SET_BLOCKLEN, len, CMD_F_RESP);
++      sdi->SDIBSIZE = len;
++
++      //sdi->SDIPRE = 0xff;
++
++      /* setup data */
++      dcon = (len >> 9) & S3C2410_SDIDCON_BLKNUM_MASK;
++      dcon |= S3C2410_SDIDCON_BLOCKMODE;
++      dcon |= S3C2410_SDIDCON_RXAFTERCMD|S3C2410_SDIDCON_XFER_RXSTART;
++      if (wide)
++              dcon |= S3C2410_SDIDCON_WIDEBUS;
++      sdi->SDIDCON = dcon;
++
++      /* send read command */
++      resp = mmc_cmd(MMC_CMD_READ_BLOCK, src, CMD_F_RESP);
++
++      while (len > 0) {
++              u_int32_t sdidsta = sdi->SDIDSTA;
++              fifo = FIFO_FILL(sdi);
++              if (sdidsta & (S3C2410_SDIDSTA_FIFOFAIL|
++                              S3C2410_SDIDSTA_CRCFAIL|
++                              S3C2410_SDIDSTA_RXCRCFAIL|
++                              S3C2410_SDIDSTA_DATATIMEOUT)) {
++                      printf("mmc_block_read: err SDIDSTA=0x%08x\n", sdidsta);
++                      return -EIO;
++              }
++
++              while (fifo--) {
++                      //debug("dst_u32 = 0x%08x\n", dst_u32);
++                      *(dst_u32++) = sdi->SDIDAT;
++                      if (len >= 4)
++                              len -= 4;
++                      else {
++                              len = 0;
++                              break;
++                      }
++              }
++      }
++
++#if 1
++      debug("waiting for SDIDSTA  (currently 0x%08x\n", sdi->SDIDSTA);
++      while (!(sdi->SDIDSTA & (1 << 4))) {}
++      debug("done waiting for SDIDSTA (currently 0x%08x\n", sdi->SDIDSTA);
++#endif
++
++      sdi->SDIDCON = 0;
++
++#if 0
++      if (!(sdi->SDIDSTA & S3C2410_SDIDSTA_XFERFINISH))
++              printf("mmc_block_read; transfer not finished!\n");
++#endif
++
++      return 0;
++}
++
++static int
++/****************************************************/
++mmc_block_write(ulong dst, uchar *src, int len)
++/****************************************************/
++{
++#if 0
++      uchar *resp;
++      ushort argh, argl;
++      ulong status;
++
++      if (len == 0) {
++              return 0;
++      }
++
++      debug("mmc_block_wr dst %lx src %lx len %d\n", dst, (ulong)src, len);
++
++      argh = len >> 16;
++      argl = len & 0xffff;
++
++      /* set block len */
++      resp = mmc_cmd(MMC_CMD_SET_BLOCKLEN, argh, argl, CMD_F_RESP);
++
++      /* send write command */
++      argh = dst >> 16;
++      argl = dst & 0xffff;
++      MMC_STRPCL = MMC_STRPCL_STOP_CLK;
++      MMC_NOB = 1;
++      MMC_BLKLEN = len;
++      resp = mmc_cmd(MMC_CMD_WRITE_BLOCK, dst, CMD_F_RESP,
++                      MMC_CMDAT_R1|MMC_CMDAT_WRITE|MMC_CMDAT_BLOCK|MMC_CMDAT_DATA_EN);
++
++      MMC_I_MASK = ~MMC_I_MASK_TXFIFO_WR_REQ;
++      while (len) {
++              if (MMC_I_REG & MMC_I_REG_TXFIFO_WR_REQ) {
++                      int i, bytes = min(32,len);
++
++                      for (i=0; i<bytes; i++) {
++                              MMC_TXFIFO = *src++;
++                      }
++                      if (bytes < 32) {
++                              MMC_PRTBUF = MMC_PRTBUF_BUF_PART_FULL;
++                      }
++                      len -= bytes;
++              }
++              status = MMC_STAT;
++              if (status & MMC_STAT_ERRORS) {
++                      printf("MMC_STAT error %lx\n", status);
++                      return -1;
++              }
++      }
++      MMC_I_MASK = ~MMC_I_MASK_DATA_TRAN_DONE;
++      while (!(MMC_I_REG & MMC_I_REG_DATA_TRAN_DONE));
++      MMC_I_MASK = ~MMC_I_MASK_PRG_DONE;
++      while (!(MMC_I_REG & MMC_I_REG_PRG_DONE));
++      status = MMC_STAT;
++      if (status & MMC_STAT_ERRORS) {
++              printf("MMC_STAT error %lx\n", status);
++              return -1;
++      }
++#endif
++      return 0;
++}
++
++
++int
++/****************************************************/
++mmc_read(ulong src, uchar *dst, int size)
++/****************************************************/
++{
++      ulong end, part_start, part_end, part_len, aligned_start, aligned_end;
++      ulong mmc_block_size, mmc_block_address;
++
++      if (size == 0) {
++              return 0;
++      }
++
++      if (!mmc_ready) {
++              printf("Please initialize the MMC first\n");
++              return -1;
++      }
++
++      mmc_block_size = MMC_BLOCK_SIZE;
++      mmc_block_address = ~(mmc_block_size - 1);
++
++      src -= CFG_MMC_BASE;
++      end = src + size;
++      part_start = ~mmc_block_address & src;
++      part_end = ~mmc_block_address & end;
++      aligned_start = mmc_block_address & src;
++      aligned_end = mmc_block_address & end;
++
++      /* all block aligned accesses */
++      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++      src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++      if (part_start) {
++              part_len = mmc_block_size - part_start;
++              debug("ps src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++              src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++              if ((mmc_block_read(mmc_buf, aligned_start, mmc_block_size)) < 0) {
++                      return -1;
++              }
++              memcpy(dst, mmc_buf+part_start, part_len);
++              dst += part_len;
++              src += part_len;
++      }
++      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++      src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++      for (; src < aligned_end; src += mmc_block_size, dst += mmc_block_size) {
++              debug("al src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++              src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++              if ((mmc_block_read((uchar *)(dst), src, mmc_block_size)) < 0) {
++                      return -1;
++              }
++      }
++      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++      src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++      if (part_end && src < end) {
++              debug("pe src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++              src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++              if ((mmc_block_read(mmc_buf, aligned_end, mmc_block_size)) < 0) {
++                      return -1;
++              }
++              memcpy(dst, mmc_buf, part_end);
++      }
++      return 0;
++}
++
++int
++/****************************************************/
++mmc_write(uchar *src, ulong dst, int size)
++/****************************************************/
++{
++      ulong end, part_start, part_end, part_len, aligned_start, aligned_end;
++      ulong mmc_block_size, mmc_block_address;
++
++      if (size == 0) {
++              return 0;
++      }
++
++      if (!mmc_ready) {
++              printf("Please initialize the MMC first\n");
++              return -1;
++      }
++
++      mmc_block_size = MMC_BLOCK_SIZE;
++      mmc_block_address = ~(mmc_block_size - 1);
++
++      dst -= CFG_MMC_BASE;
++      end = dst + size;
++      part_start = ~mmc_block_address & dst;
++      part_end = ~mmc_block_address & end;
++      aligned_start = mmc_block_address & dst;
++      aligned_end = mmc_block_address & end;
++
++      /* all block aligned accesses */
++      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++      src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++      if (part_start) {
++              part_len = mmc_block_size - part_start;
++              debug("ps src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++              (ulong)src, dst, end, part_start, part_end, aligned_start, aligned_end);
++              if ((mmc_block_read(mmc_buf, aligned_start, mmc_block_size)) < 0) {
++                      return -1;
++              }
++              memcpy(mmc_buf+part_start, src, part_len);
++              if ((mmc_block_write(aligned_start, mmc_buf, mmc_block_size)) < 0) {
++                      return -1;
++              }
++              dst += part_len;
++              src += part_len;
++      }
++      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++      src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++      for (; dst < aligned_end; src += mmc_block_size, dst += mmc_block_size) {
++              debug("al src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++              src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++              if ((mmc_block_write(dst, (uchar *)src, mmc_block_size)) < 0) {
++                      return -1;
++              }
++      }
++      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++      src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++      if (part_end && dst < end) {
++              debug("pe src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++              src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++              if ((mmc_block_read(mmc_buf, aligned_end, mmc_block_size)) < 0) {
++                      return -1;
++              }
++              memcpy(mmc_buf, src, part_end);
++              if ((mmc_block_write(aligned_end, mmc_buf, mmc_block_size)) < 0) {
++                      return -1;
++              }
++      }
++      return 0;
++}
++
++ulong
++/****************************************************/
++mmc_bread(int dev_num, ulong blknr, ulong blkcnt, ulong *dst)
++/****************************************************/
++{
++      int mmc_block_size = MMC_BLOCK_SIZE;
++      ulong src = blknr * mmc_block_size + CFG_MMC_BASE;
++
++      mmc_read(src, (uchar *)dst, blkcnt*mmc_block_size);
++      return blkcnt;
++}
++
++static u_int16_t rca = MMC_DEFAULT_RCA;
++
++static u_int32_t mmc_size(const struct mmc_csd *csd)
++{
++      u_int32_t block_len, mult, blocknr;
++
++      block_len = csd->read_bl_len << 12;
++      mult = csd->c_size_mult1 << 8;
++      blocknr = (csd->c_size+1) * mult;
++
++      return blocknr * block_len;
++}
++
++int
++/****************************************************/
++mmc_init(int verbose)
++/****************************************************/
++{
++      int retries, rc = -ENODEV;
++      int is_sd = 0;
++      u_int32_t *resp;
++      S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
++      
++      sdi = S3C2410_GetBase_SDI();
++
++      debug("mmc_init(PCLK=%u)\n", get_PCLK());
++
++      clk_power->CLKCON |= (1 << 9);
++
++      /* S3C2410 has some bug that prevents reliable operation at higher speed */
++      //sdi->SDIPRE = 0x3e;  /* SDCLK = PCLK/2 / (SDIPRE+1) = 396kHz */
++      sdi->SDIPRE = 0x02;  /* SDCLK = PCLK/2 / (SDIPRE+1) = 396kHz */
++      sdi->SDIBSIZE = 512;
++      sdi->SDIDTIMER = 0xffff;
++      sdi->SDIIMSK = 0x0;
++      sdi->SDICON = S3C2410_SDICON_FIFORESET|S3C2440_SDICON_MMCCLOCK;
++      udelay(125000); /* FIXME: 74 SDCLK cycles */
++
++      mmc_csd.c_size = 0;
++
++      /* reset */
++      retries = 10;
++      resp = mmc_cmd(MMC_CMD_RESET, 0, 0);
++
++      printf("trying to detect SD Card...\n");
++      while (retries--) {
++              int i;
++              udelay(100000);
++              resp = mmc_cmd(55, 0x00000000, CMD_F_RESP);
++              resp = mmc_cmd(41, 0x00300000, CMD_F_RESP);
++
++              if (resp[0] & (1 << 31)) {
++                      is_sd = 1;
++                      break;
++              }
++      }
++
++      if (retries == 0 && !is_sd) {
++              retries = 10;
++              printf("failed to detect SD Card, trying MMC\n");
++              resp = mmc_cmd(MMC_CMD_SEND_OP_COND, 0x00ffc000, CMD_F_RESP);
++              while (retries-- && resp && !(resp[4] & 0x80)) {
++                      debug("resp %x %x\n", resp[0], resp[1]);
++                      udelay(50);
++                      resp = mmc_cmd(1, 0x00ffff00, CMD_F_RESP);
++              }
++      }
++
++      /* try to get card id */
++      resp = mmc_cmd(MMC_CMD_ALL_SEND_CID, 0, CMD_F_RESP|CMD_F_RESP_LONG);
++      if (resp) {
++              /* TODO configure mmc driver depending on card attributes */
++              mmc_cid_t *cid = (mmc_cid_t *)resp;
++              if (verbose) {
++                      printf("MMC found. Card desciption is:\n");
++                      printf("Manufacturer ID = %02x%02x%02x\n",
++                                                      cid->id[0], cid->id[1], cid->id[2]);
++                      printf("HW/FW Revision = %x %x\n",cid->hwrev, cid->fwrev);
++                      cid->hwrev = cid->fwrev = 0;    /* null terminate string */
++                      printf("Product Name = %s\n",cid->name);
++                      printf("Serial Number = %02x%02x%02x\n",
++                                                      cid->sn[0], cid->sn[1], cid->sn[2]);
++                      printf("Month = %d\n",cid->month);
++                      printf("Year = %d\n",1997 + cid->year);
++              }
++              /* fill in device description */
++              mmc_dev.if_type = IF_TYPE_MMC;
++              mmc_dev.part_type = PART_TYPE_DOS;
++              mmc_dev.dev = 0;
++              mmc_dev.lun = 0;
++              mmc_dev.type = 0;
++              /* FIXME fill in the correct size (is set to 32MByte) */
++              mmc_dev.blksz = 512;
++              mmc_dev.lba = 0x10000;
++              sprintf(mmc_dev.vendor,"Man %02x%02x%02x Snr %02x%02x%02x",
++                              cid->id[0], cid->id[1], cid->id[2],
++                              cid->sn[0], cid->sn[1], cid->sn[2]);
++              sprintf(mmc_dev.product,"%s",cid->name);
++              sprintf(mmc_dev.revision,"%x %x",cid->hwrev, cid->fwrev);
++              mmc_dev.removable = 0;
++              mmc_dev.block_read = mmc_bread;
++
++              /* MMC exists, get CSD too */
++              resp = mmc_cmd(MMC_CMD_SET_RCA, MMC_DEFAULT_RCA, CMD_F_RESP);
++              if (is_sd)
++                      rca = resp[0] >> 16;
++                      
++              resp = mmc_cmd(MMC_CMD_SEND_CSD, rca<<16, CMD_F_RESP|CMD_F_RESP_LONG);
++              if (resp) {
++                      mmc_csd_t *csd = (mmc_csd_t *)resp;
++                      memcpy(&mmc_csd, csd, sizeof(csd));
++                      rc = 0;
++                      mmc_ready = 1;
++                      /* FIXME add verbose printout for csd */
++                      printf("READ_BL_LEN=%u, C_SIZE_MULT=%u, C_SIZE=%u\n", 
++                              csd->read_bl_len, csd->c_size_mult1, csd->c_size);
++                      printf("size = %u\n", mmc_size(csd));
++              }
++      }
++
++      resp = mmc_cmd(MMC_CMD_SELECT_CARD, rca<<16, CMD_F_RESP);
++
++#ifdef CONFIG_MMC_WIDE
++      if (is_sd) {
++              resp = mmc_cmd(55, rca<<16, CMD_F_RESP);
++              resp = mmc_cmd(6, 0x02, CMD_F_RESP);
++              wide = 1;
++      }
++#endif
++
++      fat_register_device(&mmc_dev,1); /* partitions start counting with 1 */
++
++      return rc;
++}
++
++int
++mmc_ident(block_dev_desc_t *dev)
++{
++      return 0;
++}
++
++int
++mmc2info(ulong addr)
++{
++      /* FIXME hard codes to 32 MB device */
++      if (addr >= CFG_MMC_BASE && addr < CFG_MMC_BASE + 0x02000000) {
++              return 1;
++      }
++      return 0;
++}
++
++#endif        /* CONFIG_MMC */
+diff --git a/cpu/arm920t/s3c24x0/nand.c b/cpu/arm920t/s3c24x0/nand.c
+new file mode 100644
+index 0000000..f720229
+--- /dev/null
++++ b/cpu/arm920t/s3c24x0/nand.c
+@@ -0,0 +1,212 @@
++/*
++ * (C) Copyright 2006 Harald Welte <hwelte@hmw-consulting.de>
++ *
++ * 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 0
++#define DEBUGN        printf
++#else
++#define DEBUGN(x, args ...) {}
++#endif
++
++#if (CONFIG_COMMANDS & CFG_CMD_NAND)
++#if !defined(CFG_NAND_LEGACY)
++
++#include <nand.h>
++#include <s3c2410.h>
++
++#define __REGb(x)     (*(volatile unsigned char *)(x))
++#define __REGi(x)     (*(volatile unsigned int *)(x))
++
++#define       NF_BASE         0x4e000000
++#define       NFCONF          __REGi(NF_BASE + 0x0)
++#define       NFCMD           __REGb(NF_BASE + 0x4)
++#define       NFADDR          __REGb(NF_BASE + 0x8)
++#define       NFDATA          __REGb(NF_BASE + 0xc)
++#define       NFSTAT          __REGb(NF_BASE + 0x10)
++
++#define S3C2410_NFCONF_EN          (1<<15)
++#define S3C2410_NFCONF_512BYTE     (1<<14)
++#define S3C2410_NFCONF_4STEP       (1<<13)
++#define S3C2410_NFCONF_INITECC     (1<<12)
++#define S3C2410_NFCONF_nFCE        (1<<11)
++#define S3C2410_NFCONF_TACLS(x)    ((x)<<8)
++#define S3C2410_NFCONF_TWRPH0(x)   ((x)<<4)
++#define S3C2410_NFCONF_TWRPH1(x)   ((x)<<0)
++
++static u16 s3c2410_read_word(struct mtd_info *mtd)
++{
++      unsigned char byte = 0;
++
++      printf("s3c2410_read_word: WARNING, this function is not implemented yet\n");
++      return byte;    
++}
++
++static void s3c2410_write_word(struct mtd_info *mtd, u16 word)
++{
++      printf("s3c2410_write_word: WARNING, this function is not implemented yet\n");
++}
++
++static void s3c2410_hwcontrol(struct mtd_info *mtd, int cmd)
++{
++      struct nand_chip *chip = mtd->priv;
++
++      DEBUGN("hwcontrol(): 0x%02x: ", cmd);
++
++      switch (cmd) {
++      case NAND_CTL_SETNCE:
++              NFCONF &= ~S3C2410_NFCONF_nFCE;
++              DEBUGN("NFCONF=0x%08x\n", NFCONF);
++              break;
++      case NAND_CTL_CLRNCE:
++              NFCONF |= S3C2410_NFCONF_nFCE;
++              DEBUGN("NFCONF=0x%08x\n", NFCONF);
++              break;
++      case NAND_CTL_SETALE:
++              chip->IO_ADDR_W = NF_BASE + 0x8;
++              DEBUGN("SETALE\n");
++              break;
++      case NAND_CTL_SETCLE:
++              chip->IO_ADDR_W = NF_BASE + 0x4;
++              DEBUGN("SETCLE\n");
++              break;
++      default:
++              chip->IO_ADDR_W = NF_BASE + 0xc;
++              break;
++      }
++      return;
++}
++
++static int s3c2410_dev_ready(struct mtd_info *mtd)
++{
++      DEBUGN("dev_ready\n");
++      return (NFSTAT & 0x01);
++}
++
++static void s3c2410_cmdfunc(struct mtd_info *mtd, unsigned cmd,
++                          int column, int page_addr)
++{
++      DEBUGN("cmdfunc(): 0x%02x, col=%d, page=%d\n", cmd, column, page_addr);
++
++      switch (cmd) {
++      case NAND_CMD_READ0:
++      case NAND_CMD_READ1:
++      case NAND_CMD_READOOB:
++              NFCMD = cmd;
++              NFADDR = column & 0xff;
++              NFADDR = page_addr & 0xff;
++              NFADDR = (page_addr >> 8) & 0xff;
++              NFADDR = (page_addr >> 16) & 0xff;
++              break;
++      case NAND_CMD_READID:
++              NFCMD = cmd;
++              NFADDR = 0;
++              break;
++      case NAND_CMD_PAGEPROG:
++              NFCMD = cmd;
++              printf("PAGEPROG not implemented\n");
++              break;
++      case NAND_CMD_ERASE1:
++              NFCMD = cmd;
++              NFADDR = page_addr & 0xff;
++              NFADDR = (page_addr >> 8) & 0xff;
++              NFADDR = (page_addr >> 16) & 0xff;
++              break;
++      case NAND_CMD_ERASE2:
++              NFCMD = cmd;
++              break;
++      case NAND_CMD_SEQIN:
++              printf("SEQIN not implemented\n");
++              break;
++      case NAND_CMD_STATUS:
++              NFCMD = cmd;
++              break;
++      case NAND_CMD_RESET:
++              NFCMD = cmd;
++              break;
++      default:
++              break;
++      }
++
++      while (!s3c2410_dev_ready(mtd));
++}
++
++void board_nand_init(struct nand_chip *nand)
++{
++      u_int32_t cfg;
++      u_int8_t tacls, twrph0, twrph1;
++      S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
++
++      DEBUGN("board_nand_init()\n");
++
++      clk_power->CLKCON |= (1 << 4);
++
++      /* initialize hardware */
++      twrph0 = 3; twrph1 = 0; tacls = 0;
++
++      /* default timings: maximum */
++      //twrph0 = 8; twrph1 = 8; tacls = 8;
++
++      cfg = S3C2410_NFCONF_EN;
++      cfg |= S3C2410_NFCONF_TACLS(tacls - 1);
++      cfg |= S3C2410_NFCONF_TWRPH0(twrph0 - 1);
++      cfg |= S3C2410_NFCONF_TWRPH1(twrph1 - 1);
++
++      //NFCONF = cfg;
++      NFCONF = 0xf842;
++
++      /* initialize nand_chip data structure */
++      nand->IO_ADDR_R = nand->IO_ADDR_W = 0x4e00000c;
++
++      /* read_buf and write_buf are default */
++      /* read_byte and write_byte are default */
++
++      /* need to override word read/write since default routines try 16bit wide
++       * register access of an (in our case) 8bit register */
++      nand->read_word = s3c2410_read_word;
++      nand->write_word = s3c2410_write_word;
++
++      /* hwcontrol always must be implemented */
++      nand->hwcontrol = s3c2410_hwcontrol;
++
++      nand->dev_ready = s3c2410_dev_ready;
++
++      nand->eccmode = NAND_ECC_SOFT;
++      nand->options = 0;
++      //nand->waitfunc = dfc_wait;
++
++      //nand->cmdfunc = s3c2410_cmdfunc;
++      //nand->autooob = &delta_oob;
++      //nand->badblock_pattern = &delta_bbt_descr;
++      
++#if 0
++      /* reset */
++      nand->hwcontrol(NULL, NAND_CTL_SETNCE);
++      nand->cmdfunc(NULL, NAND_CMD_RESET, -1, -1);
++      while (nand->dev_ready(NULL) == 0) {}
++      nand->hwcontrol(NULL, NAND_CTL_CLRNCE);
++#endif
++
++      DEBUGN("end of nand_init\n");
++}
++
++#else
++ #error "U-Boot legacy NAND support not available for S3C2410"
++#endif
++#endif
+diff --git a/cpu/arm920t/s3c24x0/nand_read.c b/cpu/arm920t/s3c24x0/nand_read.c
+new file mode 100644
+index 0000000..9d97932
+--- /dev/null
++++ b/cpu/arm920t/s3c24x0/nand_read.c
+@@ -0,0 +1,75 @@
++/* 
++ * nand_read.c: Simple NAND read functions for booting from NAND
++ *
++ * Taken from GPLv2 licensed vivi bootloader,
++ * Copyright (C) 2002 MIZI Research, Inc.
++ *
++ * Author: Hwang, Chideok <hwang@mizi.com>
++ * Date  : $Date: 2004/02/04 10:37:37 $
++ *
++ * u-boot integration (C) 2006 by Harald Welte <hwelte@hmw-consulting.de>
++ */
++
++#include <common.h>
++
++#ifdef CONFIG_S3C2410_NAND_BOOT
++
++#define __REGb(x)     (*(volatile unsigned char *)(x))
++#define __REGi(x)     (*(volatile unsigned int *)(x))
++#define NF_BASE               0x4e000000
++#define NFCONF                __REGi(NF_BASE + 0x0)
++#define NFCMD         __REGb(NF_BASE + 0x4)
++#define NFADDR                __REGb(NF_BASE + 0x8)
++#define NFDATA                __REGb(NF_BASE + 0xc)
++#define NFSTAT                __REGb(NF_BASE + 0x10)
++
++#define BUSY 1
++inline void wait_idle(void) {
++    int i;
++
++    while(!(NFSTAT & BUSY))
++      for(i=0; i<10; i++);
++}
++
++#define NAND_SECTOR_SIZE      512
++#define NAND_BLOCK_MASK               (NAND_SECTOR_SIZE - 1)
++
++/* low level nand read function */
++int
++nand_read_ll(unsigned char *buf, unsigned long start_addr, int size)
++{
++    int i, j;
++
++    if ((start_addr & NAND_BLOCK_MASK) || (size & NAND_BLOCK_MASK)) {
++        return -1;    /* invalid alignment */
++    }
++
++    /* chip Enable */
++    NFCONF &= ~0x800;
++    for(i=0; i<10; i++);
++
++    for(i=start_addr; i < (start_addr + size);) {
++      /* READ0 */
++      NFCMD = 0;
++
++      /* Write Address */
++      NFADDR = i & 0xff;
++      NFADDR = (i >> 9) & 0xff;
++      NFADDR = (i >> 17) & 0xff;
++      NFADDR = (i >> 25) & 0xff;
++
++      wait_idle();
++
++      for(j=0; j < NAND_SECTOR_SIZE; j++, i++) {
++      *buf = (NFDATA & 0xff);
++      buf++;
++      }
++    }
++
++    /* chip Disable */
++    NFCONF |= 0x800;  /* chip disable */
++
++    return 0;
++}
++
++#endif /* CONFIG_S3C2410_NAND_BOOT */
+diff --git a/cpu/arm920t/start.S b/cpu/arm920t/start.S
+index 346f0d0..232e2c2 100644
+--- a/cpu/arm920t/start.S
++++ b/cpu/arm920t/start.S
+@@ -5,6 +5,10 @@
+  *  Copyright (c) 2002        Alex Züpke <azu@sysgo.de>
+  *  Copyright (c) 2002        Gary Jennejohn <gj@denx.de>
+  *
++ * S3C2410 NAND portions
++ *  Copyright (c) 2001  MIZI Research, Inc.
++ *  Copyright (c) 2006  Harald Welte <hwelte@hmw-consulting.de>
++ *
+  * See file CREDITS for list of people who contributed to this
+  * project.
+  *
+@@ -27,6 +31,7 @@
+ #include <config.h>
+ #include <version.h>
++#include <s3c2410.h>
+ /*
+@@ -161,6 +166,7 @@ #ifndef CONFIG_SKIP_LOWLEVEL_INIT
+ #endif
+ #ifndef CONFIG_SKIP_RELOCATE_UBOOT
++#ifndef CONFIG_S3C2410_NAND_BOOT
+ relocate:                             /* relocate U-Boot to RAM           */
+       adr     r0, _start              /* r0 <- current position of code   */
+       ldr     r1, _TEXT_BASE          /* test if we run from flash or RAM */
+@@ -177,6 +183,93 @@ copy_loop:
+       stmia   r1!, {r3-r10}           /* copy to   target address [r1]    */
+       cmp     r0, r2                  /* until source end addreee [r2]    */
+       ble     copy_loop
++#else /* NAND_BOOT */
++relocate:
++copy_myself:
++      /* mov  r10, lr */
++
++      @ reset NAND
++      mov     r1, #S3C2410_NAND_BASE
++      ldr     r2, =0xf842             @ initial value enable tacls=3,rph0=6,rph1=0
++      str     r2, [r1, #oNFCONF]
++      ldr     r2, [r1, #oNFCONF]
++      bic     r2, r2, #0x800          @ enable chip
++      str     r2, [r1, #oNFCONF]
++      mov     r2, #0xff               @ RESET command
++      strb    r2, [r1, #oNFCMD]
++      mov     r3, #0                  @ wait 
++1:    add     r3, r3, #0x1
++      cmp     r3, #0xa
++      blt     1b
++2:    ldr     r2, [r1, #oNFSTAT]      @ wait ready
++      tst     r2, #0x1
++      beq     2b
++      ldr     r2, [r1, #oNFCONF]
++      orr     r2, r2, #0x800          @ disable chip
++      str     r2, [r1, #oNFCONF]
++
++#if 0
++      @ get ready to call C functions (for nand_read())
++      ldr     sp, DW_STACK_START      @ setup stack pointer
++      mov     fp, #0                  @ no previous frame, so fp=0
++#else
++      ldr     r0, _TEXT_BASE          /* upper 128 KiB: relocated uboot   */
++      sub     r0, r0, #CFG_MALLOC_LEN /* malloc area                      */
++      sub     r0, r0, #CFG_GBL_DATA_SIZE /* bdinfo                        */
++#ifdef CONFIG_USE_IRQ
++      sub     r0, r0, #(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ)
++#endif
++      sub     sp, r0, #12             /* leave 3 words for abort-stack    */
++#endif
++
++      @ copy u-boot to RAM
++      ldr     r0, _TEXT_BASE
++      mov     r1, #0x0
++      mov     r2, #0x30000
++      bl      nand_read_ll
++
++      tst     r0, #0x0
++      beq     ok_nand_read
++#ifdef CONFIG_DEBUG_LL
++bad_nand_read: 
++      ldr     r0, STR_FAIL
++      ldr     r1, SerBase
++      bl      PrintWord
++1:    b       1b              @ infinite loop 
++#endif
++      
++ok_nand_read:
++#ifdef CONFIG_DEBUG_LL
++      ldr     r0, STR_OK
++      ldr     r1, SerBase
++      bl      PrintWord
++#endif
++
++      @ verify
++      mov     r0, #0
++      @ldr    r1, =0x33f00000
++      ldr     r1, _TEXT_BASE
++      mov     r2, #0x400      @ 4 bytes * 1024 = 4K-bytes
++go_next:
++      ldr     r3, [r0], #4
++      ldr     r4, [r1], #4
++      teq     r3, r4
++      bne     notmatch
++      subs    r2, r2, #4
++      beq     done_nand_read  
++      bne     go_next
++notmatch:
++#ifdef CONFIG_DEBUG_LL
++      sub     r0, r0, #4
++      ldr     r1, SerBase
++      bl      PrintHexWord
++      ldr     r0, STR_FAIL
++      ldr     r1, SerBase
++      bl      PrintWord
++#endif
++1:    b       1b
++done_nand_read:
++#endif /* NAND_BOOT */
+ #endif        /* CONFIG_SKIP_RELOCATE_UBOOT */
+       /* Set up the stack                                                 */
+diff --git a/drivers/Makefile b/drivers/Makefile
+index 9be95c7..eef266a 100644
+--- a/drivers/Makefile
++++ b/drivers/Makefile
+@@ -50,7 +50,7 @@ OBJS = 3c589.o 5701rls.o ali512x.o \
+         videomodes.o w83c553f.o \
+         ks8695eth.o \
+         pxa_pcmcia.o mpc8xx_pcmcia.o tqm8xx_pcmcia.o  \
+-        rpx_pcmcia.o
++        rpx_pcmcia.o s3c2410_fb.o
+ all:  $(LIB)
+diff --git a/drivers/cs8900.c b/drivers/cs8900.c
+index 082434c..1cce622 100644
+--- a/drivers/cs8900.c
++++ b/drivers/cs8900.c
+@@ -120,6 +120,7 @@ void cs8900_get_enetaddr (uchar * addr)
+       unsigned char env_enetaddr[6];
+       char *tmp = getenv ("ethaddr");
+       char *end;
++      unsigned short chip_id;
+       for (i=0; i<6; i++) {
+               env_enetaddr[i] = tmp ? simple_strtoul(tmp, &end, 16) : 0;
+@@ -128,7 +129,9 @@ void cs8900_get_enetaddr (uchar * addr)
+       }
+       /* verify chip id */
+-      if (get_reg_init_bus (PP_ChipID) != 0x630e)
++      chip_id = get_reg_init_bus (PP_ChipID);
++      printf("\ncs8900a chipid 0x%04x\n", chip_id);
++      if (chip_id != 0x630e)
+               return;
+       eth_reset ();
+       if ((get_reg (PP_SelfST) & (PP_SelfSTAT_EEPROM | PP_SelfSTAT_EEPROM_OK)) ==
+diff --git a/drivers/s3c2410_fb.c b/drivers/s3c2410_fb.c
+new file mode 100644
+index 0000000..fc389a9
+--- /dev/null
++++ b/drivers/s3c2410_fb.c
+@@ -0,0 +1,182 @@
++/*
++ * (C) Copyright 2006 Harald Welte <hwelte@hmw-consulting.de>
++ *
++ * 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_VIDEO_S3C2410)
++
++#include <video_fb.h>
++#include "videomodes.h"
++#include <s3c2410.h>
++/*
++ * Export Graphic Device
++ */
++GraphicDevice smi;
++
++#define VIDEO_MEM_SIZE        0x200000
++
++/*******************************************************************************
++ *
++ * Init video chip with common Linux graphic modes (lilo)
++ */
++void *video_hw_init (void)
++{
++      S3C24X0_LCD * const lcd = S3C24X0_GetBase_LCD();
++      GraphicDevice *pGD = (GraphicDevice *)&smi;
++      int videomode;
++      unsigned long t1, hsynch, vsynch;
++      char *penv;
++      int tmp, i, bits_per_pixel;
++      struct ctfb_res_modes *res_mode;
++      struct ctfb_res_modes var_mode;
++      unsigned char videoout;
++      unsigned int *vm;
++
++      /* Search for video chip */
++      printf("Video: ");
++
++      tmp = 0;
++
++      videomode = CFG_DEFAULT_VIDEO_MODE;
++      /* get video mode via environment */
++      if ((penv = getenv ("videomode")) != NULL) {
++              /* deceide if it is a string */
++              if (penv[0] <= '9') {
++                      videomode = (int) simple_strtoul (penv, NULL, 16);
++                      tmp = 1;
++              }
++      } else {
++              tmp = 1;
++      }
++      if (tmp) {
++              /* parameter are vesa modes */
++              /* search params */
++              for (i = 0; i < VESA_MODES_COUNT; i++) {
++                      if (vesa_modes[i].vesanr == videomode)
++                              break;
++              }
++              if (i == VESA_MODES_COUNT) {
++                      printf ("no VESA Mode found, switching to mode 0x%x ", CFG_DEFAULT_VIDEO_MODE);
++                      i = 0;
++              }
++              res_mode =
++                      (struct ctfb_res_modes *) &res_mode_init[vesa_modes[i].
++                                                               resindex];
++              bits_per_pixel = vesa_modes[i].bits_per_pixel;
++      } else {
++
++              res_mode = (struct ctfb_res_modes *) &var_mode;
++              bits_per_pixel = video_get_params (res_mode, penv);
++      }
++
++      /* calculate hsynch and vsynch freq (info only) */
++      t1 = (res_mode->left_margin + res_mode->xres +
++            res_mode->right_margin + res_mode->hsync_len) / 8;
++      t1 *= 8;
++      t1 *= res_mode->pixclock;
++      t1 /= 1000;
++      hsynch = 1000000000L / t1;
++      t1 *=
++              (res_mode->upper_margin + res_mode->yres +
++               res_mode->lower_margin + res_mode->vsync_len);
++      t1 /= 1000;
++      vsynch = 1000000000L / t1;
++
++      /* fill in Graphic device struct */
++      sprintf (pGD->modeIdent, "%dx%dx%d %ldkHz %ldHz", res_mode->xres,
++               res_mode->yres, bits_per_pixel, (hsynch / 1000),
++               (vsynch / 1000));
++      printf ("%s\n", pGD->modeIdent);
++      pGD->winSizeX = res_mode->xres;
++      pGD->winSizeY = res_mode->yres;
++      pGD->plnSizeX = res_mode->xres;
++      pGD->plnSizeY = res_mode->yres;
++      switch (bits_per_pixel) {
++      case 8:
++              pGD->gdfBytesPP = 1;
++              pGD->gdfIndex = GDF__8BIT_INDEX;
++              break;
++      case 15:
++              pGD->gdfBytesPP = 2;
++              pGD->gdfIndex = GDF_15BIT_555RGB;
++              break;
++      case 16:
++              pGD->gdfBytesPP = 2;
++              pGD->gdfIndex = GDF_16BIT_565RGB;
++              break;
++      case 24:
++              pGD->gdfBytesPP = 3;
++              pGD->gdfIndex = GDF_24BIT_888RGB;
++              break;
++      }
++
++#if 0
++      pGD->isaBase = CFG_ISA_IO;
++      pGD->pciBase = pci_mem_base;
++      pGD->dprBase = (pci_mem_base + 0x400000 + 0x8000);
++      pGD->vprBase = (pci_mem_base + 0x400000 + 0xc000);
++      pGD->cprBase = (pci_mem_base + 0x400000 + 0xe000);
++#endif
++      pGD->frameAdrs = LCD_VIDEO_ADDR;
++      pGD->memSize = VIDEO_MEM_SIZE;
++
++      lcd->LCDSADDR1 = LCD_VIDEO_ADDR >> 1;
++      lcd->LCDSADDR2 = (LCD_VIDEO_ADDR + 0x4b000) >> 1;
++      lcd->LCDSADDR3 = 0x000000f0;
++
++      lcd->LCDCON1 = 0x00000479;
++      lcd->LCDCON2 = 0x014fc183;
++      lcd->LCDCON3 = 0x0060ef07;
++      lcd->LCDCON4 = 0x00000003;
++      lcd->LCDCON5 = 0x00000b09;
++      lcd->LPCSEL  = 0x00000cf0;
++
++      pGD->winSizeX = pGD->plnSizeX = 240;
++      pGD->winSizeY = pGD->plnSizeY = 320;
++      pGD->gdfBytesPP = 2;
++      pGD->gdfIndex = GDF_16BIT_565RGB;
++
++      /* Enable  Display  */
++      videoout = 2;       /* Default output is CRT */
++      if ((penv = getenv ("videoout")) != NULL) {
++              /* deceide if it is a string */
++              videoout = (int) simple_strtoul (penv, NULL, 16);
++      }
++
++      printf("clearing video memory\n");
++      /* Clear video memory */
++      i = pGD->memSize/4;
++      vm = (unsigned int *)pGD->frameAdrs;
++      while(i--)
++              *vm++ = 0;
++
++      printf("returning from video_hw_init\n");
++      return ((void*)&smi);
++}
++
++void
++video_set_lut (unsigned int index,    /* color number */
++             unsigned char r, /* red */
++             unsigned char g, /* green */
++             unsigned char b  /* blue */
++    )
++{
++}
++
++#endif /* CONFIG_VIDEO_S3C2410 */
+diff --git a/drivers/usbdcore_s3c2410.c b/drivers/usbdcore_s3c2410.c
+new file mode 100644
+index 0000000..143fdf2
+--- /dev/null
++++ b/drivers/usbdcore_s3c2410.c
+@@ -0,0 +1,1609 @@
++/*
++ * (C) Copyright 2003
++ * Gerry Hamel, geh@ti.com, Texas Instruments
++ *
++ * Based on
++ * linux/drivers/usb/device/bi/omap.c
++ * TI OMAP1510 USB bus interface driver
++ *
++ * Author: MontaVista Software, Inc.
++ *       source@mvista.com
++ *       (C) Copyright 2002
++ *
++ * 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_S3C2410) && defined(CONFIG_USB_DEVICE)
++
++#include <asm/io.h>
++
++#include "usbdcore.h"
++#include "usbdcore_s3c2410.h"
++#include "usbdcore_ep0.h"
++
++
++#define UDC_INIT_MDELAY                    80 /* Device settle delay */
++#define UDC_MAX_ENDPOINTS          31 /* Number of endpoints on this UDC */
++
++/* Some kind of debugging output... */
++#if 1
++#define UDCDBG(str)
++#define UDCDBGA(fmt,args...)
++#else  /* The bugs still exists... */
++#define UDCDBG(str) serial_printf("[%s] %s:%d: " str "\n", __FILE__,__FUNCTION__,__LINE__)
++#define UDCDBGA(fmt,args...) serial_printf("[%s] %s:%d: " fmt "\n", __FILE__,__FUNCTION__,__LINE__, ##args)
++#endif
++
++#if 1
++#define UDCREG(name)
++#define UDCREGL(name)
++#else  /* The bugs still exists... */
++#define UDCREG(name)   serial_printf("%s():%d: %s[%08x]=%.4x\n",__FUNCTION__,__LINE__, (#name), name, inw(name))      /* For 16-bit regs */
++#define UDCREGL(name)  serial_printf("%s():%d: %s[%08x]=%.8x\n",__FUNCTION__,__LINE__, (#name), name, inl(name))      /* For 32-bit regs */
++#endif
++
++
++static struct urb *ep0_urb = NULL;
++
++static struct usb_device_instance *udc_device;        /* Used in interrupt handler */
++static u16 udc_devstat = 0;   /* UDC status (DEVSTAT) */
++static u32 udc_interrupts = 0;
++
++static void udc_stall_ep (unsigned int ep_addr);
++
++
++static struct usb_endpoint_instance *s3c2410_find_ep (int ep)
++{
++      int i;
++
++      for (i = 0; i < udc_device->bus->max_endpoints; i++) {
++              if (udc_device->bus->endpoint_array[i].endpoint_address == ep)
++                      return &udc_device->bus->endpoint_array[i];
++      }
++      return NULL;
++}
++
++/* ************************************************************************** */
++/* IO
++ */
++
++/*
++ * omap1510_prepare_endpoint_for_rx
++ *
++ * This function implements TRM Figure 14-11.
++ *
++ * The endpoint to prepare for transfer is specified as a physical endpoint
++ * number.  For OUT (rx) endpoints 1 through 15, the corresponding endpoint
++ * configuration register is checked to see if the endpoint is ISO or not.
++ * If the OUT endpoint is valid and is non-ISO then its FIFO is enabled.
++ * No action is taken for endpoint 0 or for IN (tx) endpoints 16 through 30.
++ */
++static void omap1510_prepare_endpoint_for_rx (int ep_addr)
++{
++      int ep_num = ep_addr & USB_ENDPOINT_NUMBER_MASK;
++
++      UDCDBGA ("omap1510_prepare_endpoint %x", ep_addr);
++      if (((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT)) {
++              if ((inw (UDC_EP_RX (ep_num)) &
++                   (UDC_EPn_RX_Valid | UDC_EPn_RX_Iso)) ==
++                  UDC_EPn_RX_Valid) {
++                      /* rx endpoint is valid, non-ISO, so enable its FIFO */
++                      outw (UDC_EP_Sel | ep_num, UDC_EP_NUM);
++                      outw (UDC_Set_FIFO_En, UDC_CTRL);
++                      outw (0, UDC_EP_NUM);
++              }
++      }
++}
++
++/* omap1510_configure_endpoints
++ *
++ * This function implements TRM Figure 14-10.
++ */
++static void omap1510_configure_endpoints (struct usb_device_instance *device)
++{
++      int ep;
++      struct usb_bus_instance *bus;
++      struct usb_endpoint_instance *endpoint;
++      unsigned short ep_ptr;
++      unsigned short ep_size;
++      unsigned short ep_isoc;
++      unsigned short ep_doublebuffer;
++      int ep_addr;
++      int packet_size;
++      int buffer_size;
++      int attributes;
++
++      bus = device->bus;
++
++      /* There is a dedicated 2048 byte buffer for USB packets that may be
++       * arbitrarily partitioned among the endpoints on 8-byte boundaries.
++       * The first 8 bytes are reserved for receiving setup packets on
++       * endpoint 0.
++       */
++      ep_ptr = 8;             /* reserve the first 8 bytes for the setup fifo */
++
++      for (ep = 0; ep < bus->max_endpoints; ep++) {
++              endpoint = bus->endpoint_array + ep;
++              ep_addr = endpoint->endpoint_address;
++              if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) {
++                      /* IN endpoint */
++                      packet_size = endpoint->tx_packetSize;
++                      attributes = endpoint->tx_attributes;
++              } else {
++                      /* OUT endpoint */
++                      packet_size = endpoint->rcv_packetSize;
++                      attributes = endpoint->rcv_attributes;
++              }
++
++              switch (packet_size) {
++              case 0:
++                      ep_size = 0;
++                      break;
++              case 8:
++                      ep_size = 0;
++                      break;
++              case 16:
++                      ep_size = 1;
++                      break;
++              case 32:
++                      ep_size = 2;
++                      break;
++              case 64:
++                      ep_size = 3;
++                      break;
++              case 128:
++                      ep_size = 4;
++                      break;
++              case 256:
++                      ep_size = 5;
++                      break;
++              case 512:
++                      ep_size = 6;
++                      break;
++              default:
++                      UDCDBGA ("ep 0x%02x has bad packet size %d",
++                               ep_addr, packet_size);
++                      packet_size = 0;
++                      ep_size = 0;
++                      break;
++              }
++
++              switch (attributes & USB_ENDPOINT_XFERTYPE_MASK) {
++              case USB_ENDPOINT_XFER_CONTROL:
++              case USB_ENDPOINT_XFER_BULK:
++              case USB_ENDPOINT_XFER_INT:
++              default:
++                      /* A non-isochronous endpoint may optionally be
++                       * double-buffered. For now we disable
++                       * double-buffering.
++                       */
++                      ep_doublebuffer = 0;
++                      ep_isoc = 0;
++                      if (packet_size > 64)
++                              packet_size = 0;
++                      if (!ep || !ep_doublebuffer)
++                              buffer_size = packet_size;
++                      else
++                              buffer_size = packet_size * 2;
++                      break;
++              case USB_ENDPOINT_XFER_ISOC:
++                      /* Isochronous endpoints are always double-
++                       * buffered, but the double-buffering bit
++                       * in the endpoint configuration register
++                       * becomes the msb of the endpoint size so we
++                       * set the double-buffering flag to zero.
++                       */
++                      ep_doublebuffer = 0;
++                      ep_isoc = 1;
++                      buffer_size = packet_size * 2;
++                      break;
++              }
++
++              /* check to see if our packet buffer RAM is exhausted */
++              if ((ep_ptr + buffer_size) > 2048) {
++                      UDCDBGA ("out of packet RAM for ep 0x%02x buf size %d", ep_addr, buffer_size);
++                      buffer_size = packet_size = 0;
++              }
++
++              /* force a default configuration for endpoint 0 since it is
++               * always enabled
++               */
++              if (!ep && ((packet_size < 8) || (packet_size > 64))) {
++                      buffer_size = packet_size = 64;
++                      ep_size = 3;
++              }
++
++              if (!ep) {
++                      /* configure endpoint 0 */
++                      outw ((ep_size << 12) | (ep_ptr >> 3), UDC_EP0);
++                      /*UDCDBGA("ep 0 buffer offset 0x%03x packet size 0x%03x", */
++                      /*      ep_ptr, packet_size); */
++              } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) {
++                      /* IN endpoint */
++                      if (packet_size) {
++                              outw ((1 << 15) | (ep_doublebuffer << 14) |
++                                    (ep_size << 12) | (ep_isoc << 11) |
++                                    (ep_ptr >> 3),
++                                    UDC_EP_TX (ep_addr &
++                                               USB_ENDPOINT_NUMBER_MASK));
++                              UDCDBGA ("IN ep %d buffer offset 0x%03x"
++                                       " packet size 0x%03x",
++                                       ep_addr & USB_ENDPOINT_NUMBER_MASK,
++                                       ep_ptr, packet_size);
++                      } else {
++                              outw (0,
++                                    UDC_EP_TX (ep_addr &
++                                               USB_ENDPOINT_NUMBER_MASK));
++                      }
++              } else {
++                      /* OUT endpoint */
++                      if (packet_size) {
++                              outw ((1 << 15) | (ep_doublebuffer << 14) |
++                                    (ep_size << 12) | (ep_isoc << 11) |
++                                    (ep_ptr >> 3),
++                                    UDC_EP_RX (ep_addr &
++                                               USB_ENDPOINT_NUMBER_MASK));
++                              UDCDBGA ("OUT ep %d buffer offset 0x%03x"
++                                       " packet size 0x%03x",
++                                       ep_addr & USB_ENDPOINT_NUMBER_MASK,
++                                       ep_ptr, packet_size);
++                      } else {
++                              outw (0,
++                                    UDC_EP_RX (ep_addr &
++                                               USB_ENDPOINT_NUMBER_MASK));
++                      }
++              }
++              ep_ptr += buffer_size;
++      }
++}
++
++static void s3c2410_deconfigure_device (void)
++{
++      int epnum;
++
++      UDCDBG ("clear Cfg_Lock");
++      outw (inw (UDC_SYSCON1) & ~UDC_Cfg_Lock, UDC_SYSCON1);
++      UDCREG (UDC_SYSCON1);
++
++      /* deconfigure all endpoints */
++      for (epnum = 1; epnum <= 15; epnum++) {
++              outw (0, UDC_EP_RX (epnum));
++              outw (0, UDC_EP_TX (epnum));
++      }
++}
++
++static void s3c2410_configure_device (struct usb_device_instance *device)
++{
++      u_int32_t tmp;
++
++      s3c2410_configure_endpoints(device);
++
++      /* disable EP0-4 SUBD interrupts ? */
++      outw(0x00, S3C2410_UDC_USB_INT_EN_REG);
++
++      /* UPLL already configured by board-level init code */
++
++      /* configure USB pads to device mode */
++      tmp = inw(S3C2410_MISCCR);
++      tmp &= ~(S3C2410_MISCCR_USBHOST|S3C2410_MISCCR_USBSUSPND1);
++      outw(tmp, S3C2410_MISCCR);
++
++      tmp = inb(S3C2410_CLKSLOW);
++      tmp &= ~S3C2410_CLKSLOW_USB_CLK_DISABLE;
++      outw(tmp, S3C2410_CLKSLOW);
++
++      /* clear interrupt registers */
++      inb(S3C2410_UDC_EP_INT_REG);
++      inb(S3C2410_UDC_USB_INT_REG);
++
++      /* enable USB interrupts for RESET and SUSPEND/RESUME */
++      outb(S3C2410_UDC_USBINT_RESET|S3C2410_UDC_USBINT_SUSPEND,
++           S3C2410_UDC_USB_INT_EN_REG);
++
++}
++
++/* omap1510_write_noniso_tx_fifo
++ *
++ * This function implements TRM Figure 14-30.
++ *
++ * If the endpoint has an active tx_urb, then the next packet of data from the
++ * URB is written to the tx FIFO.  The total amount of data in the urb is given
++ * by urb->actual_length.  The maximum amount of data that can be sent in any
++ * one packet is given by endpoint->tx_packetSize.  The number of data bytes
++ * from this URB that have already been transmitted is given by endpoint->sent.
++ * endpoint->last is updated by this routine with the number of data bytes
++ * transmitted in this packet.
++ *
++ * In accordance with Figure 14-30, the EP_NUM register must already have been
++ * written with the value to select the appropriate tx FIFO before this routine
++ * is called.
++ */
++static void omap1510_write_noniso_tx_fifo (struct usb_endpoint_instance
++                                         *endpoint)
++{
++      struct urb *urb = endpoint->tx_urb;
++
++      if (urb) {
++              unsigned int last, i;
++
++              UDCDBGA ("urb->buffer %p, buffer_length %d, actual_length %d",
++                       urb->buffer, urb->buffer_length, urb->actual_length);
++              if ((last =
++                   MIN (urb->actual_length - endpoint->sent,
++                        endpoint->tx_packetSize))) {
++                      u8 *cp = urb->buffer + endpoint->sent;
++
++                      UDCDBGA ("endpoint->sent %d, tx_packetSize %d, last %d", endpoint->sent, endpoint->tx_packetSize, last);
++
++                      if (((u32) cp & 1) == 0) {      /* word aligned? */
++                              outsw (UDC_DATA, cp, last >> 1);
++                      } else {        /* byte aligned. */
++                              for (i = 0; i < (last >> 1); i++) {
++                                      u16 w = ((u16) cp[2 * i + 1] << 8) |
++                                              (u16) cp[2 * i];
++                                      outw (w, UDC_DATA);
++                              }
++                      }
++                      if (last & 1) {
++                              outb (*(cp + last - 1), UDC_DATA);
++                      }
++              }
++              endpoint->last = last;
++      }
++}
++
++/* omap1510_read_noniso_rx_fifo
++ *
++ * This function implements TRM Figure 14-28.
++ *
++ * If the endpoint has an active rcv_urb, then the next packet of data is read
++ * from the rcv FIFO and written to rcv_urb->buffer at offset
++ * rcv_urb->actual_length to append the packet data to the data from any
++ * previous packets for this transfer.        We assume that there is sufficient room
++ * left in the buffer to hold an entire packet of data.
++ *
++ * The return value is the number of bytes read from the FIFO for this packet.
++ *
++ * In accordance with Figure 14-28, the EP_NUM register must already have been
++ * written with the value to select the appropriate rcv FIFO before this routine
++ * is called.
++ */
++static int omap1510_read_noniso_rx_fifo (struct usb_endpoint_instance
++                                       *endpoint)
++{
++      struct urb *urb = endpoint->rcv_urb;
++      int len = 0;
++
++      if (urb) {
++              len = inw (UDC_RXFSTAT);
++
++              if (len) {
++                      unsigned char *cp = urb->buffer + urb->actual_length;
++
++                      insw (UDC_DATA, cp, len >> 1);
++                      if (len & 1)
++                              *(cp + len - 1) = inb (UDC_DATA);
++              }
++      }
++      return len;
++}
++
++/* omap1510_prepare_for_control_write_status
++ *
++ * This function implements TRM Figure 14-17.
++ *
++ * We have to deal here with non-autodecoded control writes that haven't already
++ * been dealt with by ep0_recv_setup.  The non-autodecoded standard control
++ * write requests are:        set/clear endpoint feature, set configuration, set
++ * interface, and set descriptor.  ep0_recv_setup handles set/clear requests for
++ * ENDPOINT_HALT by halting the endpoint for a set request and resetting the
++ * endpoint for a clear request.  ep0_recv_setup returns an error for
++ * SET_DESCRIPTOR requests which causes them to be terminated with a stall by
++ * the setup handler.  A SET_INTERFACE request is handled by ep0_recv_setup by
++ * generating a DEVICE_SET_INTERFACE event.  This leaves only the
++ * SET_CONFIGURATION event for us to deal with here.
++ *
++ */
++static void omap1510_prepare_for_control_write_status (struct urb *urb)
++{
++      struct usb_device_request *request = &urb->device_request;;
++
++      /* check for a SET_CONFIGURATION request */
++      if (request->bRequest == USB_REQ_SET_CONFIGURATION) {
++              int configuration = le16_to_cpu (request->wValue) & 0xff;
++              unsigned short devstat = inw (UDC_DEVSTAT);
++
++              if ((devstat & (UDC_ADD | UDC_CFG)) == UDC_ADD) {
++                      /* device is currently in ADDRESSED state */
++                      if (configuration) {
++                              /* Assume the specified non-zero configuration
++                               * value is valid and switch to the CONFIGURED
++                               * state.
++                               */
++                              outw (UDC_Dev_Cfg, UDC_SYSCON2);
++                      }
++              } else if ((devstat & UDC_CFG) == UDC_CFG) {
++                      /* device is currently in CONFIGURED state */
++                      if (!configuration) {
++                              /* Switch to ADDRESSED state. */
++                              outw (UDC_Clr_Cfg, UDC_SYSCON2);
++                      }
++              }
++      }
++
++      /* select EP0 tx FIFO */
++      outw (UDC_EP_Dir | UDC_EP_Sel, UDC_EP_NUM);
++      /* clear endpoint (no data bytes in status stage) */
++      outw (UDC_Clr_EP, UDC_CTRL);
++      /* enable the EP0 tx FIFO */
++      outw (UDC_Set_FIFO_En, UDC_CTRL);
++      /* deselect the endpoint */
++      outw (UDC_EP_Dir, UDC_EP_NUM);
++}
++
++/* udc_state_transition_up
++ * udc_state_transition_down
++ *
++ * Helper functions to implement device state changes.        The device states and
++ * the events that transition between them are:
++ *
++ *                            STATE_ATTACHED
++ *                            ||      /\
++ *                            \/      ||
++ *    DEVICE_HUB_CONFIGURED                   DEVICE_HUB_RESET
++ *                            ||      /\
++ *                            \/      ||
++ *                            STATE_POWERED
++ *                            ||      /\
++ *                            \/      ||
++ *    DEVICE_RESET                            DEVICE_POWER_INTERRUPTION
++ *                            ||      /\
++ *                            \/      ||
++ *                            STATE_DEFAULT
++ *                            ||      /\
++ *                            \/      ||
++ *    DEVICE_ADDRESS_ASSIGNED                 DEVICE_RESET
++ *                            ||      /\
++ *                            \/      ||
++ *                            STATE_ADDRESSED
++ *                            ||      /\
++ *                            \/      ||
++ *    DEVICE_CONFIGURED                       DEVICE_DE_CONFIGURED
++ *                            ||      /\
++ *                            \/      ||
++ *                            STATE_CONFIGURED
++ *
++ * udc_state_transition_up transitions up (in the direction from STATE_ATTACHED
++ * to STATE_CONFIGURED) from the specified initial state to the specified final
++ * state, passing through each intermediate state on the way.  If the initial
++ * state is at or above (i.e. nearer to STATE_CONFIGURED) the final state, then
++ * no state transitions will take place.
++ *
++ * udc_state_transition_down transitions down (in the direction from
++ * STATE_CONFIGURED to STATE_ATTACHED) from the specified initial state to the
++ * specified final state, passing through each intermediate state on the way.
++ * If the initial state is at or below (i.e. nearer to STATE_ATTACHED) the final
++ * state, then no state transitions will take place.
++ *
++ * These functions must only be called with interrupts disabled.
++ */
++static void udc_state_transition_up (usb_device_state_t initial,
++                                   usb_device_state_t final)
++{
++      if (initial < final) {
++              switch (initial) {
++              case STATE_ATTACHED:
++                      usbd_device_event_irq (udc_device,
++                                             DEVICE_HUB_CONFIGURED, 0);
++                      if (final == STATE_POWERED)
++                              break;
++              case STATE_POWERED:
++                      usbd_device_event_irq (udc_device, DEVICE_RESET, 0);
++                      if (final == STATE_DEFAULT)
++                              break;
++              case STATE_DEFAULT:
++                      usbd_device_event_irq (udc_device,
++                                             DEVICE_ADDRESS_ASSIGNED, 0);
++                      if (final == STATE_ADDRESSED)
++                              break;
++              case STATE_ADDRESSED:
++                      usbd_device_event_irq (udc_device, DEVICE_CONFIGURED,
++                                             0);
++              case STATE_CONFIGURED:
++                      break;
++              default:
++                      break;
++              }
++      }
++}
++
++static void udc_state_transition_down (usb_device_state_t initial,
++                                     usb_device_state_t final)
++{
++      if (initial > final) {
++              switch (initial) {
++              case STATE_CONFIGURED:
++                      usbd_device_event_irq (udc_device, DEVICE_DE_CONFIGURED, 0);
++                      if (final == STATE_ADDRESSED)
++                              break;
++              case STATE_ADDRESSED:
++                      usbd_device_event_irq (udc_device, DEVICE_RESET, 0);
++                      if (final == STATE_DEFAULT)
++                              break;
++              case STATE_DEFAULT:
++                      usbd_device_event_irq (udc_device, DEVICE_POWER_INTERRUPTION, 0);
++                      if (final == STATE_POWERED)
++                              break;
++              case STATE_POWERED:
++                      usbd_device_event_irq (udc_device, DEVICE_HUB_RESET, 0);
++              case STATE_ATTACHED:
++                      break;
++              default:
++                      break;
++              }
++      }
++}
++
++/* Handle all device state changes.
++ * This function implements TRM Figure 14-21.
++ */
++static void omap1510_udc_state_changed (void)
++{
++      u16 bits;
++      u16 devstat = inw (UDC_DEVSTAT);
++
++      UDCDBGA ("state changed, devstat %x, old %x", devstat, udc_devstat);
++
++      bits = devstat ^ udc_devstat;
++      if (bits) {
++              if (bits & UDC_ATT) {
++                      if (devstat & UDC_ATT) {
++                              UDCDBG ("device attached and powered");
++                              udc_state_transition_up (udc_device->device_state, STATE_POWERED);
++                      } else {
++                              UDCDBG ("device detached or unpowered");
++                              udc_state_transition_down (udc_device->device_state, STATE_ATTACHED);
++                      }
++              }
++              if (bits & UDC_USB_Reset) {
++                      if (devstat & UDC_USB_Reset) {
++                              UDCDBG ("device reset in progess");
++                              udc_state_transition_down (udc_device->device_state, STATE_POWERED);
++                      } else {
++                              UDCDBG ("device reset completed");
++                      }
++              }
++              if (bits & UDC_DEF) {
++                      if (devstat & UDC_DEF) {
++                              UDCDBG ("device entering default state");
++                              udc_state_transition_up (udc_device->device_state, STATE_DEFAULT);
++                      } else {
++                              UDCDBG ("device leaving default state");
++                              udc_state_transition_down (udc_device->device_state, STATE_POWERED);
++                      }
++              }
++              if (bits & UDC_SUS) {
++                      if (devstat & UDC_SUS) {
++                              UDCDBG ("entering suspended state");
++                              usbd_device_event_irq (udc_device, DEVICE_BUS_INACTIVE, 0);
++                      } else {
++                              UDCDBG ("leaving suspended state");
++                              usbd_device_event_irq (udc_device, DEVICE_BUS_ACTIVITY, 0);
++                      }
++              }
++              if (bits & UDC_R_WK_OK) {
++                      UDCDBGA ("remote wakeup %s", (devstat & UDC_R_WK_OK)
++                               ? "enabled" : "disabled");
++              }
++              if (bits & UDC_ADD) {
++                      if (devstat & UDC_ADD) {
++                              UDCDBG ("default -> addressed");
++                              udc_state_transition_up (udc_device->device_state, STATE_ADDRESSED);
++                      } else {
++                              UDCDBG ("addressed -> default");
++                              udc_state_transition_down (udc_device->device_state, STATE_DEFAULT);
++                      }
++              }
++              if (bits & UDC_CFG) {
++                      if (devstat & UDC_CFG) {
++                              UDCDBG ("device configured");
++                              /* The ep0_recv_setup function generates the
++                               * DEVICE_CONFIGURED event when a
++                               * USB_REQ_SET_CONFIGURATION setup packet is
++                               * received, so we should already be in the
++                               * state STATE_CONFIGURED.
++                               */
++                              udc_state_transition_up (udc_device->device_state, STATE_CONFIGURED);
++                      } else {
++                              UDCDBG ("device deconfigured");
++                              udc_state_transition_down (udc_device->device_state, STATE_ADDRESSED);
++                      }
++              }
++      }
++
++      /* Clear interrupt source */
++      outw (UDC_DS_Chg, UDC_IRQ_SRC);
++
++      /* Save current DEVSTAT */
++      udc_devstat = devstat;
++}
++
++static void s3c2410_udc_ep0(void)
++{
++      u_int8_t ep0csr;
++
++      UDCDBG("-> Entering EP0 handler");
++
++      S3C2410_UDC_SETIX(EP0);
++      ep0csr = inb(S3C2410_UDC_IN_CSR1_REG);
++
++      /* clear stall status */
++      if (ep0csr & S3C2410_UDC_EP0_CSR_SENTSTL) {
++              clear_sp0_sst;
++              /* FIXME */
++              ep0_idle();
++      }
++
++      if (ep0csr & S3C2410_UDC_EP0_CSR_SE
++          && dev->ep0state != EP0_IDLE) {
++              clear_ep0_se;
++              ep0_idle();
++      }
++
++      switch (dev->ep0state) {
++      case EP0_IDLE:
++              if (ep0crs & S3C2410_UDC_EP0_CSR_OPKRDY) {
++              }
++              break;
++      case EP0_IN_DATA_PHASE:
++              break;
++      case EP0_OUT_DATA_PHASE:
++              break;
++      case EP0_END_XFER:
++              break;
++      case EP0_STALL:
++              set_ep0_ss;
++              break;
++      }
++}
++
++
++}
++
++/* Handle SETUP USB interrupt.
++ * This function implements TRM Figure 14-14.
++ */
++static void omap1510_udc_setup (struct usb_endpoint_instance *endpoint)
++{
++      UDCDBG ("-> Entering device setup");
++
++      do {
++              const int setup_pktsize = 8;
++              unsigned char *datap =
++                      (unsigned char *) &ep0_urb->device_request;
++
++              /* Gain access to EP 0 setup FIFO */
++              outw (UDC_Setup_Sel, UDC_EP_NUM);
++
++              /* Read control request data */
++              insb (UDC_DATA, datap, setup_pktsize);
++
++              UDCDBGA ("EP0 setup read [%x %x %x %x %x %x %x %x]",
++                       *(datap + 0), *(datap + 1), *(datap + 2),
++                       *(datap + 3), *(datap + 4), *(datap + 5),
++                       *(datap + 6), *(datap + 7));
++
++              /* Reset EP0 setup FIFO */
++              outw (0, UDC_EP_NUM);
++      } while (inw (UDC_IRQ_SRC) & UDC_Setup);
++
++      /* Try to process setup packet */
++      if (ep0_recv_setup (ep0_urb)) {
++              /* Not a setup packet, stall next EP0 transaction */
++              udc_stall_ep (0);
++              UDCDBG ("can't parse setup packet, still waiting for setup");
++              return;
++      }
++
++      /* Check direction */
++      if ((ep0_urb->device_request.bmRequestType & USB_REQ_DIRECTION_MASK)
++          == USB_REQ_HOST2DEVICE) {
++              UDCDBG ("control write on EP0");
++              if (le16_to_cpu (ep0_urb->device_request.wLength)) {
++                      /* We don't support control write data stages.
++                       * The only standard control write request with a data
++                       * stage is SET_DESCRIPTOR, and ep0_recv_setup doesn't
++                       * support that so we just stall those requests.  A
++                       * function driver might support a non-standard
++                       * write request with a data stage, but it isn't
++                       * obvious what we would do with the data if we read it
++                       * so we'll just stall it.  It seems like the API isn't
++                       * quite right here.
++                       */
++#if 0
++                      /* Here is what we would do if we did support control
++                       * write data stages.
++                       */
++                      ep0_urb->actual_length = 0;
++                      outw (0, UDC_EP_NUM);
++                      /* enable the EP0 rx FIFO */
++                      outw (UDC_Set_FIFO_En, UDC_CTRL);
++#else
++                      /* Stall this request */
++                      UDCDBG ("Stalling unsupported EP0 control write data "
++                              "stage.");
++                      udc_stall_ep (0);
++#endif
++              } else {
++                      omap1510_prepare_for_control_write_status (ep0_urb);
++              }
++      } else {
++              UDCDBG ("control read on EP0");
++              /* The ep0_recv_setup function has already placed our response
++               * packet data in ep0_urb->buffer and the packet length in
++               * ep0_urb->actual_length.
++               */
++              endpoint->tx_urb = ep0_urb;
++              endpoint->sent = 0;
++              /* select the EP0 tx FIFO */
++              outw (UDC_EP_Dir | UDC_EP_Sel, UDC_EP_NUM);
++              /* Write packet data to the FIFO.  omap1510_write_noniso_tx_fifo
++               * will update endpoint->last with the number of bytes written
++               * to the FIFO.
++               */
++              omap1510_write_noniso_tx_fifo (endpoint);
++              /* enable the FIFO to start the packet transmission */
++              outw (UDC_Set_FIFO_En, UDC_CTRL);
++              /* deselect the EP0 tx FIFO */
++              outw (UDC_EP_Dir, UDC_EP_NUM);
++      }
++
++      UDCDBG ("<- Leaving device setup");
++}
++
++/* Handle endpoint 0 RX interrupt
++ * This routine implements TRM Figure 14-16.
++ */
++static void omap1510_udc_ep0_rx (struct usb_endpoint_instance *endpoint)
++{
++      unsigned short status;
++
++      UDCDBG ("RX on EP0");
++      /* select EP0 rx FIFO */
++      outw (UDC_EP_Sel, UDC_EP_NUM);
++
++      status = inw (UDC_STAT_FLG);
++
++      if (status & UDC_ACK) {
++              /* Check direction */
++              if ((ep0_urb->device_request.bmRequestType
++                   & USB_REQ_DIRECTION_MASK) == USB_REQ_HOST2DEVICE) {
++                      /* This rx interrupt must be for a control write data
++                       * stage packet.
++                       *
++                       * We don't support control write data stages.
++                       * We should never end up here.
++                       */
++
++                      /* clear the EP0 rx FIFO */
++                      outw (UDC_Clr_EP, UDC_CTRL);
++
++                      /* deselect the EP0 rx FIFO */
++                      outw (0, UDC_EP_NUM);
++
++                      UDCDBG ("Stalling unexpected EP0 control write "
++                              "data stage packet");
++                      udc_stall_ep (0);
++              } else {
++                      /* This rx interrupt must be for a control read status
++                       * stage packet.
++                       */
++                      UDCDBG ("ACK on EP0 control read status stage packet");
++                      /* deselect EP0 rx FIFO */
++                      outw (0, UDC_EP_NUM);
++              }
++      } else if (status & UDC_STALL) {
++              UDCDBG ("EP0 stall during RX");
++              /* deselect EP0 rx FIFO */
++              outw (0, UDC_EP_NUM);
++      } else {
++              /* deselect EP0 rx FIFO */
++              outw (0, UDC_EP_NUM);
++      }
++}
++
++/* Handle endpoint 0 TX interrupt
++ * This routine implements TRM Figure 14-18.
++ */
++static void omap1510_udc_ep0_tx (struct usb_endpoint_instance *endpoint)
++{
++      unsigned short status;
++      struct usb_device_request *request = &ep0_urb->device_request;
++
++      UDCDBG ("TX on EP0");
++      /* select EP0 TX FIFO */
++      outw (UDC_EP_Dir | UDC_EP_Sel, UDC_EP_NUM);
++
++      status = inw (UDC_STAT_FLG);
++      if (status & UDC_ACK) {
++              /* Check direction */
++              if ((request->bmRequestType & USB_REQ_DIRECTION_MASK) ==
++                  USB_REQ_HOST2DEVICE) {
++                      /* This tx interrupt must be for a control write status
++                       * stage packet.
++                       */
++                      UDCDBG ("ACK on EP0 control write status stage packet");
++                      /* deselect EP0 TX FIFO */
++                      outw (UDC_EP_Dir, UDC_EP_NUM);
++              } else {
++                      /* This tx interrupt must be for a control read data
++                       * stage packet.
++                       */
++                      int wLength = le16_to_cpu (request->wLength);
++
++                      /* Update our count of bytes sent so far in this
++                       * transfer.
++                       */
++                      endpoint->sent += endpoint->last;
++
++                      /* We are finished with this transfer if we have sent
++                       * all of the bytes in our tx urb (urb->actual_length)
++                       * unless we need a zero-length terminating packet.  We
++                       * need a zero-length terminating packet if we returned
++                       * fewer bytes than were requested (wLength) by the host,
++                       * and the number of bytes we returned is an exact
++                       * multiple of the packet size endpoint->tx_packetSize.
++                       */
++                      if ((endpoint->sent == ep0_urb->actual_length)
++                          && ((ep0_urb->actual_length == wLength)
++                              || (endpoint->last !=
++                                  endpoint->tx_packetSize))) {
++                              /* Done with control read data stage. */
++                              UDCDBG ("control read data stage complete");
++                              /* deselect EP0 TX FIFO */
++                              outw (UDC_EP_Dir, UDC_EP_NUM);
++                              /* select EP0 RX FIFO to prepare for control
++                               * read status stage.
++                               */
++                              outw (UDC_EP_Sel, UDC_EP_NUM);
++                              /* clear the EP0 RX FIFO */
++                              outw (UDC_Clr_EP, UDC_CTRL);
++                              /* enable the EP0 RX FIFO */
++                              outw (UDC_Set_FIFO_En, UDC_CTRL);
++                              /* deselect the EP0 RX FIFO */
++                              outw (0, UDC_EP_NUM);
++                      } else {
++                              /* We still have another packet of data to send
++                               * in this control read data stage or else we
++                               * need a zero-length terminating packet.
++                               */
++                              UDCDBG ("ACK control read data stage packet");
++                              omap1510_write_noniso_tx_fifo (endpoint);
++                              /* enable the EP0 tx FIFO to start transmission */
++                              outw (UDC_Set_FIFO_En, UDC_CTRL);
++                              /* deselect EP0 TX FIFO */
++                              outw (UDC_EP_Dir, UDC_EP_NUM);
++                      }
++              }
++      } else if (status & UDC_STALL) {
++              UDCDBG ("EP0 stall during TX");
++              /* deselect EP0 TX FIFO */
++              outw (UDC_EP_Dir, UDC_EP_NUM);
++      } else {
++              /* deselect EP0 TX FIFO */
++              outw (UDC_EP_Dir, UDC_EP_NUM);
++      }
++}
++
++/* Handle RX transaction on non-ISO endpoint.
++ * This function implements TRM Figure 14-27.
++ * The ep argument is a physical endpoint number for a non-ISO OUT endpoint
++ * in the range 1 to 15.
++ */
++static void omap1510_udc_epn_rx (int ep)
++{
++      unsigned short status;
++
++      /* Check endpoint status */
++      status = inw (UDC_STAT_FLG);
++
++      if (status & UDC_ACK) {
++              int nbytes;
++              struct usb_endpoint_instance *endpoint =
++                      omap1510_find_ep (ep);
++
++              nbytes = omap1510_read_noniso_rx_fifo (endpoint);
++              usbd_rcv_complete (endpoint, nbytes, 0);
++
++              /* enable rx FIFO to prepare for next packet */
++              outw (UDC_Set_FIFO_En, UDC_CTRL);
++      } else if (status & UDC_STALL) {
++              UDCDBGA ("STALL on RX endpoint %d", ep);
++      } else if (status & UDC_NAK) {
++              UDCDBGA ("NAK on RX ep %d", ep);
++      } else {
++              serial_printf ("omap-bi: RX on ep %d with status %x", ep,
++                             status);
++      }
++}
++
++/* Handle TX transaction on non-ISO endpoint.
++ * This function implements TRM Figure 14-29.
++ * The ep argument is a physical endpoint number for a non-ISO IN endpoint
++ * in the range 16 to 30.
++ */
++static void omap1510_udc_epn_tx (int ep)
++{
++      unsigned short status;
++
++      /*serial_printf("omap1510_udc_epn_tx( %x )\n",ep); */
++
++      /* Check endpoint status */
++      status = inw (UDC_STAT_FLG);
++
++      if (status & UDC_ACK) {
++              struct usb_endpoint_instance *endpoint =
++                      omap1510_find_ep (ep);
++
++              /* We need to transmit a terminating zero-length packet now if
++               * we have sent all of the data in this URB and the transfer
++               * size was an exact multiple of the packet size.
++               */
++              if (endpoint->tx_urb
++                  && (endpoint->last == endpoint->tx_packetSize)
++                  && (endpoint->tx_urb->actual_length - endpoint->sent -
++                      endpoint->last == 0)) {
++                      /* Prepare to transmit a zero-length packet. */
++                      endpoint->sent += endpoint->last;
++                      /* write 0 bytes of data to FIFO */
++                      omap1510_write_noniso_tx_fifo (endpoint);
++                      /* enable tx FIFO to start transmission */
++                      outw (UDC_Set_FIFO_En, UDC_CTRL);
++              } else if (endpoint->tx_urb
++                         && endpoint->tx_urb->actual_length) {
++                      /* retire the data that was just sent */
++                      usbd_tx_complete (endpoint);
++                      /* Check to see if we have more data ready to transmit
++                       * now.
++                       */
++                      if (endpoint->tx_urb
++                          && endpoint->tx_urb->actual_length) {
++                              /* write data to FIFO */
++                              omap1510_write_noniso_tx_fifo (endpoint);
++                              /* enable tx FIFO to start transmission */
++                              outw (UDC_Set_FIFO_En, UDC_CTRL);
++                      }
++              }
++      } else if (status & UDC_STALL) {
++              UDCDBGA ("STALL on TX endpoint %d", ep);
++      } else if (status & UDC_NAK) {
++              UDCDBGA ("NAK on TX endpoint %d", ep);
++      } else {
++              /*serial_printf("omap-bi: TX on ep %d with status %x\n", ep, status); */
++      }
++}
++
++
++/*
++-------------------------------------------------------------------------------
++*/
++
++/* Handle general USB interrupts and dispatch according to type.
++ * This function implements TRM Figure 14-13.
++ */
++void s3c2410_udc_irq (void)
++{
++      u_int8_t save_idx = inb(S3C2410_UDC_INDEX_REG);
++      u_int8_t usb_status = inb(S3C2410_UDC_USB_INT_REG);
++      u_int8_t usbd_status = inb(S3C2410_UDC_EP_INT_REG);
++
++      UDCDBGA("< IRQ usbs=0x%02x, usbds=0x%02x start >", usb_status,
++              usbd_status);
++
++      if (usb_status & S3C2410_UDC_USBINT_RESET) {
++              valid_irq++;
++      }
++
++      if (usb_status & S3C2410_UDC_USBINT_RESUME) {
++              valid_irq++;
++
++      }
++
++      if (usb_status & S3C2410_UDC_USBINT_SUSPEND) {
++              valid_irq++;
++
++      }
++
++      /* Endpoint Interrupts */
++      if (usbd_status) {
++              int i;
++
++              if (usbd_status & S3C2410_UDC_INT_EP0) {
++                      s3c2410_udc_ep0();
++                      outb(S3C2410_UDC_INT_EP0, S3C2410_UDC_EP_INT_REG);
++                      valid_irq++;
++              }
++
++              for (i = 1; i < 5; i++) {
++                      u_int32_t tmp = 1 << i;
++
++                      if (usbd_status & tmp) {
++                              /* FIXME: Handle EP X */
++                              s3c2410_udc_epn(i);
++                              outb(tmp, S3C2410_UDC_EP_INT_REG);
++                              valid_irq++;
++                      }
++              }
++      }
++      outb(save_idx, S3C2410_UDC_INDEX_REG);
++
++#if 0
++      if (!(irq_src & ~UDC_SOF_Flg))  /* ignore SOF interrupts ) */
++              return;
++
++      UDCDBGA ("< IRQ #%d start >- %x", udc_interrupts, irq_src);
++      /*serial_printf("< IRQ #%d start >- %x\n", udc_interrupts, irq_src); */
++
++      if (irq_src & UDC_DS_Chg) {
++              /* Device status changed */
++              omap1510_udc_state_changed ();
++              valid_irq++;
++      }
++      if (irq_src & UDC_EP0_RX) {
++              /* Endpoint 0 receive */
++              outw (UDC_EP0_RX, UDC_IRQ_SRC); /* ack interrupt */
++              omap1510_udc_ep0_rx (udc_device->bus->endpoint_array + 0);
++              valid_irq++;
++      }
++      if (irq_src & UDC_EP0_TX) {
++              /* Endpoint 0 transmit */
++              outw (UDC_EP0_TX, UDC_IRQ_SRC); /* ack interrupt */
++              omap1510_udc_ep0_tx (udc_device->bus->endpoint_array + 0);
++              valid_irq++;
++      }
++      if (irq_src & UDC_Setup) {
++              /* Device setup */
++              omap1510_udc_setup (udc_device->bus->endpoint_array + 0);
++              valid_irq++;
++      }
++      /*if (!valid_irq) */
++      /*      serial_printf("unknown interrupt, IRQ_SRC %.4x\n", irq_src); */
++#endif
++      UDCDBGA ("< IRQ end >", udc_interrupts);
++
++      udc_interrupts++;
++}
++
++/* This function implements TRM Figure 14-26. */
++void omap1510_udc_noniso_irq (void)
++{
++      unsigned short epnum;
++      unsigned short irq_src = inw (UDC_IRQ_SRC);
++      int valid_irq = 0;
++
++      if (!(irq_src & (UDC_EPn_RX | UDC_EPn_TX)))
++              return;
++
++      UDCDBGA ("non-ISO IRQ, IRQ_SRC %x", inw (UDC_IRQ_SRC));
++
++      if (irq_src & UDC_EPn_RX) {     /* Endpoint N OUT transaction */
++              /* Determine the endpoint number for this interrupt */
++              epnum = (inw (UDC_EPN_STAT) & 0x0f00) >> 8;
++              UDCDBGA ("RX on ep %x", epnum);
++
++              /* acknowledge interrupt */
++              outw (UDC_EPn_RX, UDC_IRQ_SRC);
++
++              if (epnum) {
++                      /* select the endpoint FIFO */
++                      outw (UDC_EP_Sel | epnum, UDC_EP_NUM);
++
++                      omap1510_udc_epn_rx (epnum);
++
++                      /* deselect the endpoint FIFO */
++                      outw (epnum, UDC_EP_NUM);
++              }
++              valid_irq++;
++      }
++      if (irq_src & UDC_EPn_TX) {     /* Endpoint N IN transaction */
++              /* Determine the endpoint number for this interrupt */
++              epnum = (inw (UDC_EPN_STAT) & 0x000f) | USB_DIR_IN;
++              UDCDBGA ("TX on ep %x", epnum);
++
++              /* acknowledge interrupt */
++              outw (UDC_EPn_TX, UDC_IRQ_SRC);
++
++              if (epnum) {
++                      /* select the endpoint FIFO */
++                      outw (UDC_EP_Sel | UDC_EP_Dir | epnum, UDC_EP_NUM);
++
++                      omap1510_udc_epn_tx (epnum);
++
++                      /* deselect the endpoint FIFO */
++                      outw (UDC_EP_Dir | epnum, UDC_EP_NUM);
++              }
++              valid_irq++;
++      }
++      if (!valid_irq)
++              serial_printf (": unknown non-ISO interrupt, IRQ_SRC %.4x\n",
++                             irq_src);
++}
++
++/*
++-------------------------------------------------------------------------------
++*/
++
++
++/*
++ * Start of public functions.
++ */
++
++/* Called to start packet transmission. */
++void udc_endpoint_write (struct usb_endpoint_instance *endpoint)
++{
++      unsigned short epnum =
++              endpoint->endpoint_address & USB_ENDPOINT_NUMBER_MASK;
++
++      UDCDBGA ("Starting transmit on ep %x", epnum);
++
++      if (endpoint->tx_urb) {
++              /* select the endpoint FIFO */
++              outw (UDC_EP_Sel | UDC_EP_Dir | epnum, UDC_EP_NUM);
++              /* write data to FIFO */
++              omap1510_write_noniso_tx_fifo (endpoint);
++              /* enable tx FIFO to start transmission */
++              outw (UDC_Set_FIFO_En, UDC_CTRL);
++              /* deselect the endpoint FIFO */
++              outw (UDC_EP_Dir | epnum, UDC_EP_NUM);
++      }
++}
++
++/* Start to initialize h/w stuff */
++int udc_init (void)
++{
++      u16 udc_rev;
++      uchar value;
++      ulong gpio;
++      int i;
++
++      /* Let the device settle down before we start */
++      for (i = 0; i < UDC_INIT_MDELAY; i++) udelay(1000);
++
++      udc_device = NULL;
++
++      UDCDBG ("starting");
++
++      /* Check peripheral reset. Must be 1 to make sure
++         MPU TIPB peripheral reset is inactive */
++      UDCREG (ARM_RSTCT2);
++
++      /* Set and check clock control.
++       * We might ought to be using the clock control API to do
++       * this instead of fiddling with the clock registers directly
++       * here.
++       */
++      outw ((1 << 4) | (1 << 5), CLOCK_CTRL);
++      UDCREG (CLOCK_CTRL);
++      /* Set and check APLL */
++      outw (0x0008, APLL_CTRL);
++      UDCREG (APLL_CTRL);
++      /* Set and check DPLL */
++      outw (0x2210, DPLL_CTRL);
++      UDCREG (DPLL_CTRL);
++      /* Set and check SOFT */
++      outw ((1 << 4) | (1 << 3) | 1, SOFT_REQ);
++      /* Short delay to wait for DPLL */
++      udelay (1000);
++
++      /* Print banner with device revision */
++      udc_rev = inw (UDC_REV) & 0xff;
++      printf ("USB:   TI OMAP1510 USB function module rev %d.%d\n",
++              udc_rev >> 4, udc_rev & 0xf);
++
++#ifdef CONFIG_OMAP_SX1
++      i2c_read (0x32, 0x04, 1, &value, 1);
++      value |= 0x04;
++      i2c_write (0x32, 0x04, 1, &value, 1);
++
++      i2c_read (0x32, 0x03, 1, &value, 1);
++      value |= 0x01;
++      i2c_write (0x32, 0x03, 1, &value, 1);
++
++      gpio = inl(GPIO_PIN_CONTROL_REG);
++      gpio |=  0x0002; /* A_IRDA_OFF */
++      gpio |=  0x0800; /* A_SWITCH   */
++      gpio |=  0x8000; /* A_USB_ON   */
++      outl (gpio, GPIO_PIN_CONTROL_REG);
++
++      gpio = inl(GPIO_DIR_CONTROL_REG);
++      gpio &= ~0x0002; /* A_IRDA_OFF */
++      gpio &= ~0x0800; /* A_SWITCH   */
++      gpio &= ~0x8000; /* A_USB_ON   */
++      outl (gpio, GPIO_DIR_CONTROL_REG);
++
++      gpio = inl(GPIO_DATA_OUTPUT_REG);
++      gpio |=  0x0002; /* A_IRDA_OFF */
++      gpio &= ~0x0800; /* A_SWITCH   */
++      gpio &= ~0x8000; /* A_USB_ON   */
++      outl (gpio, GPIO_DATA_OUTPUT_REG);
++#endif
++
++      /* The VBUS_MODE bit selects whether VBUS detection is done via
++       * software (1) or hardware (0).  When software detection is
++       * selected, VBUS_CTRL selects whether USB is not connected (0)
++       * or connected (1).
++       */
++      outl (inl (FUNC_MUX_CTRL_0) | UDC_VBUS_MODE, FUNC_MUX_CTRL_0);
++      outl (inl (FUNC_MUX_CTRL_0) & ~UDC_VBUS_CTRL, FUNC_MUX_CTRL_0);
++      UDCREGL (FUNC_MUX_CTRL_0);
++
++      /*
++       * At this point, device is ready for configuration...
++       */
++
++      UDCDBG ("disable USB interrupts");
++      outw (0, UDC_IRQ_EN);
++      UDCREG (UDC_IRQ_EN);
++
++      UDCDBG ("disable USB DMA");
++      outw (0, UDC_DMA_IRQ_EN);
++      UDCREG (UDC_DMA_IRQ_EN);
++
++      UDCDBG ("initialize SYSCON1");
++      outw (UDC_Self_Pwr | UDC_Pullup_En, UDC_SYSCON1);
++      UDCREG (UDC_SYSCON1);
++
++      return 0;
++}
++
++/* Stall endpoint */
++static void udc_stall_ep (unsigned int ep_addr)
++{
++      /*int ep_addr = PHYS_EP_TO_EP_ADDR(ep); */
++      int ep_num = ep_addr & USB_ENDPOINT_NUMBER_MASK;
++
++      UDCDBGA ("stall ep_addr %d", ep_addr);
++
++      /* REVISIT?
++       * The OMAP TRM section 14.2.4.2 says we must check that the FIFO
++       * is empty before halting the endpoint.  The current implementation
++       * doesn't check that the FIFO is empty.
++       */
++
++      if (!ep_num) {
++              outw (UDC_Stall_Cmd, UDC_SYSCON2);
++      } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT) {
++              if (inw (UDC_EP_RX (ep_num)) & UDC_EPn_RX_Valid) {
++                      /* we have a valid rx endpoint, so halt it */
++                      outw (UDC_EP_Sel | ep_num, UDC_EP_NUM);
++                      outw (UDC_Set_Halt, UDC_CTRL);
++                      outw (ep_num, UDC_EP_NUM);
++              }
++      } else {
++              if (inw (UDC_EP_TX (ep_num)) & UDC_EPn_TX_Valid) {
++                      /* we have a valid tx endpoint, so halt it */
++                      outw (UDC_EP_Sel | UDC_EP_Dir | ep_num, UDC_EP_NUM);
++                      outw (UDC_Set_Halt, UDC_CTRL);
++                      outw (ep_num, UDC_EP_NUM);
++              }
++      }
++}
++
++/* Reset endpoint */
++#if 0
++static void udc_reset_ep (unsigned int ep_addr)
++{
++      /*int ep_addr = PHYS_EP_TO_EP_ADDR(ep); */
++      int ep_num = ep_addr & USB_ENDPOINT_NUMBER_MASK;
++
++      UDCDBGA ("reset ep_addr %d", ep_addr);
++
++      if (!ep_num) {
++              /* control endpoint 0 can't be reset */
++      } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT) {
++              UDCDBGA ("UDC_EP_RX(%d) = 0x%04x", ep_num,
++                       inw (UDC_EP_RX (ep_num)));
++              if (inw (UDC_EP_RX (ep_num)) & UDC_EPn_RX_Valid) {
++                      /* we have a valid rx endpoint, so reset it */
++                      outw (ep_num | UDC_EP_Sel, UDC_EP_NUM);
++                      outw (UDC_Reset_EP, UDC_CTRL);
++                      outw (ep_num, UDC_EP_NUM);
++                      UDCDBGA ("OUT endpoint %d reset", ep_num);
++              }
++      } else {
++              UDCDBGA ("UDC_EP_TX(%d) = 0x%04x", ep_num,
++                       inw (UDC_EP_TX (ep_num)));
++              /* Resetting of tx endpoints seems to be causing the USB function
++               * module to fail, which causes problems when the driver is
++               * uninstalled.  We'll skip resetting tx endpoints for now until
++               * we figure out what the problem is.
++               */
++#if 0
++              if (inw (UDC_EP_TX (ep_num)) & UDC_EPn_TX_Valid) {
++                      /* we have a valid tx endpoint, so reset it */
++                      outw (ep_num | UDC_EP_Dir | UDC_EP_Sel, UDC_EP_NUM);
++                      outw (UDC_Reset_EP, UDC_CTRL);
++                      outw (ep_num | UDC_EP_Dir, UDC_EP_NUM);
++                      UDCDBGA ("IN endpoint %d reset", ep_num);
++              }
++#endif
++      }
++}
++#endif
++
++/* ************************************************************************** */
++
++/**
++ * udc_check_ep - check logical endpoint
++  *
++ * Return physical endpoint number to use for this logical endpoint or zero if not valid.
++ */
++#if 0
++int udc_check_ep (int logical_endpoint, int packetsize)
++{
++      if ((logical_endpoint == 0x80) ||
++          ((logical_endpoint & 0x8f) != logical_endpoint)) {
++              return 0;
++      }
++
++      switch (packetsize) {
++      case 8:
++      case 16:
++      case 32:
++      case 64:
++      case 128:
++      case 256:
++      case 512:
++              break;
++      default:
++              return 0;
++      }
++
++      return EP_ADDR_TO_PHYS_EP (logical_endpoint);
++}
++#endif
++
++/*
++ * udc_setup_ep - setup endpoint
++ *
++ * Associate a physical endpoint with endpoint_instance
++ */
++void udc_setup_ep (struct usb_device_instance *device,
++                 unsigned int ep, struct usb_endpoint_instance *endpoint)
++{
++      UDCDBGA ("setting up endpoint addr %x", endpoint->endpoint_address);
++
++      /* This routine gets called by bi_modinit for endpoint 0 and from
++       * bi_config for all of the other endpoints.  bi_config gets called
++       * during the DEVICE_CREATE, DEVICE_CONFIGURED, and
++       * DEVICE_SET_INTERFACE events.  We need to reconfigure the OMAP packet
++       * RAM after bi_config scans the selected device configuration and
++       * initializes the endpoint structures, but before this routine enables
++       * the OUT endpoint FIFOs.  Since bi_config calls this routine in a
++       * loop for endpoints 1 through UDC_MAX_ENDPOINTS, we reconfigure our
++       * packet RAM here when ep==1.
++       * I really hate to do this here, but it seems like the API exported
++       * by the USB bus interface controller driver to the usbd-bi module
++       * isn't quite right so there is no good place to do this.
++       */
++      if (ep == 1) {
++              omap1510_deconfigure_device ();
++              omap1510_configure_device (device);
++      }
++
++      if (endpoint && (ep < UDC_MAX_ENDPOINTS)) {
++              int ep_addr = endpoint->endpoint_address;
++
++              if (!ep_addr) {
++                      /* nothing to do for endpoint 0 */
++              } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) {
++                      /* nothing to do for IN (tx) endpoints */
++              } else {        /* OUT (rx) endpoint */
++                      if (endpoint->rcv_packetSize) {
++                              /*struct urb* urb = &(urb_out_array[ep&0xFF]); */
++                              /*urb->endpoint = endpoint; */
++                              /*urb->device = device; */
++                              /*urb->buffer_length = sizeof(urb->buffer); */
++
++                              /*endpoint->rcv_urb = urb; */
++                              omap1510_prepare_endpoint_for_rx (ep_addr);
++                      }
++              }
++      }
++}
++
++/**
++ * udc_disable_ep - disable endpoint
++ * @ep:
++ *
++ * Disable specified endpoint
++ */
++#if 0
++void udc_disable_ep (unsigned int ep_addr)
++{
++      /*int ep_addr = PHYS_EP_TO_EP_ADDR(ep); */
++      int ep_num = ep_addr & USB_ENDPOINT_NUMBER_MASK;
++      struct usb_endpoint_instance *endpoint = omap1510_find_ep (ep_addr);    /*udc_device->bus->endpoint_array + ep; */
++
++      UDCDBGA ("disable ep_addr %d", ep_addr);
++
++      if (!ep_num) {
++              /* nothing to do for endpoint 0 */ ;
++      } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) {
++              if (endpoint->tx_packetSize) {
++                      /* we have a valid tx endpoint */
++                      /*usbd_flush_tx(endpoint); */
++                      endpoint->tx_urb = NULL;
++              }
++      } else {
++              if (endpoint->rcv_packetSize) {
++                      /* we have a valid rx endpoint */
++                      /*usbd_flush_rcv(endpoint); */
++                      endpoint->rcv_urb = NULL;
++              }
++      }
++}
++#endif
++
++/* ************************************************************************** */
++
++/**
++ * udc_connected - is the USB cable connected
++ *
++ * Return non-zero if cable is connected.
++ */
++#if 0
++int udc_connected (void)
++{
++      return ((inw (UDC_DEVSTAT) & UDC_ATT) == UDC_ATT);
++}
++#endif
++
++/* Turn on the USB connection by enabling the pullup resistor */
++void udc_connect (void)
++{
++      UDCDBG ("connect, enable Pullup");
++}
++
++/* Turn off the USB connection by disabling the pullup resistor */
++void udc_disconnect (void)
++{
++      UDCDBG ("disconnect, disable Pullup");
++}
++
++/* ************************************************************************** */
++
++
++/*
++ * udc_disable_interrupts - disable interrupts
++ * switch off interrupts
++ */
++#if 0
++void udc_disable_interrupts (struct usb_device_instance *device)
++{
++      UDCDBG ("disabling all interrupts");
++      outw (0, UDC_IRQ_EN);
++}
++#endif
++
++/* ************************************************************************** */
++
++/**
++ * udc_ep0_packetsize - return ep0 packetsize
++ */
++#if 0
++int udc_ep0_packetsize (void)
++{
++      return EP0_PACKETSIZE;
++}
++#endif
++
++/* Switch on the UDC */
++void udc_enable (struct usb_device_instance *device)
++{
++      UDCDBGA ("enable device %p, status %d", device, device->status);
++
++      /* initialize driver state variables */
++      udc_devstat = 0;
++
++      /* Save the device structure pointer */
++      udc_device = device;
++
++      /* Setup ep0 urb */
++      if (!ep0_urb) {
++              ep0_urb =
++                      usbd_alloc_urb (udc_device,
++                                      udc_device->bus->endpoint_array);
++      } else {
++              serial_printf ("udc_enable: ep0_urb already allocated %p\n",
++                             ep0_urb);
++      }
++
++#ifdef FIXME
++      /* The VBUS_MODE bit selects whether VBUS detection is done via
++       * software (1) or hardware (0).  When software detection is
++       * selected, VBUS_CTRL selects whether USB is not connected (0)
++       * or connected (1).
++       */
++      outl (inl (FUNC_MUX_CTRL_0) | UDC_VBUS_CTRL | UDC_VBUS_MODE,
++            FUNC_MUX_CTRL_0);
++      UDCREGL (FUNC_MUX_CTRL_0);
++#endif
++
++      s3c2410_configure_device(device);
++}
++
++/* Switch off the UDC */
++void udc_disable (void)
++{
++      UDCDBG ("disable UDC");
++
++      s3c2410_deconfigure_device();
++
++#ifdef FIXME
++      /* The VBUS_MODE bit selects whether VBUS detection is done via
++       * software (1) or hardware (0).  When software detection is
++       * selected, VBUS_CTRL selects whether USB is not connected (0)
++       * or connected (1).
++       */
++      outl (inl (FUNC_MUX_CTRL_0) | UDC_VBUS_MODE, FUNC_MUX_CTRL_0);
++      outl (inl (FUNC_MUX_CTRL_0) & ~UDC_VBUS_CTRL, FUNC_MUX_CTRL_0);
++      UDCREGL (FUNC_MUX_CTRL_0);
++#endif
++
++      /* Free ep0 URB */
++      if (ep0_urb) {
++              /*usbd_dealloc_urb(ep0_urb); */
++              ep0_urb = NULL;
++      }
++
++      /* Reset device pointer.
++       * We ought to do this here to balance the initialization of udc_device
++       * in udc_enable, but some of our other exported functions get called
++       * by the bus interface driver after udc_disable, so we have to hang on
++       * to the device pointer to avoid a null pointer dereference. */
++      /* udc_device = NULL; */
++}
++
++/**
++ * udc_startup - allow udc code to do any additional startup
++ */
++void udc_startup_events (struct usb_device_instance *device)
++{
++      /* The DEVICE_INIT event puts the USB device in the state STATE_INIT. */
++      usbd_device_event_irq (device, DEVICE_INIT, 0);
++
++      /* The DEVICE_CREATE event puts the USB device in the state
++       * STATE_ATTACHED.
++       */
++      usbd_device_event_irq (device, DEVICE_CREATE, 0);
++
++      /* Some USB controller driver implementations signal
++       * DEVICE_HUB_CONFIGURED and DEVICE_RESET events here.
++       * DEVICE_HUB_CONFIGURED causes a transition to the state STATE_POWERED,
++       * and DEVICE_RESET causes a transition to the state STATE_DEFAULT.
++       * The OMAP USB client controller has the capability to detect when the
++       * USB cable is connected to a powered USB bus via the ATT bit in the
++       * DEVSTAT register, so we will defer the DEVICE_HUB_CONFIGURED and
++       * DEVICE_RESET events until later.
++       */
++
++      udc_enable (device);
++}
++
++#endif
+diff --git a/examples/Makefile b/examples/Makefile
+index a342d75..082e52e 100644
+--- a/examples/Makefile
++++ b/examples/Makefile
+@@ -60,7 +60,7 @@ endif
+ include $(TOPDIR)/config.mk
+ SREC  = hello_world.srec
+-BIN   = hello_world.bin hello_world
++BIN   = hello_world hello_world.bin
+ ifeq ($(CPU),mpc8xx)
+ SREC  = test_burst.srec
+@@ -122,7 +122,7 @@ clibdir := $(shell dirname `$(CC) $(CFLA
+ CPPFLAGS += -I..
+-all:  .depend $(OBJS) $(LIB) $(SREC) $(BIN)
++all:  .depend $(OBJS) $(LIB) $(BIN) $(SREC)
+ #########################################################################
+ $(LIB): .depend $(LIBOBJS)
+diff --git a/include/asm-arm/arch-s3c24x0/mmc.h b/include/asm-arm/arch-s3c24x0/mmc.h
+new file mode 100644
+index 0000000..d9178f3
+--- /dev/null
++++ b/include/asm-arm/arch-s3c24x0/mmc.h
+@@ -0,0 +1,112 @@
++/*
++ *  linux/drivers/mmc/mmc_pxa.h
++ *
++ *  Author: Vladimir Shebordaev, Igor Oblakov
++ *  Copyright:  MontaVista Software Inc.
++ *
++ *  $Id: mmc_pxa.h,v 0.3.1.6 2002/09/25 19:25:48 ted Exp ted $
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License version 2 as
++ *  published by the Free Software Foundation.
++ */
++#ifndef __MMC_PXA_P_H__
++#define __MMC_PXA_P_H__
++
++#include <asm/arch/regs-sdi.h>
++
++#define MMC_DEFAULT_RCA                       (1<<16)
++
++#define MMC_BLOCK_SIZE                        512
++#define MMC_CMD_RESET                 0
++#define MMC_CMD_SEND_OP_COND          1
++#define MMC_CMD_ALL_SEND_CID          2
++#define MMC_CMD_SET_RCA                       3
++#define MMC_CMD_SELECT_CARD           7
++#define MMC_CMD_SEND_CSD              9
++#define MMC_CMD_SEND_CID              10
++#define MMC_CMD_SEND_STATUS           13
++#define MMC_CMD_SET_BLOCKLEN          16
++#define MMC_CMD_READ_BLOCK            17
++#define MMC_CMD_RD_BLK_MULTI          18
++#define MMC_CMD_WRITE_BLOCK           24
++
++#define MMC_MAX_BLOCK_SIZE            512
++
++#define MMC_R1_IDLE_STATE             0x01
++#define MMC_R1_ERASE_STATE            0x02
++#define MMC_R1_ILLEGAL_CMD            0x04
++#define MMC_R1_COM_CRC_ERR            0x08
++#define MMC_R1_ERASE_SEQ_ERR          0x01
++#define MMC_R1_ADDR_ERR                       0x02
++#define MMC_R1_PARAM_ERR              0x04
++
++#define MMC_R1B_WP_ERASE_SKIP         0x0002
++#define MMC_R1B_ERR                   0x0004
++#define MMC_R1B_CC_ERR                        0x0008
++#define MMC_R1B_CARD_ECC_ERR          0x0010
++#define MMC_R1B_WP_VIOLATION          0x0020
++#define MMC_R1B_ERASE_PARAM           0x0040
++#define MMC_R1B_OOR                   0x0080
++#define MMC_R1B_IDLE_STATE            0x0100
++#define MMC_R1B_ERASE_RESET           0x0200
++#define MMC_R1B_ILLEGAL_CMD           0x0400
++#define MMC_R1B_COM_CRC_ERR           0x0800
++#define MMC_R1B_ERASE_SEQ_ERR         0x1000
++#define MMC_R1B_ADDR_ERR              0x2000
++#define MMC_R1B_PARAM_ERR             0x4000
++
++typedef struct mmc_cid
++{
++/* FIXME: BYTE_ORDER */
++   uchar year:4,
++   month:4;
++   uchar sn[3];
++   uchar fwrev:4,
++   hwrev:4;
++   uchar name[6];
++   uchar id[3];
++} mmc_cid_t;
++
++typedef struct mmc_csd
++{
++      uchar   ecc:2,
++              file_format:2,
++              tmp_write_protect:1,
++              perm_write_protect:1,
++              copy:1,
++              file_format_grp:1;
++      uint64_t content_prot_app:1,
++              rsvd3:4,
++              write_bl_partial:1,
++              write_bl_len:4,
++              r2w_factor:3,
++              default_ecc:2,
++              wp_grp_enable:1,
++              wp_grp_size:5,
++              erase_grp_mult:5,
++              erase_grp_size:5,
++              c_size_mult1:3,
++              vdd_w_curr_max:3,
++              vdd_w_curr_min:3,
++              vdd_r_curr_max:3,
++              vdd_r_curr_min:3,
++              c_size:12,
++              rsvd2:2,
++              dsr_imp:1,
++              read_blk_misalign:1,
++              write_blk_misalign:1,
++              read_bl_partial:1;
++
++      ushort  read_bl_len:4,
++              ccc:12;
++      uchar   tran_speed;
++      uchar   nsac;
++      uchar   taac;
++      uchar   rsvd1:2,
++              spec_vers:4,
++              csd_structure:2;
++} mmc_csd_t;
++
++
++#endif /* __MMC_PXA_P_H__ */
+diff --git a/include/asm-arm/arch-s3c24x0/regs-sdi.h b/include/asm-arm/arch-s3c24x0/regs-sdi.h
+new file mode 100644
+index 0000000..9b5b9d1
+--- /dev/null
++++ b/include/asm-arm/arch-s3c24x0/regs-sdi.h
+@@ -0,0 +1,110 @@
++/* linux/include/asm/arch-s3c2410/regs-sdi.h
++ *
++ * Copyright (c) 2004 Simtec Electronics <linux@simtec.co.uk>
++ *                  http://www.simtec.co.uk/products/SWLINUX/
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * S3C2410 MMC/SDIO register definitions
++ *
++ *  Changelog:
++ *    18-Aug-2004 Ben Dooks      Created initial file
++ *    29-Nov-2004 Koen Martens   Added some missing defines, fixed duplicates
++ *    29-Nov-2004 Ben Dooks    Updated Koen's patch
++*/
++
++#ifndef __ASM_ARM_REGS_SDI
++#define __ASM_ARM_REGS_SDI "regs-sdi.h"
++
++#define S3C2440_SDICON_SDRESET        (1<<8)
++#define S3C2440_SDICON_MMCCLOCK       (1<<5)
++#define S3C2410_SDICON_BYTEORDER      (1<<4)
++#define S3C2410_SDICON_SDIOIRQ        (1<<3)
++#define S3C2410_SDICON_RWAITEN        (1<<2)
++#define S3C2410_SDICON_FIFORESET      (1<<1)
++#define S3C2410_SDICON_CLOCKTYPE      (1<<0)
++
++#define S3C2410_SDICMDCON_ABORT       (1<<12)
++#define S3C2410_SDICMDCON_WITHDATA    (1<<11)
++#define S3C2410_SDICMDCON_LONGRSP     (1<<10)
++#define S3C2410_SDICMDCON_WAITRSP     (1<<9)
++#define S3C2410_SDICMDCON_CMDSTART    (1<<8)
++#define S3C2410_SDICMDCON_SENDERHOST  (1<<6)
++#define S3C2410_SDICMDCON_INDEX       (0x3f)
++
++#define S3C2410_SDICMDSTAT_CRCFAIL    (1<<12)
++#define S3C2410_SDICMDSTAT_CMDSENT    (1<<11)
++#define S3C2410_SDICMDSTAT_CMDTIMEOUT (1<<10)
++#define S3C2410_SDICMDSTAT_RSPFIN     (1<<9)
++#define S3C2410_SDICMDSTAT_XFERING    (1<<8)
++#define S3C2410_SDICMDSTAT_INDEX      (0xff)
++
++#define S3C2440_SDIDCON_DS_BYTE       (0<<22)
++#define S3C2440_SDIDCON_DS_HALFWORD   (1<<22)
++#define S3C2440_SDIDCON_DS_WORD       (2<<22)
++#define S3C2410_SDIDCON_IRQPERIOD     (1<<21)
++#define S3C2410_SDIDCON_TXAFTERRESP   (1<<20)
++#define S3C2410_SDIDCON_RXAFTERCMD    (1<<19)
++#define S3C2410_SDIDCON_BUSYAFTERCMD  (1<<18)
++#define S3C2410_SDIDCON_BLOCKMODE     (1<<17)
++#define S3C2410_SDIDCON_WIDEBUS       (1<<16)
++#define S3C2410_SDIDCON_DMAEN         (1<<15)
++#define S3C2410_SDIDCON_STOP          (1<<14)
++#define S3C2440_SDIDCON_DATSTART      (1<<14)
++#define S3C2410_SDIDCON_DATMODE             (3<<12)
++#define S3C2410_SDIDCON_BLKNUM        (0x7ff)
++
++/* constants for S3C2410_SDIDCON_DATMODE */
++#define S3C2410_SDIDCON_XFER_READY    (0<<12)
++#define S3C2410_SDIDCON_XFER_CHKSTART (1<<12)
++#define S3C2410_SDIDCON_XFER_RXSTART  (2<<12)
++#define S3C2410_SDIDCON_XFER_TXSTART  (3<<12)
++
++#define S3C2410_SDIDCON_BLKNUM_MASK   (0xFFF)
++#define S3C2410_SDIDCNT_BLKNUM_SHIFT  (12)
++
++#define S3C2410_SDIDSTA_RDYWAITREQ    (1<<10)
++#define S3C2410_SDIDSTA_SDIOIRQDETECT (1<<9)
++#define S3C2410_SDIDSTA_FIFOFAIL      (1<<8)  /* reserved on 2440 */
++#define S3C2410_SDIDSTA_CRCFAIL       (1<<7)
++#define S3C2410_SDIDSTA_RXCRCFAIL     (1<<6)
++#define S3C2410_SDIDSTA_DATATIMEOUT   (1<<5)
++#define S3C2410_SDIDSTA_XFERFINISH    (1<<4)
++#define S3C2410_SDIDSTA_BUSYFINISH    (1<<3)
++#define S3C2410_SDIDSTA_SBITERR       (1<<2)  /* reserved on 2410a/2440 */
++#define S3C2410_SDIDSTA_TXDATAON      (1<<1)
++#define S3C2410_SDIDSTA_RXDATAON      (1<<0)
++
++#define S3C2440_SDIFSTA_FIFORESET      (1<<16)
++#define S3C2440_SDIFSTA_FIFOFAIL       (3<<14)  /* 3 is correct (2 bits) */
++#define S3C2410_SDIFSTA_TFDET          (1<<13)
++#define S3C2410_SDIFSTA_RFDET          (1<<12)
++#define S3C2410_SDIFSTA_TFHALF         (1<<11)
++#define S3C2410_SDIFSTA_TFEMPTY        (1<<10)
++#define S3C2410_SDIFSTA_RFLAST         (1<<9)
++#define S3C2410_SDIFSTA_RFFULL         (1<<8)
++#define S3C2410_SDIFSTA_RFHALF         (1<<7)
++#define S3C2410_SDIFSTA_COUNTMASK      (0x7f)
++
++#define S3C2410_SDIIMSK_RESPONSECRC    (1<<17)
++#define S3C2410_SDIIMSK_CMDSENT        (1<<16)
++#define S3C2410_SDIIMSK_CMDTIMEOUT     (1<<15)
++#define S3C2410_SDIIMSK_RESPONSEND     (1<<14)
++#define S3C2410_SDIIMSK_READWAIT       (1<<13)
++#define S3C2410_SDIIMSK_SDIOIRQ        (1<<12)
++#define S3C2410_SDIIMSK_FIFOFAIL       (1<<11)
++#define S3C2410_SDIIMSK_CRCSTATUS      (1<<10)
++#define S3C2410_SDIIMSK_DATACRC        (1<<9)
++#define S3C2410_SDIIMSK_DATATIMEOUT    (1<<8)
++#define S3C2410_SDIIMSK_DATAFINISH     (1<<7)
++#define S3C2410_SDIIMSK_BUSYFINISH     (1<<6)
++#define S3C2410_SDIIMSK_SBITERR        (1<<5) /* reserved 2440/2410a */
++#define S3C2410_SDIIMSK_TXFIFOHALF     (1<<4)
++#define S3C2410_SDIIMSK_TXFIFOEMPTY    (1<<3)
++#define S3C2410_SDIIMSK_RXFIFOLAST     (1<<2)
++#define S3C2410_SDIIMSK_RXFIFOFULL     (1<<1)
++#define S3C2410_SDIIMSK_RXFIFOHALF     (1<<0)
++
++#endif /* __ASM_ARM_REGS_SDI */
+diff --git a/include/asm-arm/mach-types.h b/include/asm-arm/mach-types.h
+index 7d7888e..4e9c6d9 100644
+--- a/include/asm-arm/mach-types.h
++++ b/include/asm-arm/mach-types.h
+@@ -424,7 +424,7 @@ #define MACH_TYPE_MT02                 4
+ #define MACH_TYPE_MPORT3S              411
+ #define MACH_TYPE_RA_ALPHA             412
+ #define MACH_TYPE_XCEP                 413
+-#define MACH_TYPE_ARCOM_MERCURY        414
++#define MACH_TYPE_ARCOM_VULCAN         414
+ #define MACH_TYPE_STARGATE             415
+ #define MACH_TYPE_ARMADILLOJ           416
+ #define MACH_TYPE_ELROY_JACK           417
+@@ -457,7 +457,7 @@ #define MACH_TYPE_ESL_SARVA            4
+ #define MACH_TYPE_XM250                444
+ #define MACH_TYPE_T6TC1XB              445
+ #define MACH_TYPE_ESS710               446
+-#define MACH_TYPE_MX3ADS               447
++#define MACH_TYPE_MX31ADS              447
+ #define MACH_TYPE_HIMALAYA             448
+ #define MACH_TYPE_BOLFENK              449
+ #define MACH_TYPE_AT91RM9200KR         450
+@@ -736,7 +736,308 @@ #define MACH_TYPE_ADSPORTAL            7
+ #define MACH_TYPE_LN2410SBC            725
+ #define MACH_TYPE_CB3RUFC              726
+ #define MACH_TYPE_MP2USB               727
+-#define MACH_TYPE_PDNB3               1002
++#define MACH_TYPE_NTNP425C             728
++#define MACH_TYPE_COLIBRI              729
++#define MACH_TYPE_PCM7220              730
++#define MACH_TYPE_GATEWAY7001          731
++#define MACH_TYPE_PCM027               732
++#define MACH_TYPE_CMPXA                733
++#define MACH_TYPE_ANUBIS               734
++#define MACH_TYPE_ITE8152              735
++#define MACH_TYPE_LPC3XXX              736
++#define MACH_TYPE_PUPPETEER            737
++#define MACH_TYPE_MACH_VADATECH        738
++#define MACH_TYPE_E570                 739
++#define MACH_TYPE_X50                  740
++#define MACH_TYPE_RECON                741
++#define MACH_TYPE_XBOARDGP8            742
++#define MACH_TYPE_FPIC2                743
++#define MACH_TYPE_AKITA                744
++#define MACH_TYPE_A81                  745
++#define MACH_TYPE_SVM_SC25X            746
++#define MACH_TYPE_VADATECH020          747
++#define MACH_TYPE_TLI                  748
++#define MACH_TYPE_EDB9315LC            749
++#define MACH_TYPE_PASSEC               750
++#define MACH_TYPE_DS_TIGER             751
++#define MACH_TYPE_E310                 752
++#define MACH_TYPE_E330                 753
++#define MACH_TYPE_RT3000               754
++#define MACH_TYPE_NOKIA770             755
++#define MACH_TYPE_PNX0106              756
++#define MACH_TYPE_HX21XX               757
++#define MACH_TYPE_FARADAY              758
++#define MACH_TYPE_SBC9312              759
++#define MACH_TYPE_BATMAN               760
++#define MACH_TYPE_JPD201               761
++#define MACH_TYPE_MIPSA                762
++#define MACH_TYPE_KACOM                763
++#define MACH_TYPE_SWARCOCPU            764
++#define MACH_TYPE_SWARCODSL            765
++#define MACH_TYPE_BLUEANGEL            766
++#define MACH_TYPE_HAIRYGRAMA           767
++#define MACH_TYPE_BANFF                768
++#define MACH_TYPE_CARMEVA              769
++#define MACH_TYPE_SAM255               770
++#define MACH_TYPE_PPM10                771
++#define MACH_TYPE_EDB9315A             772
++#define MACH_TYPE_SUNSET               773
++#define MACH_TYPE_STARGATE2            774
++#define MACH_TYPE_INTELMOTE2           775
++#define MACH_TYPE_TRIZEPS4             776
++#define MACH_TYPE_MAINSTONE2           777
++#define MACH_TYPE_EZ_IXP42X            778
++#define MACH_TYPE_TAPWAVE_ZODIAC       779
++#define MACH_TYPE_UNIVERSALMETER       780
++#define MACH_TYPE_HICOARM9             781
++#define MACH_TYPE_PNX4008              782
++#define MACH_TYPE_KWS6000              783
++#define MACH_TYPE_PORTUX920T           784
++#define MACH_TYPE_EZ_X5                785
++#define MACH_TYPE_OMAP_RUDOLPH         786
++#define MACH_TYPE_CPUAT91              787
++#define MACH_TYPE_REA9200              788
++#define MACH_TYPE_ACTS_PUNE_SA1110     789
++#define MACH_TYPE_IXP425               790
++#define MACH_TYPE_ARGONPLUSODYSSEY     791
++#define MACH_TYPE_PERCH                792
++#define MACH_TYPE_EIS05R1              793
++#define MACH_TYPE_PEPPERPAD            794
++#define MACH_TYPE_SB3010               795
++#define MACH_TYPE_RM9200               796
++#define MACH_TYPE_DMA03                797
++#define MACH_TYPE_ROAD_S101            798
++#define MACH_TYPE_IQ_NEXTGEN_A         799
++#define MACH_TYPE_IQ_NEXTGEN_B         800
++#define MACH_TYPE_IQ_NEXTGEN_C         801
++#define MACH_TYPE_IQ_NEXTGEN_D         802
++#define MACH_TYPE_IQ_NEXTGEN_E         803
++#define MACH_TYPE_MALLOW_AT91          804
++#define MACH_TYPE_CYBERTRACKER_I       805
++#define MACH_TYPE_GESBC931X            806
++#define MACH_TYPE_CENTIPAD             807
++#define MACH_TYPE_ARMSOC               808
++#define MACH_TYPE_SE4200               809
++#define MACH_TYPE_EMS197A              810
++#define MACH_TYPE_MICRO9               811
++#define MACH_TYPE_MICRO9L              812
++#define MACH_TYPE_UC5471DSP            813
++#define MACH_TYPE_SJ5471ENG            814
++#define MACH_TYPE_CMPXA26X             815
++#define MACH_TYPE_NC                   816
++#define MACH_TYPE_OMAP_PALMTE          817
++#define MACH_TYPE_AJAX52X              818
++#define MACH_TYPE_SIRIUSTAR            819
++#define MACH_TYPE_IODATA_HDLG          820
++#define MACH_TYPE_AT91RM9200UTL        821
++#define MACH_TYPE_BIOSAFE              822
++#define MACH_TYPE_MP1000               823
++#define MACH_TYPE_PARSY                824
++#define MACH_TYPE_CCXP                 825
++#define MACH_TYPE_OMAP_GSAMPLE         826
++#define MACH_TYPE_REALVIEW_EB          827
++#define MACH_TYPE_SAMOA                828
++#define MACH_TYPE_T3XSCALE             829
++#define MACH_TYPE_I878                 830
++#define MACH_TYPE_BORZOI               831
++#define MACH_TYPE_GECKO                832
++#define MACH_TYPE_DS101                833
++#define MACH_TYPE_OMAP_PALMTT2         834
++#define MACH_TYPE_XSCALE_PALMLD        835
++#define MACH_TYPE_CC9C                 836
++#define MACH_TYPE_SBC1670              837
++#define MACH_TYPE_IXDP28X5             838
++#define MACH_TYPE_OMAP_PALMTT          839
++#define MACH_TYPE_ML696K               840
++#define MACH_TYPE_ARCOM_ZEUS           841
++#define MACH_TYPE_OSIRIS               842
++#define MACH_TYPE_MAESTRO              843
++#define MACH_TYPE_TUNGE2               844
++#define MACH_TYPE_IXBBM                845
++#define MACH_TYPE_MX27                 846
++#define MACH_TYPE_AX8004               847
++#define MACH_TYPE_AT91SAM9261EK        848
++#define MACH_TYPE_LOFT                 849
++#define MACH_TYPE_MAGPIE               850
++#define MACH_TYPE_MX21                 851
++#define MACH_TYPE_MB87M3400            852
++#define MACH_TYPE_MGUARD_DELTA         853
++#define MACH_TYPE_DAVINCI_DVDP         854
++#define MACH_TYPE_HTCUNIVERSAL         855
++#define MACH_TYPE_TPAD                 856
++#define MACH_TYPE_ROVERP3              857
++#define MACH_TYPE_JORNADA928           858
++#define MACH_TYPE_MV88FXX81            859
++#define MACH_TYPE_STMP36XX             860
++#define MACH_TYPE_SXNI79524            861
++#define MACH_TYPE_AMS_DELTA            862
++#define MACH_TYPE_URANIUM              863
++#define MACH_TYPE_UCON                 864
++#define MACH_TYPE_NAS100D              865
++#define MACH_TYPE_L083_1000            866
++#define MACH_TYPE_EZX                  867
++#define MACH_TYPE_PNX5220              868
++#define MACH_TYPE_BUTTE                869
++#define MACH_TYPE_SRM2                 870
++#define MACH_TYPE_DSBR                 871
++#define MACH_TYPE_CRYSTALBALL          872
++#define MACH_TYPE_TINYPXA27X           873
++#define MACH_TYPE_HERBIE               874
++#define MACH_TYPE_MAGICIAN             875
++#define MACH_TYPE_CM4002               876
++#define MACH_TYPE_B4                   877
++#define MACH_TYPE_MAUI                 878
++#define MACH_TYPE_CYBERTRACKER_G       879
++#define MACH_TYPE_NXDKN                880
++#define MACH_TYPE_MIO8390              881
++#define MACH_TYPE_OMI_BOARD            882
++#define MACH_TYPE_MX21CIV              883
++#define MACH_TYPE_MAHI_CDAC            884
++#define MACH_TYPE_XSCALE_PALMTX        885
++#define MACH_TYPE_S3C2413              887
++#define MACH_TYPE_SAMSYS_EP0           888
++#define MACH_TYPE_WG302V1              889
++#define MACH_TYPE_WG302V2              890
++#define MACH_TYPE_EB42X                891
++#define MACH_TYPE_IQ331ES              892
++#define MACH_TYPE_COSYDSP              893
++#define MACH_TYPE_UPLAT7D              894
++#define MACH_TYPE_PTDAVINCI            895
++#define MACH_TYPE_MBUS                 896
++#define MACH_TYPE_NADIA2VB             897
++#define MACH_TYPE_R1000                898
++#define MACH_TYPE_HW90250              899
++#define MACH_TYPE_OMAP_2430SDP         900
++#define MACH_TYPE_DAVINCI_EVM          901
++#define MACH_TYPE_OMAP_TORNADO         902
++#define MACH_TYPE_OLOCREEK             903
++#define MACH_TYPE_PALMZ72              904
++#define MACH_TYPE_NXDB500              905
++#define MACH_TYPE_APF9328              906
++#define MACH_TYPE_OMAP_WIPOQ           907
++#define MACH_TYPE_OMAP_TWIP            908
++#define MACH_TYPE_XSCALE_PALMTREO650   909
++#define MACH_TYPE_ACUMEN               910
++#define MACH_TYPE_XP100                911
++#define MACH_TYPE_FS2410               912
++#define MACH_TYPE_PXA270_CERF          913
++#define MACH_TYPE_SQ2FTLPALM           914
++#define MACH_TYPE_BSEMSERVER           915
++#define MACH_TYPE_NETCLIENT            916
++#define MACH_TYPE_XSCALE_PALMTT5       917
++#define MACH_TYPE_OMAP_PALMTC          918
++#define MACH_TYPE_OMAP_APOLLON         919
++#define MACH_TYPE_ARGONLVEVB           920
++#define MACH_TYPE_REA_2D               921
++#define MACH_TYPE_TI3E524              922
++#define MACH_TYPE_ATEB9200             923
++#define MACH_TYPE_AUCKLAND             924
++#define MACH_TYPE_AK3320M              925
++#define MACH_TYPE_DURAMAX              926
++#define MACH_TYPE_N35                  927
++#define MACH_TYPE_PRONGHORN            928
++#define MACH_TYPE_FUNDY                929
++#define MACH_TYPE_LOGICPD_PXA270       930
++#define MACH_TYPE_CPU777               931
++#define MACH_TYPE_SIMICON9201          932
++#define MACH_TYPE_LEAP2_HPM            933
++#define MACH_TYPE_CM922TXA10           934
++#define MACH_TYPE_PXA                  935
++#define MACH_TYPE_SANDGATE2            936
++#define MACH_TYPE_SANDGATE2G           937
++#define MACH_TYPE_SANDGATE2P           938
++#define MACH_TYPE_FRED_JACK            939
++#define MACH_TYPE_TTG_COLOR1           940
++#define MACH_TYPE_NXEB500HMI           941
++#define MACH_TYPE_NETDCU8              942
++#define MACH_TYPE_ML675050_CPU_BOA     943
++#define MACH_TYPE_NG_FVX538            944
++#define MACH_TYPE_NG_FVS338            945
++#define MACH_TYPE_PNX4103              946
++#define MACH_TYPE_HESDB                947
++#define MACH_TYPE_XSILO                948
++#define MACH_TYPE_ESPRESSO             949
++#define MACH_TYPE_EMLC                 950
++#define MACH_TYPE_SISTERON             951
++#define MACH_TYPE_RX1950               952
++#define MACH_TYPE_TSC_VENUS            953
++#define MACH_TYPE_DS101J               954
++#define MACH_TYPE_MXC30030ADS          955
++#define MACH_TYPE_FUJITSU_WIMAXSOC     956
++#define MACH_TYPE_DUALPCMODEM          957
++#define MACH_TYPE_GESBC9312            958
++#define MACH_TYPE_HTCAPACHE            959
++#define MACH_TYPE_IXDP435              960
++#define MACH_TYPE_CATPROVT100          961
++#define MACH_TYPE_PICOTUX1XX           962
++#define MACH_TYPE_PICOTUX2XX           963
++#define MACH_TYPE_DSMG600              964
++#define MACH_TYPE_EMPC2                965
++#define MACH_TYPE_VENTURA              966
++#define MACH_TYPE_PHIDGET_SBC          967
++#define MACH_TYPE_IJ3K                 968
++#define MACH_TYPE_PISGAH               969
++#define MACH_TYPE_OMAP_FSAMPLE         970
++#define MACH_TYPE_SG720                971
++#define MACH_TYPE_REDFOX               972
++#define MACH_TYPE_MYSH_EP9315_1        973
++#define MACH_TYPE_TPF106               974
++#define MACH_TYPE_AT91RM9200KG         975
++#define MACH_TYPE_SLEDB                976
++#define MACH_TYPE_ONTRACK              977
++#define MACH_TYPE_PM1200               978
++#define MACH_TYPE_ESS24XXX             979
++#define MACH_TYPE_COREMP7              980
++#define MACH_TYPE_NEXCODER_6446        981
++#define MACH_TYPE_STVC8380             982
++#define MACH_TYPE_TEKLYNX              983
++#define MACH_TYPE_CARBONADO            984
++#define MACH_TYPE_SYSMOS_MP730         985
++#define MACH_TYPE_SNAPPER_CL15         986
++#define MACH_TYPE_PGIGIM               987
++#define MACH_TYPE_PTX9160P2            988
++#define MACH_TYPE_DCORE1               989
++#define MACH_TYPE_VICTORPXA            990
++#define MACH_TYPE_MX2DTB               991
++#define MACH_TYPE_PXA_IREX_ER0100      992
++#define MACH_TYPE_OMAP_PALMZ71         993
++#define MACH_TYPE_BARTEC_DEG           994
++#define MACH_TYPE_HW50251              995
++#define MACH_TYPE_IBOX                 996
++#define MACH_TYPE_ATLASLH7A404         997
++#define MACH_TYPE_PT2026               998
++#define MACH_TYPE_HTCALPINE            999
++#define MACH_TYPE_BARTEC_VTU           1000
++#define MACH_TYPE_VCOREII              1001
++#define MACH_TYPE_PDNB3                1002
++#define MACH_TYPE_HTCBEETLES           1003
++#define MACH_TYPE_S3C6400              1004
++#define MACH_TYPE_S3C2443              1005
++#define MACH_TYPE_OMAP_LDK             1006
++#define MACH_TYPE_SMDK2460             1007
++#define MACH_TYPE_SMDK2440             1008
++#define MACH_TYPE_SMDK2412             1009
++#define MACH_TYPE_WEBBOX               1010
++#define MACH_TYPE_CWWNDP               1011
++#define MACH_TYPE_DRAGON               1012
++#define MACH_TYPE_OPENDO_CPU_BOARD     1013
++#define MACH_TYPE_CCM2200              1014
++#define MACH_TYPE_ETWARM               1015
++#define MACH_TYPE_M93030               1016
++#define MACH_TYPE_CC7U                 1017
++#define MACH_TYPE_MTT_RANGER           1018
++#define MACH_TYPE_NEXUS                1019
++#define MACH_TYPE_DESMAN               1020
++#define MACH_TYPE_BKDE303              1021
++#define MACH_TYPE_SMDK2413             1022
++#define MACH_TYPE_AML_M7200            1023
++#define MACH_TYPE_AML_M5900            1024
++#define MACH_TYPE_SG640                1025
++#define MACH_TYPE_EDG79524             1026
++#define MACH_TYPE_AI2410               1027
++#define MACH_TYPE_IXP465               1028
++#define MACH_TYPE_BALLOON3             1029
++#define MACH_TYPE_QT2410               1108
+ #ifdef CONFIG_ARCH_EBSA110
+ # ifdef machine_arch_type
+@@ -3541,9 +3842,9 @@ #  define machine_arch_type      __machine_ar
+ # else
+ #  define machine_arch_type   MACH_TYPE_RAMSES
+ # endif
+-# define machine_is_ramses()  (machine_arch_type == MACH_TYPE_RAMSES)
++# define machine_is_mnci()    (machine_arch_type == MACH_TYPE_RAMSES)
+ #else
+-# define machine_is_ramses()  (0)
++# define machine_is_mnci()    (0)
+ #endif
+ #ifdef CONFIG_ARCH_S28X
+@@ -4501,9 +4802,9 @@ #  define machine_arch_type      __machine_ar
+ # else
+ #  define machine_arch_type   MACH_TYPE_M825XX
+ # endif
+-# define machine_is_m825xx()  (machine_arch_type == MACH_TYPE_M825XX)
++# define machine_is_comcerto()        (machine_arch_type == MACH_TYPE_M825XX)
+ #else
+-# define machine_is_m825xx()  (0)
++# define machine_is_comcerto()        (0)
+ #endif
+ #ifdef CONFIG_SA1100_M7100
+@@ -5658,16 +5959,16 @@ #else
+ # define machine_is_xcep()    (0)
+ #endif
+-#ifdef CONFIG_MACH_ARCOM_MERCURY
++#ifdef CONFIG_MACH_ARCOM_VULCAN
+ # ifdef machine_arch_type
+ #  undef machine_arch_type
+ #  define machine_arch_type   __machine_arch_type
+ # else
+-#  define machine_arch_type   MACH_TYPE_ARCOM_MERCURY
++#  define machine_arch_type   MACH_TYPE_ARCOM_VULCAN
+ # endif
+-# define machine_is_arcom_mercury()   (machine_arch_type == MACH_TYPE_ARCOM_MERCURY)
++# define machine_is_arcom_vulcan()    (machine_arch_type == MACH_TYPE_ARCOM_VULCAN)
+ #else
+-# define machine_is_arcom_mercury()   (0)
++# define machine_is_arcom_vulcan()    (0)
+ #endif
+ #ifdef CONFIG_MACH_STARGATE
+@@ -6054,16 +6355,16 @@ #else
+ # define machine_is_ess710()  (0)
+ #endif
+-#ifdef CONFIG_MACH_MX3ADS
++#ifdef CONFIG_MACH_MX31ADS
+ # ifdef machine_arch_type
+ #  undef machine_arch_type
+ #  define machine_arch_type   __machine_arch_type
+ # else
+-#  define machine_arch_type   MACH_TYPE_MX3ADS
++#  define machine_arch_type   MACH_TYPE_MX31ADS
+ # endif
+-# define machine_is_mx3ads()  (machine_arch_type == MACH_TYPE_MX3ADS)
++# define machine_is_mx31ads() (machine_arch_type == MACH_TYPE_MX31ADS)
+ #else
+-# define machine_is_mx3ads()  (0)
++# define machine_is_mx31ads() (0)
+ #endif
+ #ifdef CONFIG_MACH_HIMALAYA
+@@ -7333,9 +7634,9 @@ #  define machine_arch_type      __machine_ar
+ # else
+ #  define machine_arch_type   MACH_TYPE_ARGONPLUSEVB
+ # endif
+-# define machine_is_argonplusevb()    (machine_arch_type == MACH_TYPE_ARGONPLUSEVB)
++# define machine_is_i30030evb()       (machine_arch_type == MACH_TYPE_ARGONPLUSEVB)
+ #else
+-# define machine_is_argonplusevb()    (0)
++# define machine_is_i30030evb()       (0)
+ #endif
+ #ifdef CONFIG_MACH_SCMA11EVB
+@@ -7345,9 +7646,9 @@ #  define machine_arch_type      __machine_ar
+ # else
+ #  define machine_arch_type   MACH_TYPE_SCMA11EVB
+ # endif
+-# define machine_is_scma11evb()       (machine_arch_type == MACH_TYPE_SCMA11EVB)
++# define machine_is_mxc27530evb()     (machine_arch_type == MACH_TYPE_SCMA11EVB)
+ #else
+-# define machine_is_scma11evb()       (0)
++# define machine_is_mxc27530evb()     (0)
+ #endif
+ #ifdef CONFIG_MACH_SMDK2800
+@@ -8305,9 +8606,9 @@ #  define machine_arch_type      __machine_ar
+ # else
+ #  define machine_arch_type   MACH_TYPE_SCMA11BB
+ # endif
+-# define machine_is_scma11bb()        (machine_arch_type == MACH_TYPE_SCMA11BB)
++# define machine_is_mxc27530ads()     (machine_arch_type == MACH_TYPE_SCMA11BB)
+ #else
+-# define machine_is_scma11bb()        (0)
++# define machine_is_mxc27530ads()     (0)
+ #endif
+ #ifdef CONFIG_MACH_TRIZEPS3
+@@ -9193,9 +9494,9 @@ #  define machine_arch_type      __machine_ar
+ # else
+ #  define machine_arch_type   MACH_TYPE_ZEUSEVB
+ # endif
+-# define machine_is_zeusevb() (machine_arch_type == MACH_TYPE_ZEUSEVB)
++# define machine_is_mxc91131evb()     (machine_arch_type == MACH_TYPE_ZEUSEVB)
+ #else
+-# define machine_is_zeusevb() (0)
++# define machine_is_mxc91131evb()     (0)
+ #endif
+ #ifdef CONFIG_MACH_P700
+@@ -9402,6 +9703,3630 @@ #else
+ # define machine_is_mp2usb()  (0)
+ #endif
++#ifdef CONFIG_MACH_NTNP425C
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NTNP425C
++# endif
++# define machine_is_ntnp425c()        (machine_arch_type == MACH_TYPE_NTNP425C)
++#else
++# define machine_is_ntnp425c()        (0)
++#endif
++
++#ifdef CONFIG_MACH_COLIBRI
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_COLIBRI
++# endif
++# define machine_is_colibri() (machine_arch_type == MACH_TYPE_COLIBRI)
++#else
++# define machine_is_colibri() (0)
++#endif
++
++#ifdef CONFIG_MACH_PCM7220
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PCM7220
++# endif
++# define machine_is_pcm7220() (machine_arch_type == MACH_TYPE_PCM7220)
++#else
++# define machine_is_pcm7220() (0)
++#endif
++
++#ifdef CONFIG_MACH_GATEWAY7001
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_GATEWAY7001
++# endif
++# define machine_is_gateway7001()     (machine_arch_type == MACH_TYPE_GATEWAY7001)
++#else
++# define machine_is_gateway7001()     (0)
++#endif
++
++#ifdef CONFIG_MACH_PCM027
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PCM027
++# endif
++# define machine_is_pcm027()  (machine_arch_type == MACH_TYPE_PCM027)
++#else
++# define machine_is_pcm027()  (0)
++#endif
++
++#ifdef CONFIG_MACH_CMPXA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CMPXA
++# endif
++# define machine_is_cmpxa()   (machine_arch_type == MACH_TYPE_CMPXA)
++#else
++# define machine_is_cmpxa()   (0)
++#endif
++
++#ifdef CONFIG_MACH_ANUBIS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ANUBIS
++# endif
++# define machine_is_anubis()  (machine_arch_type == MACH_TYPE_ANUBIS)
++#else
++# define machine_is_anubis()  (0)
++#endif
++
++#ifdef CONFIG_MACH_ITE8152
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ITE8152
++# endif
++# define machine_is_ite8152() (machine_arch_type == MACH_TYPE_ITE8152)
++#else
++# define machine_is_ite8152() (0)
++#endif
++
++#ifdef CONFIG_MACH_LPC3XXX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_LPC3XXX
++# endif
++# define machine_is_lpc3xxx() (machine_arch_type == MACH_TYPE_LPC3XXX)
++#else
++# define machine_is_lpc3xxx() (0)
++#endif
++
++#ifdef CONFIG_MACH_PUPPETEER
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PUPPETEER
++# endif
++# define machine_is_puppeteer()       (machine_arch_type == MACH_TYPE_PUPPETEER)
++#else
++# define machine_is_puppeteer()       (0)
++#endif
++
++#ifdef CONFIG_MACH_MACH_VADATECH
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MACH_VADATECH
++# endif
++# define machine_is_vt001()   (machine_arch_type == MACH_TYPE_MACH_VADATECH)
++#else
++# define machine_is_vt001()   (0)
++#endif
++
++#ifdef CONFIG_MACH_E570
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_E570
++# endif
++# define machine_is_e570()    (machine_arch_type == MACH_TYPE_E570)
++#else
++# define machine_is_e570()    (0)
++#endif
++
++#ifdef CONFIG_MACH_X50
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_X50
++# endif
++# define machine_is_x50()     (machine_arch_type == MACH_TYPE_X50)
++#else
++# define machine_is_x50()     (0)
++#endif
++
++#ifdef CONFIG_MACH_RECON
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_RECON
++# endif
++# define machine_is_recon()   (machine_arch_type == MACH_TYPE_RECON)
++#else
++# define machine_is_recon()   (0)
++#endif
++
++#ifdef CONFIG_MACH_XBOARDGP8
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_XBOARDGP8
++# endif
++# define machine_is_xboardgp8()       (machine_arch_type == MACH_TYPE_XBOARDGP8)
++#else
++# define machine_is_xboardgp8()       (0)
++#endif
++
++#ifdef CONFIG_MACH_FPIC2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_FPIC2
++# endif
++# define machine_is_fpic2()   (machine_arch_type == MACH_TYPE_FPIC2)
++#else
++# define machine_is_fpic2()   (0)
++#endif
++
++#ifdef CONFIG_MACH_AKITA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AKITA
++# endif
++# define machine_is_akita()   (machine_arch_type == MACH_TYPE_AKITA)
++#else
++# define machine_is_akita()   (0)
++#endif
++
++#ifdef CONFIG_MACH_A81
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_A81
++# endif
++# define machine_is_a81()     (machine_arch_type == MACH_TYPE_A81)
++#else
++# define machine_is_a81()     (0)
++#endif
++
++#ifdef CONFIG_MACH_SVM_SC25X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SVM_SC25X
++# endif
++# define machine_is_svm_sc25x()       (machine_arch_type == MACH_TYPE_SVM_SC25X)
++#else
++# define machine_is_svm_sc25x()       (0)
++#endif
++
++#ifdef CONFIG_MACH_VADATECH020
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_VADATECH020
++# endif
++# define machine_is_vt020()   (machine_arch_type == MACH_TYPE_VADATECH020)
++#else
++# define machine_is_vt020()   (0)
++#endif
++
++#ifdef CONFIG_MACH_TLI
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TLI
++# endif
++# define machine_is_tli()     (machine_arch_type == MACH_TYPE_TLI)
++#else
++# define machine_is_tli()     (0)
++#endif
++
++#ifdef CONFIG_MACH_EDB9315LC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EDB9315LC
++# endif
++# define machine_is_edb9315lc()       (machine_arch_type == MACH_TYPE_EDB9315LC)
++#else
++# define machine_is_edb9315lc()       (0)
++#endif
++
++#ifdef CONFIG_MACH_PASSEC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PASSEC
++# endif
++# define machine_is_passec()  (machine_arch_type == MACH_TYPE_PASSEC)
++#else
++# define machine_is_passec()  (0)
++#endif
++
++#ifdef CONFIG_MACH_DS_TIGER
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DS_TIGER
++# endif
++# define machine_is_ds_tiger()        (machine_arch_type == MACH_TYPE_DS_TIGER)
++#else
++# define machine_is_ds_tiger()        (0)
++#endif
++
++#ifdef CONFIG_MACH_E310
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_E310
++# endif
++# define machine_is_e310()    (machine_arch_type == MACH_TYPE_E310)
++#else
++# define machine_is_e310()    (0)
++#endif
++
++#ifdef CONFIG_MACH_E330
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_E330
++# endif
++# define machine_is_e330()    (machine_arch_type == MACH_TYPE_E330)
++#else
++# define machine_is_e330()    (0)
++#endif
++
++#ifdef CONFIG_MACH_RT3000
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_RT3000
++# endif
++# define machine_is_rt3000()  (machine_arch_type == MACH_TYPE_RT3000)
++#else
++# define machine_is_rt3000()  (0)
++#endif
++
++#ifdef CONFIG_MACH_NOKIA770
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NOKIA770
++# endif
++# define machine_is_nokia770()        (machine_arch_type == MACH_TYPE_NOKIA770)
++#else
++# define machine_is_nokia770()        (0)
++#endif
++
++#ifdef CONFIG_MACH_PNX0106
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PNX0106
++# endif
++# define machine_is_pnx0106() (machine_arch_type == MACH_TYPE_PNX0106)
++#else
++# define machine_is_pnx0106() (0)
++#endif
++
++#ifdef CONFIG_MACH_HX21XX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HX21XX
++# endif
++# define machine_is_hx21xx()  (machine_arch_type == MACH_TYPE_HX21XX)
++#else
++# define machine_is_hx21xx()  (0)
++#endif
++
++#ifdef CONFIG_MACH_FARADAY
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_FARADAY
++# endif
++# define machine_is_faraday() (machine_arch_type == MACH_TYPE_FARADAY)
++#else
++# define machine_is_faraday() (0)
++#endif
++
++#ifdef CONFIG_MACH_SBC9312
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SBC9312
++# endif
++# define machine_is_sbc9312() (machine_arch_type == MACH_TYPE_SBC9312)
++#else
++# define machine_is_sbc9312() (0)
++#endif
++
++#ifdef CONFIG_MACH_BATMAN
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BATMAN
++# endif
++# define machine_is_batman()  (machine_arch_type == MACH_TYPE_BATMAN)
++#else
++# define machine_is_batman()  (0)
++#endif
++
++#ifdef CONFIG_MACH_JPD201
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_JPD201
++# endif
++# define machine_is_jpd201()  (machine_arch_type == MACH_TYPE_JPD201)
++#else
++# define machine_is_jpd201()  (0)
++#endif
++
++#ifdef CONFIG_MACH_MIPSA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MIPSA
++# endif
++# define machine_is_mipsa()   (machine_arch_type == MACH_TYPE_MIPSA)
++#else
++# define machine_is_mipsa()   (0)
++#endif
++
++#ifdef CONFIG_MACH_KACOM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_KACOM
++# endif
++# define machine_is_kacom()   (machine_arch_type == MACH_TYPE_KACOM)
++#else
++# define machine_is_kacom()   (0)
++#endif
++
++#ifdef CONFIG_MACH_SWARCOCPU
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SWARCOCPU
++# endif
++# define machine_is_swarcocpu()       (machine_arch_type == MACH_TYPE_SWARCOCPU)
++#else
++# define machine_is_swarcocpu()       (0)
++#endif
++
++#ifdef CONFIG_MACH_SWARCODSL
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SWARCODSL
++# endif
++# define machine_is_swarcodsl()       (machine_arch_type == MACH_TYPE_SWARCODSL)
++#else
++# define machine_is_swarcodsl()       (0)
++#endif
++
++#ifdef CONFIG_MACH_BLUEANGEL
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BLUEANGEL
++# endif
++# define machine_is_blueangel()       (machine_arch_type == MACH_TYPE_BLUEANGEL)
++#else
++# define machine_is_blueangel()       (0)
++#endif
++
++#ifdef CONFIG_MACH_HAIRYGRAMA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HAIRYGRAMA
++# endif
++# define machine_is_hairygrama()      (machine_arch_type == MACH_TYPE_HAIRYGRAMA)
++#else
++# define machine_is_hairygrama()      (0)
++#endif
++
++#ifdef CONFIG_MACH_BANFF
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BANFF
++# endif
++# define machine_is_banff()   (machine_arch_type == MACH_TYPE_BANFF)
++#else
++# define machine_is_banff()   (0)
++#endif
++
++#ifdef CONFIG_MACH_CARMEVA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CARMEVA
++# endif
++# define machine_is_carmeva() (machine_arch_type == MACH_TYPE_CARMEVA)
++#else
++# define machine_is_carmeva() (0)
++#endif
++
++#ifdef CONFIG_MACH_SAM255
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SAM255
++# endif
++# define machine_is_sam255()  (machine_arch_type == MACH_TYPE_SAM255)
++#else
++# define machine_is_sam255()  (0)
++#endif
++
++#ifdef CONFIG_MACH_PPM10
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PPM10
++# endif
++# define machine_is_ppm10()   (machine_arch_type == MACH_TYPE_PPM10)
++#else
++# define machine_is_ppm10()   (0)
++#endif
++
++#ifdef CONFIG_MACH_EDB9315A
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EDB9315A
++# endif
++# define machine_is_edb9315a()        (machine_arch_type == MACH_TYPE_EDB9315A)
++#else
++# define machine_is_edb9315a()        (0)
++#endif
++
++#ifdef CONFIG_MACH_SUNSET
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SUNSET
++# endif
++# define machine_is_sunset()  (machine_arch_type == MACH_TYPE_SUNSET)
++#else
++# define machine_is_sunset()  (0)
++#endif
++
++#ifdef CONFIG_MACH_STARGATE2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_STARGATE2
++# endif
++# define machine_is_stargate2()       (machine_arch_type == MACH_TYPE_STARGATE2)
++#else
++# define machine_is_stargate2()       (0)
++#endif
++
++#ifdef CONFIG_MACH_INTELMOTE2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_INTELMOTE2
++# endif
++# define machine_is_intelmote2()      (machine_arch_type == MACH_TYPE_INTELMOTE2)
++#else
++# define machine_is_intelmote2()      (0)
++#endif
++
++#ifdef CONFIG_MACH_TRIZEPS4
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TRIZEPS4
++# endif
++# define machine_is_trizeps4()        (machine_arch_type == MACH_TYPE_TRIZEPS4)
++#else
++# define machine_is_trizeps4()        (0)
++#endif
++
++#ifdef CONFIG_MACH_MAINSTONE2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MAINSTONE2
++# endif
++# define machine_is_mainstone2()      (machine_arch_type == MACH_TYPE_MAINSTONE2)
++#else
++# define machine_is_mainstone2()      (0)
++#endif
++
++#ifdef CONFIG_MACH_EZ_IXP42X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EZ_IXP42X
++# endif
++# define machine_is_ez_ixp42x()       (machine_arch_type == MACH_TYPE_EZ_IXP42X)
++#else
++# define machine_is_ez_ixp42x()       (0)
++#endif
++
++#ifdef CONFIG_MACH_TAPWAVE_ZODIAC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TAPWAVE_ZODIAC
++# endif
++# define machine_is_tapwave_zodiac()  (machine_arch_type == MACH_TYPE_TAPWAVE_ZODIAC)
++#else
++# define machine_is_tapwave_zodiac()  (0)
++#endif
++
++#ifdef CONFIG_MACH_UNIVERSALMETER
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_UNIVERSALMETER
++# endif
++# define machine_is_universalmeter()  (machine_arch_type == MACH_TYPE_UNIVERSALMETER)
++#else
++# define machine_is_universalmeter()  (0)
++#endif
++
++#ifdef CONFIG_MACH_HICOARM9
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HICOARM9
++# endif
++# define machine_is_hicoarm9()        (machine_arch_type == MACH_TYPE_HICOARM9)
++#else
++# define machine_is_hicoarm9()        (0)
++#endif
++
++#ifdef CONFIG_MACH_PNX4008
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PNX4008
++# endif
++# define machine_is_pnx4008() (machine_arch_type == MACH_TYPE_PNX4008)
++#else
++# define machine_is_pnx4008() (0)
++#endif
++
++#ifdef CONFIG_MACH_KWS6000
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_KWS6000
++# endif
++# define machine_is_kws6000() (machine_arch_type == MACH_TYPE_KWS6000)
++#else
++# define machine_is_kws6000() (0)
++#endif
++
++#ifdef CONFIG_MACH_PORTUX920T
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PORTUX920T
++# endif
++# define machine_is_portux920t()      (machine_arch_type == MACH_TYPE_PORTUX920T)
++#else
++# define machine_is_portux920t()      (0)
++#endif
++
++#ifdef CONFIG_MACH_EZ_X5
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EZ_X5
++# endif
++# define machine_is_ez_x5()   (machine_arch_type == MACH_TYPE_EZ_X5)
++#else
++# define machine_is_ez_x5()   (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_RUDOLPH
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_RUDOLPH
++# endif
++# define machine_is_omap_rudolph()    (machine_arch_type == MACH_TYPE_OMAP_RUDOLPH)
++#else
++# define machine_is_omap_rudolph()    (0)
++#endif
++
++#ifdef CONFIG_MACH_CPUAT91
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CPUAT91
++# endif
++# define machine_is_cpuat91() (machine_arch_type == MACH_TYPE_CPUAT91)
++#else
++# define machine_is_cpuat91() (0)
++#endif
++
++#ifdef CONFIG_MACH_REA9200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_REA9200
++# endif
++# define machine_is_rea9200() (machine_arch_type == MACH_TYPE_REA9200)
++#else
++# define machine_is_rea9200() (0)
++#endif
++
++#ifdef CONFIG_MACH_ACTS_PUNE_SA1110
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ACTS_PUNE_SA1110
++# endif
++# define machine_is_acts_pune_sa1110()        (machine_arch_type == MACH_TYPE_ACTS_PUNE_SA1110)
++#else
++# define machine_is_acts_pune_sa1110()        (0)
++#endif
++
++#ifdef CONFIG_MACH_IXP425
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IXP425
++# endif
++# define machine_is_ixp425()  (machine_arch_type == MACH_TYPE_IXP425)
++#else
++# define machine_is_ixp425()  (0)
++#endif
++
++#ifdef CONFIG_MACH_ARGONPLUSODYSSEY
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ARGONPLUSODYSSEY
++# endif
++# define machine_is_i30030ads()       (machine_arch_type == MACH_TYPE_ARGONPLUSODYSSEY)
++#else
++# define machine_is_i30030ads()       (0)
++#endif
++
++#ifdef CONFIG_MACH_PERCH
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PERCH
++# endif
++# define machine_is_perch()   (machine_arch_type == MACH_TYPE_PERCH)
++#else
++# define machine_is_perch()   (0)
++#endif
++
++#ifdef CONFIG_MACH_EIS05R1
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EIS05R1
++# endif
++# define machine_is_eis05r1() (machine_arch_type == MACH_TYPE_EIS05R1)
++#else
++# define machine_is_eis05r1() (0)
++#endif
++
++#ifdef CONFIG_MACH_PEPPERPAD
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PEPPERPAD
++# endif
++# define machine_is_pepperpad()       (machine_arch_type == MACH_TYPE_PEPPERPAD)
++#else
++# define machine_is_pepperpad()       (0)
++#endif
++
++#ifdef CONFIG_MACH_SB3010
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SB3010
++# endif
++# define machine_is_sb3010()  (machine_arch_type == MACH_TYPE_SB3010)
++#else
++# define machine_is_sb3010()  (0)
++#endif
++
++#ifdef CONFIG_MACH_RM9200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_RM9200
++# endif
++# define machine_is_rm9200()  (machine_arch_type == MACH_TYPE_RM9200)
++#else
++# define machine_is_rm9200()  (0)
++#endif
++
++#ifdef CONFIG_MACH_DMA03
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DMA03
++# endif
++# define machine_is_dma03()   (machine_arch_type == MACH_TYPE_DMA03)
++#else
++# define machine_is_dma03()   (0)
++#endif
++
++#ifdef CONFIG_MACH_ROAD_S101
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ROAD_S101
++# endif
++# define machine_is_road_s101()       (machine_arch_type == MACH_TYPE_ROAD_S101)
++#else
++# define machine_is_road_s101()       (0)
++#endif
++
++#ifdef CONFIG_MACH_IQ_NEXTGEN_A
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IQ_NEXTGEN_A
++# endif
++# define machine_is_iq_nextgen_a()    (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_A)
++#else
++# define machine_is_iq_nextgen_a()    (0)
++#endif
++
++#ifdef CONFIG_MACH_IQ_NEXTGEN_B
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IQ_NEXTGEN_B
++# endif
++# define machine_is_iq_nextgen_b()    (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_B)
++#else
++# define machine_is_iq_nextgen_b()    (0)
++#endif
++
++#ifdef CONFIG_MACH_IQ_NEXTGEN_C
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IQ_NEXTGEN_C
++# endif
++# define machine_is_iq_nextgen_c()    (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_C)
++#else
++# define machine_is_iq_nextgen_c()    (0)
++#endif
++
++#ifdef CONFIG_MACH_IQ_NEXTGEN_D
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IQ_NEXTGEN_D
++# endif
++# define machine_is_iq_nextgen_d()    (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_D)
++#else
++# define machine_is_iq_nextgen_d()    (0)
++#endif
++
++#ifdef CONFIG_MACH_IQ_NEXTGEN_E
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IQ_NEXTGEN_E
++# endif
++# define machine_is_iq_nextgen_e()    (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_E)
++#else
++# define machine_is_iq_nextgen_e()    (0)
++#endif
++
++#ifdef CONFIG_MACH_MALLOW_AT91
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MALLOW_AT91
++# endif
++# define machine_is_mallow_at91()     (machine_arch_type == MACH_TYPE_MALLOW_AT91)
++#else
++# define machine_is_mallow_at91()     (0)
++#endif
++
++#ifdef CONFIG_MACH_CYBERTRACKER_I
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CYBERTRACKER_I
++# endif
++# define machine_is_cybertracker_i()  (machine_arch_type == MACH_TYPE_CYBERTRACKER_I)
++#else
++# define machine_is_cybertracker_i()  (0)
++#endif
++
++#ifdef CONFIG_MACH_GESBC931X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_GESBC931X
++# endif
++# define machine_is_gesbc931x()       (machine_arch_type == MACH_TYPE_GESBC931X)
++#else
++# define machine_is_gesbc931x()       (0)
++#endif
++
++#ifdef CONFIG_MACH_CENTIPAD
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CENTIPAD
++# endif
++# define machine_is_centipad()        (machine_arch_type == MACH_TYPE_CENTIPAD)
++#else
++# define machine_is_centipad()        (0)
++#endif
++
++#ifdef CONFIG_MACH_ARMSOC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ARMSOC
++# endif
++# define machine_is_armsoc()  (machine_arch_type == MACH_TYPE_ARMSOC)
++#else
++# define machine_is_armsoc()  (0)
++#endif
++
++#ifdef CONFIG_MACH_SE4200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SE4200
++# endif
++# define machine_is_se4200()  (machine_arch_type == MACH_TYPE_SE4200)
++#else
++# define machine_is_se4200()  (0)
++#endif
++
++#ifdef CONFIG_MACH_EMS197A
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EMS197A
++# endif
++# define machine_is_ems197a() (machine_arch_type == MACH_TYPE_EMS197A)
++#else
++# define machine_is_ems197a() (0)
++#endif
++
++#ifdef CONFIG_MACH_MICRO9
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MICRO9
++# endif
++# define machine_is_micro9()  (machine_arch_type == MACH_TYPE_MICRO9)
++#else
++# define machine_is_micro9()  (0)
++#endif
++
++#ifdef CONFIG_MACH_MICRO9L
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MICRO9L
++# endif
++# define machine_is_micro9l() (machine_arch_type == MACH_TYPE_MICRO9L)
++#else
++# define machine_is_micro9l() (0)
++#endif
++
++#ifdef CONFIG_MACH_UC5471DSP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_UC5471DSP
++# endif
++# define machine_is_uc5471dsp()       (machine_arch_type == MACH_TYPE_UC5471DSP)
++#else
++# define machine_is_uc5471dsp()       (0)
++#endif
++
++#ifdef CONFIG_MACH_SJ5471ENG
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SJ5471ENG
++# endif
++# define machine_is_sj5471eng()       (machine_arch_type == MACH_TYPE_SJ5471ENG)
++#else
++# define machine_is_sj5471eng()       (0)
++#endif
++
++#ifdef CONFIG_MACH_CMPXA26X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CMPXA26X
++# endif
++# define machine_is_none()    (machine_arch_type == MACH_TYPE_CMPXA26X)
++#else
++# define machine_is_none()    (0)
++#endif
++
++#ifdef CONFIG_MACH_NC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NC
++# endif
++# define machine_is_nc1()     (machine_arch_type == MACH_TYPE_NC)
++#else
++# define machine_is_nc1()     (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_PALMTE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_PALMTE
++# endif
++# define machine_is_omap_palmte()     (machine_arch_type == MACH_TYPE_OMAP_PALMTE)
++#else
++# define machine_is_omap_palmte()     (0)
++#endif
++
++#ifdef CONFIG_MACH_AJAX52X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AJAX52X
++# endif
++# define machine_is_ajax52x() (machine_arch_type == MACH_TYPE_AJAX52X)
++#else
++# define machine_is_ajax52x() (0)
++#endif
++
++#ifdef CONFIG_MACH_SIRIUSTAR
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SIRIUSTAR
++# endif
++# define machine_is_siriustar()       (machine_arch_type == MACH_TYPE_SIRIUSTAR)
++#else
++# define machine_is_siriustar()       (0)
++#endif
++
++#ifdef CONFIG_MACH_IODATA_HDLG
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IODATA_HDLG
++# endif
++# define machine_is_iodata_hdlg()     (machine_arch_type == MACH_TYPE_IODATA_HDLG)
++#else
++# define machine_is_iodata_hdlg()     (0)
++#endif
++
++#ifdef CONFIG_MACH_AT91RM9200UTL
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AT91RM9200UTL
++# endif
++# define machine_is_at91rm9200utl()   (machine_arch_type == MACH_TYPE_AT91RM9200UTL)
++#else
++# define machine_is_at91rm9200utl()   (0)
++#endif
++
++#ifdef CONFIG_MACH_BIOSAFE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BIOSAFE
++# endif
++# define machine_is_biosafe() (machine_arch_type == MACH_TYPE_BIOSAFE)
++#else
++# define machine_is_biosafe() (0)
++#endif
++
++#ifdef CONFIG_MACH_MP1000
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MP1000
++# endif
++# define machine_is_mp1000()  (machine_arch_type == MACH_TYPE_MP1000)
++#else
++# define machine_is_mp1000()  (0)
++#endif
++
++#ifdef CONFIG_MACH_PARSY
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PARSY
++# endif
++# define machine_is_parsy()   (machine_arch_type == MACH_TYPE_PARSY)
++#else
++# define machine_is_parsy()   (0)
++#endif
++
++#ifdef CONFIG_MACH_CCXP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CCXP
++# endif
++# define machine_is_ccxp270() (machine_arch_type == MACH_TYPE_CCXP)
++#else
++# define machine_is_ccxp270() (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_GSAMPLE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_GSAMPLE
++# endif
++# define machine_is_omap_gsample()    (machine_arch_type == MACH_TYPE_OMAP_GSAMPLE)
++#else
++# define machine_is_omap_gsample()    (0)
++#endif
++
++#ifdef CONFIG_MACH_REALVIEW_EB
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_REALVIEW_EB
++# endif
++# define machine_is_realview_eb()     (machine_arch_type == MACH_TYPE_REALVIEW_EB)
++#else
++# define machine_is_realview_eb()     (0)
++#endif
++
++#ifdef CONFIG_MACH_SAMOA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SAMOA
++# endif
++# define machine_is_samoa()   (machine_arch_type == MACH_TYPE_SAMOA)
++#else
++# define machine_is_samoa()   (0)
++#endif
++
++#ifdef CONFIG_MACH_T3XSCALE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_T3XSCALE
++# endif
++# define machine_is_t3xscale()        (machine_arch_type == MACH_TYPE_T3XSCALE)
++#else
++# define machine_is_t3xscale()        (0)
++#endif
++
++#ifdef CONFIG_MACH_I878
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_I878
++# endif
++# define machine_is_i878()    (machine_arch_type == MACH_TYPE_I878)
++#else
++# define machine_is_i878()    (0)
++#endif
++
++#ifdef CONFIG_MACH_BORZOI
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BORZOI
++# endif
++# define machine_is_borzoi()  (machine_arch_type == MACH_TYPE_BORZOI)
++#else
++# define machine_is_borzoi()  (0)
++#endif
++
++#ifdef CONFIG_MACH_GECKO
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_GECKO
++# endif
++# define machine_is_gecko()   (machine_arch_type == MACH_TYPE_GECKO)
++#else
++# define machine_is_gecko()   (0)
++#endif
++
++#ifdef CONFIG_MACH_DS101
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DS101
++# endif
++# define machine_is_ds101()   (machine_arch_type == MACH_TYPE_DS101)
++#else
++# define machine_is_ds101()   (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_PALMTT2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_PALMTT2
++# endif
++# define machine_is_omap_palmtt2()    (machine_arch_type == MACH_TYPE_OMAP_PALMTT2)
++#else
++# define machine_is_omap_palmtt2()    (0)
++#endif
++
++#ifdef CONFIG_MACH_XSCALE_PALMLD
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_XSCALE_PALMLD
++# endif
++# define machine_is_xscale_palmld()   (machine_arch_type == MACH_TYPE_XSCALE_PALMLD)
++#else
++# define machine_is_xscale_palmld()   (0)
++#endif
++
++#ifdef CONFIG_MACH_CC9C
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CC9C
++# endif
++# define machine_is_cc9c()    (machine_arch_type == MACH_TYPE_CC9C)
++#else
++# define machine_is_cc9c()    (0)
++#endif
++
++#ifdef CONFIG_MACH_SBC1670
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SBC1670
++# endif
++# define machine_is_sbc1670() (machine_arch_type == MACH_TYPE_SBC1670)
++#else
++# define machine_is_sbc1670() (0)
++#endif
++
++#ifdef CONFIG_MACH_IXDP28X5
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IXDP28X5
++# endif
++# define machine_is_ixdp28x5()        (machine_arch_type == MACH_TYPE_IXDP28X5)
++#else
++# define machine_is_ixdp28x5()        (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_PALMTT
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_PALMTT
++# endif
++# define machine_is_omap_palmtt()     (machine_arch_type == MACH_TYPE_OMAP_PALMTT)
++#else
++# define machine_is_omap_palmtt()     (0)
++#endif
++
++#ifdef CONFIG_MACH_ML696K
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ML696K
++# endif
++# define machine_is_ml696k()  (machine_arch_type == MACH_TYPE_ML696K)
++#else
++# define machine_is_ml696k()  (0)
++#endif
++
++#ifdef CONFIG_MACH_ARCOM_ZEUS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ARCOM_ZEUS
++# endif
++# define machine_is_arcom_zeus()      (machine_arch_type == MACH_TYPE_ARCOM_ZEUS)
++#else
++# define machine_is_arcom_zeus()      (0)
++#endif
++
++#ifdef CONFIG_MACH_OSIRIS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OSIRIS
++# endif
++# define machine_is_osiris()  (machine_arch_type == MACH_TYPE_OSIRIS)
++#else
++# define machine_is_osiris()  (0)
++#endif
++
++#ifdef CONFIG_MACH_MAESTRO
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MAESTRO
++# endif
++# define machine_is_maestro() (machine_arch_type == MACH_TYPE_MAESTRO)
++#else
++# define machine_is_maestro() (0)
++#endif
++
++#ifdef CONFIG_MACH_TUNGE2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TUNGE2
++# endif
++# define machine_is_tunge2()  (machine_arch_type == MACH_TYPE_TUNGE2)
++#else
++# define machine_is_tunge2()  (0)
++#endif
++
++#ifdef CONFIG_MACH_IXBBM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IXBBM
++# endif
++# define machine_is_ixbbm()   (machine_arch_type == MACH_TYPE_IXBBM)
++#else
++# define machine_is_ixbbm()   (0)
++#endif
++
++#ifdef CONFIG_MACH_MX27
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MX27
++# endif
++# define machine_is_mx27ads() (machine_arch_type == MACH_TYPE_MX27)
++#else
++# define machine_is_mx27ads() (0)
++#endif
++
++#ifdef CONFIG_MACH_AX8004
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AX8004
++# endif
++# define machine_is_ax8004()  (machine_arch_type == MACH_TYPE_AX8004)
++#else
++# define machine_is_ax8004()  (0)
++#endif
++
++#ifdef CONFIG_MACH_AT91SAM9261EK
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AT91SAM9261EK
++# endif
++# define machine_is_at91sam9261ek()   (machine_arch_type == MACH_TYPE_AT91SAM9261EK)
++#else
++# define machine_is_at91sam9261ek()   (0)
++#endif
++
++#ifdef CONFIG_MACH_LOFT
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_LOFT
++# endif
++# define machine_is_loft()    (machine_arch_type == MACH_TYPE_LOFT)
++#else
++# define machine_is_loft()    (0)
++#endif
++
++#ifdef CONFIG_MACH_MAGPIE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MAGPIE
++# endif
++# define machine_is_magpie()  (machine_arch_type == MACH_TYPE_MAGPIE)
++#else
++# define machine_is_magpie()  (0)
++#endif
++
++#ifdef CONFIG_MACH_MX21
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MX21
++# endif
++# define machine_is_mx21ads() (machine_arch_type == MACH_TYPE_MX21)
++#else
++# define machine_is_mx21ads() (0)
++#endif
++
++#ifdef CONFIG_MACH_MB87M3400
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MB87M3400
++# endif
++# define machine_is_mb87m3400()       (machine_arch_type == MACH_TYPE_MB87M3400)
++#else
++# define machine_is_mb87m3400()       (0)
++#endif
++
++#ifdef CONFIG_MACH_MGUARD_DELTA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MGUARD_DELTA
++# endif
++# define machine_is_mguard_delta()    (machine_arch_type == MACH_TYPE_MGUARD_DELTA)
++#else
++# define machine_is_mguard_delta()    (0)
++#endif
++
++#ifdef CONFIG_MACH_DAVINCI_DVDP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DAVINCI_DVDP
++# endif
++# define machine_is_davinci_dvdp()    (machine_arch_type == MACH_TYPE_DAVINCI_DVDP)
++#else
++# define machine_is_davinci_dvdp()    (0)
++#endif
++
++#ifdef CONFIG_MACH_HTCUNIVERSAL
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HTCUNIVERSAL
++# endif
++# define machine_is_htcuniversal()    (machine_arch_type == MACH_TYPE_HTCUNIVERSAL)
++#else
++# define machine_is_htcuniversal()    (0)
++#endif
++
++#ifdef CONFIG_MACH_TPAD
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TPAD
++# endif
++# define machine_is_tpad()    (machine_arch_type == MACH_TYPE_TPAD)
++#else
++# define machine_is_tpad()    (0)
++#endif
++
++#ifdef CONFIG_MACH_ROVERP3
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ROVERP3
++# endif
++# define machine_is_roverp3() (machine_arch_type == MACH_TYPE_ROVERP3)
++#else
++# define machine_is_roverp3() (0)
++#endif
++
++#ifdef CONFIG_MACH_JORNADA928
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_JORNADA928
++# endif
++# define machine_is_jornada928()      (machine_arch_type == MACH_TYPE_JORNADA928)
++#else
++# define machine_is_jornada928()      (0)
++#endif
++
++#ifdef CONFIG_MACH_MV88FXX81
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MV88FXX81
++# endif
++# define machine_is_mv88fxx81()       (machine_arch_type == MACH_TYPE_MV88FXX81)
++#else
++# define machine_is_mv88fxx81()       (0)
++#endif
++
++#ifdef CONFIG_MACH_STMP36XX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_STMP36XX
++# endif
++# define machine_is_stmp36xx()        (machine_arch_type == MACH_TYPE_STMP36XX)
++#else
++# define machine_is_stmp36xx()        (0)
++#endif
++
++#ifdef CONFIG_MACH_SXNI79524
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SXNI79524
++# endif
++# define machine_is_sxni79524()       (machine_arch_type == MACH_TYPE_SXNI79524)
++#else
++# define machine_is_sxni79524()       (0)
++#endif
++
++#ifdef CONFIG_MACH_AMS_DELTA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AMS_DELTA
++# endif
++# define machine_is_ams_delta()       (machine_arch_type == MACH_TYPE_AMS_DELTA)
++#else
++# define machine_is_ams_delta()       (0)
++#endif
++
++#ifdef CONFIG_MACH_URANIUM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_URANIUM
++# endif
++# define machine_is_uranium() (machine_arch_type == MACH_TYPE_URANIUM)
++#else
++# define machine_is_uranium() (0)
++#endif
++
++#ifdef CONFIG_MACH_UCON
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_UCON
++# endif
++# define machine_is_ucon()    (machine_arch_type == MACH_TYPE_UCON)
++#else
++# define machine_is_ucon()    (0)
++#endif
++
++#ifdef CONFIG_MACH_NAS100D
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NAS100D
++# endif
++# define machine_is_nas100d() (machine_arch_type == MACH_TYPE_NAS100D)
++#else
++# define machine_is_nas100d() (0)
++#endif
++
++#ifdef CONFIG_MACH_L083_1000
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_L083_1000
++# endif
++# define machine_is_l083()    (machine_arch_type == MACH_TYPE_L083_1000)
++#else
++# define machine_is_l083()    (0)
++#endif
++
++#ifdef CONFIG_MACH_EZX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EZX
++# endif
++# define machine_is_ezx()     (machine_arch_type == MACH_TYPE_EZX)
++#else
++# define machine_is_ezx()     (0)
++#endif
++
++#ifdef CONFIG_MACH_PNX5220
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PNX5220
++# endif
++# define machine_is_pnx5220() (machine_arch_type == MACH_TYPE_PNX5220)
++#else
++# define machine_is_pnx5220() (0)
++#endif
++
++#ifdef CONFIG_MACH_BUTTE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BUTTE
++# endif
++# define machine_is_butte()   (machine_arch_type == MACH_TYPE_BUTTE)
++#else
++# define machine_is_butte()   (0)
++#endif
++
++#ifdef CONFIG_MACH_SRM2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SRM2
++# endif
++# define machine_is_srm2()    (machine_arch_type == MACH_TYPE_SRM2)
++#else
++# define machine_is_srm2()    (0)
++#endif
++
++#ifdef CONFIG_MACH_DSBR
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DSBR
++# endif
++# define machine_is_dsbr()    (machine_arch_type == MACH_TYPE_DSBR)
++#else
++# define machine_is_dsbr()    (0)
++#endif
++
++#ifdef CONFIG_MACH_CRYSTALBALL
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CRYSTALBALL
++# endif
++# define machine_is_crystalball()     (machine_arch_type == MACH_TYPE_CRYSTALBALL)
++#else
++# define machine_is_crystalball()     (0)
++#endif
++
++#ifdef CONFIG_MACH_TINYPXA27X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TINYPXA27X
++# endif
++# define machine_is_tinypxa27x()      (machine_arch_type == MACH_TYPE_TINYPXA27X)
++#else
++# define machine_is_tinypxa27x()      (0)
++#endif
++
++#ifdef CONFIG_MACH_HERBIE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HERBIE
++# endif
++# define machine_is_herbie()  (machine_arch_type == MACH_TYPE_HERBIE)
++#else
++# define machine_is_herbie()  (0)
++#endif
++
++#ifdef CONFIG_MACH_MAGICIAN
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MAGICIAN
++# endif
++# define machine_is_magician()        (machine_arch_type == MACH_TYPE_MAGICIAN)
++#else
++# define machine_is_magician()        (0)
++#endif
++
++#ifdef CONFIG_MACH_CM4002
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CM4002
++# endif
++# define machine_is_cm4002()  (machine_arch_type == MACH_TYPE_CM4002)
++#else
++# define machine_is_cm4002()  (0)
++#endif
++
++#ifdef CONFIG_MACH_B4
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_B4
++# endif
++# define machine_is_b4()      (machine_arch_type == MACH_TYPE_B4)
++#else
++# define machine_is_b4()      (0)
++#endif
++
++#ifdef CONFIG_MACH_MAUI
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MAUI
++# endif
++# define machine_is_maui()    (machine_arch_type == MACH_TYPE_MAUI)
++#else
++# define machine_is_maui()    (0)
++#endif
++
++#ifdef CONFIG_MACH_CYBERTRACKER_G
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CYBERTRACKER_G
++# endif
++# define machine_is_cybertracker_g()  (machine_arch_type == MACH_TYPE_CYBERTRACKER_G)
++#else
++# define machine_is_cybertracker_g()  (0)
++#endif
++
++#ifdef CONFIG_MACH_NXDKN
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NXDKN
++# endif
++# define machine_is_nxdkn()   (machine_arch_type == MACH_TYPE_NXDKN)
++#else
++# define machine_is_nxdkn()   (0)
++#endif
++
++#ifdef CONFIG_MACH_MIO8390
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MIO8390
++# endif
++# define machine_is_mio8390() (machine_arch_type == MACH_TYPE_MIO8390)
++#else
++# define machine_is_mio8390() (0)
++#endif
++
++#ifdef CONFIG_MACH_OMI_BOARD
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMI_BOARD
++# endif
++# define machine_is_omi_board()       (machine_arch_type == MACH_TYPE_OMI_BOARD)
++#else
++# define machine_is_omi_board()       (0)
++#endif
++
++#ifdef CONFIG_MACH_MX21CIV
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MX21CIV
++# endif
++# define machine_is_mx21civ() (machine_arch_type == MACH_TYPE_MX21CIV)
++#else
++# define machine_is_mx21civ() (0)
++#endif
++
++#ifdef CONFIG_MACH_MAHI_CDAC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MAHI_CDAC
++# endif
++# define machine_is_mahi_cdac()       (machine_arch_type == MACH_TYPE_MAHI_CDAC)
++#else
++# define machine_is_mahi_cdac()       (0)
++#endif
++
++#ifdef CONFIG_MACH_XSCALE_PALMTX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_XSCALE_PALMTX
++# endif
++# define machine_is_xscale_palmtx()   (machine_arch_type == MACH_TYPE_XSCALE_PALMTX)
++#else
++# define machine_is_xscale_palmtx()   (0)
++#endif
++
++#ifdef CONFIG_MACH_S3C2413
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_S3C2413
++# endif
++# define machine_is_s3c2413() (machine_arch_type == MACH_TYPE_S3C2413)
++#else
++# define machine_is_s3c2413() (0)
++#endif
++
++#ifdef CONFIG_MACH_SAMSYS_EP0
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SAMSYS_EP0
++# endif
++# define machine_is_samsys_ep0()      (machine_arch_type == MACH_TYPE_SAMSYS_EP0)
++#else
++# define machine_is_samsys_ep0()      (0)
++#endif
++
++#ifdef CONFIG_MACH_WG302V1
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_WG302V1
++# endif
++# define machine_is_wg302v1() (machine_arch_type == MACH_TYPE_WG302V1)
++#else
++# define machine_is_wg302v1() (0)
++#endif
++
++#ifdef CONFIG_MACH_WG302V2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_WG302V2
++# endif
++# define machine_is_wg302v2() (machine_arch_type == MACH_TYPE_WG302V2)
++#else
++# define machine_is_wg302v2() (0)
++#endif
++
++#ifdef CONFIG_MACH_EB42X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EB42X
++# endif
++# define machine_is_eb42x()   (machine_arch_type == MACH_TYPE_EB42X)
++#else
++# define machine_is_eb42x()   (0)
++#endif
++
++#ifdef CONFIG_MACH_IQ331ES
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IQ331ES
++# endif
++# define machine_is_iq331es() (machine_arch_type == MACH_TYPE_IQ331ES)
++#else
++# define machine_is_iq331es() (0)
++#endif
++
++#ifdef CONFIG_MACH_COSYDSP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_COSYDSP
++# endif
++# define machine_is_cosydsp() (machine_arch_type == MACH_TYPE_COSYDSP)
++#else
++# define machine_is_cosydsp() (0)
++#endif
++
++#ifdef CONFIG_MACH_UPLAT7D
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_UPLAT7D
++# endif
++# define machine_is_uplat7d_proto()   (machine_arch_type == MACH_TYPE_UPLAT7D)
++#else
++# define machine_is_uplat7d_proto()   (0)
++#endif
++
++#ifdef CONFIG_MACH_PTDAVINCI
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PTDAVINCI
++# endif
++# define machine_is_ptdavinci()       (machine_arch_type == MACH_TYPE_PTDAVINCI)
++#else
++# define machine_is_ptdavinci()       (0)
++#endif
++
++#ifdef CONFIG_MACH_MBUS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MBUS
++# endif
++# define machine_is_mbus()    (machine_arch_type == MACH_TYPE_MBUS)
++#else
++# define machine_is_mbus()    (0)
++#endif
++
++#ifdef CONFIG_MACH_NADIA2VB
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NADIA2VB
++# endif
++# define machine_is_nadia2vb()        (machine_arch_type == MACH_TYPE_NADIA2VB)
++#else
++# define machine_is_nadia2vb()        (0)
++#endif
++
++#ifdef CONFIG_MACH_R1000
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_R1000
++# endif
++# define machine_is_r1000()   (machine_arch_type == MACH_TYPE_R1000)
++#else
++# define machine_is_r1000()   (0)
++#endif
++
++#ifdef CONFIG_MACH_HW90250
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HW90250
++# endif
++# define machine_is_hw90250() (machine_arch_type == MACH_TYPE_HW90250)
++#else
++# define machine_is_hw90250() (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_2430SDP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_2430SDP
++# endif
++# define machine_is_omap_2430sdp()    (machine_arch_type == MACH_TYPE_OMAP_2430SDP)
++#else
++# define machine_is_omap_2430sdp()    (0)
++#endif
++
++#ifdef CONFIG_MACH_DAVINCI_EVM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DAVINCI_EVM
++# endif
++# define machine_is_davinci_evm()     (machine_arch_type == MACH_TYPE_DAVINCI_EVM)
++#else
++# define machine_is_davinci_evm()     (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_TORNADO
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_TORNADO
++# endif
++# define machine_is_omap_tornado()    (machine_arch_type == MACH_TYPE_OMAP_TORNADO)
++#else
++# define machine_is_omap_tornado()    (0)
++#endif
++
++#ifdef CONFIG_MACH_OLOCREEK
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OLOCREEK
++# endif
++# define machine_is_olocreek()        (machine_arch_type == MACH_TYPE_OLOCREEK)
++#else
++# define machine_is_olocreek()        (0)
++#endif
++
++#ifdef CONFIG_MACH_PALMZ72
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PALMZ72
++# endif
++# define machine_is_palmz72() (machine_arch_type == MACH_TYPE_PALMZ72)
++#else
++# define machine_is_palmz72() (0)
++#endif
++
++#ifdef CONFIG_MACH_NXDB500
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NXDB500
++# endif
++# define machine_is_nxdb500() (machine_arch_type == MACH_TYPE_NXDB500)
++#else
++# define machine_is_nxdb500() (0)
++#endif
++
++#ifdef CONFIG_MACH_APF9328
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_APF9328
++# endif
++# define machine_is_apf9328() (machine_arch_type == MACH_TYPE_APF9328)
++#else
++# define machine_is_apf9328() (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_WIPOQ
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_WIPOQ
++# endif
++# define machine_is_omap_wipoq()      (machine_arch_type == MACH_TYPE_OMAP_WIPOQ)
++#else
++# define machine_is_omap_wipoq()      (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_TWIP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_TWIP
++# endif
++# define machine_is_omap_twip()       (machine_arch_type == MACH_TYPE_OMAP_TWIP)
++#else
++# define machine_is_omap_twip()       (0)
++#endif
++
++#ifdef CONFIG_MACH_XSCALE_PALMTREO650
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_XSCALE_PALMTREO650
++# endif
++# define machine_is_xscale_treo650()  (machine_arch_type == MACH_TYPE_XSCALE_PALMTREO650)
++#else
++# define machine_is_xscale_treo650()  (0)
++#endif
++
++#ifdef CONFIG_MACH_ACUMEN
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ACUMEN
++# endif
++# define machine_is_acumen()  (machine_arch_type == MACH_TYPE_ACUMEN)
++#else
++# define machine_is_acumen()  (0)
++#endif
++
++#ifdef CONFIG_MACH_XP100
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_XP100
++# endif
++# define machine_is_xp100()   (machine_arch_type == MACH_TYPE_XP100)
++#else
++# define machine_is_xp100()   (0)
++#endif
++
++#ifdef CONFIG_MACH_FS2410
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_FS2410
++# endif
++# define machine_is_fs2410()  (machine_arch_type == MACH_TYPE_FS2410)
++#else
++# define machine_is_fs2410()  (0)
++#endif
++
++#ifdef CONFIG_MACH_PXA270_CERF
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PXA270_CERF
++# endif
++# define machine_is_pxa270_cerf()     (machine_arch_type == MACH_TYPE_PXA270_CERF)
++#else
++# define machine_is_pxa270_cerf()     (0)
++#endif
++
++#ifdef CONFIG_MACH_SQ2FTLPALM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SQ2FTLPALM
++# endif
++# define machine_is_sq2ftlpalm()      (machine_arch_type == MACH_TYPE_SQ2FTLPALM)
++#else
++# define machine_is_sq2ftlpalm()      (0)
++#endif
++
++#ifdef CONFIG_MACH_BSEMSERVER
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BSEMSERVER
++# endif
++# define machine_is_bsemserver()      (machine_arch_type == MACH_TYPE_BSEMSERVER)
++#else
++# define machine_is_bsemserver()      (0)
++#endif
++
++#ifdef CONFIG_MACH_NETCLIENT
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NETCLIENT
++# endif
++# define machine_is_netclient()       (machine_arch_type == MACH_TYPE_NETCLIENT)
++#else
++# define machine_is_netclient()       (0)
++#endif
++
++#ifdef CONFIG_MACH_XSCALE_PALMTT5
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_XSCALE_PALMTT5
++# endif
++# define machine_is_xscale_palmtt5()  (machine_arch_type == MACH_TYPE_XSCALE_PALMTT5)
++#else
++# define machine_is_xscale_palmtt5()  (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_PALMTC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_PALMTC
++# endif
++# define machine_is_xscale_palmtc()   (machine_arch_type == MACH_TYPE_OMAP_PALMTC)
++#else
++# define machine_is_xscale_palmtc()   (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_APOLLON
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_APOLLON
++# endif
++# define machine_is_omap_apollon()    (machine_arch_type == MACH_TYPE_OMAP_APOLLON)
++#else
++# define machine_is_omap_apollon()    (0)
++#endif
++
++#ifdef CONFIG_MACH_ARGONLVEVB
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ARGONLVEVB
++# endif
++# define machine_is_mxc30030evb()     (machine_arch_type == MACH_TYPE_ARGONLVEVB)
++#else
++# define machine_is_mxc30030evb()     (0)
++#endif
++
++#ifdef CONFIG_MACH_REA_2D
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_REA_2D
++# endif
++# define machine_is_rea_2d()  (machine_arch_type == MACH_TYPE_REA_2D)
++#else
++# define machine_is_rea_2d()  (0)
++#endif
++
++#ifdef CONFIG_MACH_TI3E524
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TI3E524
++# endif
++# define machine_is_eti3e524()        (machine_arch_type == MACH_TYPE_TI3E524)
++#else
++# define machine_is_eti3e524()        (0)
++#endif
++
++#ifdef CONFIG_MACH_ATEB9200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ATEB9200
++# endif
++# define machine_is_ateb9200()        (machine_arch_type == MACH_TYPE_ATEB9200)
++#else
++# define machine_is_ateb9200()        (0)
++#endif
++
++#ifdef CONFIG_MACH_AUCKLAND
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AUCKLAND
++# endif
++# define machine_is_auckland()        (machine_arch_type == MACH_TYPE_AUCKLAND)
++#else
++# define machine_is_auckland()        (0)
++#endif
++
++#ifdef CONFIG_MACH_AK3320M
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AK3320M
++# endif
++# define machine_is_ak3220m() (machine_arch_type == MACH_TYPE_AK3320M)
++#else
++# define machine_is_ak3220m() (0)
++#endif
++
++#ifdef CONFIG_MACH_DURAMAX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DURAMAX
++# endif
++# define machine_is_duramax() (machine_arch_type == MACH_TYPE_DURAMAX)
++#else
++# define machine_is_duramax() (0)
++#endif
++
++#ifdef CONFIG_MACH_N35
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_N35
++# endif
++# define machine_is_n35()     (machine_arch_type == MACH_TYPE_N35)
++#else
++# define machine_is_n35()     (0)
++#endif
++
++#ifdef CONFIG_MACH_PRONGHORN
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PRONGHORN
++# endif
++# define machine_is_pronghorn()       (machine_arch_type == MACH_TYPE_PRONGHORN)
++#else
++# define machine_is_pronghorn()       (0)
++#endif
++
++#ifdef CONFIG_MACH_FUNDY
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_FUNDY
++# endif
++# define machine_is_fundy()   (machine_arch_type == MACH_TYPE_FUNDY)
++#else
++# define machine_is_fundy()   (0)
++#endif
++
++#ifdef CONFIG_MACH_LOGICPD_PXA270
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_LOGICPD_PXA270
++# endif
++# define machine_is_logicpd_pxa270()  (machine_arch_type == MACH_TYPE_LOGICPD_PXA270)
++#else
++# define machine_is_logicpd_pxa270()  (0)
++#endif
++
++#ifdef CONFIG_MACH_CPU777
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CPU777
++# endif
++# define machine_is_cpu777()  (machine_arch_type == MACH_TYPE_CPU777)
++#else
++# define machine_is_cpu777()  (0)
++#endif
++
++#ifdef CONFIG_MACH_SIMICON9201
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SIMICON9201
++# endif
++# define machine_is_simicon9201()     (machine_arch_type == MACH_TYPE_SIMICON9201)
++#else
++# define machine_is_simicon9201()     (0)
++#endif
++
++#ifdef CONFIG_MACH_LEAP2_HPM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_LEAP2_HPM
++# endif
++# define machine_is_leap2_hpm()       (machine_arch_type == MACH_TYPE_LEAP2_HPM)
++#else
++# define machine_is_leap2_hpm()       (0)
++#endif
++
++#ifdef CONFIG_MACH_CM922TXA10
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CM922TXA10
++# endif
++# define machine_is_cm922txa10()      (machine_arch_type == MACH_TYPE_CM922TXA10)
++#else
++# define machine_is_cm922txa10()      (0)
++#endif
++
++#ifdef CONFIG_MACH_PXA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PXA
++# endif
++# define machine_is_sandgate()        (machine_arch_type == MACH_TYPE_PXA)
++#else
++# define machine_is_sandgate()        (0)
++#endif
++
++#ifdef CONFIG_MACH_SANDGATE2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SANDGATE2
++# endif
++# define machine_is_sandgate2()       (machine_arch_type == MACH_TYPE_SANDGATE2)
++#else
++# define machine_is_sandgate2()       (0)
++#endif
++
++#ifdef CONFIG_MACH_SANDGATE2G
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SANDGATE2G
++# endif
++# define machine_is_sandgate2g()      (machine_arch_type == MACH_TYPE_SANDGATE2G)
++#else
++# define machine_is_sandgate2g()      (0)
++#endif
++
++#ifdef CONFIG_MACH_SANDGATE2P
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SANDGATE2P
++# endif
++# define machine_is_sandgate2p()      (machine_arch_type == MACH_TYPE_SANDGATE2P)
++#else
++# define machine_is_sandgate2p()      (0)
++#endif
++
++#ifdef CONFIG_MACH_FRED_JACK
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_FRED_JACK
++# endif
++# define machine_is_fred_jack()       (machine_arch_type == MACH_TYPE_FRED_JACK)
++#else
++# define machine_is_fred_jack()       (0)
++#endif
++
++#ifdef CONFIG_MACH_TTG_COLOR1
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TTG_COLOR1
++# endif
++# define machine_is_ttg_color1()      (machine_arch_type == MACH_TYPE_TTG_COLOR1)
++#else
++# define machine_is_ttg_color1()      (0)
++#endif
++
++#ifdef CONFIG_MACH_NXEB500HMI
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NXEB500HMI
++# endif
++# define machine_is_nxeb500hmi()      (machine_arch_type == MACH_TYPE_NXEB500HMI)
++#else
++# define machine_is_nxeb500hmi()      (0)
++#endif
++
++#ifdef CONFIG_MACH_NETDCU8
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NETDCU8
++# endif
++# define machine_is_netdcu8() (machine_arch_type == MACH_TYPE_NETDCU8)
++#else
++# define machine_is_netdcu8() (0)
++#endif
++
++#ifdef CONFIG_MACH_ML675050_CPU_BOA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ML675050_CPU_BOA
++# endif
++# define machine_is_ml675050_cpu_boa()        (machine_arch_type == MACH_TYPE_ML675050_CPU_BOA)
++#else
++# define machine_is_ml675050_cpu_boa()        (0)
++#endif
++
++#ifdef CONFIG_MACH_NG_FVX538
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NG_FVX538
++# endif
++# define machine_is_ng_fvx538()       (machine_arch_type == MACH_TYPE_NG_FVX538)
++#else
++# define machine_is_ng_fvx538()       (0)
++#endif
++
++#ifdef CONFIG_MACH_NG_FVS338
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NG_FVS338
++# endif
++# define machine_is_ng_fvs338()       (machine_arch_type == MACH_TYPE_NG_FVS338)
++#else
++# define machine_is_ng_fvs338()       (0)
++#endif
++
++#ifdef CONFIG_MACH_PNX4103
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PNX4103
++# endif
++# define machine_is_pnx4103() (machine_arch_type == MACH_TYPE_PNX4103)
++#else
++# define machine_is_pnx4103() (0)
++#endif
++
++#ifdef CONFIG_MACH_HESDB
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HESDB
++# endif
++# define machine_is_hesdb()   (machine_arch_type == MACH_TYPE_HESDB)
++#else
++# define machine_is_hesdb()   (0)
++#endif
++
++#ifdef CONFIG_MACH_XSILO
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_XSILO
++# endif
++# define machine_is_xsilo()   (machine_arch_type == MACH_TYPE_XSILO)
++#else
++# define machine_is_xsilo()   (0)
++#endif
++
++#ifdef CONFIG_MACH_ESPRESSO
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ESPRESSO
++# endif
++# define machine_is_espresso()        (machine_arch_type == MACH_TYPE_ESPRESSO)
++#else
++# define machine_is_espresso()        (0)
++#endif
++
++#ifdef CONFIG_MACH_EMLC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EMLC
++# endif
++# define machine_is_emlc()    (machine_arch_type == MACH_TYPE_EMLC)
++#else
++# define machine_is_emlc()    (0)
++#endif
++
++#ifdef CONFIG_MACH_SISTERON
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SISTERON
++# endif
++# define machine_is_sisteron()        (machine_arch_type == MACH_TYPE_SISTERON)
++#else
++# define machine_is_sisteron()        (0)
++#endif
++
++#ifdef CONFIG_MACH_RX1950
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_RX1950
++# endif
++# define machine_is_rx1950()  (machine_arch_type == MACH_TYPE_RX1950)
++#else
++# define machine_is_rx1950()  (0)
++#endif
++
++#ifdef CONFIG_MACH_TSC_VENUS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TSC_VENUS
++# endif
++# define machine_is_tsc_venus()       (machine_arch_type == MACH_TYPE_TSC_VENUS)
++#else
++# define machine_is_tsc_venus()       (0)
++#endif
++
++#ifdef CONFIG_MACH_DS101J
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DS101J
++# endif
++# define machine_is_ds101j()  (machine_arch_type == MACH_TYPE_DS101J)
++#else
++# define machine_is_ds101j()  (0)
++#endif
++
++#ifdef CONFIG_MACH_MXC30030ADS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MXC30030ADS
++# endif
++# define machine_is_mxc30030ads()     (machine_arch_type == MACH_TYPE_MXC30030ADS)
++#else
++# define machine_is_mxc30030ads()     (0)
++#endif
++
++#ifdef CONFIG_MACH_FUJITSU_WIMAXSOC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_FUJITSU_WIMAXSOC
++# endif
++# define machine_is_fujitsu_wimaxsoc()        (machine_arch_type == MACH_TYPE_FUJITSU_WIMAXSOC)
++#else
++# define machine_is_fujitsu_wimaxsoc()        (0)
++#endif
++
++#ifdef CONFIG_MACH_DUALPCMODEM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DUALPCMODEM
++# endif
++# define machine_is_dualpcmodem()     (machine_arch_type == MACH_TYPE_DUALPCMODEM)
++#else
++# define machine_is_dualpcmodem()     (0)
++#endif
++
++#ifdef CONFIG_MACH_GESBC9312
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_GESBC9312
++# endif
++# define machine_is_gesbc9312()       (machine_arch_type == MACH_TYPE_GESBC9312)
++#else
++# define machine_is_gesbc9312()       (0)
++#endif
++
++#ifdef CONFIG_MACH_HTCAPACHE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HTCAPACHE
++# endif
++# define machine_is_htcapache()       (machine_arch_type == MACH_TYPE_HTCAPACHE)
++#else
++# define machine_is_htcapache()       (0)
++#endif
++
++#ifdef CONFIG_MACH_IXDP435
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IXDP435
++# endif
++# define machine_is_ixdp435() (machine_arch_type == MACH_TYPE_IXDP435)
++#else
++# define machine_is_ixdp435() (0)
++#endif
++
++#ifdef CONFIG_MACH_CATPROVT100
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CATPROVT100
++# endif
++# define machine_is_catprovt100()     (machine_arch_type == MACH_TYPE_CATPROVT100)
++#else
++# define machine_is_catprovt100()     (0)
++#endif
++
++#ifdef CONFIG_MACH_PICOTUX1XX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PICOTUX1XX
++# endif
++# define machine_is_picotux1xx()      (machine_arch_type == MACH_TYPE_PICOTUX1XX)
++#else
++# define machine_is_picotux1xx()      (0)
++#endif
++
++#ifdef CONFIG_MACH_PICOTUX2XX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PICOTUX2XX
++# endif
++# define machine_is_picotux2xx()      (machine_arch_type == MACH_TYPE_PICOTUX2XX)
++#else
++# define machine_is_picotux2xx()      (0)
++#endif
++
++#ifdef CONFIG_MACH_DSMG600
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DSMG600
++# endif
++# define machine_is_dsmg600() (machine_arch_type == MACH_TYPE_DSMG600)
++#else
++# define machine_is_dsmg600() (0)
++#endif
++
++#ifdef CONFIG_MACH_EMPC2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EMPC2
++# endif
++# define machine_is_empc2()   (machine_arch_type == MACH_TYPE_EMPC2)
++#else
++# define machine_is_empc2()   (0)
++#endif
++
++#ifdef CONFIG_MACH_VENTURA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_VENTURA
++# endif
++# define machine_is_ventura() (machine_arch_type == MACH_TYPE_VENTURA)
++#else
++# define machine_is_ventura() (0)
++#endif
++
++#ifdef CONFIG_MACH_PHIDGET_SBC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PHIDGET_SBC
++# endif
++# define machine_is_phidget_sbc()     (machine_arch_type == MACH_TYPE_PHIDGET_SBC)
++#else
++# define machine_is_phidget_sbc()     (0)
++#endif
++
++#ifdef CONFIG_MACH_IJ3K
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IJ3K
++# endif
++# define machine_is_ij3k()    (machine_arch_type == MACH_TYPE_IJ3K)
++#else
++# define machine_is_ij3k()    (0)
++#endif
++
++#ifdef CONFIG_MACH_PISGAH
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PISGAH
++# endif
++# define machine_is_pisgah()  (machine_arch_type == MACH_TYPE_PISGAH)
++#else
++# define machine_is_pisgah()  (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_FSAMPLE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_FSAMPLE
++# endif
++# define machine_is_omap_fsample()    (machine_arch_type == MACH_TYPE_OMAP_FSAMPLE)
++#else
++# define machine_is_omap_fsample()    (0)
++#endif
++
++#ifdef CONFIG_MACH_SG720
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SG720
++# endif
++# define machine_is_sg720()   (machine_arch_type == MACH_TYPE_SG720)
++#else
++# define machine_is_sg720()   (0)
++#endif
++
++#ifdef CONFIG_MACH_REDFOX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_REDFOX
++# endif
++# define machine_is_redfox()  (machine_arch_type == MACH_TYPE_REDFOX)
++#else
++# define machine_is_redfox()  (0)
++#endif
++
++#ifdef CONFIG_MACH_MYSH_EP9315_1
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MYSH_EP9315_1
++# endif
++# define machine_is_mysh_ep9315_1()   (machine_arch_type == MACH_TYPE_MYSH_EP9315_1)
++#else
++# define machine_is_mysh_ep9315_1()   (0)
++#endif
++
++#ifdef CONFIG_MACH_TPF106
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TPF106
++# endif
++# define machine_is_tpf106()  (machine_arch_type == MACH_TYPE_TPF106)
++#else
++# define machine_is_tpf106()  (0)
++#endif
++
++#ifdef CONFIG_MACH_AT91RM9200KG
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AT91RM9200KG
++# endif
++# define machine_is_at91rm9200kg()    (machine_arch_type == MACH_TYPE_AT91RM9200KG)
++#else
++# define machine_is_at91rm9200kg()    (0)
++#endif
++
++#ifdef CONFIG_MACH_SLEDB
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SLEDB
++# endif
++# define machine_is_racemt2() (machine_arch_type == MACH_TYPE_SLEDB)
++#else
++# define machine_is_racemt2() (0)
++#endif
++
++#ifdef CONFIG_MACH_ONTRACK
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ONTRACK
++# endif
++# define machine_is_ontrack() (machine_arch_type == MACH_TYPE_ONTRACK)
++#else
++# define machine_is_ontrack() (0)
++#endif
++
++#ifdef CONFIG_MACH_PM1200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PM1200
++# endif
++# define machine_is_pm1200()  (machine_arch_type == MACH_TYPE_PM1200)
++#else
++# define machine_is_pm1200()  (0)
++#endif
++
++#ifdef CONFIG_MACH_ESS24XXX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ESS24XXX
++# endif
++# define machine_is_ess24562()        (machine_arch_type == MACH_TYPE_ESS24XXX)
++#else
++# define machine_is_ess24562()        (0)
++#endif
++
++#ifdef CONFIG_MACH_COREMP7
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_COREMP7
++# endif
++# define machine_is_coremp7() (machine_arch_type == MACH_TYPE_COREMP7)
++#else
++# define machine_is_coremp7() (0)
++#endif
++
++#ifdef CONFIG_MACH_NEXCODER_6446
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NEXCODER_6446
++# endif
++# define machine_is_nexcoder_6446()   (machine_arch_type == MACH_TYPE_NEXCODER_6446)
++#else
++# define machine_is_nexcoder_6446()   (0)
++#endif
++
++#ifdef CONFIG_MACH_STVC8380
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_STVC8380
++# endif
++# define machine_is_stvc8380()        (machine_arch_type == MACH_TYPE_STVC8380)
++#else
++# define machine_is_stvc8380()        (0)
++#endif
++
++#ifdef CONFIG_MACH_TEKLYNX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TEKLYNX
++# endif
++# define machine_is_teklynx() (machine_arch_type == MACH_TYPE_TEKLYNX)
++#else
++# define machine_is_teklynx() (0)
++#endif
++
++#ifdef CONFIG_MACH_CARBONADO
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CARBONADO
++# endif
++# define machine_is_carbonado()       (machine_arch_type == MACH_TYPE_CARBONADO)
++#else
++# define machine_is_carbonado()       (0)
++#endif
++
++#ifdef CONFIG_MACH_SYSMOS_MP730
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SYSMOS_MP730
++# endif
++# define machine_is_sysmos_mp730()    (machine_arch_type == MACH_TYPE_SYSMOS_MP730)
++#else
++# define machine_is_sysmos_mp730()    (0)
++#endif
++
++#ifdef CONFIG_MACH_SNAPPER_CL15
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SNAPPER_CL15
++# endif
++# define machine_is_snapper_cl15()    (machine_arch_type == MACH_TYPE_SNAPPER_CL15)
++#else
++# define machine_is_snapper_cl15()    (0)
++#endif
++
++#ifdef CONFIG_MACH_PGIGIM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PGIGIM
++# endif
++# define machine_is_pgigim()  (machine_arch_type == MACH_TYPE_PGIGIM)
++#else
++# define machine_is_pgigim()  (0)
++#endif
++
++#ifdef CONFIG_MACH_PTX9160P2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PTX9160P2
++# endif
++# define machine_is_ptx9160p2()       (machine_arch_type == MACH_TYPE_PTX9160P2)
++#else
++# define machine_is_ptx9160p2()       (0)
++#endif
++
++#ifdef CONFIG_MACH_DCORE1
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DCORE1
++# endif
++# define machine_is_dcore1()  (machine_arch_type == MACH_TYPE_DCORE1)
++#else
++# define machine_is_dcore1()  (0)
++#endif
++
++#ifdef CONFIG_MACH_VICTORPXA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_VICTORPXA
++# endif
++# define machine_is_victorpxa()       (machine_arch_type == MACH_TYPE_VICTORPXA)
++#else
++# define machine_is_victorpxa()       (0)
++#endif
++
++#ifdef CONFIG_MACH_MX2DTB
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MX2DTB
++# endif
++# define machine_is_mx2dtb()  (machine_arch_type == MACH_TYPE_MX2DTB)
++#else
++# define machine_is_mx2dtb()  (0)
++#endif
++
++#ifdef CONFIG_MACH_PXA_IREX_ER0100
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PXA_IREX_ER0100
++# endif
++# define machine_is_pxa_irex_er0100() (machine_arch_type == MACH_TYPE_PXA_IREX_ER0100)
++#else
++# define machine_is_pxa_irex_er0100() (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_PALMZ71
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_PALMZ71
++# endif
++# define machine_is_omap_palmz71()    (machine_arch_type == MACH_TYPE_OMAP_PALMZ71)
++#else
++# define machine_is_omap_palmz71()    (0)
++#endif
++
++#ifdef CONFIG_MACH_BARTEC_DEG
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BARTEC_DEG
++# endif
++# define machine_is_bartec_deg()      (machine_arch_type == MACH_TYPE_BARTEC_DEG)
++#else
++# define machine_is_bartec_deg()      (0)
++#endif
++
++#ifdef CONFIG_MACH_HW50251
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HW50251
++# endif
++# define machine_is_hw50251() (machine_arch_type == MACH_TYPE_HW50251)
++#else
++# define machine_is_hw50251() (0)
++#endif
++
++#ifdef CONFIG_MACH_IBOX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IBOX
++# endif
++# define machine_is_ibox()    (machine_arch_type == MACH_TYPE_IBOX)
++#else
++# define machine_is_ibox()    (0)
++#endif
++
++#ifdef CONFIG_MACH_ATLASLH7A404
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ATLASLH7A404
++# endif
++# define machine_is_atlaslh7a404()    (machine_arch_type == MACH_TYPE_ATLASLH7A404)
++#else
++# define machine_is_atlaslh7a404()    (0)
++#endif
++
++#ifdef CONFIG_MACH_PT2026
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PT2026
++# endif
++# define machine_is_pt2026()  (machine_arch_type == MACH_TYPE_PT2026)
++#else
++# define machine_is_pt2026()  (0)
++#endif
++
++#ifdef CONFIG_MACH_HTCALPINE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HTCALPINE
++# endif
++# define machine_is_htcalpine()       (machine_arch_type == MACH_TYPE_HTCALPINE)
++#else
++# define machine_is_htcalpine()       (0)
++#endif
++
++#ifdef CONFIG_MACH_BARTEC_VTU
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BARTEC_VTU
++# endif
++# define machine_is_bartec_vtu()      (machine_arch_type == MACH_TYPE_BARTEC_VTU)
++#else
++# define machine_is_bartec_vtu()      (0)
++#endif
++
++#ifdef CONFIG_MACH_VCOREII
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_VCOREII
++# endif
++# define machine_is_vcoreii() (machine_arch_type == MACH_TYPE_VCOREII)
++#else
++# define machine_is_vcoreii() (0)
++#endif
++
++#ifdef CONFIG_MACH_PDNB3
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PDNB3
++# endif
++# define machine_is_pdnb3()   (machine_arch_type == MACH_TYPE_PDNB3)
++#else
++# define machine_is_pdnb3()   (0)
++#endif
++
++#ifdef CONFIG_MACH_HTCBEETLES
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HTCBEETLES
++# endif
++# define machine_is_htcbeetles()      (machine_arch_type == MACH_TYPE_HTCBEETLES)
++#else
++# define machine_is_htcbeetles()      (0)
++#endif
++
++#ifdef CONFIG_MACH_S3C6400
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_S3C6400
++# endif
++# define machine_is_s3c6400() (machine_arch_type == MACH_TYPE_S3C6400)
++#else
++# define machine_is_s3c6400() (0)
++#endif
++
++#ifdef CONFIG_MACH_S3C2443
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_S3C2443
++# endif
++# define machine_is_s3c2443() (machine_arch_type == MACH_TYPE_S3C2443)
++#else
++# define machine_is_s3c2443() (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_LDK
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_LDK
++# endif
++# define machine_is_omap_ldk()        (machine_arch_type == MACH_TYPE_OMAP_LDK)
++#else
++# define machine_is_omap_ldk()        (0)
++#endif
++
++#ifdef CONFIG_MACH_SMDK2460
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SMDK2460
++# endif
++# define machine_is_smdk2460()        (machine_arch_type == MACH_TYPE_SMDK2460)
++#else
++# define machine_is_smdk2460()        (0)
++#endif
++
++#ifdef CONFIG_MACH_SMDK2440
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SMDK2440
++# endif
++# define machine_is_smdk2440()        (machine_arch_type == MACH_TYPE_SMDK2440)
++#else
++# define machine_is_smdk2440()        (0)
++#endif
++
++#ifdef CONFIG_MACH_SMDK2412
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SMDK2412
++# endif
++# define machine_is_smdk2412()        (machine_arch_type == MACH_TYPE_SMDK2412)
++#else
++# define machine_is_smdk2412()        (0)
++#endif
++
++#ifdef CONFIG_MACH_WEBBOX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_WEBBOX
++# endif
++# define machine_is_webbox()  (machine_arch_type == MACH_TYPE_WEBBOX)
++#else
++# define machine_is_webbox()  (0)
++#endif
++
++#ifdef CONFIG_MACH_CWWNDP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CWWNDP
++# endif
++# define machine_is_cwwndp()  (machine_arch_type == MACH_TYPE_CWWNDP)
++#else
++# define machine_is_cwwndp()  (0)
++#endif
++
++#ifdef CONFIG_MACH_DRAGON
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DRAGON
++# endif
++# define machine_is_dragon()  (machine_arch_type == MACH_TYPE_DRAGON)
++#else
++# define machine_is_dragon()  (0)
++#endif
++
++#ifdef CONFIG_MACH_OPENDO_CPU_BOARD
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OPENDO_CPU_BOARD
++# endif
++# define machine_is_opendo_cpu_board()        (machine_arch_type == MACH_TYPE_OPENDO_CPU_BOARD)
++#else
++# define machine_is_opendo_cpu_board()        (0)
++#endif
++
++#ifdef CONFIG_MACH_CCM2200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CCM2200
++# endif
++# define machine_is_ccm2200() (machine_arch_type == MACH_TYPE_CCM2200)
++#else
++# define machine_is_ccm2200() (0)
++#endif
++
++#ifdef CONFIG_MACH_ETWARM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ETWARM
++# endif
++# define machine_is_etwarm()  (machine_arch_type == MACH_TYPE_ETWARM)
++#else
++# define machine_is_etwarm()  (0)
++#endif
++
++#ifdef CONFIG_MACH_M93030
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_M93030
++# endif
++# define machine_is_m93030()  (machine_arch_type == MACH_TYPE_M93030)
++#else
++# define machine_is_m93030()  (0)
++#endif
++
++#ifdef CONFIG_MACH_CC7U
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CC7U
++# endif
++# define machine_is_cc7u()    (machine_arch_type == MACH_TYPE_CC7U)
++#else
++# define machine_is_cc7u()    (0)
++#endif
++
++#ifdef CONFIG_MACH_MTT_RANGER
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MTT_RANGER
++# endif
++# define machine_is_mtt_ranger()      (machine_arch_type == MACH_TYPE_MTT_RANGER)
++#else
++# define machine_is_mtt_ranger()      (0)
++#endif
++
++#ifdef CONFIG_MACH_NEXUS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NEXUS
++# endif
++# define machine_is_nexus()   (machine_arch_type == MACH_TYPE_NEXUS)
++#else
++# define machine_is_nexus()   (0)
++#endif
++
++#ifdef CONFIG_MACH_DESMAN
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DESMAN
++# endif
++# define machine_is_desman()  (machine_arch_type == MACH_TYPE_DESMAN)
++#else
++# define machine_is_desman()  (0)
++#endif
++
++#ifdef CONFIG_MACH_BKDE303
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BKDE303
++# endif
++# define machine_is_bkde303() (machine_arch_type == MACH_TYPE_BKDE303)
++#else
++# define machine_is_bkde303() (0)
++#endif
++
++#ifdef CONFIG_MACH_SMDK2413
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SMDK2413
++# endif
++# define machine_is_smdk2413()        (machine_arch_type == MACH_TYPE_SMDK2413)
++#else
++# define machine_is_smdk2413()        (0)
++#endif
++
++#ifdef CONFIG_MACH_AML_M7200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AML_M7200
++# endif
++# define machine_is_aml_m7200()       (machine_arch_type == MACH_TYPE_AML_M7200)
++#else
++# define machine_is_aml_m7200()       (0)
++#endif
++
++#ifdef CONFIG_MACH_AML_M5900
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AML_M5900
++# endif
++# define machine_is_aml_m5900()       (machine_arch_type == MACH_TYPE_AML_M5900)
++#else
++# define machine_is_aml_m5900()       (0)
++#endif
++
++#ifdef CONFIG_MACH_SG640
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SG640
++# endif
++# define machine_is_sg640()   (machine_arch_type == MACH_TYPE_SG640)
++#else
++# define machine_is_sg640()   (0)
++#endif
++
++#ifdef CONFIG_MACH_EDG79524
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EDG79524
++# endif
++# define machine_is_edg79524()        (machine_arch_type == MACH_TYPE_EDG79524)
++#else
++# define machine_is_edg79524()        (0)
++#endif
++
++#ifdef CONFIG_MACH_AI2410
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AI2410
++# endif
++# define machine_is_ai2410()  (machine_arch_type == MACH_TYPE_AI2410)
++#else
++# define machine_is_ai2410()  (0)
++#endif
++
++#ifdef CONFIG_MACH_IXP465
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IXP465
++# endif
++# define machine_is_ixp465()  (machine_arch_type == MACH_TYPE_IXP465)
++#else
++# define machine_is_ixp465()  (0)
++#endif
++
++#ifdef CONFIG_MACH_BALLOON3
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BALLOON3
++# endif
++# define machine_is_balloon3()        (machine_arch_type == MACH_TYPE_BALLOON3)
++#else
++# define machine_is_balloon3()        (0)
++#endif
++
++#ifdef CONFIG_MACH_QT2410
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_QT2410
++# endif
++# define machine_is_qt2410()  (machine_arch_type == MACH_TYPE_QT2410)
++#else
++# define machine_is_qt2410()  (0)
++#endif
++
+ /*
+  * These have not yet been registered
+  */
+diff --git a/include/configs/qt2410.h b/include/configs/qt2410.h
+new file mode 100644
+index 0000000..627f365
+--- /dev/null
++++ b/include/configs/qt2410.h
+@@ -0,0 +1,256 @@
++/*
++ * (C) Copyright 2002
++ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
++ * Marius Groeger <mgroeger@sysgo.de>
++ * Gary Jennejohn <gj@denx.de>
++ * David Mueller <d.mueller@elsoft.ch>
++ *
++ * Configuation settings for the SAMSUNG SMDK2410 board.
++ *
++ * 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
++ */
++
++#ifndef __CONFIG_H
++#define __CONFIG_H
++
++#if 0
++/* If we want to start u-boot from usb bootloader in NOR flash */
++#define CONFIG_SKIP_RELOCATE_UBOOT    1
++#define       CONFIG_SKIP_LOWLEVEL_INIT       1
++#else
++/* If we want to start u-boot directly from within NAND flash */
++#define CONFIG_S3C2410_NAND_BOOT      1
++#endif
++
++/*
++ * High Level Configuration Options
++ * (easy to change)
++ */
++#define CONFIG_ARM920T                1       /* This is an ARM920T Core      */
++#define       CONFIG_S3C2410          1       /* in a SAMSUNG S3C2410 SoC     */
++#define CONFIG_SMDK2410               1       /* on a SAMSUNG SMDK2410 Board  */
++
++/* input clock of PLL */
++#define CONFIG_SYS_CLK_FREQ   12000000/* the SMDK2410 has 12MHz input clock */
++
++
++#define USE_920T_MMU          1
++#define CONFIG_USE_IRQ                1
++//#undef CONFIG_USE_IRQ                       /* we don't need IRQ/FIQ stuff */
++
++/*
++ * Size of malloc() pool
++ */
++#define CFG_MALLOC_LEN                (CFG_ENV_SIZE + 128*1024)
++#define CFG_GBL_DATA_SIZE     128     /* size in bytes reserved for initial data */
++
++/*
++ * Hardware drivers
++ */
++#define CONFIG_DRIVER_CS8900  1       /* we have a CS8900 on-board */
++#define CS8900_BASE           0x19000300
++#define CS8900_BUS16          1 /* the Linux driver does accesses as shorts */
++
++/*
++ * select serial console configuration
++ */
++#define CONFIG_SERIAL1          1     /* we use SERIAL 1 on SMDK2410 */
++#define CONFIG_HWFLOW         1
++
++/************************************************************
++ * RTC
++ ************************************************************/
++#define       CONFIG_RTC_S3C24X0      1
++
++/* allow to overwrite serial and ethaddr */
++#define CONFIG_ENV_OVERWRITE
++
++#define CONFIG_BAUDRATE               115200
++
++/***********************************************************
++ * Command definition
++ ***********************************************************/
++#define CONFIG_COMMANDS \
++                      (CONFIG_CMD_DFL  | \
++                      CFG_CMD_BSP      | \
++                      CFG_CMD_CACHE    | \
++                      CFG_CMD_DATE     | \
++                      CFG_CMD_DHCP     | \
++                      CFG_CMD_DIAG     | \
++                      CFG_CMD_ELF      | \
++                      CFG_CMD_EXT2     | \
++                      CFG_CMD_FAT      | \
++                      CFG_CMD_HWFLOW   | \
++                      /* CFG_CMD_IDE   | */ \
++                      /* CFG_CMD_IRQ   | */ \
++                      CFG_CMD_JFFS2    | \
++                      CFG_CMD_MMC      | \
++                      CFG_CMD_NAND     | \
++                      CFG_CMD_PING     | \
++                      CFG_CMD_PORTIO   | \
++                      CFG_CMD_REGINFO  | \
++                      CFG_CMD_SAVES    | \
++                      CFG_CMD_USB)
++
++/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
++#include <cmd_confdefs.h>
++
++#define CONFIG_BOOTDELAY      3
++#define CONFIG_BOOTARGS       "root=/dev/sda1 console=ttySAC0,115200 loglevel=8 rootdelay=10"
++/*#define CONFIG_ETHADDR      08:00:3e:26:0a:5b */
++#define CONFIG_NETMASK          255.255.255.0
++#define CONFIG_IPADDR         10.0.0.110
++#define CONFIG_SERVERIP               10.0.0.1
++/*#define CONFIG_BOOTFILE     "elinos-lart" */
++#define CONFIG_BOOTCOMMAND    "mmcinit; ext2load mmc 0 0x32000000 uImage; bootm 0x32000000"
++
++#define CONFIG_DOS_PARTITION  1
++
++#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
++#define CONFIG_KGDB_BAUDRATE  115200          /* speed to run kgdb serial port */
++/* what's this ? it's not used anywhere */
++#define CONFIG_KGDB_SER_INDEX 1               /* which serial port to use */
++#endif
++
++/*
++ * Miscellaneous configurable options
++ */
++#define       CFG_LONGHELP                            /* undef to save memory         */
++#define       CFG_PROMPT              "QT2410 # "     /* Monitor Command Prompt       */
++#define       CFG_CBSIZE              256             /* Console I/O Buffer Size      */
++#define       CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
++#define       CFG_MAXARGS             16              /* max number of command args   */
++#define CFG_BARGSIZE          CFG_CBSIZE      /* Boot Argument Buffer Size    */
++
++#define CFG_MEMTEST_START     0x30000000      /* memtest works on     */
++#define CFG_MEMTEST_END               0x33F00000      /* 63 MB in DRAM        */
++
++#undef  CFG_CLKS_IN_HZ                /* everything, incl board info, in Hz */
++
++#define       CFG_LOAD_ADDR           0x33000000      /* default load address */
++
++/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */
++/* it to wrap 100 times (total 1562500) to get 1 sec. */
++#define       CFG_HZ                  1562500
++
++/* valid baudrates */
++#define CFG_BAUDRATE_TABLE    { 9600, 19200, 38400, 57600, 115200 }
++
++/*-----------------------------------------------------------------------
++ * Stack sizes
++ *
++ * The stack sizes are set up in start.S using the settings below
++ */
++#define CONFIG_STACKSIZE      (128*1024)      /* regular stack */
++#ifdef CONFIG_USE_IRQ
++#define CONFIG_STACKSIZE_IRQ  (4*1024)        /* IRQ stack */
++#define CONFIG_STACKSIZE_FIQ  (4*1024)        /* FIQ stack */
++#endif
++
++/* IDE/ATA config */
++
++#if 0
++#define CFG_IDE_MAXBUS                1
++#define CFG_IDE_MAXDEVICE     2
++#define CFG_IDE_PREINIT               0
++
++#define CFG_ATA_BASE_ADDR     
++#endif
++
++#define CONFIG_USB_OHCI               1
++
++/*-----------------------------------------------------------------------
++ * Physical Memory Map
++ */
++#define CONFIG_NR_DRAM_BANKS  1          /* we have 1 bank of DRAM */
++#define PHYS_SDRAM_1          0x30000000 /* SDRAM Bank #1 */
++#define PHYS_SDRAM_1_SIZE     0x04000000 /* 64 MB */
++#define PHYS_SDRAM_RES_SIZE   0x00200000 /* 2 MB for frame buffer */
++
++#define PHYS_FLASH_1          0x00000000 /* Flash Bank #1 */
++
++#define CFG_FLASH_BASE                PHYS_FLASH_1
++
++/*-----------------------------------------------------------------------
++ * FLASH and environment organization
++ */
++
++#define CONFIG_AMD_LV400      1       /* uncomment this if you have a LV400 flash */
++#if 0
++#define CONFIG_AMD_LV800      1       /* uncomment this if you have a LV800 flash */
++#endif
++
++#define CFG_MAX_FLASH_BANKS   1       /* max number of memory banks */
++#ifdef CONFIG_AMD_LV800
++#define PHYS_FLASH_SIZE               0x00100000 /* 1MB */
++#define CFG_MAX_FLASH_SECT    (19)    /* max number of sectors on one chip */
++#define CFG_ENV_ADDR          (CFG_FLASH_BASE + 0x0F0000) /* addr of environment */
++#endif
++#ifdef CONFIG_AMD_LV400
++#define PHYS_FLASH_SIZE               0x00080000 /* 512KB */
++#define CFG_MAX_FLASH_SECT    (11)    /* max number of sectors on one chip */
++#define CFG_ENV_ADDR          (CFG_FLASH_BASE + 0x070000) /* addr of environment */
++#endif
++
++/* timeout values are in ticks */
++#define CFG_FLASH_ERASE_TOUT  (5*CFG_HZ) /* Timeout for Flash Erase */
++#define CFG_FLASH_WRITE_TOUT  (5*CFG_HZ) /* Timeout for Flash Write */
++
++#define       CFG_ENV_IS_IN_NAND      1
++#define CFG_ENV_SIZE          0x4000          /* 16k Total Size of Environment Sector */
++#define CFG_ENV_OFFSET                0x30000         /* environment after bootloader */
++
++#define NAND_MAX_CHIPS                1
++#define CFG_NAND_BASE         0x4e000000
++#define CFG_MAX_NAND_DEVICE   1
++
++#define CONFIG_MMC            1
++#define CFG_MMC_BASE          0xff000000
++
++#define CONFIG_EXT2           1
++
++/* FAT driver in u-boot is broken currently */
++#define CONFIG_FAT            1
++#define CONFIG_SUPPORT_VFAT
++
++/* ATAG configuration */
++#define CONFIG_INITRD_TAG             1
++#define CONFIG_SETUP_MEMORY_TAGS      1
++#define CONFIG_CMDLINE_TAG            1
++#if 0
++#define CONFIG_SERIAL_TAG             1
++#define CONFIG_REVISION_TAG           1
++#endif
++
++
++#if 0
++#define CONFIG_VIDEO
++#define CONFIG_VIDEO_S3C2410
++#define CONFIG_CFB_CONSOLE
++#define CONFIG_VIDEO_LOGO
++#define CONFIG_VGA_AS_SINGLE_DEVICE
++
++#define VIDEO_KBD_INIT_FCT    0
++#define VIDEO_TSTC_FCT                serial_tstc
++#define VIDEO_GETC_FCT                serial_getc
++
++#define LCD_VIDEO_ADDR                0x33d00000
++#endif
++
++#endif        /* __CONFIG_H */
+diff --git a/include/s3c2410.h b/include/s3c2410.h
+index 86495f6..913521d 100644
+--- a/include/s3c2410.h
++++ b/include/s3c2410.h
+@@ -38,12 +38,6 @@ #define S3C24X0_SPI_CHANNELS        2
+ #define S3C2410_ECCSIZE               512
+ #define S3C2410_ECCBYTES      3
+-typedef enum {
+-      S3C24X0_UART0,
+-      S3C24X0_UART1,
+-      S3C24X0_UART2
+-} S3C24X0_UARTS_NR;
+-
+ /* S3C2410 device base addresses */
+ #define S3C24X0_MEMCTL_BASE           0x48000000
+ #define S3C24X0_USB_HOST_BASE         0x49000000
+@@ -65,9 +59,23 @@ #define S3C24X0_SPI_BASE            0x59000000
+ #define S3C2410_SDI_BASE              0x5A000000
++#define oNFCONF                       0x00
++#define oNFCMD                        0x04
++#define oNFADDR                       0x08
++#define oNFDATA                       0x0C
++#define oNFSTAT                       0x10
++#define oNFECC                        0x14
++
++#ifndef __ASSEMBLER__
++
+ /* include common stuff */
+ #include <s3c24x0.h>
++typedef enum {
++      S3C24X0_UART0,
++      S3C24X0_UART1,
++      S3C24X0_UART2
++} S3C24X0_UARTS_NR;
+ static inline S3C24X0_MEMCTL * const S3C24X0_GetBase_MEMCTL(void)
+ {
+@@ -142,6 +150,7 @@ static inline S3C2410_SDI * const S3C241
+       return (S3C2410_SDI * const)S3C2410_SDI_BASE;
+ }
++#endif
+ /* ISR */
+ #define pISR_RESET            (*(unsigned *)(_ISR_STARTADDRESS+0x0))
+diff --git a/include/s3c24x0.h b/include/s3c24x0.h
+index 71f35a5..557b91f 100644
+--- a/include/s3c24x0.h
++++ b/include/s3c24x0.h
+@@ -637,13 +637,7 @@ typedef struct {
+       S3C24X0_REG32   SDIDCNT;
+       S3C24X0_REG32   SDIDSTA;
+       S3C24X0_REG32   SDIFSTA;
+-#ifdef __BIG_ENDIAN
+-      S3C24X0_REG8    res[3];
+-      S3C24X0_REG8    SDIDAT;
+-#else
+-      S3C24X0_REG8    SDIDAT;
+-      S3C24X0_REG8    res[3];
+-#endif
++      S3C24X0_REG32   SDIDAT;
+       S3C24X0_REG32   SDIIMSK;
+ } /*__attribute__((__packed__))*/ S3C2410_SDI;
+@@ -1123,11 +1117,7 @@ #define rSDIDatCon              (*(volatile unsigned
+ #define rSDIDatCnt            (*(volatile unsigned *)0x5A000030)
+ #define rSDIDatSta            (*(volatile unsigned *)0x5A000034)
+ #define rSDIFSTA              (*(volatile unsigned *)0x5A000038)
+-#ifdef __BIG_ENDIAN
+-#define rSDIDAT                       (*(volatile unsigned char *)0x5A00003F)
+-#else
+-#define rSDIDAT                       (*(volatile unsigned char *)0x5A00003C)
+-#endif
++#define rSDIDAT                       (*(volatile unsigned *)0x5A00003C)
+ #define rSDIIntMsk            (*(volatile unsigned *)0x5A000040)
+ #endif
diff --git a/packages/uboot/files/u-boot-20060807.tar.bz2 b/packages/uboot/files/u-boot-20060807.tar.bz2
new file mode 100644 (file)
index 0000000..7b35fcf
Binary files /dev/null and b/packages/uboot/files/u-boot-20060807.tar.bz2 differ
diff --git a/packages/uboot/files/u-boot-20060907-gta01.patch b/packages/uboot/files/u-boot-20060907-gta01.patch
new file mode 100644 (file)
index 0000000..6aa54fa
--- /dev/null
@@ -0,0 +1,901 @@
+diff --exclude .git -Nru u-boot/Makefile u-boot.new/Makefile
+--- u-boot/Makefile    2006-08-11 23:19:07.000000000 +0200
++++ u-boot.new/Makefile        2006-10-26 13:02:41.000000000 +0200
+@@ -1641,6 +1641,9 @@
+ qt2410_config :       unconfig
+       @./mkconfig $(@:_config=) arm arm920t qt2410 NULL s3c24x0
++gta01_config  :       unconfig
++      @./mkconfig $(@:_config=) arm arm920t gta01 NULL s3c24x0
++
+ scb9328_config        :       unconfig
+       @./mkconfig $(@:_config=) arm arm920t scb9328 NULL imx
+diff --exclude .git -Nru u-boot/board/gta01/Makefile u-boot.new/board/gta01/Makefile
+--- u-boot/board/gta01/Makefile        1970-01-01 01:00:00.000000000 +0100
++++ u-boot.new/board/gta01/Makefile    2006-10-25 17:21:44.000000000 +0200
+@@ -0,0 +1,47 @@
++#
++# (C) Copyright 2000, 2001, 2002
++# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
++#
++# 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 $(TOPDIR)/config.mk
++
++LIB   = lib$(BOARD).a
++
++OBJS  := gta01.o
++SOBJS := lowlevel_init.o
++
++$(LIB):       $(OBJS) $(SOBJS)
++      $(AR) crv $@ $(OBJS) $(SOBJS)
++
++clean:
++      rm -f $(SOBJS) $(OBJS)
++
++distclean:    clean
++      rm -f $(LIB) core *.bak .depend
++
++#########################################################################
++
++.depend:      Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c)
++              $(CC) -M $(CPPFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@
++
++-include .depend
++
++#########################################################################
+diff --exclude .git -Nru u-boot/board/gta01/config.mk u-boot.new/board/gta01/config.mk
+--- u-boot/board/gta01/config.mk       1970-01-01 01:00:00.000000000 +0100
++++ u-boot.new/board/gta01/config.mk   2006-10-25 17:22:09.000000000 +0200
+@@ -0,0 +1,25 @@
++#
++# (C) Copyright 2002
++# Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
++# David Mueller, ELSOFT AG, <d.mueller@elsoft.ch>
++#
++# FIC GTA01 board with S3C2410X (ARM920T) cpu
++#
++# see http://www.samsung.com/ for more information on SAMSUNG
++#
++
++#
++# GTA01 has 1 bank of 64 MB DRAM
++#
++# 3000'0000 to 3400'0000
++#
++# Linux-Kernel is expected to be at 3000'8000, entry 3000'8000
++# optionally with a ramdisk at 3080'0000
++#
++# we load ourself to 33F8'0000
++#
++# download area is 3300'0000
++#
++
++
++TEXT_BASE = 0x33F80000
+diff --exclude .git -Nru u-boot/board/gta01/gta01.c u-boot.new/board/gta01/gta01.c
+--- u-boot/board/gta01/gta01.c 1970-01-01 01:00:00.000000000 +0100
++++ u-boot.new/board/gta01/gta01.c     2006-10-25 17:27:50.000000000 +0200
+@@ -0,0 +1,133 @@
++/*
++ * (C) 2006 by Harald Welte <hwelte@hmw-consulting.de>
++ *
++ * based on existing S3C2410 startup code in u-boot:
++ *
++ * (C) Copyright 2002
++ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
++ * Marius Groeger <mgroeger@sysgo.de>
++ *
++ * (C) Copyright 2002
++ * David Mueller, ELSOFT AG, <d.mueller@elsoft.ch>
++ *
++ * 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>
++#include <s3c2410.h>
++
++DECLARE_GLOBAL_DATA_PTR;
++
++#if 1
++//#define M_MDIV      0xA1            /* Fout = 202.8MHz */
++//#define M_PDIV      0x3
++//#define M_SDIV      0x1
++#define M_MDIV        0x90            /* Fout = 202.8MHz */
++#define M_PDIV        0x7
++#define M_SDIV        0x0
++#else
++#define M_MDIV        0x5c            /* Fout = 150.0MHz */
++#define M_PDIV        0x4
++#define M_SDIV        0x0
++#endif
++
++#if 1
++#define U_M_MDIV      0x78
++#define U_M_PDIV      0x2
++#define U_M_SDIV      0x3
++#else
++#define U_M_MDIV      0x48
++#define U_M_PDIV      0x3
++#define U_M_SDIV      0x2
++#endif
++
++static inline void delay (unsigned long loops)
++{
++      __asm__ volatile ("1:\n"
++        "subs %0, %1, #1\n"
++        "bne 1b":"=r" (loops):"0" (loops));
++}
++
++/*
++ * Miscellaneous platform dependent initialisations
++ */
++
++int board_init (void)
++{
++      S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
++      S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
++
++      /* to reduce PLL lock time, adjust the LOCKTIME register */
++      clk_power->LOCKTIME = 0xFFFFFF;
++
++      /* configure MPLL */
++      clk_power->MPLLCON = ((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV);
++
++      /* some delay between MPLL and UPLL */
++      delay (4000);
++
++      /* configure UPLL */
++      clk_power->UPLLCON = ((U_M_MDIV << 12) + (U_M_PDIV << 4) + U_M_SDIV);
++
++      /* some delay between MPLL and UPLL */
++      delay (8000);
++
++      /* set up the I/O ports */
++      gpio->GPACON = 0x007FFFFF;
++
++      gpio->GPBCON = 0x00005056;
++      gpio->GPBUP = 0x000007FF;
++
++      gpio->GPCCON = 0xAAAA12A8;
++      gpio->GPCUP = 0x0000FFFF;
++
++      gpio->GPDCON = 0xAAAAAAAA;
++      gpio->GPDUP = 0x0000FFFF;
++
++      gpio->GPECON = 0xAAAAAAAA;
++      gpio->GPEUP = 0x0000FFFF;
++
++      gpio->GPFCON = 0x00002AA9;
++      gpio->GPFUP = 0x000000FF;
++
++      gpio->GPGCON = 0xA846F0C0;
++      gpio->GPGUP = 0x0000AFEF;
++
++      gpio->GPHCON = 0x0008FAAA;
++      gpio->GPHUP = 0x000007FF;
++
++      /* arch number of SMDK2410-Board */
++      gd->bd->bi_arch_number = MACH_TYPE_GTA01;
++
++      /* adress of boot parameters */
++      gd->bd->bi_boot_params = 0x30000100;
++
++      icache_enable();
++      dcache_enable();
++
++      return 0;
++}
++
++int dram_init (void)
++{
++      gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
++      gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
++
++      return 0;
++}
+diff --exclude .git -Nru u-boot/board/gta01/lowlevel_init.S u-boot.new/board/gta01/lowlevel_init.S
+--- u-boot/board/gta01/lowlevel_init.S 1970-01-01 01:00:00.000000000 +0100
++++ u-boot.new/board/gta01/lowlevel_init.S     2006-10-25 17:20:42.000000000 +0200
+@@ -0,0 +1,171 @@
++/*
++ * Memory Setup stuff - taken from blob memsetup.S
++ *
++ * Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) and
++ *                     Jan-Derk Bakker (J.D.Bakker@its.tudelft.nl)
++ *
++ * Modified for the FIC GTA01 by Harald Welte <hwelte@hmw-consulting.de>
++ *
++ * 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 <config.h>
++#include <version.h>
++
++
++/* some parameters for the board */
++
++/*
++ *
++ * Taken from linux/arch/arm/boot/compressed/head-s3c2410.S
++ *
++ * Copyright (C) 2002 Samsung Electronics SW.LEE  <hitchcar@sec.samsung.com>
++ *
++ */
++
++#define BWSCON        0x48000000
++
++/* BWSCON */
++#define DW8                   (0x0)
++#define DW16                  (0x1)
++#define DW32                  (0x2)
++#define WAIT                  (0x1<<2)
++#define UBLB                  (0x1<<3)
++
++#define B1_BWSCON             (DW32)
++#define B2_BWSCON             (DW16)
++#define B3_BWSCON             (DW16 + WAIT + UBLB)
++#define B4_BWSCON             (DW16)
++#define B5_BWSCON             (DW16)
++#define B6_BWSCON             (DW32)
++#define B7_BWSCON             (DW32)
++
++/* BANK0CON */
++#define B0_Tacs                       0x0     /*  0clk */
++#define B0_Tcos                       0x0     /*  0clk */
++#define B0_Tacc                       0x7     /* 14clk */
++#define B0_Tcoh                       0x0     /*  0clk */
++#define B0_Tah                        0x0     /*  0clk */
++#define B0_Tacp                       0x0
++#define B0_PMC                        0x0     /* normal */
++
++/* BANK1CON */
++#define B1_Tacs                       0x0     /*  0clk */
++#define B1_Tcos                       0x0     /*  0clk */
++#define B1_Tacc                       0x7     /* 14clk */
++#define B1_Tcoh                       0x0     /*  0clk */
++#define B1_Tah                        0x0     /*  0clk */
++#define B1_Tacp                       0x0
++#define B1_PMC                        0x0
++
++#define B2_Tacs                       0x0
++#define B2_Tcos                       0x0
++#define B2_Tacc                       0x7
++#define B2_Tcoh                       0x0
++#define B2_Tah                        0x0
++#define B2_Tacp                       0x0
++#define B2_PMC                        0x0
++
++#define B3_Tacs                       0x0     /*  0clk */
++#define B3_Tcos                       0x3     /*  4clk */
++#define B3_Tacc                       0x7     /* 14clk */
++#define B3_Tcoh                       0x1     /*  1clk */
++#define B3_Tah                        0x0     /*  0clk */
++#define B3_Tacp                       0x3     /*  6clk */
++#define B3_PMC                        0x0     /* normal */
++
++#define B4_Tacs                       0x0     /*  0clk */
++#define B4_Tcos                       0x0     /*  0clk */
++#define B4_Tacc                       0x7     /* 14clk */
++#define B4_Tcoh                       0x0     /*  0clk */
++#define B4_Tah                        0x0     /*  0clk */
++#define B4_Tacp                       0x0
++#define B4_PMC                        0x0     /* normal */
++
++#define B5_Tacs                       0x0     /*  0clk */
++#define B5_Tcos                       0x0     /*  0clk */
++#define B5_Tacc                       0x7     /* 14clk */
++#define B5_Tcoh                       0x0     /*  0clk */
++#define B5_Tah                        0x0     /*  0clk */
++#define B5_Tacp                       0x0
++#define B5_PMC                        0x0     /* normal */
++
++#define B6_MT                 0x3     /* SDRAM */
++#define B6_Trcd                       0x1
++#define B6_SCAN                       0x1     /* 9bit */
++
++#define B7_MT                 0x3     /* SDRAM */
++#define B7_Trcd                       0x1     /* 3clk */
++#define B7_SCAN                       0x1     /* 9bit */
++
++/* REFRESH parameter */
++#define REFEN                 0x1     /* Refresh enable */
++#define TREFMD                        0x0     /* CBR(CAS before RAS)/Auto refresh */
++#define Trp                   0x1     /* 3clk */
++#define Trc                   0x3     /* 7clk */
++#define Tchr                  0x2     /* 3clk */
++//#define REFCNT                      1113    /* period=15.6us, HCLK=60Mhz, (2048+1-15.6*60) */
++#define REFCNT                        997     /* period=17.5us, HCLK=60Mhz, (2048+1-15.6*60) */
++/**************************************/
++
++_TEXT_BASE:
++      .word   TEXT_BASE
++
++.globl lowlevel_init
++lowlevel_init:
++      /* memory control configuration */
++      /* make r0 relative the current location so that it */
++      /* reads SMRDATA out of FLASH rather than memory ! */
++      ldr     r0, =SMRDATA
++      ldr     r1, _TEXT_BASE
++      sub     r0, r0, r1
++      ldr     r1, =BWSCON     /* Bus Width Status Controller */
++      add     r2, r0, #13*4
++0:
++      ldr     r3, [r0], #4
++      str     r3, [r1], #4
++      cmp     r2, r0
++      bne     0b
++
++      /* setup asynchronous bus mode */
++      mrc     p15, 0, r1 ,c1 ,c0, 0
++      orr     r1, r1, #0xc0000000
++      mcr     p15, 0, r1, c1, c0, 0
++
++      /* everything is fine now */
++      mov     pc, lr
++
++      .ltorg
++/* the literal pools origin */
++
++SMRDATA:
++    .word (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28))
++    .word ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))
++    .word ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC))
++    .word ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC))
++    .word ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC))
++    .word ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC))
++    .word ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC))
++    .word ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN))
++    .word ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN))
++    .word ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT)
++    .word 0xb2
++    .word 0x30
++    .word 0x30
+diff --exclude .git -Nru u-boot/board/gta01/u-boot.lds u-boot.new/board/gta01/u-boot.lds
+--- u-boot/board/gta01/u-boot.lds      1970-01-01 01:00:00.000000000 +0100
++++ u-boot.new/board/gta01/u-boot.lds  2006-10-25 17:28:02.000000000 +0200
+@@ -0,0 +1,57 @@
++/*
++ * (C) Copyright 2002
++ * Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
++ *
++ * 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
++ */
++
++OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
++/*OUTPUT_FORMAT("elf32-arm", "elf32-arm", "elf32-arm")*/
++OUTPUT_ARCH(arm)
++ENTRY(_start)
++SECTIONS
++{
++      . = 0x00000000;
++
++      . = ALIGN(4);
++      .text      :
++      {
++        cpu/arm920t/start.o   (.text)
++        *(.text)
++      }
++
++      . = ALIGN(4);
++      .rodata : { *(.rodata) }
++
++      . = ALIGN(4);
++      .data : { *(.data) }
++
++      . = ALIGN(4);
++      .got : { *(.got) }
++
++      . = .;
++      __u_boot_cmd_start = .;
++      .u_boot_cmd : { *(.u_boot_cmd) }
++      __u_boot_cmd_end = .;
++
++      . = ALIGN(4);
++      __bss_start = .;
++      .bss : { *(.bss) }
++      _end = .;
++}
+diff --exclude .git -Nru u-boot/board/qt2410/qt2410.c.old u-boot.new/board/qt2410/qt2410.c.old
+--- u-boot/board/qt2410/qt2410.c.old   1970-01-01 01:00:00.000000000 +0100
++++ u-boot.new/board/qt2410/qt2410.c.old       2006-10-10 11:09:43.000000000 +0200
+@@ -0,0 +1,127 @@
++/*
++ * (C) 2006 by Harald Welte <hwelte@hmw-consulting.de>
++ *
++ * based on existing S3C2410 startup code in u-boot:
++ *
++ * (C) Copyright 2002
++ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
++ * Marius Groeger <mgroeger@sysgo.de>
++ *
++ * (C) Copyright 2002
++ * David Mueller, ELSOFT AG, <d.mueller@elsoft.ch>
++ *
++ * 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>
++#include <s3c2410.h>
++
++DECLARE_GLOBAL_DATA_PTR;
++
++#if 1
++#define M_MDIV        0xA1            /* Fout = 202.8MHz */
++#define M_PDIV        0x3
++#define M_SDIV        0x1
++//#define M_MDIV      0x90            /* Fout = 202.8MHz */
++//#define M_PDIV      0x7
++//#define M_SDIV      0x0
++#else
++#define M_MDIV        0x5c            /* Fout = 150.0MHz */
++#define M_PDIV        0x4
++#define M_SDIV        0x0
++#endif
++
++#if 1
++#define U_M_MDIV      0x78
++#define U_M_PDIV      0x2
++#define U_M_SDIV      0x3
++#else
++#define U_M_MDIV      0x48
++#define U_M_PDIV      0x3
++#define U_M_SDIV      0x2
++#endif
++
++static inline void delay (unsigned long loops)
++{
++      __asm__ volatile ("1:\n"
++        "subs %0, %1, #1\n"
++        "bne 1b":"=r" (loops):"0" (loops));
++}
++
++/*
++ * Miscellaneous platform dependent initialisations
++ */
++
++int board_init (void)
++{
++      S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
++      S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
++
++      /* to reduce PLL lock time, adjust the LOCKTIME register */
++      clk_power->LOCKTIME = 0xFFFFFF;
++
++      /* configure MPLL */
++      clk_power->MPLLCON = ((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV);
++
++      /* some delay between MPLL and UPLL */
++      delay (4000);
++
++      /* configure UPLL */
++      clk_power->UPLLCON = ((U_M_MDIV << 12) + (U_M_PDIV << 4) + U_M_SDIV);
++
++      /* some delay between MPLL and UPLL */
++      delay (8000);
++
++      /* set up the I/O ports */
++      gpio->GPACON = 0x007FFFFF;
++      gpio->GPBCON = 0x00044555;
++      gpio->GPBUP = 0x000007FF;
++      gpio->GPCCON = 0xAAAAAAAA;
++      gpio->GPCUP = 0x0000FFFF;
++      gpio->GPDCON = 0xAAAAAAAA;
++      gpio->GPDUP = 0x0000FFFF;
++      gpio->GPECON = 0xAAAAAAAA;
++      gpio->GPEUP = 0x0000FFFF;
++      gpio->GPFCON = 0x000055AA;
++      gpio->GPFUP = 0x000000FF;
++      gpio->GPGCON = 0xFF95FFBA;
++      //gpio->GPGUP = 0x0000FFFF;
++      gpio->GPGUP = 0x0000AFEF;
++      gpio->GPHCON = 0x0028FAAA;
++      gpio->GPHUP = 0x000007FF;
++
++      /* arch number of SMDK2410-Board */
++      gd->bd->bi_arch_number = MACH_TYPE_QT2410;
++
++      /* adress of boot parameters */
++      gd->bd->bi_boot_params = 0x30000100;
++
++      icache_enable();
++      dcache_enable();
++
++      return 0;
++}
++
++int dram_init (void)
++{
++      gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
++      gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
++
++      return 0;
++}
+diff --exclude .git -Nru u-boot/fs/cramfs/cramfs.c u-boot.new/fs/cramfs/cramfs.c
+--- u-boot/fs/cramfs/cramfs.c  2006-07-14 12:41:02.000000000 +0200
++++ u-boot.new/fs/cramfs/cramfs.c      2006-10-26 14:01:41.000000000 +0200
+@@ -27,7 +27,7 @@
+ #include <common.h>
+ #include <malloc.h>
+-#if (CONFIG_COMMANDS & CFG_CMD_JFFS2)
++#if (CONFIG_COMMANDS & CFG_CMD_CRAMFS)
+ #include <asm/byteorder.h>
+ #include <linux/stat.h>
+@@ -343,5 +343,22 @@
+       }
+       return 1;
+ }
+-
++#else
++int cramfs_load (char *loadoffset, struct part_info *info, char *filename)
++{
++      return -1;
++}
++int cramfs_ls (struct part_info *info, char *filename)
++{
++      return 0;
++}
++int cramfs_info (struct part_info *info)
++{
++      return 0;
++}
++int cramfs_check (struct part_info *info)
++{
++      return 0;
++}
+ #endif /* CFG_FS_CRAMFS */
++
+diff --exclude .git -Nru u-boot/include/asm-arm/mach-types.h u-boot.new/include/asm-arm/mach-types.h
+--- u-boot/include/asm-arm/mach-types.h        2006-08-11 23:19:07.000000000 +0200
++++ u-boot.new/include/asm-arm/mach-types.h    2006-10-25 23:55:00.000000000 +0200
+@@ -1038,6 +1038,7 @@
+ #define MACH_TYPE_IXP465               1028
+ #define MACH_TYPE_BALLOON3             1029
+ #define MACH_TYPE_QT2410               1108
++#define MACH_TYPE_GTA01                1182
+ #ifdef CONFIG_ARCH_EBSA110
+ # ifdef machine_arch_type
+@@ -13327,6 +13328,19 @@
+ # define machine_is_qt2410()  (0)
+ #endif
++#ifdef CONFIG_MACH_GTA01
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_GTA01
++# endif
++# define machine_is_gta01()   (machine_arch_type == MACH_TYPE_GTA01)
++#else
++# define machine_is_gta01()   (0)
++#endif
++
++
+ /*
+  * These have not yet been registered
+  */
+diff --exclude .git -Nru u-boot/include/configs/gta01.h u-boot.new/include/configs/gta01.h
+--- u-boot/include/configs/gta01.h     1970-01-01 01:00:00.000000000 +0100
++++ u-boot.new/include/configs/gta01.h 2006-10-26 20:21:30.000000000 +0200
+@@ -0,0 +1,233 @@
++/*
++ * (C) Copyright 2006 Harald Welte <hwelte@hmw-consulting.de>
++ *
++ * Configuation settings for the FIC GTA01 Linux GSM phone
++ *
++ * 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
++ */
++
++#ifndef __CONFIG_H
++#define __CONFIG_H
++
++/* we want to start u-boot directly from within NAND flash */
++#define CONFIG_S3C2410_NAND_BOOT      1
++
++/*
++ * High Level Configuration Options
++ * (easy to change)
++ */
++#define CONFIG_ARM920T                1       /* This is an ARM920T Core      */
++#define       CONFIG_S3C2410          1       /* in a SAMSUNG S3C2410 SoC     */
++#define CONFIG_SMDK2410               1       /* on a SAMSUNG SMDK2410 Board  */
++
++/* input clock of PLL */
++#define CONFIG_SYS_CLK_FREQ   12000000/* the GTA01 has 12MHz input clock */
++
++
++#define USE_920T_MMU          1
++#define CONFIG_USE_IRQ                1
++
++/*
++ * Size of malloc() pool
++ */
++#define CFG_MALLOC_LEN                (CFG_ENV_SIZE + 128*1024)
++#define CFG_GBL_DATA_SIZE     128     /* size in bytes reserved for initial data */
++
++/*
++ * Hardware drivers
++ */
++
++/*
++ * select serial console configuration
++ */
++#define CONFIG_SERIAL1          1     /* we use SERIAL 1 on GTA01 */
++//#define CONFIG_HWFLOW               1
++
++/************************************************************
++ * RTC
++ ************************************************************/
++#define       CONFIG_RTC_S3C24X0      1
++
++/* allow to overwrite serial and ethaddr */
++#define CONFIG_ENV_OVERWRITE
++
++#define CONFIG_BAUDRATE               115200
++
++/***********************************************************
++ * Command definition
++ ***********************************************************/
++#define CONFIG_COMMANDS (\
++                      CFG_CMD_BDI      | \
++                      CFG_CMD_LOADS    | \
++                      CFG_CMD_LAODB    | \
++                      CFG_CMD_IMI      | \
++                      CFG_CMD_CACHE    | \
++                      CFG_CMD_MEMORY   | \
++                      CFG_CMD_ENV      | \
++                      /* CFG_CMD_IRQ   | */  \
++                      CFG_CMD_BOOTD    | \
++                      CFG_CMD_CONSOLE  | \
++                      CFG_CMD_ASKENV   | \
++                      CFG_CMD_RUN      | \
++                      CFG_CMD_ECHO     | \
++                      CFG_CMD_I2C      | \
++                      CFG_CMD_REGINFO  | \
++                      CFG_CMD_IMMAP    | \
++                      CFG_CMD_DATE     | \
++                      CFG_CMD_AUTOSCRIPT | \
++                      CFG_CMD_BSP      | \
++                      CFG_CMD_ELF      | \
++                      CFG_CMD_MISC     | \
++                      CFG_CMD_USB      | \
++                      CFG_CMD_JFFS2    | \
++                      CFG_CMD_DIAG     | \
++                      /* CFG_CMD_HWFLOW        | */ \
++                      CFG_CMD_SAVES    | \
++                      CFG_CMD_NAND     | \
++                      CFG_CMD_PORTIO   | \
++                      CFG_CMD_MMC      | \
++                      CFG_CMD_FAT      | \
++                      CFG_CMD_EXT2     | \
++                      0)
++/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
++#include <cmd_confdefs.h>
++
++#define CONFIG_BOOTDELAY      3
++#define CONFIG_BOOTARGS       "rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8"
++/*#define CONFIG_BOOTFILE     "elinos-lart" */
++#define CONFIG_BOOTCOMMAND    "nand load 0x32000000 0x34000 0x200000; bootm 0x32000000"
++
++#define CONFIG_DOS_PARTITION  1
++
++#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
++#define CONFIG_KGDB_BAUDRATE  115200          /* speed to run kgdb serial port */
++/* what's this ? it's not used anywhere */
++#define CONFIG_KGDB_SER_INDEX 1               /* which serial port to use */
++#endif
++
++/*
++ * Miscellaneous configurable options
++ */
++#define       CFG_LONGHELP                            /* undef to save memory         */
++#define       CFG_PROMPT              "GTA01 # "      /* Monitor Command Prompt       */
++#define       CFG_CBSIZE              256             /* Console I/O Buffer Size      */
++#define       CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
++#define       CFG_MAXARGS             16              /* max number of command args   */
++#define CFG_BARGSIZE          CFG_CBSIZE      /* Boot Argument Buffer Size    */
++
++#define CFG_MEMTEST_START     0x30000000      /* memtest works on     */
++#define CFG_MEMTEST_END               0x33F00000      /* 63 MB in DRAM        */
++
++#undef  CFG_CLKS_IN_HZ                /* everything, incl board info, in Hz */
++
++#define       CFG_LOAD_ADDR           0x33000000      /* default load address */
++
++/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */
++/* it to wrap 100 times (total 1562500) to get 1 sec. */
++#define       CFG_HZ                  1562500
++
++/* valid baudrates */
++#define CFG_BAUDRATE_TABLE    { 9600, 19200, 38400, 57600, 115200 }
++
++/*-----------------------------------------------------------------------
++ * Stack sizes
++ *
++ * The stack sizes are set up in start.S using the settings below
++ */
++#define CONFIG_STACKSIZE      (128*1024)      /* regular stack */
++#ifdef CONFIG_USE_IRQ
++#define CONFIG_STACKSIZE_IRQ  (4*1024)        /* IRQ stack */
++#define CONFIG_STACKSIZE_FIQ  (4*1024)        /* FIQ stack */
++#endif
++
++#define CONFIG_USB_OHCI               1
++
++/*-----------------------------------------------------------------------
++ * Physical Memory Map
++ */
++#define CONFIG_NR_DRAM_BANKS  1          /* we have 1 bank of DRAM */
++#define PHYS_SDRAM_1          0x30000000 /* SDRAM Bank #1 */
++#define PHYS_SDRAM_1_SIZE     0x04000000 /* 64 MB */
++#define PHYS_SDRAM_RES_SIZE   0x00200000 /* 2 MB for frame buffer */
++
++/*-----------------------------------------------------------------------
++ * FLASH and environment organization
++ */
++
++#if 1
++#define CFG_NO_FLASH          1
++#else
++#define CFG_MAX_FLASH_SECT    1
++#define CFG_MAX_FLASH_BANKS   1
++#endif
++
++#define       CFG_ENV_IS_IN_NAND      1
++#define CFG_ENV_SIZE          0x4000          /* 16k Total Size of Environment Sector */
++#define CFG_ENV_OFFSET                0x30000         /* environment after bootloader */
++
++#define NAND_MAX_CHIPS                1
++#define CFG_NAND_BASE         0x4e000000
++#define CFG_MAX_NAND_DEVICE   1
++
++#define CONFIG_MMC            1
++#define CFG_MMC_BASE          0xff000000
++
++/* EXT2 driver */
++#define CONFIG_EXT2           1
++
++/* FAT driver in u-boot is broken currently */
++#define CONFIG_FAT            1
++#define CONFIG_SUPPORT_VFAT   1
++
++/* JFFS2 driver */
++#define CONFIG_JFFS2_NAND     1
++#define CONFIG_JFFS2_NAND_DEV 0
++#define CONFIG_JFFS2_NAND_OFF 0x634000
++#define CONFIG_JFFS2_NAND_SIZE        0x39cc000
++
++/* ATAG configuration */
++#define CONFIG_INITRD_TAG             1
++#define CONFIG_SETUP_MEMORY_TAGS      1
++#define CONFIG_CMDLINE_TAG            1
++#if 0
++#define CONFIG_SERIAL_TAG             1
++#define CONFIG_REVISION_TAG           1
++#endif
++
++#define CONFIG_DRIVER_S3C24X0_I2C     1
++#define CONFIG_HARD_I2C                       1
++#define CFG_I2C_SPEED                 400000  /* 400kHz according to PCF50707 data sheet */
++#define CFG_I2C_SLAVE                 0x7f
++
++
++#if 0
++#define CONFIG_VIDEO
++#define CONFIG_VIDEO_S3C2410
++#define CONFIG_CFB_CONSOLE
++#define CONFIG_VIDEO_LOGO
++#define CONFIG_VGA_AS_SINGLE_DEVICE
++
++#define VIDEO_KBD_INIT_FCT    0
++#define VIDEO_TSTC_FCT                serial_tstc
++#define VIDEO_GETC_FCT                serial_getc
++
++#define LCD_VIDEO_ADDR                0x33d00000
++#endif
++
++#endif        /* __CONFIG_H */
diff --git a/packages/uboot/files/u-boot-20060907.tar.bz2 b/packages/uboot/files/u-boot-20060907.tar.bz2
new file mode 100644 (file)
index 0000000..66b562c
Binary files /dev/null and b/packages/uboot/files/u-boot-20060907.tar.bz2 differ
diff --git a/packages/uboot/files/u-boot-20061030-ext2load_hex.patch b/packages/uboot/files/u-boot-20061030-ext2load_hex.patch
new file mode 100644 (file)
index 0000000..3cecb74
--- /dev/null
@@ -0,0 +1,14 @@
+This patch adds the hex-printing of the file size read by 'ext2load'
+Index: u-boot.git/common/cmd_ext2.c
+===================================================================
+--- u-boot.git.orig/common/cmd_ext2.c  2007-01-02 18:26:17.000000000 +0100
++++ u-boot.git/common/cmd_ext2.c       2007-01-02 18:26:27.000000000 +0100
+@@ -279,7 +279,7 @@
+       /* Loading ok, update default load address */
+       load_addr = addr;
+-      printf ("\n%ld bytes read\n", filelen);
++      printf ("\n%ld (0x%lx) bytes read\n", filelen, filelen);
+       sprintf(buf, "%lX", filelen);
+       setenv("filesize", buf);
diff --git a/packages/uboot/files/u-boot-20061030-gta01bv2.patch b/packages/uboot/files/u-boot-20061030-gta01bv2.patch
new file mode 100644 (file)
index 0000000..9e2d193
--- /dev/null
@@ -0,0 +1,246 @@
+This patch adds support for the GTA01Bv2 variant of the FIC GTA01 (Neo1973) phone
+
+Index: git/Makefile
+===================================================================
+--- git.orig/Makefile  2007-01-04 12:22:12.000000000 +0100
++++ git/Makefile       2007-01-04 12:22:16.000000000 +0100
+@@ -1918,6 +1918,7 @@
+ gta01_config \
+ gta01v3_config \
++gta01bv2_config \
+ gta01v4_config :      unconfig
+       @board/gta01/split_by_variant.sh $@
+Index: git/board/gta01/gta01.c
+===================================================================
+--- git.orig/board/gta01/gta01.c       2007-01-04 12:22:12.000000000 +0100
++++ git/board/gta01/gta01.c    2007-01-04 12:22:16.000000000 +0100
+@@ -35,28 +35,29 @@
+ DECLARE_GLOBAL_DATA_PTR;
+-#if 1
++#if defined(CONFIG_ARCH_GTA01_v3) || defined(CONFIG_ARCH_GTA01_v4)
+ //#define M_MDIV      0xA1            /* Fout = 202.8MHz */
+ //#define M_PDIV      0x3
+ //#define M_SDIV      0x1
+ #define M_MDIV        0x90            /* Fout = 202.8MHz */
+ #define M_PDIV        0x7
+ #define M_SDIV        0x0
+-#else
+-#define M_MDIV        0x5c            /* Fout = 150.0MHz */
+-#define M_PDIV        0x4
++#elif defined(CONFIG_ARCH_GTA01B_v2)
++#if 0
++#define M_MDIV        0x7d            /* Fout = 266MHz */
++#define M_PDIV        0x1
++#define M_SDIV        0x1
++#endif
++#define M_MDIV        0x90            /* Fout = 202.8MHz */
++#define M_PDIV        0x7
+ #define M_SDIV        0x0
++#else
++#error Please define GTA01 revision
+ #endif
+-#if 1
+ #define U_M_MDIV      0x78
+ #define U_M_PDIV      0x2
+ #define U_M_SDIV      0x3
+-#else
+-#define U_M_MDIV      0x48
+-#define U_M_PDIV      0x3
+-#define U_M_SDIV      0x2
+-#endif
+ static inline void delay (unsigned long loops)
+ {
+@@ -137,7 +138,31 @@
+       gpio->GPHCON = 0x0000FAAA;
+       gpio->GPHUP = 0x000007FF;
++#elif defined(CONFIG_ARCH_GTA01B_v2)
++      gpio->GPACON = 0x005E47FF;
++      gpio->GPBCON = 0x00145416;
++      gpio->GPBUP = 0x000007FF;
++      gpio->GPBDAT |= 0x4;            /* Set GBP2 to high (Flash power-up) */
++
++      gpio->GPCCON = 0xAAAA12A9;
++      gpio->GPCUP = 0x0000FFFF;
++
++      gpio->GPDCON = 0xAAAAAAAA;
++      gpio->GPDUP = 0x0000FFFF;
++
++      gpio->GPECON = 0xA02AAAAA;
++      gpio->GPEUP = 0x0000FFFF;
++
++      gpio->GPFCON = 0x0000aa19;
++      gpio->GPFUP = 0x000000FF;
++      gpio->GPFDAT |= 0x4;            /* Set GBF2 to high (nGSM_EN) */
++
++      gpio->GPGCON = 0xFF40F0C1;
++      gpio->GPGUP = 0x0000AFEF;
++
++      gpio->GPHCON = 0x0000FAAA;
++      gpio->GPHUP = 0x000007FF;
+ #else
+ #error Please define GTA01 version
+ #endif
+@@ -156,9 +181,11 @@
+ int board_late_init(void)
+ {
++#if defined(CONFIG_ARCH_GTA01_v3) || defined(CONFIG_ARCH_GTA01_v4)
+       const char mmc_power = 0x8f;
+-      /* enable D3REG 3.3V (SC/MMC power) */
++      /* enable D2REG 3.3V (SC/MMC power) */
+       i2c_write(0x08, 0x25, 1, &mmc_power, 1);
++#endif
+       return 0;
+ }
+@@ -176,5 +203,7 @@
+       return 0x00000130;
+ #elif defined(CONFIG_ARCH_GTA01_v4)
+       return 0x00000140;
++#elif defined(CONFIG_ARCH_GTA01B_v2)
++      return 0x00000220;
+ #endif
+ }
+Index: git/board/gta01/split_by_variant.sh
+===================================================================
+--- git.orig/board/gta01/split_by_variant.sh   2007-01-04 12:22:12.000000000 +0100
++++ git/board/gta01/split_by_variant.sh        2007-01-04 12:22:16.000000000 +0100
+@@ -15,16 +15,23 @@
+       case "$1" in
+       gta01v4_config)
+       echo "#define CONFIG_ARCH_GTA01_v4" > ${obj}include/config.h
++      echo "GTA01_BIG_FLASH=n" > ${obj}board/gta01/config.tmp
+       ;;
+       gta01v3_config)
+       echo "#define CONFIG_ARCH_GTA01_v3" > ${obj}include/config.h
++      echo "GTA01_BIG_FLASH=n" > ${obj}board/gta01/config.tmp
+       ;;
++      gta01bv2_config)
++      echo "#define CONFIG_ARCH_GTA01B_v2" > ${obj}include/config.h
++      echo "GTA01_BIG_FLASH=y" > ${obj}board/gta01/config.tmp
++      ;;
+       *)
+       echo "$0:: Unrecognised config - using gta01v3_config"
+       echo "#define CONFIG_ARCH_GTA01_v3" > ${obj}include/config.h
++      echo "GTA01_BIG_FLASH=n" > ${obj}board/gta01/config.tmp
+       ;;
+       esac
+Index: git/include/configs/gta01.h
+===================================================================
+--- git.orig/include/configs/gta01.h   2007-01-04 12:22:12.000000000 +0100
++++ git/include/configs/gta01.h        2007-01-04 12:22:16.000000000 +0100
+@@ -128,6 +128,8 @@
+ #define       CFG_PROMPT              "GTA01v3 # "    /* Monitor Command Prompt       */
+ #elif defined(CONFIG_ARCH_GTA01_v4)
+ #define       CFG_PROMPT              "GTA01v4 # "    /* Monitor Command Prompt       */
++#elif defined(CONFIG_ARCH_GTA01B_v2)
++#define       CFG_PROMPT              "GTA01Bv2 # "   /* Monitor Command Prompt       */
+ #endif
+ #define       CFG_CBSIZE              256             /* Console I/O Buffer Size      */
+ #define       CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
+@@ -166,7 +168,13 @@
+  */
+ #define CONFIG_NR_DRAM_BANKS  1          /* we have 1 bank of DRAM */
+ #define PHYS_SDRAM_1          0x30000000 /* SDRAM Bank #1 */
++#if defined(CONFIG_ARCH_GTA01_v3) || defined(CONFIG_ARCH_GTA01_v4)
+ #define PHYS_SDRAM_1_SIZE     0x04000000 /* 64 MB */
++#elif defined(CONFIG_ARCH_GTA01B_v2)
++#define PHYS_SDRAM_1_SIZE     0x08000000 /* 128 MB */
++#else
++#error Please define GTA01 variant
++#endif
+ #define PHYS_SDRAM_RES_SIZE   0x00200000 /* 2 MB for frame buffer */
+ /*-----------------------------------------------------------------------
+Index: git/board/gta01/lowlevel_init.S
+===================================================================
+--- git.orig/board/gta01/lowlevel_init.S       2007-01-04 12:22:07.000000000 +0100
++++ git/board/gta01/lowlevel_init.S    2007-01-04 12:22:16.000000000 +0100
+@@ -108,12 +108,16 @@
+ #define B5_PMC                        0x0     /* normal */
+ #define B6_MT                 0x3     /* SDRAM */
+-#define B6_Trcd                       0x1
++#define B6_Trcd                       0x1     /* 3clk */
++#if defined (CONFIG_ARCH_GTA01_v3) || defined(CONFIG_ARCH_GTA01_v4)
+ #define B6_SCAN                       0x1     /* 9bit */
++#elif defined(CONFIG_ARCH_GTA01B_v2)
++#define B6_SCAN                       0x2     /* 10bit */
++#endif
+ #define B7_MT                 0x3     /* SDRAM */
+ #define B7_Trcd                       0x1     /* 3clk */
+-#define B7_SCAN                       0x1     /* 9bit */
++#define B7_SCAN                       0x2     /* 10bit */
+ /* REFRESH parameter */
+ #define REFEN                 0x1     /* Refresh enable */
+@@ -149,6 +153,19 @@
+       orr     r1, r1, #0xc0000000
+       mcr     p15, 0, r1, c1, c0, 0
++#if defined(CONFIG_ARCH_GTA01_v4) || defined(CONFIG_ARCH_GTA01B_v2)
++      /* switch on power for NAND */
++      ldr     r0, =0x56000010 /* GPBCON */
++      ldr     r1, [r0]
++      orr     r1, r1, #0x10
++      str     r1, [r0]
++
++      ldr     r0, =0x56000014 /* GPBDAT */
++      ldr     r1, [r0]
++      orr     r1, r1, #(1 <<2)
++      str     r1, [r0]
++#endif
++
+       /* everything is fine now */
+       mov     pc, lr
+Index: git/board/gta01/config.mk
+===================================================================
+--- git.orig/board/gta01/config.mk     2007-01-04 12:22:07.000000000 +0100
++++ git/board/gta01/config.mk  2007-01-04 12:22:16.000000000 +0100
+@@ -8,18 +8,26 @@
+ # see http://www.samsung.com/ for more information on SAMSUNG
+ #
++# GTA01v3 has 1 bank of 64 MB SDRAM
++# GTA01v4 has 1 bank of 64 MB SDRAM
+ #
+-# GTA01 has 1 bank of 64 MB DRAM
++#     3000'0000 to 3400'0000
++# we load ourself to 33F8'0000
++#
++# GTA01Bv2 or later has 1 bank of 128 MB SDRAM
+ #
+-# 3000'0000 to 3400'0000
++#     3000'0000 to 3800'0000
++# we load ourself to 37F8'0000
+ #
+ # Linux-Kernel is expected to be at 3000'8000, entry 3000'8000
+ # optionally with a ramdisk at 3080'0000
+ #
+-# we load ourself to 33F8'0000
+-#
+-# download area is 3300'0000
+-#
++# download area is 3200'0000 or 3300'0000
++sinclude $(OBJTREE)/board/$(BOARDDIR)/config.tmp
++ifeq ($(GTA01_BIG_RAM),y)
++TEXT_BASE = 0x37F80000
++else
+ TEXT_BASE = 0x33F80000
++endif
diff --git a/packages/uboot/files/u-boot-20061030-gta01v4.patch b/packages/uboot/files/u-boot-20061030-gta01v4.patch
new file mode 100644 (file)
index 0000000..8910dcf
--- /dev/null
@@ -0,0 +1,132 @@
+Index: git/Makefile
+===================================================================
+--- git.orig/Makefile  2007-01-04 12:22:08.000000000 +0100
++++ git/Makefile       2007-01-04 12:22:12.000000000 +0100
+@@ -1916,8 +1916,10 @@
+ qt2410_config :       unconfig
+       @./mkconfig $(@:_config=) arm arm920t qt2410 NULL s3c24x0
+-gta01_config  :       unconfig
+-      @./mkconfig $(@:_config=) arm arm920t gta01 NULL s3c24x0
++gta01_config \
++gta01v3_config \
++gta01v4_config :      unconfig
++      @board/gta01/split_by_variant.sh $@
+ scb9328_config        :       unconfig
+       @$(MKCONFIG) $(@:_config=) arm arm920t scb9328 NULL imx
+Index: git/board/gta01/gta01.c
+===================================================================
+--- git.orig/board/gta01/gta01.c       2007-01-04 12:22:08.000000000 +0100
++++ git/board/gta01/gta01.c    2007-01-04 12:22:12.000000000 +0100
+@@ -90,6 +90,7 @@
+       delay (8000);
+       /* set up the I/O ports */
++#if defined(CONFIG_ARCH_GTA01_v3)
+       gpio->GPACON = 0x007FFFFF;
+       gpio->GPBCON = 0x00005056;
+@@ -112,6 +113,34 @@
+       gpio->GPHCON = 0x0008FAAA;
+       gpio->GPHUP = 0x000007FF;
++#elif defined(CONFIG_ARCH_GTA01_v4)
++      gpio->GPACON = 0x007FFFFF; //0x005E47FF;
++
++      gpio->GPBDAT |= 0x4;            /* Set GBP2 to high (Flash power-up) */
++      gpio->GPBCON = 0x00005056; //0x00045016;
++      gpio->GPBUP = 0x000007FF;
++
++      gpio->GPCCON = 0xAAAA12A9;
++      gpio->GPCUP = 0x0000FFFF;
++
++      gpio->GPDCON = 0xAAAAAAAA;
++      gpio->GPDUP = 0x0000FFFF;
++
++      gpio->GPECON = 0xA02AAAAA;
++      gpio->GPEUP = 0x0000FFFF;
++
++      gpio->GPFCON = 0x0000aa09;
++      gpio->GPFUP = 0x000000FF;
++
++      gpio->GPGCON = 0xFF40F0C1;
++      gpio->GPGUP = 0x0000FFFF;
++
++      gpio->GPHCON = 0x0000FAAA;
++      gpio->GPHUP = 0x000007FF;
++
++#else
++#error Please define GTA01 version
++#endif
+       /* arch number of SMDK2410-Board */
+       gd->bd->bi_arch_number = MACH_TYPE_GTA01;
+@@ -143,5 +172,9 @@
+ u_int32_t get_board_rev(void)
+ {
++#if defined(CONFIG_ARCH_GTA01_v3)
+       return 0x00000130;
++#elif defined(CONFIG_ARCH_GTA01_v4)
++      return 0x00000140;
++#endif
+ }
+Index: git/board/gta01/split_by_variant.sh
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/board/gta01/split_by_variant.sh        2007-01-04 12:22:12.000000000 +0100
+@@ -0,0 +1,36 @@
++#!/bin/sh
++# ---------------------------------------------------------
++#  Set the core module defines according to Core Module
++# ---------------------------------------------------------
++# ---------------------------------------------------------
++# Set up the GTA01 type define
++# ---------------------------------------------------------
++
++mkdir -p ${obj}include
++if [ "$1" == "" ]
++then
++      echo "$0:: No parameters - using GTA01v3 config"
++      echo "#define CONFIG_ARCH_GTA01_v3" > ${obj}include/config.h
++else
++      case "$1" in
++      gta01v4_config)
++      echo "#define CONFIG_ARCH_GTA01_v4" > ${obj}include/config.h
++      ;;
++
++      gta01v3_config)
++      echo "#define CONFIG_ARCH_GTA01_v3" > ${obj}include/config.h
++      ;;
++
++
++      *)
++      echo "$0:: Unrecognised config - using gta01v3_config"
++      echo "#define CONFIG_ARCH_GTA01_v3" > ${obj}include/config.h
++      ;;
++
++      esac
++
++fi
++# ---------------------------------------------------------
++# Complete the configuration
++# ---------------------------------------------------------
++$MKCONFIG -a gta01 arm arm920t gta01 NULL s3c24x0
+Index: git/include/configs/gta01.h
+===================================================================
+--- git.orig/include/configs/gta01.h   2007-01-04 12:22:08.000000000 +0100
++++ git/include/configs/gta01.h        2007-01-04 12:22:12.000000000 +0100
+@@ -124,7 +124,11 @@
+  * Miscellaneous configurable options
+  */
+ #define       CFG_LONGHELP                            /* undef to save memory         */
+-#define       CFG_PROMPT              "GTA01 # "      /* Monitor Command Prompt       */
++#if defined(CONFIG_ARCH_GTA01_v3)
++#define       CFG_PROMPT              "GTA01v3 # "    /* Monitor Command Prompt       */
++#elif defined(CONFIG_ARCH_GTA01_v4)
++#define       CFG_PROMPT              "GTA01v4 # "    /* Monitor Command Prompt       */
++#endif
+ #define       CFG_CBSIZE              256             /* Console I/O Buffer Size      */
+ #define       CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
+ #define       CFG_MAXARGS             16              /* max number of command args   */
diff --git a/packages/uboot/files/u-boot-20061030-qt2410-gta01.patch b/packages/uboot/files/u-boot-20061030-qt2410-gta01.patch
new file mode 100644 (file)
index 0000000..91f8547
--- /dev/null
@@ -0,0 +1,9272 @@
+Index: git/Makefile
+===================================================================
+--- git.orig/Makefile  2007-01-04 12:21:15.000000000 +0100
++++ git/Makefile       2007-01-04 12:21:18.000000000 +0100
+@@ -1913,6 +1913,12 @@
+ sbc2410x_config: unconfig
+       @$(MKCONFIG) $(@:_config=) arm arm920t sbc2410x NULL s3c24x0
++qt2410_config :       unconfig
++      @./mkconfig $(@:_config=) arm arm920t qt2410 NULL s3c24x0
++
++gta01_config  :       unconfig
++      @./mkconfig $(@:_config=) arm arm920t gta01 NULL s3c24x0
++
+ scb9328_config        :       unconfig
+       @$(MKCONFIG) $(@:_config=) arm arm920t scb9328 NULL imx
+Index: git/board/gta01/Makefile
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/board/gta01/Makefile   2007-01-04 12:21:18.000000000 +0100
+@@ -0,0 +1,47 @@
++#
++# (C) Copyright 2000, 2001, 2002
++# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
++#
++# 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 $(TOPDIR)/config.mk
++
++LIB   = lib$(BOARD).a
++
++OBJS  := gta01.o
++SOBJS := lowlevel_init.o
++
++$(LIB):       $(OBJS) $(SOBJS)
++      $(AR) crv $@ $(OBJS) $(SOBJS)
++
++clean:
++      rm -f $(SOBJS) $(OBJS)
++
++distclean:    clean
++      rm -f $(LIB) core *.bak .depend
++
++#########################################################################
++
++.depend:      Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c)
++              $(CC) -M $(CPPFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@
++
++-include .depend
++
++#########################################################################
+Index: git/board/gta01/config.mk
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/board/gta01/config.mk  2007-01-04 12:21:18.000000000 +0100
+@@ -0,0 +1,25 @@
++#
++# (C) Copyright 2002
++# Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
++# David Mueller, ELSOFT AG, <d.mueller@elsoft.ch>
++#
++# FIC GTA01 board with S3C2410X (ARM920T) cpu
++#
++# see http://www.samsung.com/ for more information on SAMSUNG
++#
++
++#
++# GTA01 has 1 bank of 64 MB DRAM
++#
++# 3000'0000 to 3400'0000
++#
++# Linux-Kernel is expected to be at 3000'8000, entry 3000'8000
++# optionally with a ramdisk at 3080'0000
++#
++# we load ourself to 33F8'0000
++#
++# download area is 3300'0000
++#
++
++
++TEXT_BASE = 0x33F80000
+Index: git/board/gta01/gta01.c
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/board/gta01/gta01.c    2007-01-04 12:21:18.000000000 +0100
+@@ -0,0 +1,147 @@
++/*
++ * (C) 2006 by Harald Welte <hwelte@hmw-consulting.de>
++ *
++ * based on existing S3C2410 startup code in u-boot:
++ *
++ * (C) Copyright 2002
++ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
++ * Marius Groeger <mgroeger@sysgo.de>
++ *
++ * (C) Copyright 2002
++ * David Mueller, ELSOFT AG, <d.mueller@elsoft.ch>
++ *
++ * 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>
++#include <s3c2410.h>
++#include <i2c.h>
++
++DECLARE_GLOBAL_DATA_PTR;
++
++#if 1
++//#define M_MDIV      0xA1            /* Fout = 202.8MHz */
++//#define M_PDIV      0x3
++//#define M_SDIV      0x1
++#define M_MDIV        0x90            /* Fout = 202.8MHz */
++#define M_PDIV        0x7
++#define M_SDIV        0x0
++#else
++#define M_MDIV        0x5c            /* Fout = 150.0MHz */
++#define M_PDIV        0x4
++#define M_SDIV        0x0
++#endif
++
++#if 1
++#define U_M_MDIV      0x78
++#define U_M_PDIV      0x2
++#define U_M_SDIV      0x3
++#else
++#define U_M_MDIV      0x48
++#define U_M_PDIV      0x3
++#define U_M_SDIV      0x2
++#endif
++
++static inline void delay (unsigned long loops)
++{
++      __asm__ volatile ("1:\n"
++        "subs %0, %1, #1\n"
++        "bne 1b":"=r" (loops):"0" (loops));
++}
++
++/*
++ * Miscellaneous platform dependent initialisations
++ */
++
++int board_init (void)
++{
++      S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
++      S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
++
++      /* to reduce PLL lock time, adjust the LOCKTIME register */
++      clk_power->LOCKTIME = 0xFFFFFF;
++
++      /* configure MPLL */
++      clk_power->MPLLCON = ((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV);
++
++      /* some delay between MPLL and UPLL */
++      delay (4000);
++
++      /* configure UPLL */
++      clk_power->UPLLCON = ((U_M_MDIV << 12) + (U_M_PDIV << 4) + U_M_SDIV);
++
++      /* some delay between MPLL and UPLL */
++      delay (8000);
++
++      /* set up the I/O ports */
++      gpio->GPACON = 0x007FFFFF;
++
++      gpio->GPBCON = 0x00005056;
++      gpio->GPBUP = 0x000007FF;
++
++      gpio->GPCCON = 0xAAAA12A8;
++      gpio->GPCUP = 0x0000FFFF;
++
++      gpio->GPDCON = 0xAAAAAAAA;
++      gpio->GPDUP = 0x0000FFFF;
++
++      gpio->GPECON = 0xAAAAAAAA;
++      gpio->GPEUP = 0x0000FFFF;
++
++      gpio->GPFCON = 0x00002AA9;
++      gpio->GPFUP = 0x000000FF;
++
++      gpio->GPGCON = 0xA846F0C0;
++      gpio->GPGUP = 0x0000AFEF;
++
++      gpio->GPHCON = 0x0008FAAA;
++      gpio->GPHUP = 0x000007FF;
++
++      /* arch number of SMDK2410-Board */
++      gd->bd->bi_arch_number = MACH_TYPE_GTA01;
++
++      /* adress of boot parameters */
++      gd->bd->bi_boot_params = 0x30000100;
++
++      icache_enable();
++      dcache_enable();
++
++      return 0;
++}
++
++int board_late_init(void)
++{
++      const char mmc_power = 0x8f;
++      /* enable D3REG 3.3V (SC/MMC power) */
++      i2c_write(0x08, 0x25, 1, &mmc_power, 1);
++      return 0;
++}
++
++int dram_init (void)
++{
++      gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
++      gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
++
++      return 0;
++}
++
++u_int32_t get_board_rev(void)
++{
++      return 0x00000130;
++}
+Index: git/board/gta01/lowlevel_init.S
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/board/gta01/lowlevel_init.S    2007-01-04 12:21:18.000000000 +0100
+@@ -0,0 +1,171 @@
++/*
++ * Memory Setup stuff - taken from blob memsetup.S
++ *
++ * Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) and
++ *                     Jan-Derk Bakker (J.D.Bakker@its.tudelft.nl)
++ *
++ * Modified for the FIC GTA01 by Harald Welte <hwelte@hmw-consulting.de>
++ *
++ * 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 <config.h>
++#include <version.h>
++
++
++/* some parameters for the board */
++
++/*
++ *
++ * Taken from linux/arch/arm/boot/compressed/head-s3c2410.S
++ *
++ * Copyright (C) 2002 Samsung Electronics SW.LEE  <hitchcar@sec.samsung.com>
++ *
++ */
++
++#define BWSCON        0x48000000
++
++/* BWSCON */
++#define DW8                   (0x0)
++#define DW16                  (0x1)
++#define DW32                  (0x2)
++#define WAIT                  (0x1<<2)
++#define UBLB                  (0x1<<3)
++
++#define B1_BWSCON             (DW32)
++#define B2_BWSCON             (DW16)
++#define B3_BWSCON             (DW16 + WAIT + UBLB)
++#define B4_BWSCON             (DW16)
++#define B5_BWSCON             (DW16)
++#define B6_BWSCON             (DW32)
++#define B7_BWSCON             (DW32)
++
++/* BANK0CON */
++#define B0_Tacs                       0x0     /*  0clk */
++#define B0_Tcos                       0x0     /*  0clk */
++#define B0_Tacc                       0x7     /* 14clk */
++#define B0_Tcoh                       0x0     /*  0clk */
++#define B0_Tah                        0x0     /*  0clk */
++#define B0_Tacp                       0x0
++#define B0_PMC                        0x0     /* normal */
++
++/* BANK1CON */
++#define B1_Tacs                       0x0     /*  0clk */
++#define B1_Tcos                       0x0     /*  0clk */
++#define B1_Tacc                       0x7     /* 14clk */
++#define B1_Tcoh                       0x0     /*  0clk */
++#define B1_Tah                        0x0     /*  0clk */
++#define B1_Tacp                       0x0
++#define B1_PMC                        0x0
++
++#define B2_Tacs                       0x0
++#define B2_Tcos                       0x0
++#define B2_Tacc                       0x7
++#define B2_Tcoh                       0x0
++#define B2_Tah                        0x0
++#define B2_Tacp                       0x0
++#define B2_PMC                        0x0
++
++#define B3_Tacs                       0x0     /*  0clk */
++#define B3_Tcos                       0x3     /*  4clk */
++#define B3_Tacc                       0x7     /* 14clk */
++#define B3_Tcoh                       0x1     /*  1clk */
++#define B3_Tah                        0x0     /*  0clk */
++#define B3_Tacp                       0x3     /*  6clk */
++#define B3_PMC                        0x0     /* normal */
++
++#define B4_Tacs                       0x0     /*  0clk */
++#define B4_Tcos                       0x0     /*  0clk */
++#define B4_Tacc                       0x7     /* 14clk */
++#define B4_Tcoh                       0x0     /*  0clk */
++#define B4_Tah                        0x0     /*  0clk */
++#define B4_Tacp                       0x0
++#define B4_PMC                        0x0     /* normal */
++
++#define B5_Tacs                       0x0     /*  0clk */
++#define B5_Tcos                       0x0     /*  0clk */
++#define B5_Tacc                       0x7     /* 14clk */
++#define B5_Tcoh                       0x0     /*  0clk */
++#define B5_Tah                        0x0     /*  0clk */
++#define B5_Tacp                       0x0
++#define B5_PMC                        0x0     /* normal */
++
++#define B6_MT                 0x3     /* SDRAM */
++#define B6_Trcd                       0x1
++#define B6_SCAN                       0x1     /* 9bit */
++
++#define B7_MT                 0x3     /* SDRAM */
++#define B7_Trcd                       0x1     /* 3clk */
++#define B7_SCAN                       0x1     /* 9bit */
++
++/* REFRESH parameter */
++#define REFEN                 0x1     /* Refresh enable */
++#define TREFMD                        0x0     /* CBR(CAS before RAS)/Auto refresh */
++#define Trp                   0x1     /* 3clk */
++#define Trc                   0x3     /* 7clk */
++#define Tchr                  0x2     /* 3clk */
++//#define REFCNT                      1113    /* period=15.6us, HCLK=60Mhz, (2048+1-15.6*60) */
++#define REFCNT                        997     /* period=17.5us, HCLK=60Mhz, (2048+1-15.6*60) */
++/**************************************/
++
++_TEXT_BASE:
++      .word   TEXT_BASE
++
++.globl lowlevel_init
++lowlevel_init:
++      /* memory control configuration */
++      /* make r0 relative the current location so that it */
++      /* reads SMRDATA out of FLASH rather than memory ! */
++      ldr     r0, =SMRDATA
++      ldr     r1, _TEXT_BASE
++      sub     r0, r0, r1
++      ldr     r1, =BWSCON     /* Bus Width Status Controller */
++      add     r2, r0, #13*4
++0:
++      ldr     r3, [r0], #4
++      str     r3, [r1], #4
++      cmp     r2, r0
++      bne     0b
++
++      /* setup asynchronous bus mode */
++      mrc     p15, 0, r1 ,c1 ,c0, 0
++      orr     r1, r1, #0xc0000000
++      mcr     p15, 0, r1, c1, c0, 0
++
++      /* everything is fine now */
++      mov     pc, lr
++
++      .ltorg
++/* the literal pools origin */
++
++SMRDATA:
++    .word (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28))
++    .word ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))
++    .word ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC))
++    .word ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC))
++    .word ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC))
++    .word ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC))
++    .word ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC))
++    .word ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN))
++    .word ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN))
++    .word ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT)
++    .word 0xb2
++    .word 0x30
++    .word 0x30
+Index: git/board/gta01/u-boot.lds
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/board/gta01/u-boot.lds 2007-01-04 12:21:18.000000000 +0100
+@@ -0,0 +1,57 @@
++/*
++ * (C) Copyright 2002
++ * Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
++ *
++ * 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
++ */
++
++OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
++/*OUTPUT_FORMAT("elf32-arm", "elf32-arm", "elf32-arm")*/
++OUTPUT_ARCH(arm)
++ENTRY(_start)
++SECTIONS
++{
++      . = 0x00000000;
++
++      . = ALIGN(4);
++      .text      :
++      {
++        cpu/arm920t/start.o   (.text)
++        *(.text)
++      }
++
++      . = ALIGN(4);
++      .rodata : { *(.rodata) }
++
++      . = ALIGN(4);
++      .data : { *(.data) }
++
++      . = ALIGN(4);
++      .got : { *(.got) }
++
++      . = .;
++      __u_boot_cmd_start = .;
++      .u_boot_cmd : { *(.u_boot_cmd) }
++      __u_boot_cmd_end = .;
++
++      . = ALIGN(4);
++      __bss_start = .;
++      .bss : { *(.bss) }
++      _end = .;
++}
+Index: git/board/qt2410/Makefile
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/board/qt2410/Makefile  2007-01-04 12:21:18.000000000 +0100
+@@ -0,0 +1,47 @@
++#
++# (C) Copyright 2000, 2001, 2002
++# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
++#
++# 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 $(TOPDIR)/config.mk
++
++LIB   = lib$(BOARD).a
++
++OBJS  := qt2410.o flash.o
++SOBJS := lowlevel_init.o
++
++$(LIB):       $(OBJS) $(SOBJS)
++      $(AR) crv $@ $(OBJS) $(SOBJS)
++
++clean:
++      rm -f $(SOBJS) $(OBJS)
++
++distclean:    clean
++      rm -f $(LIB) core *.bak .depend
++
++#########################################################################
++
++.depend:      Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c)
++              $(CC) -M $(CPPFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@
++
++-include .depend
++
++#########################################################################
+Index: git/board/qt2410/config.mk
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/board/qt2410/config.mk 2007-01-04 12:21:18.000000000 +0100
+@@ -0,0 +1,25 @@
++#
++# (C) Copyright 2002
++# Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
++# David Mueller, ELSOFT AG, <d.mueller@elsoft.ch>
++#
++# SAMSUNG SMDK2410 board with S3C2410X (ARM920T) cpu
++#
++# see http://www.samsung.com/ for more information on SAMSUNG
++#
++
++#
++# SMDK2410 has 1 bank of 64 MB DRAM
++#
++# 3000'0000 to 3400'0000
++#
++# Linux-Kernel is expected to be at 3000'8000, entry 3000'8000
++# optionally with a ramdisk at 3080'0000
++#
++# we load ourself to 33F8'0000
++#
++# download area is 3300'0000
++#
++
++
++TEXT_BASE = 0x33F80000
+Index: git/board/qt2410/flash.c
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/board/qt2410/flash.c   2007-01-04 12:21:18.000000000 +0100
+@@ -0,0 +1,435 @@
++/*
++ * (C) Copyright 2002
++ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
++ * Alex Zuepke <azu@sysgo.de>
++ *
++ * 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>
++
++ulong myflush (void);
++
++
++#define FLASH_BANK_SIZE       PHYS_FLASH_SIZE
++#define MAIN_SECT_SIZE  0x10000       /* 64 KB */
++
++flash_info_t flash_info[CFG_MAX_FLASH_BANKS];
++
++
++#define CMD_READ_ARRAY                0x000000F0
++#define CMD_UNLOCK1           0x000000AA
++#define CMD_UNLOCK2           0x00000055
++#define CMD_ERASE_SETUP               0x00000080
++#define CMD_ERASE_CONFIRM     0x00000030
++#define CMD_PROGRAM           0x000000A0
++#define CMD_UNLOCK_BYPASS     0x00000020
++
++#define MEM_FLASH_ADDR1               (*(volatile u16 *)(CFG_FLASH_BASE + (0x00000555 << 1)))
++#define MEM_FLASH_ADDR2               (*(volatile u16 *)(CFG_FLASH_BASE + (0x000002AA << 1)))
++
++#define BIT_ERASE_DONE                0x00000080
++#define BIT_RDY_MASK          0x00000080
++#define BIT_PROGRAM_ERROR     0x00000020
++#define BIT_TIMEOUT           0x80000000      /* our flag */
++
++#define READY 1
++#define ERR   2
++#define TMO   4
++
++/*-----------------------------------------------------------------------
++ */
++
++ulong flash_init (void)
++{
++      int i, j;
++      ulong size = 0;
++
++      for (i = 0; i < CFG_MAX_FLASH_BANKS; i++) {
++              ulong flashbase = 0;
++
++              flash_info[i].flash_id =
++#if defined(CONFIG_AMD_LV400)
++                      (AMD_MANUFACT & FLASH_VENDMASK) |
++                      (AMD_ID_LV400B & FLASH_TYPEMASK);
++#elif defined(CONFIG_AMD_LV800)
++                      (AMD_MANUFACT & FLASH_VENDMASK) |
++                      (AMD_ID_LV800B & FLASH_TYPEMASK);
++#else
++#error "Unknown flash configured"
++#endif
++                      flash_info[i].size = FLASH_BANK_SIZE;
++              flash_info[i].sector_count = CFG_MAX_FLASH_SECT;
++              memset (flash_info[i].protect, 0, CFG_MAX_FLASH_SECT);
++              if (i == 0)
++                      flashbase = PHYS_FLASH_1;
++              else
++                      panic ("configured too many flash banks!\n");
++              for (j = 0; j < flash_info[i].sector_count; j++) {
++                      if (j <= 3) {
++                              /* 1st one is 16 KB */
++                              if (j == 0) {
++                                      flash_info[i].start[j] =
++                                              flashbase + 0;
++                              }
++
++                              /* 2nd and 3rd are both 8 KB */
++                              if ((j == 1) || (j == 2)) {
++                                      flash_info[i].start[j] =
++                                              flashbase + 0x4000 + (j -
++                                                                    1) *
++                                              0x2000;
++                              }
++
++                              /* 4th 32 KB */
++                              if (j == 3) {
++                                      flash_info[i].start[j] =
++                                              flashbase + 0x8000;
++                              }
++                      } else {
++                              flash_info[i].start[j] =
++                                      flashbase + (j - 3) * MAIN_SECT_SIZE;
++                      }
++              }
++              size += flash_info[i].size;
++      }
++
++      flash_protect (FLAG_PROTECT_SET,
++                     CFG_FLASH_BASE,
++                     CFG_FLASH_BASE + monitor_flash_len - 1,
++                     &flash_info[0]);
++
++#if 0
++      flash_protect (FLAG_PROTECT_SET,
++                     CFG_ENV_ADDR,
++                     CFG_ENV_ADDR + CFG_ENV_SIZE - 1, &flash_info[0]);
++#endif
++
++      return size;
++}
++
++/*-----------------------------------------------------------------------
++ */
++void flash_print_info (flash_info_t * info)
++{
++      int i;
++
++      switch (info->flash_id & FLASH_VENDMASK) {
++      case (AMD_MANUFACT & FLASH_VENDMASK):
++              printf ("AMD: ");
++              break;
++      default:
++              printf ("Unknown Vendor ");
++              break;
++      }
++
++      switch (info->flash_id & FLASH_TYPEMASK) {
++      case (AMD_ID_LV400B & FLASH_TYPEMASK):
++              printf ("1x Amd29LV400BB (4Mbit)\n");
++              break;
++      case (AMD_ID_LV800B & FLASH_TYPEMASK):
++              printf ("1x Amd29LV800BB (8Mbit)\n");
++              break;
++      default:
++              printf ("Unknown Chip Type\n");
++              goto Done;
++              break;
++      }
++
++      printf ("  Size: %ld MB in %d Sectors\n",
++              info->size >> 20, info->sector_count);
++
++      printf ("  Sector Start Addresses:");
++      for (i = 0; i < info->sector_count; i++) {
++              if ((i % 5) == 0) {
++                      printf ("\n   ");
++              }
++              printf (" %08lX%s", info->start[i],
++                      info->protect[i] ? " (RO)" : "     ");
++      }
++      printf ("\n");
++
++      Done:;
++}
++
++/*-----------------------------------------------------------------------
++ */
++
++int flash_erase (flash_info_t * info, int s_first, int s_last)
++{
++      ushort result;
++      int iflag, cflag, prot, sect;
++      int rc = ERR_OK;
++      int chip;
++
++      /* first look for protection bits */
++
++      if (info->flash_id == FLASH_UNKNOWN)
++              return ERR_UNKNOWN_FLASH_TYPE;
++
++      if ((s_first < 0) || (s_first > s_last)) {
++              return ERR_INVAL;
++      }
++
++      if ((info->flash_id & FLASH_VENDMASK) !=
++          (AMD_MANUFACT & FLASH_VENDMASK)) {
++              return ERR_UNKNOWN_FLASH_VENDOR;
++      }
++
++      prot = 0;
++      for (sect = s_first; sect <= s_last; ++sect) {
++              if (info->protect[sect]) {
++                      prot++;
++              }
++      }
++      if (prot)
++              return ERR_PROTECTED;
++
++      /*
++       * Disable interrupts which might cause a timeout
++       * here. Remember that our exception vectors are
++       * at address 0 in the flash, and we don't want a
++       * (ticker) exception to happen while the flash
++       * chip is in programming mode.
++       */
++      cflag = icache_status ();
++      icache_disable ();
++      iflag = disable_interrupts ();
++
++      /* Start erase on unprotected sectors */
++      for (sect = s_first; sect <= s_last && !ctrlc (); sect++) {
++              printf ("Erasing sector %2d ... ", sect);
++
++              /* arm simple, non interrupt dependent timer */
++              reset_timer_masked ();
++
++              if (info->protect[sect] == 0) { /* not protected */
++                      vu_short *addr = (vu_short *) (info->start[sect]);
++
++                      MEM_FLASH_ADDR1 = CMD_UNLOCK1;
++                      MEM_FLASH_ADDR2 = CMD_UNLOCK2;
++                      MEM_FLASH_ADDR1 = CMD_ERASE_SETUP;
++
++                      MEM_FLASH_ADDR1 = CMD_UNLOCK1;
++                      MEM_FLASH_ADDR2 = CMD_UNLOCK2;
++                      *addr = CMD_ERASE_CONFIRM;
++
++                      /* wait until flash is ready */
++                      chip = 0;
++
++                      do {
++                              result = *addr;
++
++                              /* check timeout */
++                              if (get_timer_masked () >
++                                  CFG_FLASH_ERASE_TOUT) {
++                                      MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
++                                      chip = TMO;
++                                      break;
++                              }
++
++                              if (!chip
++                                  && (result & 0xFFFF) & BIT_ERASE_DONE)
++                                      chip = READY;
++
++                              if (!chip
++                                  && (result & 0xFFFF) & BIT_PROGRAM_ERROR)
++                                      chip = ERR;
++
++                      } while (!chip);
++
++                      MEM_FLASH_ADDR1 = CMD_READ_ARRAY;
++
++                      if (chip == ERR) {
++                              rc = ERR_PROG_ERROR;
++                              goto outahere;
++                      }
++                      if (chip == TMO) {
++                              rc = ERR_TIMOUT;
++                              goto outahere;
++                      }
++
++                      printf ("ok.\n");
++              } else {        /* it was protected */
++
++                      printf ("protected!\n");
++              }
++      }
++
++      if (ctrlc ())
++              printf ("User Interrupt!\n");
++
++      outahere:
++      /* allow flash to settle - wait 10 ms */
++      udelay_masked (10000);
++
++      if (iflag)
++              enable_interrupts ();
++
++      if (cflag)
++              icache_enable ();
++
++      return rc;
++}
++
++/*-----------------------------------------------------------------------
++ * Copy memory to flash
++ */
++
++volatile static int write_hword (flash_info_t * info, ulong dest, ushort data)
++{
++      vu_short *addr = (vu_short *) dest;
++      ushort result;
++      int rc = ERR_OK;
++      int cflag, iflag;
++      int chip;
++
++      /*
++       * Check if Flash is (sufficiently) erased
++       */
++      result = *addr;
++      if ((result & data) != data)
++              return ERR_NOT_ERASED;
++
++
++      /*
++       * Disable interrupts which might cause a timeout
++       * here. Remember that our exception vectors are
++       * at address 0 in the flash, and we don't want a
++       * (ticker) exception to happen while the flash
++       * chip is in programming mode.
++       */
++      cflag = icache_status ();
++      icache_disable ();
++      iflag = disable_interrupts ();
++
++      MEM_FLASH_ADDR1 = CMD_UNLOCK1;
++      MEM_FLASH_ADDR2 = CMD_UNLOCK2;
++      MEM_FLASH_ADDR1 = CMD_UNLOCK_BYPASS;
++      *addr = CMD_PROGRAM;
++      *addr = data;
++
++      /* arm simple, non interrupt dependent timer */
++      reset_timer_masked ();
++
++      /* wait until flash is ready */
++      chip = 0;
++      do {
++              result = *addr;
++
++              /* check timeout */
++              if (get_timer_masked () > CFG_FLASH_ERASE_TOUT) {
++                      chip = ERR | TMO;
++                      break;
++              }
++              if (!chip && ((result & 0x80) == (data & 0x80)))
++                      chip = READY;
++
++              if (!chip && ((result & 0xFFFF) & BIT_PROGRAM_ERROR)) {
++                      result = *addr;
++
++                      if ((result & 0x80) == (data & 0x80))
++                              chip = READY;
++                      else
++                              chip = ERR;
++              }
++
++      } while (!chip);
++
++      *addr = CMD_READ_ARRAY;
++
++      if (chip == ERR || *addr != data)
++              rc = ERR_PROG_ERROR;
++
++      if (iflag)
++              enable_interrupts ();
++
++      if (cflag)
++              icache_enable ();
++
++      return rc;
++}
++
++/*-----------------------------------------------------------------------
++ * Copy memory to flash.
++ */
++
++int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
++{
++      ulong cp, wp;
++      int l;
++      int i, rc;
++      ushort data;
++
++      wp = (addr & ~1);       /* get lower word aligned address */
++
++      /*
++       * handle unaligned start bytes
++       */
++      if ((l = addr - wp) != 0) {
++              data = 0;
++              for (i = 0, cp = wp; i < l; ++i, ++cp) {
++                      data = (data >> 8) | (*(uchar *) cp << 8);
++              }
++              for (; i < 2 && cnt > 0; ++i) {
++                      data = (data >> 8) | (*src++ << 8);
++                      --cnt;
++                      ++cp;
++              }
++              for (; cnt == 0 && i < 2; ++i, ++cp) {
++                      data = (data >> 8) | (*(uchar *) cp << 8);
++              }
++
++              if ((rc = write_hword (info, wp, data)) != 0) {
++                      return (rc);
++              }
++              wp += 2;
++      }
++
++      /*
++       * handle word aligned part
++       */
++      while (cnt >= 2) {
++              data = *((vu_short *) src);
++              if ((rc = write_hword (info, wp, data)) != 0) {
++                      return (rc);
++              }
++              src += 2;
++              wp += 2;
++              cnt -= 2;
++      }
++
++      if (cnt == 0) {
++              return ERR_OK;
++      }
++
++      /*
++       * handle unaligned tail bytes
++       */
++      data = 0;
++      for (i = 0, cp = wp; i < 2 && cnt > 0; ++i, ++cp) {
++              data = (data >> 8) | (*src++ << 8);
++              --cnt;
++      }
++      for (; i < 2; ++i, ++cp) {
++              data = (data >> 8) | (*(uchar *) cp << 8);
++      }
++
++      return write_hword (info, wp, data);
++}
+Index: git/board/qt2410/lowlevel_init.S
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/board/qt2410/lowlevel_init.S   2007-01-04 12:21:18.000000000 +0100
+@@ -0,0 +1,173 @@
++/*
++ * Memory Setup stuff - taken from blob memsetup.S
++ *
++ * Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) and
++ *                     Jan-Derk Bakker (J.D.Bakker@its.tudelft.nl)
++ *
++ * Modified for the Samsung SMDK2410 by
++ * (C) Copyright 2002
++ * David Mueller, ELSOFT AG, <d.mueller@elsoft.ch>
++ *
++ * 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 <config.h>
++#include <version.h>
++
++
++/* some parameters for the board */
++
++/*
++ *
++ * Taken from linux/arch/arm/boot/compressed/head-s3c2410.S
++ *
++ * Copyright (C) 2002 Samsung Electronics SW.LEE  <hitchcar@sec.samsung.com>
++ *
++ */
++
++#define BWSCON        0x48000000
++
++/* BWSCON */
++#define DW8                   (0x0)
++#define DW16                  (0x1)
++#define DW32                  (0x2)
++#define WAIT                  (0x1<<2)
++#define UBLB                  (0x1<<3)
++
++#define B1_BWSCON             (DW32)
++#define B2_BWSCON             (DW16)
++#define B3_BWSCON             (DW16 + WAIT + UBLB)
++#define B4_BWSCON             (DW16)
++#define B5_BWSCON             (DW16)
++#define B6_BWSCON             (DW32)
++#define B7_BWSCON             (DW32)
++
++/* BANK0CON */
++#define B0_Tacs                       0x0     /*  0clk */
++#define B0_Tcos                       0x0     /*  0clk */
++#define B0_Tacc                       0x7     /* 14clk */
++#define B0_Tcoh                       0x0     /*  0clk */
++#define B0_Tah                        0x0     /*  0clk */
++#define B0_Tacp                       0x0
++#define B0_PMC                        0x0     /* normal */
++
++/* BANK1CON */
++#define B1_Tacs                       0x0     /*  0clk */
++#define B1_Tcos                       0x0     /*  0clk */
++#define B1_Tacc                       0x7     /* 14clk */
++#define B1_Tcoh                       0x0     /*  0clk */
++#define B1_Tah                        0x0     /*  0clk */
++#define B1_Tacp                       0x0
++#define B1_PMC                        0x0
++
++#define B2_Tacs                       0x0
++#define B2_Tcos                       0x0
++#define B2_Tacc                       0x7
++#define B2_Tcoh                       0x0
++#define B2_Tah                        0x0
++#define B2_Tacp                       0x0
++#define B2_PMC                        0x0
++
++#define B3_Tacs                       0x0     /*  0clk */
++#define B3_Tcos                       0x3     /*  4clk */
++#define B3_Tacc                       0x7     /* 14clk */
++#define B3_Tcoh                       0x1     /*  1clk */
++#define B3_Tah                        0x0     /*  0clk */
++#define B3_Tacp                       0x3     /*  6clk */
++#define B3_PMC                        0x0     /* normal */
++
++#define B4_Tacs                       0x0     /*  0clk */
++#define B4_Tcos                       0x0     /*  0clk */
++#define B4_Tacc                       0x7     /* 14clk */
++#define B4_Tcoh                       0x0     /*  0clk */
++#define B4_Tah                        0x0     /*  0clk */
++#define B4_Tacp                       0x0
++#define B4_PMC                        0x0     /* normal */
++
++#define B5_Tacs                       0x0     /*  0clk */
++#define B5_Tcos                       0x0     /*  0clk */
++#define B5_Tacc                       0x7     /* 14clk */
++#define B5_Tcoh                       0x0     /*  0clk */
++#define B5_Tah                        0x0     /*  0clk */
++#define B5_Tacp                       0x0
++#define B5_PMC                        0x0     /* normal */
++
++#define B6_MT                 0x3     /* SDRAM */
++#define B6_Trcd                       0x1
++#define B6_SCAN                       0x1     /* 9bit */
++
++#define B7_MT                 0x3     /* SDRAM */
++#define B7_Trcd                       0x1     /* 3clk */
++#define B7_SCAN                       0x1     /* 9bit */
++
++/* REFRESH parameter */
++#define REFEN                 0x1     /* Refresh enable */
++#define TREFMD                        0x0     /* CBR(CAS before RAS)/Auto refresh */
++#define Trp                   0x1     /* 3clk */
++#define Trc                   0x3     /* 7clk */
++#define Tchr                  0x2     /* 3clk */
++//#define REFCNT                      1113    /* period=15.6us, HCLK=60Mhz, (2048+1-15.6*60) */
++#define REFCNT                        997     /* period=17.5us, HCLK=60Mhz, (2048+1-15.6*60) */
++/**************************************/
++
++_TEXT_BASE:
++      .word   TEXT_BASE
++
++.globl lowlevel_init
++lowlevel_init:
++      /* memory control configuration */
++      /* make r0 relative the current location so that it */
++      /* reads SMRDATA out of FLASH rather than memory ! */
++      ldr     r0, =SMRDATA
++      ldr     r1, _TEXT_BASE
++      sub     r0, r0, r1
++      ldr     r1, =BWSCON     /* Bus Width Status Controller */
++      add     r2, r0, #13*4
++0:
++      ldr     r3, [r0], #4
++      str     r3, [r1], #4
++      cmp     r2, r0
++      bne     0b
++
++      /* setup asynchronous bus mode */
++      mrc     p15, 0, r1 ,c1 ,c0, 0
++      orr     r1, r1, #0xc0000000
++      mcr     p15, 0, r1, c1, c0, 0
++
++      /* everything is fine now */
++      mov     pc, lr
++
++      .ltorg
++/* the literal pools origin */
++
++SMRDATA:
++    .word (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28))
++    .word ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))
++    .word ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC))
++    .word ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC))
++    .word ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC))
++    .word ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC))
++    .word ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC))
++    .word ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN))
++    .word ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN))
++    .word ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT)
++    .word 0xb2
++    .word 0x30
++    .word 0x30
+Index: git/board/qt2410/qt2410.c
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/board/qt2410/qt2410.c  2007-01-04 12:21:18.000000000 +0100
+@@ -0,0 +1,127 @@
++/*
++ * (C) 2006 by Harald Welte <hwelte@hmw-consulting.de>
++ *
++ * based on existing S3C2410 startup code in u-boot:
++ *
++ * (C) Copyright 2002
++ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
++ * Marius Groeger <mgroeger@sysgo.de>
++ *
++ * (C) Copyright 2002
++ * David Mueller, ELSOFT AG, <d.mueller@elsoft.ch>
++ *
++ * 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>
++#include <s3c2410.h>
++
++DECLARE_GLOBAL_DATA_PTR;
++
++#if 1
++//#define M_MDIV      0xA1            /* Fout = 202.8MHz */
++//#define M_PDIV      0x3
++//#define M_SDIV      0x1
++#define M_MDIV        0x90            /* Fout = 202.8MHz */
++#define M_PDIV        0x7
++#define M_SDIV        0x0
++#else
++#define M_MDIV        0x5c            /* Fout = 150.0MHz */
++#define M_PDIV        0x4
++#define M_SDIV        0x0
++#endif
++
++#if 1
++#define U_M_MDIV      0x78
++#define U_M_PDIV      0x2
++#define U_M_SDIV      0x3
++#else
++#define U_M_MDIV      0x48
++#define U_M_PDIV      0x3
++#define U_M_SDIV      0x2
++#endif
++
++static inline void delay (unsigned long loops)
++{
++      __asm__ volatile ("1:\n"
++        "subs %0, %1, #1\n"
++        "bne 1b":"=r" (loops):"0" (loops));
++}
++
++/*
++ * Miscellaneous platform dependent initialisations
++ */
++
++int board_init (void)
++{
++      S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
++      S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
++
++      /* to reduce PLL lock time, adjust the LOCKTIME register */
++      clk_power->LOCKTIME = 0xFFFFFF;
++
++      /* configure MPLL */
++      clk_power->MPLLCON = ((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV);
++
++      /* some delay between MPLL and UPLL */
++      delay (4000);
++
++      /* configure UPLL */
++      clk_power->UPLLCON = ((U_M_MDIV << 12) + (U_M_PDIV << 4) + U_M_SDIV);
++
++      /* some delay between MPLL and UPLL */
++      delay (8000);
++
++      /* set up the I/O ports */
++      gpio->GPACON = 0x007FFFFF;
++      gpio->GPBCON = 0x00044555;
++      gpio->GPBUP = 0x000007FF;
++      gpio->GPCCON = 0xAAAAAAAA;
++      gpio->GPCUP = 0x0000FFFF;
++      gpio->GPDCON = 0xAAAAAAAA;
++      gpio->GPDUP = 0x0000FFFF;
++      gpio->GPECON = 0xAAAAAAAA;
++      gpio->GPEUP = 0x0000FFFF;
++      gpio->GPFCON = 0x000055AA;
++      gpio->GPFUP = 0x000000FF;
++      gpio->GPGCON = 0xFF95FFBA;
++      //gpio->GPGUP = 0x0000FFFF;
++      gpio->GPGUP = 0x0000AFEF;
++      gpio->GPHCON = 0x0028FAAA;
++      gpio->GPHUP = 0x000007FF;
++
++      /* arch number of SMDK2410-Board */
++      gd->bd->bi_arch_number = MACH_TYPE_QT2410;
++
++      /* adress of boot parameters */
++      gd->bd->bi_boot_params = 0x30000100;
++
++      icache_enable();
++      dcache_enable();
++
++      return 0;
++}
++
++int dram_init (void)
++{
++      gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
++      gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
++
++      return 0;
++}
+Index: git/board/qt2410/u-boot.lds
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/board/qt2410/u-boot.lds        2007-01-04 12:21:18.000000000 +0100
+@@ -0,0 +1,57 @@
++/*
++ * (C) Copyright 2002
++ * Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
++ *
++ * 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
++ */
++
++OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
++/*OUTPUT_FORMAT("elf32-arm", "elf32-arm", "elf32-arm")*/
++OUTPUT_ARCH(arm)
++ENTRY(_start)
++SECTIONS
++{
++      . = 0x00000000;
++
++      . = ALIGN(4);
++      .text      :
++      {
++        cpu/arm920t/start.o   (.text)
++        *(.text)
++      }
++
++      . = ALIGN(4);
++      .rodata : { *(.rodata) }
++
++      . = ALIGN(4);
++      .data : { *(.data) }
++
++      . = ALIGN(4);
++      .got : { *(.got) }
++
++      . = .;
++      __u_boot_cmd_start = .;
++      .u_boot_cmd : { *(.u_boot_cmd) }
++      __u_boot_cmd_end = .;
++
++      . = ALIGN(4);
++      __bss_start = .;
++      .bss : { *(.bss) }
++      _end = .;
++}
+Index: git/common/Makefile
+===================================================================
+--- git.orig/common/Makefile   2007-01-04 12:21:15.000000000 +0100
++++ git/common/Makefile        2007-01-04 12:21:18.000000000 +0100
+@@ -28,7 +28,7 @@
+ AOBJS =
+ COBJS = main.o ACEX1K.o altera.o bedbug.o circbuf.o \
+-        cmd_ace.o cmd_autoscript.o \
++        cmd_ace.o cmd_arm920.o cmd_autoscript.o \
+         cmd_bdinfo.o cmd_bedbug.o cmd_bmp.o cmd_boot.o cmd_bootm.o \
+         cmd_cache.o cmd_console.o \
+         cmd_date.o cmd_dcr.o cmd_diag.o cmd_display.o cmd_doc.o cmd_dtt.o \
+Index: git/common/cmd_arm920.c
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/common/cmd_arm920.c    2007-01-04 12:21:18.000000000 +0100
+@@ -0,0 +1,64 @@
++/*
++ * (C) Copyright 2003
++ * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
++ *
++ * 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
++ */
++
++/*
++ * Boot support
++ */
++#include <common.h>
++#include <command.h>
++#include <net.h>              /* for print_IPaddr */
++
++DECLARE_GLOBAL_DATA_PTR;
++
++#if (CONFIG_COMMANDS & CFG_CMD_BDI)
++
++extern unsigned long read_p15_c1(void);
++extern void write_p15_c1(unsigned long);
++
++int do_arm920 ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
++{
++      int i;
++
++      if (strcmp(argv[1], "cp15c1")) {
++              printf("Usage:\n%s\n", cmdtp->usage);
++              return 1;
++      }
++      
++      if (!strcmp(argv[2], "write")) {
++              ulong val = simple_strtoul(argv[3], NULL, 16);
++              printf("setting cp15c1 to 0x%08x\n", val);
++              write_p15_c1(val);
++      } else if (!strcmp(argv[2], "read"))
++              printf("cp15c1 = 0x%08x\n", read_p15_c1());
++
++      return 0;
++}
++
++/* -------------------------------------------------------------------- */
++
++U_BOOT_CMD(
++      arm920, 4,      1,      do_arm920,
++      "arm920_cp15  - print cp15",
++      NULL
++);
++#endif        /* CFG_CMD_BDI */
+Index: git/cpu/arm920t/cpu.c
+===================================================================
+--- git.orig/cpu/arm920t/cpu.c 2007-01-04 12:21:15.000000000 +0100
++++ git/cpu/arm920t/cpu.c      2007-01-04 12:21:18.000000000 +0100
+@@ -38,7 +38,7 @@
+ #endif
+ /* read co-processor 15, register #1 (control register) */
+-static unsigned long read_p15_c1 (void)
++unsigned long read_p15_c1 (void)
+ {
+       unsigned long value;
+@@ -55,7 +55,7 @@
+ }
+ /* write to co-processor 15, register #1 (control register) */
+-static void write_p15_c1 (unsigned long value)
++void write_p15_c1 (unsigned long value)
+ {
+ #ifdef MMU_DEBUG
+       printf ("write %08lx to p15/c1\n", value);
+Index: git/cpu/arm920t/s3c24x0/Makefile
+===================================================================
+--- git.orig/cpu/arm920t/s3c24x0/Makefile      2007-01-04 12:21:15.000000000 +0100
++++ git/cpu/arm920t/s3c24x0/Makefile   2007-01-04 12:21:18.000000000 +0100
+@@ -26,7 +26,7 @@
+ LIB   = $(obj)lib$(SOC).a
+ COBJS = i2c.o interrupts.o serial.o speed.o \
+-        usb_ohci.o
++        usb_ohci.o mmc.o nand_read.o nand.o
+ SRCS  := $(SOBJS:.o=.S) $(COBJS:.o=.c)
+ OBJS  := $(addprefix $(obj),$(SOBJS) $(COBJS))
+Index: git/cpu/arm920t/s3c24x0/mmc.c
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/cpu/arm920t/s3c24x0/mmc.c      2007-01-04 12:21:18.000000000 +0100
+@@ -0,0 +1,568 @@
++/*
++ * u-boot S3C2410 MMC/SD card driver
++ * (C) Copyright 2006 by Harald Welte <laforge@gnumonks.org>
++ *
++ * based on u-boot pxa MMC driver and linux/drivers/mmc/s3c2410mci.c
++ * (C) 2005-2005 Thomas Kleffel
++ *
++ * 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 <config.h>
++#include <common.h>
++#include <mmc.h>
++#include <asm/errno.h>
++#include <asm/io.h>
++#include <s3c2410.h>
++#include <part.h>
++
++#ifdef CONFIG_MMC
++
++#define CONFIG_MMC_WIDE
++
++//#define MMC_DEBUG
++
++#ifdef MMC_DEBUG
++#ifdef debug
++#undef debug
++#endif
++#define debug printf
++#endif
++
++static S3C2410_SDI *sdi;
++
++extern int
++fat_register_device(block_dev_desc_t *dev_desc, int part_no);
++
++static block_dev_desc_t mmc_dev;
++
++block_dev_desc_t * mmc_get_dev(int dev)
++{
++      return ((block_dev_desc_t *)&mmc_dev);
++}
++
++/*
++ * FIXME needs to read cid and csd info to determine block size
++ * and other parameters
++ */
++static uchar mmc_buf[MMC_BLOCK_SIZE];
++static mmc_csd_t mmc_csd;
++static int mmc_ready = 0;
++static int wide = 0;
++
++
++#define CMD_F_RESP    0x01
++#define CMD_F_RESP_LONG       0x02
++
++static u_int32_t *
++/****************************************************/
++mmc_cmd(ushort cmd, ulong arg, ushort flags)
++/****************************************************/
++{
++      static u_int32_t resp[5];
++      ulong status;
++      int i;
++
++      u_int32_t ccon, csta;
++      u_int32_t csta_rdy_bit = S3C2410_SDICMDSTAT_CMDSENT;
++
++      memset(resp, 0, sizeof(resp));
++
++      debug("mmc_cmd CMD%d arg=0x%08x flags=%x\n", cmd, arg, flags);
++
++      sdi->SDICSTA = 0xffffffff;
++      sdi->SDIDSTA = 0xffffffff;
++      sdi->SDIFSTA = 0xffffffff;
++
++      sdi->SDICARG = arg;
++
++      ccon = cmd & S3C2410_SDICMDCON_INDEX;
++      ccon |= S3C2410_SDICMDCON_SENDERHOST|S3C2410_SDICMDCON_CMDSTART;
++      
++      if (flags & CMD_F_RESP) {
++              ccon |= S3C2410_SDICMDCON_WAITRSP;
++              csta_rdy_bit = S3C2410_SDICMDSTAT_RSPFIN; /* 1 << 9 */
++      }
++
++      if (flags & CMD_F_RESP_LONG)
++              ccon |= S3C2410_SDICMDCON_LONGRSP;
++
++      sdi->SDICCON = ccon;
++
++      while (1) {
++              csta = sdi->SDICSTA;
++              if (csta & csta_rdy_bit)
++                      break;
++              if (csta & S3C2410_SDICMDSTAT_CMDTIMEOUT) {
++                      printf("===============> MMC CMD Timeout\n");
++                      sdi->SDICSTA |= S3C2410_SDICMDSTAT_CMDTIMEOUT;
++                      break;
++              }
++      }
++
++      debug("final MMC CMD status 0x%x\n", csta);
++
++      sdi->SDICSTA |= csta_rdy_bit;
++
++      if (flags & CMD_F_RESP) {
++              resp[0] = sdi->SDIRSP0;
++              resp[1] = sdi->SDIRSP1;
++              resp[2] = sdi->SDIRSP2;
++              resp[3] = sdi->SDIRSP3;
++      } 
++
++#if 0
++      for (i=0; i<4; i ++) {
++              debug("MMC resp[%d] = 0x%08x\n", i, resp[i]);
++      }
++#endif
++
++      return resp;
++}
++
++#define FIFO_FILL(host) ((host->SDIFSTA & S3C2410_SDIFSTA_COUNTMASK) >> 2)
++
++static int
++/****************************************************/
++mmc_block_read(uchar *dst, ulong src, ulong len)
++/****************************************************/
++{
++      u_int32_t dcon, fifo;
++      u_int32_t *dst_u32 = (u_int32_t *)dst;
++      u_int32_t *resp;
++
++      if (len == 0) {
++              return 0;
++      }
++
++      debug("mmc_block_rd dst %lx src %lx len %d\n", (ulong)dst, src, len);
++
++      /* set block len */
++      resp = mmc_cmd(MMC_CMD_SET_BLOCKLEN, len, CMD_F_RESP);
++      sdi->SDIBSIZE = len;
++
++      //sdi->SDIPRE = 0xff;
++
++      /* setup data */
++      dcon = (len >> 9) & S3C2410_SDIDCON_BLKNUM_MASK;
++      dcon |= S3C2410_SDIDCON_BLOCKMODE;
++      dcon |= S3C2410_SDIDCON_RXAFTERCMD|S3C2410_SDIDCON_XFER_RXSTART;
++      if (wide)
++              dcon |= S3C2410_SDIDCON_WIDEBUS;
++      sdi->SDIDCON = dcon;
++
++      /* send read command */
++      resp = mmc_cmd(MMC_CMD_READ_BLOCK, src, CMD_F_RESP);
++
++      while (len > 0) {
++              u_int32_t sdidsta = sdi->SDIDSTA;
++              fifo = FIFO_FILL(sdi);
++              if (sdidsta & (S3C2410_SDIDSTA_FIFOFAIL|
++                              S3C2410_SDIDSTA_CRCFAIL|
++                              S3C2410_SDIDSTA_RXCRCFAIL|
++                              S3C2410_SDIDSTA_DATATIMEOUT)) {
++                      printf("mmc_block_read: err SDIDSTA=0x%08x\n", sdidsta);
++                      return -EIO;
++              }
++
++              while (fifo--) {
++                      //debug("dst_u32 = 0x%08x\n", dst_u32);
++                      *(dst_u32++) = sdi->SDIDAT;
++                      if (len >= 4)
++                              len -= 4;
++                      else {
++                              len = 0;
++                              break;
++                      }
++              }
++      }
++
++#if 1
++      debug("waiting for SDIDSTA  (currently 0x%08x\n", sdi->SDIDSTA);
++      while (!(sdi->SDIDSTA & (1 << 4))) {}
++      debug("done waiting for SDIDSTA (currently 0x%08x\n", sdi->SDIDSTA);
++#endif
++
++      sdi->SDIDCON = 0;
++
++#if 0
++      if (!(sdi->SDIDSTA & S3C2410_SDIDSTA_XFERFINISH))
++              printf("mmc_block_read; transfer not finished!\n");
++#endif
++
++      return 0;
++}
++
++static int
++/****************************************************/
++mmc_block_write(ulong dst, uchar *src, int len)
++/****************************************************/
++{
++#if 0
++      uchar *resp;
++      ushort argh, argl;
++      ulong status;
++
++      if (len == 0) {
++              return 0;
++      }
++
++      debug("mmc_block_wr dst %lx src %lx len %d\n", dst, (ulong)src, len);
++
++      argh = len >> 16;
++      argl = len & 0xffff;
++
++      /* set block len */
++      resp = mmc_cmd(MMC_CMD_SET_BLOCKLEN, argh, argl, CMD_F_RESP);
++
++      /* send write command */
++      argh = dst >> 16;
++      argl = dst & 0xffff;
++      MMC_STRPCL = MMC_STRPCL_STOP_CLK;
++      MMC_NOB = 1;
++      MMC_BLKLEN = len;
++      resp = mmc_cmd(MMC_CMD_WRITE_BLOCK, dst, CMD_F_RESP,
++                      MMC_CMDAT_R1|MMC_CMDAT_WRITE|MMC_CMDAT_BLOCK|MMC_CMDAT_DATA_EN);
++
++      MMC_I_MASK = ~MMC_I_MASK_TXFIFO_WR_REQ;
++      while (len) {
++              if (MMC_I_REG & MMC_I_REG_TXFIFO_WR_REQ) {
++                      int i, bytes = min(32,len);
++
++                      for (i=0; i<bytes; i++) {
++                              MMC_TXFIFO = *src++;
++                      }
++                      if (bytes < 32) {
++                              MMC_PRTBUF = MMC_PRTBUF_BUF_PART_FULL;
++                      }
++                      len -= bytes;
++              }
++              status = MMC_STAT;
++              if (status & MMC_STAT_ERRORS) {
++                      printf("MMC_STAT error %lx\n", status);
++                      return -1;
++              }
++      }
++      MMC_I_MASK = ~MMC_I_MASK_DATA_TRAN_DONE;
++      while (!(MMC_I_REG & MMC_I_REG_DATA_TRAN_DONE));
++      MMC_I_MASK = ~MMC_I_MASK_PRG_DONE;
++      while (!(MMC_I_REG & MMC_I_REG_PRG_DONE));
++      status = MMC_STAT;
++      if (status & MMC_STAT_ERRORS) {
++              printf("MMC_STAT error %lx\n", status);
++              return -1;
++      }
++#endif
++      return 0;
++}
++
++
++int
++/****************************************************/
++mmc_read(ulong src, uchar *dst, int size)
++/****************************************************/
++{
++      ulong end, part_start, part_end, part_len, aligned_start, aligned_end;
++      ulong mmc_block_size, mmc_block_address;
++
++      if (size == 0) {
++              return 0;
++      }
++
++      if (!mmc_ready) {
++              printf("Please initialize the MMC first\n");
++              return -1;
++      }
++
++      mmc_block_size = MMC_BLOCK_SIZE;
++      mmc_block_address = ~(mmc_block_size - 1);
++
++      src -= CFG_MMC_BASE;
++      end = src + size;
++      part_start = ~mmc_block_address & src;
++      part_end = ~mmc_block_address & end;
++      aligned_start = mmc_block_address & src;
++      aligned_end = mmc_block_address & end;
++
++      /* all block aligned accesses */
++      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++      src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++      if (part_start) {
++              part_len = mmc_block_size - part_start;
++              debug("ps src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++              src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++              if ((mmc_block_read(mmc_buf, aligned_start, mmc_block_size)) < 0) {
++                      return -1;
++              }
++              memcpy(dst, mmc_buf+part_start, part_len);
++              dst += part_len;
++              src += part_len;
++      }
++      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++      src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++      for (; src < aligned_end; src += mmc_block_size, dst += mmc_block_size) {
++              debug("al src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++              src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++              if ((mmc_block_read((uchar *)(dst), src, mmc_block_size)) < 0) {
++                      return -1;
++              }
++      }
++      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++      src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++      if (part_end && src < end) {
++              debug("pe src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++              src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++              if ((mmc_block_read(mmc_buf, aligned_end, mmc_block_size)) < 0) {
++                      return -1;
++              }
++              memcpy(dst, mmc_buf, part_end);
++      }
++      return 0;
++}
++
++int
++/****************************************************/
++mmc_write(uchar *src, ulong dst, int size)
++/****************************************************/
++{
++      ulong end, part_start, part_end, part_len, aligned_start, aligned_end;
++      ulong mmc_block_size, mmc_block_address;
++
++      if (size == 0) {
++              return 0;
++      }
++
++      if (!mmc_ready) {
++              printf("Please initialize the MMC first\n");
++              return -1;
++      }
++
++      mmc_block_size = MMC_BLOCK_SIZE;
++      mmc_block_address = ~(mmc_block_size - 1);
++
++      dst -= CFG_MMC_BASE;
++      end = dst + size;
++      part_start = ~mmc_block_address & dst;
++      part_end = ~mmc_block_address & end;
++      aligned_start = mmc_block_address & dst;
++      aligned_end = mmc_block_address & end;
++
++      /* all block aligned accesses */
++      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++      src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++      if (part_start) {
++              part_len = mmc_block_size - part_start;
++              debug("ps src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++              (ulong)src, dst, end, part_start, part_end, aligned_start, aligned_end);
++              if ((mmc_block_read(mmc_buf, aligned_start, mmc_block_size)) < 0) {
++                      return -1;
++              }
++              memcpy(mmc_buf+part_start, src, part_len);
++              if ((mmc_block_write(aligned_start, mmc_buf, mmc_block_size)) < 0) {
++                      return -1;
++              }
++              dst += part_len;
++              src += part_len;
++      }
++      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++      src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++      for (; dst < aligned_end; src += mmc_block_size, dst += mmc_block_size) {
++              debug("al src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++              src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++              if ((mmc_block_write(dst, (uchar *)src, mmc_block_size)) < 0) {
++                      return -1;
++              }
++      }
++      debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++      src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++      if (part_end && dst < end) {
++              debug("pe src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n",
++              src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end);
++              if ((mmc_block_read(mmc_buf, aligned_end, mmc_block_size)) < 0) {
++                      return -1;
++              }
++              memcpy(mmc_buf, src, part_end);
++              if ((mmc_block_write(aligned_end, mmc_buf, mmc_block_size)) < 0) {
++                      return -1;
++              }
++      }
++      return 0;
++}
++
++ulong
++/****************************************************/
++mmc_bread(int dev_num, ulong blknr, ulong blkcnt, ulong *dst)
++/****************************************************/
++{
++      int mmc_block_size = MMC_BLOCK_SIZE;
++      ulong src = blknr * mmc_block_size + CFG_MMC_BASE;
++
++      mmc_read(src, (uchar *)dst, blkcnt*mmc_block_size);
++      return blkcnt;
++}
++
++static u_int16_t rca = MMC_DEFAULT_RCA;
++
++static u_int32_t mmc_size(const struct mmc_csd *csd)
++{
++      u_int32_t block_len, mult, blocknr;
++
++      block_len = csd->read_bl_len << 12;
++      mult = csd->c_size_mult1 << 8;
++      blocknr = (csd->c_size+1) * mult;
++
++      return blocknr * block_len;
++}
++
++int
++/****************************************************/
++mmc_init(int verbose)
++/****************************************************/
++{
++      int retries, rc = -ENODEV;
++      int is_sd = 0;
++      u_int32_t *resp;
++      S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
++      
++      sdi = S3C2410_GetBase_SDI();
++
++      debug("mmc_init(PCLK=%u)\n", get_PCLK());
++
++      clk_power->CLKCON |= (1 << 9);
++
++      /* S3C2410 has some bug that prevents reliable operation at higher speed */
++      //sdi->SDIPRE = 0x3e;  /* SDCLK = PCLK/2 / (SDIPRE+1) = 396kHz */
++      sdi->SDIPRE = 0x02;  /* SDCLK = PCLK/2 / (SDIPRE+1) = 396kHz */
++      sdi->SDIBSIZE = 512;
++      sdi->SDIDTIMER = 0xffff;
++      sdi->SDIIMSK = 0x0;
++      sdi->SDICON = S3C2410_SDICON_FIFORESET|S3C2440_SDICON_MMCCLOCK;
++      udelay(125000); /* FIXME: 74 SDCLK cycles */
++
++      mmc_csd.c_size = 0;
++
++      /* reset */
++      retries = 10;
++      resp = mmc_cmd(MMC_CMD_RESET, 0, 0);
++
++      printf("trying to detect SD Card...\n");
++      while (retries--) {
++              int i;
++              udelay(100000);
++              resp = mmc_cmd(55, 0x00000000, CMD_F_RESP);
++              resp = mmc_cmd(41, 0x00300000, CMD_F_RESP);
++
++              if (resp[0] & (1 << 31)) {
++                      is_sd = 1;
++                      break;
++              }
++      }
++
++      if (retries == 0 && !is_sd) {
++              retries = 10;
++              printf("failed to detect SD Card, trying MMC\n");
++              resp = mmc_cmd(MMC_CMD_SEND_OP_COND, 0x00ffc000, CMD_F_RESP);
++              while (retries-- && resp && !(resp[4] & 0x80)) {
++                      debug("resp %x %x\n", resp[0], resp[1]);
++                      udelay(50);
++                      resp = mmc_cmd(1, 0x00ffff00, CMD_F_RESP);
++              }
++      }
++
++      /* try to get card id */
++      resp = mmc_cmd(MMC_CMD_ALL_SEND_CID, 0, CMD_F_RESP|CMD_F_RESP_LONG);
++      if (resp) {
++              /* TODO configure mmc driver depending on card attributes */
++              mmc_cid_t *cid = (mmc_cid_t *)resp;
++              if (verbose) {
++                      printf("MMC found. Card desciption is:\n");
++                      printf("Manufacturer ID = %02x%02x%02x\n",
++                                                      cid->id[0], cid->id[1], cid->id[2]);
++                      printf("HW/FW Revision = %x %x\n",cid->hwrev, cid->fwrev);
++                      cid->hwrev = cid->fwrev = 0;    /* null terminate string */
++                      printf("Product Name = %s\n",cid->name);
++                      printf("Serial Number = %02x%02x%02x\n",
++                                                      cid->sn[0], cid->sn[1], cid->sn[2]);
++                      printf("Month = %d\n",cid->month);
++                      printf("Year = %d\n",1997 + cid->year);
++              }
++              /* fill in device description */
++              mmc_dev.if_type = IF_TYPE_MMC;
++              mmc_dev.part_type = PART_TYPE_DOS;
++              mmc_dev.dev = 0;
++              mmc_dev.lun = 0;
++              mmc_dev.type = 0;
++              /* FIXME fill in the correct size (is set to 32MByte) */
++              mmc_dev.blksz = 512;
++              mmc_dev.lba = 0x10000;
++              sprintf(mmc_dev.vendor,"Man %02x%02x%02x Snr %02x%02x%02x",
++                              cid->id[0], cid->id[1], cid->id[2],
++                              cid->sn[0], cid->sn[1], cid->sn[2]);
++              sprintf(mmc_dev.product,"%s",cid->name);
++              sprintf(mmc_dev.revision,"%x %x",cid->hwrev, cid->fwrev);
++              mmc_dev.removable = 0;
++              mmc_dev.block_read = mmc_bread;
++
++              /* MMC exists, get CSD too */
++              resp = mmc_cmd(MMC_CMD_SET_RCA, MMC_DEFAULT_RCA, CMD_F_RESP);
++              if (is_sd)
++                      rca = resp[0] >> 16;
++                      
++              resp = mmc_cmd(MMC_CMD_SEND_CSD, rca<<16, CMD_F_RESP|CMD_F_RESP_LONG);
++              if (resp) {
++                      mmc_csd_t *csd = (mmc_csd_t *)resp;
++                      memcpy(&mmc_csd, csd, sizeof(csd));
++                      rc = 0;
++                      mmc_ready = 1;
++                      /* FIXME add verbose printout for csd */
++                      printf("READ_BL_LEN=%u, C_SIZE_MULT=%u, C_SIZE=%u\n", 
++                              csd->read_bl_len, csd->c_size_mult1, csd->c_size);
++                      printf("size = %u\n", mmc_size(csd));
++              }
++      }
++
++      resp = mmc_cmd(MMC_CMD_SELECT_CARD, rca<<16, CMD_F_RESP);
++
++#ifdef CONFIG_MMC_WIDE
++      if (is_sd) {
++              resp = mmc_cmd(55, rca<<16, CMD_F_RESP);
++              resp = mmc_cmd(6, 0x02, CMD_F_RESP);
++              wide = 1;
++      }
++#endif
++
++      fat_register_device(&mmc_dev,1); /* partitions start counting with 1 */
++
++      return rc;
++}
++
++int
++mmc_ident(block_dev_desc_t *dev)
++{
++      return 0;
++}
++
++int
++mmc2info(ulong addr)
++{
++      /* FIXME hard codes to 32 MB device */
++      if (addr >= CFG_MMC_BASE && addr < CFG_MMC_BASE + 0x02000000) {
++              return 1;
++      }
++      return 0;
++}
++
++#endif        /* CONFIG_MMC */
+Index: git/cpu/arm920t/s3c24x0/nand.c
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/cpu/arm920t/s3c24x0/nand.c     2007-01-04 12:21:45.000000000 +0100
+@@ -0,0 +1,213 @@
++/*
++ * (C) Copyright 2006 Harald Welte <hwelte@hmw-consulting.de>
++ *
++ * 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 0
++#define DEBUGN        printf
++#else
++#define DEBUGN(x, args ...) {}
++#endif
++
++#if (CONFIG_COMMANDS & CFG_CMD_NAND)
++#if !defined(CFG_NAND_LEGACY)
++
++#include <nand.h>
++#include <s3c2410.h>
++
++#define __REGb(x)     (*(volatile unsigned char *)(x))
++#define __REGi(x)     (*(volatile unsigned int *)(x))
++
++#define       NF_BASE         0x4e000000
++#define       NFCONF          __REGi(NF_BASE + 0x0)
++#define       NFCMD           __REGb(NF_BASE + 0x4)
++#define       NFADDR          __REGb(NF_BASE + 0x8)
++#define       NFDATA          __REGb(NF_BASE + 0xc)
++#define       NFSTAT          __REGb(NF_BASE + 0x10)
++
++#define S3C2410_NFCONF_EN          (1<<15)
++#define S3C2410_NFCONF_512BYTE     (1<<14)
++#define S3C2410_NFCONF_4STEP       (1<<13)
++#define S3C2410_NFCONF_INITECC     (1<<12)
++#define S3C2410_NFCONF_nFCE        (1<<11)
++#define S3C2410_NFCONF_TACLS(x)    ((x)<<8)
++#define S3C2410_NFCONF_TWRPH0(x)   ((x)<<4)
++#define S3C2410_NFCONF_TWRPH1(x)   ((x)<<0)
++
++static u16 s3c2410_read_word(struct mtd_info *mtd)
++{
++      unsigned char byte = 0;
++
++      printf("s3c2410_read_word: WARNING, this function is not implemented yet\n");
++      return byte;    
++}
++
++static void s3c2410_write_word(struct mtd_info *mtd, u16 word)
++{
++      printf("s3c2410_write_word: WARNING, this function is not implemented yet\n");
++}
++
++static void s3c2410_hwcontrol(struct mtd_info *mtd, int cmd)
++{
++      struct nand_chip *chip = mtd->priv;
++
++      DEBUGN("hwcontrol(): 0x%02x: ", cmd);
++
++      switch (cmd) {
++      case NAND_CTL_SETNCE:
++              NFCONF &= ~S3C2410_NFCONF_nFCE;
++              DEBUGN("NFCONF=0x%08x\n", NFCONF);
++              break;
++      case NAND_CTL_CLRNCE:
++              NFCONF |= S3C2410_NFCONF_nFCE;
++              DEBUGN("NFCONF=0x%08x\n", NFCONF);
++              break;
++      case NAND_CTL_SETALE:
++              chip->IO_ADDR_W = NF_BASE + 0x8;
++              DEBUGN("SETALE\n");
++              break;
++      case NAND_CTL_SETCLE:
++              chip->IO_ADDR_W = NF_BASE + 0x4;
++              DEBUGN("SETCLE\n");
++              break;
++      default:
++              chip->IO_ADDR_W = NF_BASE + 0xc;
++              break;
++      }
++      return;
++}
++
++static int s3c2410_dev_ready(struct mtd_info *mtd)
++{
++      DEBUGN("dev_ready\n");
++      return (NFSTAT & 0x01);
++}
++
++static void s3c2410_cmdfunc(struct mtd_info *mtd, unsigned cmd,
++                          int column, int page_addr)
++{
++      DEBUGN("cmdfunc(): 0x%02x, col=%d, page=%d\n", cmd, column, page_addr);
++
++      switch (cmd) {
++      case NAND_CMD_READ0:
++      case NAND_CMD_READ1:
++      case NAND_CMD_READOOB:
++              NFCMD = cmd;
++              NFADDR = column & 0xff;
++              NFADDR = page_addr & 0xff;
++              NFADDR = (page_addr >> 8) & 0xff;
++              NFADDR = (page_addr >> 16) & 0xff;
++              break;
++      case NAND_CMD_READID:
++              NFCMD = cmd;
++              NFADDR = 0;
++              break;
++      case NAND_CMD_PAGEPROG:
++              NFCMD = cmd;
++              printf("PAGEPROG not implemented\n");
++              break;
++      case NAND_CMD_ERASE1:
++              NFCMD = cmd;
++              NFADDR = page_addr & 0xff;
++              NFADDR = (page_addr >> 8) & 0xff;
++              NFADDR = (page_addr >> 16) & 0xff;
++              break;
++      case NAND_CMD_ERASE2:
++              NFCMD = cmd;
++              break;
++      case NAND_CMD_SEQIN:
++              printf("SEQIN not implemented\n");
++              break;
++      case NAND_CMD_STATUS:
++              NFCMD = cmd;
++              break;
++      case NAND_CMD_RESET:
++              NFCMD = cmd;
++              break;
++      default:
++              break;
++      }
++
++      while (!s3c2410_dev_ready(mtd));
++}
++
++int board_nand_init(struct nand_chip *nand)
++{
++      u_int32_t cfg;
++      u_int8_t tacls, twrph0, twrph1;
++      S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER();
++
++      DEBUGN("board_nand_init()\n");
++
++      clk_power->CLKCON |= (1 << 4);
++
++      /* initialize hardware */
++      twrph0 = 3; twrph1 = 0; tacls = 0;
++
++      /* default timings: maximum */
++      //twrph0 = 8; twrph1 = 8; tacls = 8;
++
++      cfg = S3C2410_NFCONF_EN;
++      cfg |= S3C2410_NFCONF_TACLS(tacls - 1);
++      cfg |= S3C2410_NFCONF_TWRPH0(twrph0 - 1);
++      cfg |= S3C2410_NFCONF_TWRPH1(twrph1 - 1);
++
++      //NFCONF = cfg;
++      NFCONF = 0xf842;
++
++      /* initialize nand_chip data structure */
++      nand->IO_ADDR_R = nand->IO_ADDR_W = 0x4e00000c;
++
++      /* read_buf and write_buf are default */
++      /* read_byte and write_byte are default */
++
++      /* need to override word read/write since default routines try 16bit wide
++       * register access of an (in our case) 8bit register */
++      nand->read_word = s3c2410_read_word;
++      nand->write_word = s3c2410_write_word;
++
++      /* hwcontrol always must be implemented */
++      nand->hwcontrol = s3c2410_hwcontrol;
++
++      nand->dev_ready = s3c2410_dev_ready;
++
++      nand->eccmode = NAND_ECC_SOFT;
++      nand->options = 0;
++      //nand->waitfunc = dfc_wait;
++
++      //nand->cmdfunc = s3c2410_cmdfunc;
++      //nand->autooob = &delta_oob;
++      //nand->badblock_pattern = &delta_bbt_descr;
++      
++#if 0
++      /* reset */
++      nand->hwcontrol(NULL, NAND_CTL_SETNCE);
++      nand->cmdfunc(NULL, NAND_CMD_RESET, -1, -1);
++      while (nand->dev_ready(NULL) == 0) {}
++      nand->hwcontrol(NULL, NAND_CTL_CLRNCE);
++#endif
++
++      DEBUGN("end of nand_init\n");
++      return 0;
++}
++
++#else
++ #error "U-Boot legacy NAND support not available for S3C2410"
++#endif
++#endif
+Index: git/cpu/arm920t/s3c24x0/nand_read.c
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/cpu/arm920t/s3c24x0/nand_read.c        2007-01-04 12:21:18.000000000 +0100
+@@ -0,0 +1,75 @@
++/* 
++ * nand_read.c: Simple NAND read functions for booting from NAND
++ *
++ * Taken from GPLv2 licensed vivi bootloader,
++ * Copyright (C) 2002 MIZI Research, Inc.
++ *
++ * Author: Hwang, Chideok <hwang@mizi.com>
++ * Date  : $Date: 2004/02/04 10:37:37 $
++ *
++ * u-boot integration (C) 2006 by Harald Welte <hwelte@hmw-consulting.de>
++ */
++
++#include <common.h>
++
++#ifdef CONFIG_S3C2410_NAND_BOOT
++
++#define __REGb(x)     (*(volatile unsigned char *)(x))
++#define __REGi(x)     (*(volatile unsigned int *)(x))
++#define NF_BASE               0x4e000000
++#define NFCONF                __REGi(NF_BASE + 0x0)
++#define NFCMD         __REGb(NF_BASE + 0x4)
++#define NFADDR                __REGb(NF_BASE + 0x8)
++#define NFDATA                __REGb(NF_BASE + 0xc)
++#define NFSTAT                __REGb(NF_BASE + 0x10)
++
++#define BUSY 1
++inline void wait_idle(void) {
++    int i;
++
++    while(!(NFSTAT & BUSY))
++      for(i=0; i<10; i++);
++}
++
++#define NAND_SECTOR_SIZE      512
++#define NAND_BLOCK_MASK               (NAND_SECTOR_SIZE - 1)
++
++/* low level nand read function */
++int
++nand_read_ll(unsigned char *buf, unsigned long start_addr, int size)
++{
++    int i, j;
++
++    if ((start_addr & NAND_BLOCK_MASK) || (size & NAND_BLOCK_MASK)) {
++        return -1;    /* invalid alignment */
++    }
++
++    /* chip Enable */
++    NFCONF &= ~0x800;
++    for(i=0; i<10; i++);
++
++    for(i=start_addr; i < (start_addr + size);) {
++      /* READ0 */
++      NFCMD = 0;
++
++      /* Write Address */
++      NFADDR = i & 0xff;
++      NFADDR = (i >> 9) & 0xff;
++      NFADDR = (i >> 17) & 0xff;
++      NFADDR = (i >> 25) & 0xff;
++
++      wait_idle();
++
++      for(j=0; j < NAND_SECTOR_SIZE; j++, i++) {
++      *buf = (NFDATA & 0xff);
++      buf++;
++      }
++    }
++
++    /* chip Disable */
++    NFCONF |= 0x800;  /* chip disable */
++
++    return 0;
++}
++
++#endif /* CONFIG_S3C2410_NAND_BOOT */
+Index: git/cpu/arm920t/start.S
+===================================================================
+--- git.orig/cpu/arm920t/start.S       2007-01-04 12:21:15.000000000 +0100
++++ git/cpu/arm920t/start.S    2007-01-04 12:21:18.000000000 +0100
+@@ -5,6 +5,10 @@
+  *  Copyright (c) 2002        Alex Züpke <azu@sysgo.de>
+  *  Copyright (c) 2002        Gary Jennejohn <gj@denx.de>
+  *
++ * S3C2410 NAND portions
++ *  Copyright (c) 2001  MIZI Research, Inc.
++ *  Copyright (c) 2006  Harald Welte <hwelte@hmw-consulting.de>
++ *
+  * See file CREDITS for list of people who contributed to this
+  * project.
+  *
+@@ -27,6 +31,7 @@
+ #include <config.h>
+ #include <version.h>
++#include <s3c2410.h>
+ /*
+@@ -158,9 +163,17 @@
+        */
+ #ifndef CONFIG_SKIP_LOWLEVEL_INIT
+       bl      cpu_init_crit
++#else
++      /* QT2410: configure bank 3 correctly to make ethernet work */
++      ldr     r1, =0x48000000
++      ldr     r2, =0x00001f4c
++      str     r2, [r1, #0x10]
++      ldr     r2, =0x2211d122
++      str     r2, [r1]
+ #endif
+ #ifndef CONFIG_SKIP_RELOCATE_UBOOT
++#ifndef CONFIG_S3C2410_NAND_BOOT
+ relocate:                             /* relocate U-Boot to RAM           */
+       adr     r0, _start              /* r0 <- current position of code   */
+       ldr     r1, _TEXT_BASE          /* test if we run from flash or RAM */
+@@ -177,6 +190,93 @@
+       stmia   r1!, {r3-r10}           /* copy to   target address [r1]    */
+       cmp     r0, r2                  /* until source end addreee [r2]    */
+       ble     copy_loop
++#else /* NAND_BOOT */
++relocate:
++copy_myself:
++      /* mov  r10, lr */
++
++      @ reset NAND
++      mov     r1, #S3C2410_NAND_BASE
++      ldr     r2, =0xf842             @ initial value enable tacls=3,rph0=6,rph1=0
++      str     r2, [r1, #oNFCONF]
++      ldr     r2, [r1, #oNFCONF]
++      bic     r2, r2, #0x800          @ enable chip
++      str     r2, [r1, #oNFCONF]
++      mov     r2, #0xff               @ RESET command
++      strb    r2, [r1, #oNFCMD]
++      mov     r3, #0                  @ wait 
++1:    add     r3, r3, #0x1
++      cmp     r3, #0xa
++      blt     1b
++2:    ldr     r2, [r1, #oNFSTAT]      @ wait ready
++      tst     r2, #0x1
++      beq     2b
++      ldr     r2, [r1, #oNFCONF]
++      orr     r2, r2, #0x800          @ disable chip
++      str     r2, [r1, #oNFCONF]
++
++#if 0
++      @ get ready to call C functions (for nand_read())
++      ldr     sp, DW_STACK_START      @ setup stack pointer
++      mov     fp, #0                  @ no previous frame, so fp=0
++#else
++      ldr     r0, _TEXT_BASE          /* upper 128 KiB: relocated uboot   */
++      sub     r0, r0, #CFG_MALLOC_LEN /* malloc area                      */
++      sub     r0, r0, #CFG_GBL_DATA_SIZE /* bdinfo                        */
++#ifdef CONFIG_USE_IRQ
++      sub     r0, r0, #(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ)
++#endif
++      sub     sp, r0, #12             /* leave 3 words for abort-stack    */
++#endif
++
++      @ copy u-boot to RAM
++      ldr     r0, _TEXT_BASE
++      mov     r1, #0x0
++      mov     r2, #0x30000
++      bl      nand_read_ll
++
++      tst     r0, #0x0
++      beq     ok_nand_read
++#ifdef CONFIG_DEBUG_LL
++bad_nand_read: 
++      ldr     r0, STR_FAIL
++      ldr     r1, SerBase
++      bl      PrintWord
++1:    b       1b              @ infinite loop 
++#endif
++      
++ok_nand_read:
++#ifdef CONFIG_DEBUG_LL
++      ldr     r0, STR_OK
++      ldr     r1, SerBase
++      bl      PrintWord
++#endif
++
++      @ verify
++      mov     r0, #0
++      @ldr    r1, =0x33f00000
++      ldr     r1, _TEXT_BASE
++      mov     r2, #0x400      @ 4 bytes * 1024 = 4K-bytes
++go_next:
++      ldr     r3, [r0], #4
++      ldr     r4, [r1], #4
++      teq     r3, r4
++      bne     notmatch
++      subs    r2, r2, #4
++      beq     done_nand_read  
++      bne     go_next
++notmatch:
++#ifdef CONFIG_DEBUG_LL
++      sub     r0, r0, #4
++      ldr     r1, SerBase
++      bl      PrintHexWord
++      ldr     r0, STR_FAIL
++      ldr     r1, SerBase
++      bl      PrintWord
++#endif
++1:    b       1b
++done_nand_read:
++#endif /* NAND_BOOT */
+ #endif        /* CONFIG_SKIP_RELOCATE_UBOOT */
+       /* Set up the stack                                                 */
+Index: git/drivers/Makefile
+===================================================================
+--- git.orig/drivers/Makefile  2007-01-04 12:21:15.000000000 +0100
++++ git/drivers/Makefile       2007-01-04 12:21:18.000000000 +0100
+@@ -51,7 +51,7 @@
+         ks8695eth.o \
+         pxa_pcmcia.o mpc8xx_pcmcia.o tqm8xx_pcmcia.o  \
+         rpx_pcmcia.o \
+-        fsl_i2c.o
++        fsl_i2c.o s3c2410_fb.o
+ SRCS  := $(COBJS:.o=.c)
+ OBJS  := $(addprefix $(obj),$(COBJS))
+Index: git/drivers/cs8900.c
+===================================================================
+--- git.orig/drivers/cs8900.c  2007-01-04 12:21:15.000000000 +0100
++++ git/drivers/cs8900.c       2007-01-04 12:21:18.000000000 +0100
+@@ -120,6 +120,7 @@
+       unsigned char env_enetaddr[6];
+       char *tmp = getenv ("ethaddr");
+       char *end;
++      unsigned short chip_id;
+       for (i=0; i<6; i++) {
+               env_enetaddr[i] = tmp ? simple_strtoul(tmp, &end, 16) : 0;
+@@ -128,7 +129,9 @@
+       }
+       /* verify chip id */
+-      if (get_reg_init_bus (PP_ChipID) != 0x630e)
++      chip_id = get_reg_init_bus (PP_ChipID);
++      printf("\ncs8900a chipid 0x%04x\n", chip_id);
++      if (chip_id != 0x630e)
+               return;
+       eth_reset ();
+       if ((get_reg (PP_SelfST) & (PP_SelfSTAT_EEPROM | PP_SelfSTAT_EEPROM_OK)) ==
+Index: git/drivers/s3c2410_fb.c
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/drivers/s3c2410_fb.c   2007-01-04 12:21:18.000000000 +0100
+@@ -0,0 +1,182 @@
++/*
++ * (C) Copyright 2006 Harald Welte <hwelte@hmw-consulting.de>
++ *
++ * 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_VIDEO_S3C2410)
++
++#include <video_fb.h>
++#include "videomodes.h"
++#include <s3c2410.h>
++/*
++ * Export Graphic Device
++ */
++GraphicDevice smi;
++
++#define VIDEO_MEM_SIZE        0x200000
++
++/*******************************************************************************
++ *
++ * Init video chip with common Linux graphic modes (lilo)
++ */
++void *video_hw_init (void)
++{
++      S3C24X0_LCD * const lcd = S3C24X0_GetBase_LCD();
++      GraphicDevice *pGD = (GraphicDevice *)&smi;
++      int videomode;
++      unsigned long t1, hsynch, vsynch;
++      char *penv;
++      int tmp, i, bits_per_pixel;
++      struct ctfb_res_modes *res_mode;
++      struct ctfb_res_modes var_mode;
++      unsigned char videoout;
++      unsigned int *vm;
++
++      /* Search for video chip */
++      printf("Video: ");
++
++      tmp = 0;
++
++      videomode = CFG_DEFAULT_VIDEO_MODE;
++      /* get video mode via environment */
++      if ((penv = getenv ("videomode")) != NULL) {
++              /* deceide if it is a string */
++              if (penv[0] <= '9') {
++                      videomode = (int) simple_strtoul (penv, NULL, 16);
++                      tmp = 1;
++              }
++      } else {
++              tmp = 1;
++      }
++      if (tmp) {
++              /* parameter are vesa modes */
++              /* search params */
++              for (i = 0; i < VESA_MODES_COUNT; i++) {
++                      if (vesa_modes[i].vesanr == videomode)
++                              break;
++              }
++              if (i == VESA_MODES_COUNT) {
++                      printf ("no VESA Mode found, switching to mode 0x%x ", CFG_DEFAULT_VIDEO_MODE);
++                      i = 0;
++              }
++              res_mode =
++                      (struct ctfb_res_modes *) &res_mode_init[vesa_modes[i].
++                                                               resindex];
++              bits_per_pixel = vesa_modes[i].bits_per_pixel;
++      } else {
++
++              res_mode = (struct ctfb_res_modes *) &var_mode;
++              bits_per_pixel = video_get_params (res_mode, penv);
++      }
++
++      /* calculate hsynch and vsynch freq (info only) */
++      t1 = (res_mode->left_margin + res_mode->xres +
++            res_mode->right_margin + res_mode->hsync_len) / 8;
++      t1 *= 8;
++      t1 *= res_mode->pixclock;
++      t1 /= 1000;
++      hsynch = 1000000000L / t1;
++      t1 *=
++              (res_mode->upper_margin + res_mode->yres +
++               res_mode->lower_margin + res_mode->vsync_len);
++      t1 /= 1000;
++      vsynch = 1000000000L / t1;
++
++      /* fill in Graphic device struct */
++      sprintf (pGD->modeIdent, "%dx%dx%d %ldkHz %ldHz", res_mode->xres,
++               res_mode->yres, bits_per_pixel, (hsynch / 1000),
++               (vsynch / 1000));
++      printf ("%s\n", pGD->modeIdent);
++      pGD->winSizeX = res_mode->xres;
++      pGD->winSizeY = res_mode->yres;
++      pGD->plnSizeX = res_mode->xres;
++      pGD->plnSizeY = res_mode->yres;
++      switch (bits_per_pixel) {
++      case 8:
++              pGD->gdfBytesPP = 1;
++              pGD->gdfIndex = GDF__8BIT_INDEX;
++              break;
++      case 15:
++              pGD->gdfBytesPP = 2;
++              pGD->gdfIndex = GDF_15BIT_555RGB;
++              break;
++      case 16:
++              pGD->gdfBytesPP = 2;
++              pGD->gdfIndex = GDF_16BIT_565RGB;
++              break;
++      case 24:
++              pGD->gdfBytesPP = 3;
++              pGD->gdfIndex = GDF_24BIT_888RGB;
++              break;
++      }
++
++#if 0
++      pGD->isaBase = CFG_ISA_IO;
++      pGD->pciBase = pci_mem_base;
++      pGD->dprBase = (pci_mem_base + 0x400000 + 0x8000);
++      pGD->vprBase = (pci_mem_base + 0x400000 + 0xc000);
++      pGD->cprBase = (pci_mem_base + 0x400000 + 0xe000);
++#endif
++      pGD->frameAdrs = LCD_VIDEO_ADDR;
++      pGD->memSize = VIDEO_MEM_SIZE;
++
++      lcd->LCDSADDR1 = LCD_VIDEO_ADDR >> 1;
++      lcd->LCDSADDR2 = (LCD_VIDEO_ADDR + 0x4b000) >> 1;
++      lcd->LCDSADDR3 = 0x000000f0;
++
++      lcd->LCDCON1 = 0x00000479;
++      lcd->LCDCON2 = 0x014fc183;
++      lcd->LCDCON3 = 0x0060ef07;
++      lcd->LCDCON4 = 0x00000003;
++      lcd->LCDCON5 = 0x00000b09;
++      lcd->LPCSEL  = 0x00000cf0;
++
++      pGD->winSizeX = pGD->plnSizeX = 240;
++      pGD->winSizeY = pGD->plnSizeY = 320;
++      pGD->gdfBytesPP = 2;
++      pGD->gdfIndex = GDF_16BIT_565RGB;
++
++      /* Enable  Display  */
++      videoout = 2;       /* Default output is CRT */
++      if ((penv = getenv ("videoout")) != NULL) {
++              /* deceide if it is a string */
++              videoout = (int) simple_strtoul (penv, NULL, 16);
++      }
++
++      printf("clearing video memory\n");
++      /* Clear video memory */
++      i = pGD->memSize/4;
++      vm = (unsigned int *)pGD->frameAdrs;
++      while(i--)
++              *vm++ = 0;
++
++      printf("returning from video_hw_init\n");
++      return ((void*)&smi);
++}
++
++void
++video_set_lut (unsigned int index,    /* color number */
++             unsigned char r, /* red */
++             unsigned char g, /* green */
++             unsigned char b  /* blue */
++    )
++{
++}
++
++#endif /* CONFIG_VIDEO_S3C2410 */
+Index: git/drivers/usbdcore_s3c2410.c
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/drivers/usbdcore_s3c2410.c     2007-01-04 12:21:18.000000000 +0100
+@@ -0,0 +1,1609 @@
++/*
++ * (C) Copyright 2003
++ * Gerry Hamel, geh@ti.com, Texas Instruments
++ *
++ * Based on
++ * linux/drivers/usb/device/bi/omap.c
++ * TI OMAP1510 USB bus interface driver
++ *
++ * Author: MontaVista Software, Inc.
++ *       source@mvista.com
++ *       (C) Copyright 2002
++ *
++ * 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_S3C2410) && defined(CONFIG_USB_DEVICE)
++
++#include <asm/io.h>
++
++#include "usbdcore.h"
++#include "usbdcore_s3c2410.h"
++#include "usbdcore_ep0.h"
++
++
++#define UDC_INIT_MDELAY                    80 /* Device settle delay */
++#define UDC_MAX_ENDPOINTS          31 /* Number of endpoints on this UDC */
++
++/* Some kind of debugging output... */
++#if 1
++#define UDCDBG(str)
++#define UDCDBGA(fmt,args...)
++#else  /* The bugs still exists... */
++#define UDCDBG(str) serial_printf("[%s] %s:%d: " str "\n", __FILE__,__FUNCTION__,__LINE__)
++#define UDCDBGA(fmt,args...) serial_printf("[%s] %s:%d: " fmt "\n", __FILE__,__FUNCTION__,__LINE__, ##args)
++#endif
++
++#if 1
++#define UDCREG(name)
++#define UDCREGL(name)
++#else  /* The bugs still exists... */
++#define UDCREG(name)   serial_printf("%s():%d: %s[%08x]=%.4x\n",__FUNCTION__,__LINE__, (#name), name, inw(name))      /* For 16-bit regs */
++#define UDCREGL(name)  serial_printf("%s():%d: %s[%08x]=%.8x\n",__FUNCTION__,__LINE__, (#name), name, inl(name))      /* For 32-bit regs */
++#endif
++
++
++static struct urb *ep0_urb = NULL;
++
++static struct usb_device_instance *udc_device;        /* Used in interrupt handler */
++static u16 udc_devstat = 0;   /* UDC status (DEVSTAT) */
++static u32 udc_interrupts = 0;
++
++static void udc_stall_ep (unsigned int ep_addr);
++
++
++static struct usb_endpoint_instance *s3c2410_find_ep (int ep)
++{
++      int i;
++
++      for (i = 0; i < udc_device->bus->max_endpoints; i++) {
++              if (udc_device->bus->endpoint_array[i].endpoint_address == ep)
++                      return &udc_device->bus->endpoint_array[i];
++      }
++      return NULL;
++}
++
++/* ************************************************************************** */
++/* IO
++ */
++
++/*
++ * omap1510_prepare_endpoint_for_rx
++ *
++ * This function implements TRM Figure 14-11.
++ *
++ * The endpoint to prepare for transfer is specified as a physical endpoint
++ * number.  For OUT (rx) endpoints 1 through 15, the corresponding endpoint
++ * configuration register is checked to see if the endpoint is ISO or not.
++ * If the OUT endpoint is valid and is non-ISO then its FIFO is enabled.
++ * No action is taken for endpoint 0 or for IN (tx) endpoints 16 through 30.
++ */
++static void omap1510_prepare_endpoint_for_rx (int ep_addr)
++{
++      int ep_num = ep_addr & USB_ENDPOINT_NUMBER_MASK;
++
++      UDCDBGA ("omap1510_prepare_endpoint %x", ep_addr);
++      if (((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT)) {
++              if ((inw (UDC_EP_RX (ep_num)) &
++                   (UDC_EPn_RX_Valid | UDC_EPn_RX_Iso)) ==
++                  UDC_EPn_RX_Valid) {
++                      /* rx endpoint is valid, non-ISO, so enable its FIFO */
++                      outw (UDC_EP_Sel | ep_num, UDC_EP_NUM);
++                      outw (UDC_Set_FIFO_En, UDC_CTRL);
++                      outw (0, UDC_EP_NUM);
++              }
++      }
++}
++
++/* omap1510_configure_endpoints
++ *
++ * This function implements TRM Figure 14-10.
++ */
++static void omap1510_configure_endpoints (struct usb_device_instance *device)
++{
++      int ep;
++      struct usb_bus_instance *bus;
++      struct usb_endpoint_instance *endpoint;
++      unsigned short ep_ptr;
++      unsigned short ep_size;
++      unsigned short ep_isoc;
++      unsigned short ep_doublebuffer;
++      int ep_addr;
++      int packet_size;
++      int buffer_size;
++      int attributes;
++
++      bus = device->bus;
++
++      /* There is a dedicated 2048 byte buffer for USB packets that may be
++       * arbitrarily partitioned among the endpoints on 8-byte boundaries.
++       * The first 8 bytes are reserved for receiving setup packets on
++       * endpoint 0.
++       */
++      ep_ptr = 8;             /* reserve the first 8 bytes for the setup fifo */
++
++      for (ep = 0; ep < bus->max_endpoints; ep++) {
++              endpoint = bus->endpoint_array + ep;
++              ep_addr = endpoint->endpoint_address;
++              if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) {
++                      /* IN endpoint */
++                      packet_size = endpoint->tx_packetSize;
++                      attributes = endpoint->tx_attributes;
++              } else {
++                      /* OUT endpoint */
++                      packet_size = endpoint->rcv_packetSize;
++                      attributes = endpoint->rcv_attributes;
++              }
++
++              switch (packet_size) {
++              case 0:
++                      ep_size = 0;
++                      break;
++              case 8:
++                      ep_size = 0;
++                      break;
++              case 16:
++                      ep_size = 1;
++                      break;
++              case 32:
++                      ep_size = 2;
++                      break;
++              case 64:
++                      ep_size = 3;
++                      break;
++              case 128:
++                      ep_size = 4;
++                      break;
++              case 256:
++                      ep_size = 5;
++                      break;
++              case 512:
++                      ep_size = 6;
++                      break;
++              default:
++                      UDCDBGA ("ep 0x%02x has bad packet size %d",
++                               ep_addr, packet_size);
++                      packet_size = 0;
++                      ep_size = 0;
++                      break;
++              }
++
++              switch (attributes & USB_ENDPOINT_XFERTYPE_MASK) {
++              case USB_ENDPOINT_XFER_CONTROL:
++              case USB_ENDPOINT_XFER_BULK:
++              case USB_ENDPOINT_XFER_INT:
++              default:
++                      /* A non-isochronous endpoint may optionally be
++                       * double-buffered. For now we disable
++                       * double-buffering.
++                       */
++                      ep_doublebuffer = 0;
++                      ep_isoc = 0;
++                      if (packet_size > 64)
++                              packet_size = 0;
++                      if (!ep || !ep_doublebuffer)
++                              buffer_size = packet_size;
++                      else
++                              buffer_size = packet_size * 2;
++                      break;
++              case USB_ENDPOINT_XFER_ISOC:
++                      /* Isochronous endpoints are always double-
++                       * buffered, but the double-buffering bit
++                       * in the endpoint configuration register
++                       * becomes the msb of the endpoint size so we
++                       * set the double-buffering flag to zero.
++                       */
++                      ep_doublebuffer = 0;
++                      ep_isoc = 1;
++                      buffer_size = packet_size * 2;
++                      break;
++              }
++
++              /* check to see if our packet buffer RAM is exhausted */
++              if ((ep_ptr + buffer_size) > 2048) {
++                      UDCDBGA ("out of packet RAM for ep 0x%02x buf size %d", ep_addr, buffer_size);
++                      buffer_size = packet_size = 0;
++              }
++
++              /* force a default configuration for endpoint 0 since it is
++               * always enabled
++               */
++              if (!ep && ((packet_size < 8) || (packet_size > 64))) {
++                      buffer_size = packet_size = 64;
++                      ep_size = 3;
++              }
++
++              if (!ep) {
++                      /* configure endpoint 0 */
++                      outw ((ep_size << 12) | (ep_ptr >> 3), UDC_EP0);
++                      /*UDCDBGA("ep 0 buffer offset 0x%03x packet size 0x%03x", */
++                      /*      ep_ptr, packet_size); */
++              } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) {
++                      /* IN endpoint */
++                      if (packet_size) {
++                              outw ((1 << 15) | (ep_doublebuffer << 14) |
++                                    (ep_size << 12) | (ep_isoc << 11) |
++                                    (ep_ptr >> 3),
++                                    UDC_EP_TX (ep_addr &
++                                               USB_ENDPOINT_NUMBER_MASK));
++                              UDCDBGA ("IN ep %d buffer offset 0x%03x"
++                                       " packet size 0x%03x",
++                                       ep_addr & USB_ENDPOINT_NUMBER_MASK,
++                                       ep_ptr, packet_size);
++                      } else {
++                              outw (0,
++                                    UDC_EP_TX (ep_addr &
++                                               USB_ENDPOINT_NUMBER_MASK));
++                      }
++              } else {
++                      /* OUT endpoint */
++                      if (packet_size) {
++                              outw ((1 << 15) | (ep_doublebuffer << 14) |
++                                    (ep_size << 12) | (ep_isoc << 11) |
++                                    (ep_ptr >> 3),
++                                    UDC_EP_RX (ep_addr &
++                                               USB_ENDPOINT_NUMBER_MASK));
++                              UDCDBGA ("OUT ep %d buffer offset 0x%03x"
++                                       " packet size 0x%03x",
++                                       ep_addr & USB_ENDPOINT_NUMBER_MASK,
++                                       ep_ptr, packet_size);
++                      } else {
++                              outw (0,
++                                    UDC_EP_RX (ep_addr &
++                                               USB_ENDPOINT_NUMBER_MASK));
++                      }
++              }
++              ep_ptr += buffer_size;
++      }
++}
++
++static void s3c2410_deconfigure_device (void)
++{
++      int epnum;
++
++      UDCDBG ("clear Cfg_Lock");
++      outw (inw (UDC_SYSCON1) & ~UDC_Cfg_Lock, UDC_SYSCON1);
++      UDCREG (UDC_SYSCON1);
++
++      /* deconfigure all endpoints */
++      for (epnum = 1; epnum <= 15; epnum++) {
++              outw (0, UDC_EP_RX (epnum));
++              outw (0, UDC_EP_TX (epnum));
++      }
++}
++
++static void s3c2410_configure_device (struct usb_device_instance *device)
++{
++      u_int32_t tmp;
++
++      s3c2410_configure_endpoints(device);
++
++      /* disable EP0-4 SUBD interrupts ? */
++      outw(0x00, S3C2410_UDC_USB_INT_EN_REG);
++
++      /* UPLL already configured by board-level init code */
++
++      /* configure USB pads to device mode */
++      tmp = inw(S3C2410_MISCCR);
++      tmp &= ~(S3C2410_MISCCR_USBHOST|S3C2410_MISCCR_USBSUSPND1);
++      outw(tmp, S3C2410_MISCCR);
++
++      tmp = inb(S3C2410_CLKSLOW);
++      tmp &= ~S3C2410_CLKSLOW_USB_CLK_DISABLE;
++      outw(tmp, S3C2410_CLKSLOW);
++
++      /* clear interrupt registers */
++      inb(S3C2410_UDC_EP_INT_REG);
++      inb(S3C2410_UDC_USB_INT_REG);
++
++      /* enable USB interrupts for RESET and SUSPEND/RESUME */
++      outb(S3C2410_UDC_USBINT_RESET|S3C2410_UDC_USBINT_SUSPEND,
++           S3C2410_UDC_USB_INT_EN_REG);
++
++}
++
++/* omap1510_write_noniso_tx_fifo
++ *
++ * This function implements TRM Figure 14-30.
++ *
++ * If the endpoint has an active tx_urb, then the next packet of data from the
++ * URB is written to the tx FIFO.  The total amount of data in the urb is given
++ * by urb->actual_length.  The maximum amount of data that can be sent in any
++ * one packet is given by endpoint->tx_packetSize.  The number of data bytes
++ * from this URB that have already been transmitted is given by endpoint->sent.
++ * endpoint->last is updated by this routine with the number of data bytes
++ * transmitted in this packet.
++ *
++ * In accordance with Figure 14-30, the EP_NUM register must already have been
++ * written with the value to select the appropriate tx FIFO before this routine
++ * is called.
++ */
++static void omap1510_write_noniso_tx_fifo (struct usb_endpoint_instance
++                                         *endpoint)
++{
++      struct urb *urb = endpoint->tx_urb;
++
++      if (urb) {
++              unsigned int last, i;
++
++              UDCDBGA ("urb->buffer %p, buffer_length %d, actual_length %d",
++                       urb->buffer, urb->buffer_length, urb->actual_length);
++              if ((last =
++                   MIN (urb->actual_length - endpoint->sent,
++                        endpoint->tx_packetSize))) {
++                      u8 *cp = urb->buffer + endpoint->sent;
++
++                      UDCDBGA ("endpoint->sent %d, tx_packetSize %d, last %d", endpoint->sent, endpoint->tx_packetSize, last);
++
++                      if (((u32) cp & 1) == 0) {      /* word aligned? */
++                              outsw (UDC_DATA, cp, last >> 1);
++                      } else {        /* byte aligned. */
++                              for (i = 0; i < (last >> 1); i++) {
++                                      u16 w = ((u16) cp[2 * i + 1] << 8) |
++                                              (u16) cp[2 * i];
++                                      outw (w, UDC_DATA);
++                              }
++                      }
++                      if (last & 1) {
++                              outb (*(cp + last - 1), UDC_DATA);
++                      }
++              }
++              endpoint->last = last;
++      }
++}
++
++/* omap1510_read_noniso_rx_fifo
++ *
++ * This function implements TRM Figure 14-28.
++ *
++ * If the endpoint has an active rcv_urb, then the next packet of data is read
++ * from the rcv FIFO and written to rcv_urb->buffer at offset
++ * rcv_urb->actual_length to append the packet data to the data from any
++ * previous packets for this transfer.        We assume that there is sufficient room
++ * left in the buffer to hold an entire packet of data.
++ *
++ * The return value is the number of bytes read from the FIFO for this packet.
++ *
++ * In accordance with Figure 14-28, the EP_NUM register must already have been
++ * written with the value to select the appropriate rcv FIFO before this routine
++ * is called.
++ */
++static int omap1510_read_noniso_rx_fifo (struct usb_endpoint_instance
++                                       *endpoint)
++{
++      struct urb *urb = endpoint->rcv_urb;
++      int len = 0;
++
++      if (urb) {
++              len = inw (UDC_RXFSTAT);
++
++              if (len) {
++                      unsigned char *cp = urb->buffer + urb->actual_length;
++
++                      insw (UDC_DATA, cp, len >> 1);
++                      if (len & 1)
++                              *(cp + len - 1) = inb (UDC_DATA);
++              }
++      }
++      return len;
++}
++
++/* omap1510_prepare_for_control_write_status
++ *
++ * This function implements TRM Figure 14-17.
++ *
++ * We have to deal here with non-autodecoded control writes that haven't already
++ * been dealt with by ep0_recv_setup.  The non-autodecoded standard control
++ * write requests are:        set/clear endpoint feature, set configuration, set
++ * interface, and set descriptor.  ep0_recv_setup handles set/clear requests for
++ * ENDPOINT_HALT by halting the endpoint for a set request and resetting the
++ * endpoint for a clear request.  ep0_recv_setup returns an error for
++ * SET_DESCRIPTOR requests which causes them to be terminated with a stall by
++ * the setup handler.  A SET_INTERFACE request is handled by ep0_recv_setup by
++ * generating a DEVICE_SET_INTERFACE event.  This leaves only the
++ * SET_CONFIGURATION event for us to deal with here.
++ *
++ */
++static void omap1510_prepare_for_control_write_status (struct urb *urb)
++{
++      struct usb_device_request *request = &urb->device_request;;
++
++      /* check for a SET_CONFIGURATION request */
++      if (request->bRequest == USB_REQ_SET_CONFIGURATION) {
++              int configuration = le16_to_cpu (request->wValue) & 0xff;
++              unsigned short devstat = inw (UDC_DEVSTAT);
++
++              if ((devstat & (UDC_ADD | UDC_CFG)) == UDC_ADD) {
++                      /* device is currently in ADDRESSED state */
++                      if (configuration) {
++                              /* Assume the specified non-zero configuration
++                               * value is valid and switch to the CONFIGURED
++                               * state.
++                               */
++                              outw (UDC_Dev_Cfg, UDC_SYSCON2);
++                      }
++              } else if ((devstat & UDC_CFG) == UDC_CFG) {
++                      /* device is currently in CONFIGURED state */
++                      if (!configuration) {
++                              /* Switch to ADDRESSED state. */
++                              outw (UDC_Clr_Cfg, UDC_SYSCON2);
++                      }
++              }
++      }
++
++      /* select EP0 tx FIFO */
++      outw (UDC_EP_Dir | UDC_EP_Sel, UDC_EP_NUM);
++      /* clear endpoint (no data bytes in status stage) */
++      outw (UDC_Clr_EP, UDC_CTRL);
++      /* enable the EP0 tx FIFO */
++      outw (UDC_Set_FIFO_En, UDC_CTRL);
++      /* deselect the endpoint */
++      outw (UDC_EP_Dir, UDC_EP_NUM);
++}
++
++/* udc_state_transition_up
++ * udc_state_transition_down
++ *
++ * Helper functions to implement device state changes.        The device states and
++ * the events that transition between them are:
++ *
++ *                            STATE_ATTACHED
++ *                            ||      /\
++ *                            \/      ||
++ *    DEVICE_HUB_CONFIGURED                   DEVICE_HUB_RESET
++ *                            ||      /\
++ *                            \/      ||
++ *                            STATE_POWERED
++ *                            ||      /\
++ *                            \/      ||
++ *    DEVICE_RESET                            DEVICE_POWER_INTERRUPTION
++ *                            ||      /\
++ *                            \/      ||
++ *                            STATE_DEFAULT
++ *                            ||      /\
++ *                            \/      ||
++ *    DEVICE_ADDRESS_ASSIGNED                 DEVICE_RESET
++ *                            ||      /\
++ *                            \/      ||
++ *                            STATE_ADDRESSED
++ *                            ||      /\
++ *                            \/      ||
++ *    DEVICE_CONFIGURED                       DEVICE_DE_CONFIGURED
++ *                            ||      /\
++ *                            \/      ||
++ *                            STATE_CONFIGURED
++ *
++ * udc_state_transition_up transitions up (in the direction from STATE_ATTACHED
++ * to STATE_CONFIGURED) from the specified initial state to the specified final
++ * state, passing through each intermediate state on the way.  If the initial
++ * state is at or above (i.e. nearer to STATE_CONFIGURED) the final state, then
++ * no state transitions will take place.
++ *
++ * udc_state_transition_down transitions down (in the direction from
++ * STATE_CONFIGURED to STATE_ATTACHED) from the specified initial state to the
++ * specified final state, passing through each intermediate state on the way.
++ * If the initial state is at or below (i.e. nearer to STATE_ATTACHED) the final
++ * state, then no state transitions will take place.
++ *
++ * These functions must only be called with interrupts disabled.
++ */
++static void udc_state_transition_up (usb_device_state_t initial,
++                                   usb_device_state_t final)
++{
++      if (initial < final) {
++              switch (initial) {
++              case STATE_ATTACHED:
++                      usbd_device_event_irq (udc_device,
++                                             DEVICE_HUB_CONFIGURED, 0);
++                      if (final == STATE_POWERED)
++                              break;
++              case STATE_POWERED:
++                      usbd_device_event_irq (udc_device, DEVICE_RESET, 0);
++                      if (final == STATE_DEFAULT)
++                              break;
++              case STATE_DEFAULT:
++                      usbd_device_event_irq (udc_device,
++                                             DEVICE_ADDRESS_ASSIGNED, 0);
++                      if (final == STATE_ADDRESSED)
++                              break;
++              case STATE_ADDRESSED:
++                      usbd_device_event_irq (udc_device, DEVICE_CONFIGURED,
++                                             0);
++              case STATE_CONFIGURED:
++                      break;
++              default:
++                      break;
++              }
++      }
++}
++
++static void udc_state_transition_down (usb_device_state_t initial,
++                                     usb_device_state_t final)
++{
++      if (initial > final) {
++              switch (initial) {
++              case STATE_CONFIGURED:
++                      usbd_device_event_irq (udc_device, DEVICE_DE_CONFIGURED, 0);
++                      if (final == STATE_ADDRESSED)
++                              break;
++              case STATE_ADDRESSED:
++                      usbd_device_event_irq (udc_device, DEVICE_RESET, 0);
++                      if (final == STATE_DEFAULT)
++                              break;
++              case STATE_DEFAULT:
++                      usbd_device_event_irq (udc_device, DEVICE_POWER_INTERRUPTION, 0);
++                      if (final == STATE_POWERED)
++                              break;
++              case STATE_POWERED:
++                      usbd_device_event_irq (udc_device, DEVICE_HUB_RESET, 0);
++              case STATE_ATTACHED:
++                      break;
++              default:
++                      break;
++              }
++      }
++}
++
++/* Handle all device state changes.
++ * This function implements TRM Figure 14-21.
++ */
++static void omap1510_udc_state_changed (void)
++{
++      u16 bits;
++      u16 devstat = inw (UDC_DEVSTAT);
++
++      UDCDBGA ("state changed, devstat %x, old %x", devstat, udc_devstat);
++
++      bits = devstat ^ udc_devstat;
++      if (bits) {
++              if (bits & UDC_ATT) {
++                      if (devstat & UDC_ATT) {
++                              UDCDBG ("device attached and powered");
++                              udc_state_transition_up (udc_device->device_state, STATE_POWERED);
++                      } else {
++                              UDCDBG ("device detached or unpowered");
++                              udc_state_transition_down (udc_device->device_state, STATE_ATTACHED);
++                      }
++              }
++              if (bits & UDC_USB_Reset) {
++                      if (devstat & UDC_USB_Reset) {
++                              UDCDBG ("device reset in progess");
++                              udc_state_transition_down (udc_device->device_state, STATE_POWERED);
++                      } else {
++                              UDCDBG ("device reset completed");
++                      }
++              }
++              if (bits & UDC_DEF) {
++                      if (devstat & UDC_DEF) {
++                              UDCDBG ("device entering default state");
++                              udc_state_transition_up (udc_device->device_state, STATE_DEFAULT);
++                      } else {
++                              UDCDBG ("device leaving default state");
++                              udc_state_transition_down (udc_device->device_state, STATE_POWERED);
++                      }
++              }
++              if (bits & UDC_SUS) {
++                      if (devstat & UDC_SUS) {
++                              UDCDBG ("entering suspended state");
++                              usbd_device_event_irq (udc_device, DEVICE_BUS_INACTIVE, 0);
++                      } else {
++                              UDCDBG ("leaving suspended state");
++                              usbd_device_event_irq (udc_device, DEVICE_BUS_ACTIVITY, 0);
++                      }
++              }
++              if (bits & UDC_R_WK_OK) {
++                      UDCDBGA ("remote wakeup %s", (devstat & UDC_R_WK_OK)
++                               ? "enabled" : "disabled");
++              }
++              if (bits & UDC_ADD) {
++                      if (devstat & UDC_ADD) {
++                              UDCDBG ("default -> addressed");
++                              udc_state_transition_up (udc_device->device_state, STATE_ADDRESSED);
++                      } else {
++                              UDCDBG ("addressed -> default");
++                              udc_state_transition_down (udc_device->device_state, STATE_DEFAULT);
++                      }
++              }
++              if (bits & UDC_CFG) {
++                      if (devstat & UDC_CFG) {
++                              UDCDBG ("device configured");
++                              /* The ep0_recv_setup function generates the
++                               * DEVICE_CONFIGURED event when a
++                               * USB_REQ_SET_CONFIGURATION setup packet is
++                               * received, so we should already be in the
++                               * state STATE_CONFIGURED.
++                               */
++                              udc_state_transition_up (udc_device->device_state, STATE_CONFIGURED);
++                      } else {
++                              UDCDBG ("device deconfigured");
++                              udc_state_transition_down (udc_device->device_state, STATE_ADDRESSED);
++                      }
++              }
++      }
++
++      /* Clear interrupt source */
++      outw (UDC_DS_Chg, UDC_IRQ_SRC);
++
++      /* Save current DEVSTAT */
++      udc_devstat = devstat;
++}
++
++static void s3c2410_udc_ep0(void)
++{
++      u_int8_t ep0csr;
++
++      UDCDBG("-> Entering EP0 handler");
++
++      S3C2410_UDC_SETIX(EP0);
++      ep0csr = inb(S3C2410_UDC_IN_CSR1_REG);
++
++      /* clear stall status */
++      if (ep0csr & S3C2410_UDC_EP0_CSR_SENTSTL) {
++              clear_sp0_sst;
++              /* FIXME */
++              ep0_idle();
++      }
++
++      if (ep0csr & S3C2410_UDC_EP0_CSR_SE
++          && dev->ep0state != EP0_IDLE) {
++              clear_ep0_se;
++              ep0_idle();
++      }
++
++      switch (dev->ep0state) {
++      case EP0_IDLE:
++              if (ep0crs & S3C2410_UDC_EP0_CSR_OPKRDY) {
++              }
++              break;
++      case EP0_IN_DATA_PHASE:
++              break;
++      case EP0_OUT_DATA_PHASE:
++              break;
++      case EP0_END_XFER:
++              break;
++      case EP0_STALL:
++              set_ep0_ss;
++              break;
++      }
++}
++
++
++}
++
++/* Handle SETUP USB interrupt.
++ * This function implements TRM Figure 14-14.
++ */
++static void omap1510_udc_setup (struct usb_endpoint_instance *endpoint)
++{
++      UDCDBG ("-> Entering device setup");
++
++      do {
++              const int setup_pktsize = 8;
++              unsigned char *datap =
++                      (unsigned char *) &ep0_urb->device_request;
++
++              /* Gain access to EP 0 setup FIFO */
++              outw (UDC_Setup_Sel, UDC_EP_NUM);
++
++              /* Read control request data */
++              insb (UDC_DATA, datap, setup_pktsize);
++
++              UDCDBGA ("EP0 setup read [%x %x %x %x %x %x %x %x]",
++                       *(datap + 0), *(datap + 1), *(datap + 2),
++                       *(datap + 3), *(datap + 4), *(datap + 5),
++                       *(datap + 6), *(datap + 7));
++
++              /* Reset EP0 setup FIFO */
++              outw (0, UDC_EP_NUM);
++      } while (inw (UDC_IRQ_SRC) & UDC_Setup);
++
++      /* Try to process setup packet */
++      if (ep0_recv_setup (ep0_urb)) {
++              /* Not a setup packet, stall next EP0 transaction */
++              udc_stall_ep (0);
++              UDCDBG ("can't parse setup packet, still waiting for setup");
++              return;
++      }
++
++      /* Check direction */
++      if ((ep0_urb->device_request.bmRequestType & USB_REQ_DIRECTION_MASK)
++          == USB_REQ_HOST2DEVICE) {
++              UDCDBG ("control write on EP0");
++              if (le16_to_cpu (ep0_urb->device_request.wLength)) {
++                      /* We don't support control write data stages.
++                       * The only standard control write request with a data
++                       * stage is SET_DESCRIPTOR, and ep0_recv_setup doesn't
++                       * support that so we just stall those requests.  A
++                       * function driver might support a non-standard
++                       * write request with a data stage, but it isn't
++                       * obvious what we would do with the data if we read it
++                       * so we'll just stall it.  It seems like the API isn't
++                       * quite right here.
++                       */
++#if 0
++                      /* Here is what we would do if we did support control
++                       * write data stages.
++                       */
++                      ep0_urb->actual_length = 0;
++                      outw (0, UDC_EP_NUM);
++                      /* enable the EP0 rx FIFO */
++                      outw (UDC_Set_FIFO_En, UDC_CTRL);
++#else
++                      /* Stall this request */
++                      UDCDBG ("Stalling unsupported EP0 control write data "
++                              "stage.");
++                      udc_stall_ep (0);
++#endif
++              } else {
++                      omap1510_prepare_for_control_write_status (ep0_urb);
++              }
++      } else {
++              UDCDBG ("control read on EP0");
++              /* The ep0_recv_setup function has already placed our response
++               * packet data in ep0_urb->buffer and the packet length in
++               * ep0_urb->actual_length.
++               */
++              endpoint->tx_urb = ep0_urb;
++              endpoint->sent = 0;
++              /* select the EP0 tx FIFO */
++              outw (UDC_EP_Dir | UDC_EP_Sel, UDC_EP_NUM);
++              /* Write packet data to the FIFO.  omap1510_write_noniso_tx_fifo
++               * will update endpoint->last with the number of bytes written
++               * to the FIFO.
++               */
++              omap1510_write_noniso_tx_fifo (endpoint);
++              /* enable the FIFO to start the packet transmission */
++              outw (UDC_Set_FIFO_En, UDC_CTRL);
++              /* deselect the EP0 tx FIFO */
++              outw (UDC_EP_Dir, UDC_EP_NUM);
++      }
++
++      UDCDBG ("<- Leaving device setup");
++}
++
++/* Handle endpoint 0 RX interrupt
++ * This routine implements TRM Figure 14-16.
++ */
++static void omap1510_udc_ep0_rx (struct usb_endpoint_instance *endpoint)
++{
++      unsigned short status;
++
++      UDCDBG ("RX on EP0");
++      /* select EP0 rx FIFO */
++      outw (UDC_EP_Sel, UDC_EP_NUM);
++
++      status = inw (UDC_STAT_FLG);
++
++      if (status & UDC_ACK) {
++              /* Check direction */
++              if ((ep0_urb->device_request.bmRequestType
++                   & USB_REQ_DIRECTION_MASK) == USB_REQ_HOST2DEVICE) {
++                      /* This rx interrupt must be for a control write data
++                       * stage packet.
++                       *
++                       * We don't support control write data stages.
++                       * We should never end up here.
++                       */
++
++                      /* clear the EP0 rx FIFO */
++                      outw (UDC_Clr_EP, UDC_CTRL);
++
++                      /* deselect the EP0 rx FIFO */
++                      outw (0, UDC_EP_NUM);
++
++                      UDCDBG ("Stalling unexpected EP0 control write "
++                              "data stage packet");
++                      udc_stall_ep (0);
++              } else {
++                      /* This rx interrupt must be for a control read status
++                       * stage packet.
++                       */
++                      UDCDBG ("ACK on EP0 control read status stage packet");
++                      /* deselect EP0 rx FIFO */
++                      outw (0, UDC_EP_NUM);
++              }
++      } else if (status & UDC_STALL) {
++              UDCDBG ("EP0 stall during RX");
++              /* deselect EP0 rx FIFO */
++              outw (0, UDC_EP_NUM);
++      } else {
++              /* deselect EP0 rx FIFO */
++              outw (0, UDC_EP_NUM);
++      }
++}
++
++/* Handle endpoint 0 TX interrupt
++ * This routine implements TRM Figure 14-18.
++ */
++static void omap1510_udc_ep0_tx (struct usb_endpoint_instance *endpoint)
++{
++      unsigned short status;
++      struct usb_device_request *request = &ep0_urb->device_request;
++
++      UDCDBG ("TX on EP0");
++      /* select EP0 TX FIFO */
++      outw (UDC_EP_Dir | UDC_EP_Sel, UDC_EP_NUM);
++
++      status = inw (UDC_STAT_FLG);
++      if (status & UDC_ACK) {
++              /* Check direction */
++              if ((request->bmRequestType & USB_REQ_DIRECTION_MASK) ==
++                  USB_REQ_HOST2DEVICE) {
++                      /* This tx interrupt must be for a control write status
++                       * stage packet.
++                       */
++                      UDCDBG ("ACK on EP0 control write status stage packet");
++                      /* deselect EP0 TX FIFO */
++                      outw (UDC_EP_Dir, UDC_EP_NUM);
++              } else {
++                      /* This tx interrupt must be for a control read data
++                       * stage packet.
++                       */
++                      int wLength = le16_to_cpu (request->wLength);
++
++                      /* Update our count of bytes sent so far in this
++                       * transfer.
++                       */
++                      endpoint->sent += endpoint->last;
++
++                      /* We are finished with this transfer if we have sent
++                       * all of the bytes in our tx urb (urb->actual_length)
++                       * unless we need a zero-length terminating packet.  We
++                       * need a zero-length terminating packet if we returned
++                       * fewer bytes than were requested (wLength) by the host,
++                       * and the number of bytes we returned is an exact
++                       * multiple of the packet size endpoint->tx_packetSize.
++                       */
++                      if ((endpoint->sent == ep0_urb->actual_length)
++                          && ((ep0_urb->actual_length == wLength)
++                              || (endpoint->last !=
++                                  endpoint->tx_packetSize))) {
++                              /* Done with control read data stage. */
++                              UDCDBG ("control read data stage complete");
++                              /* deselect EP0 TX FIFO */
++                              outw (UDC_EP_Dir, UDC_EP_NUM);
++                              /* select EP0 RX FIFO to prepare for control
++                               * read status stage.
++                               */
++                              outw (UDC_EP_Sel, UDC_EP_NUM);
++                              /* clear the EP0 RX FIFO */
++                              outw (UDC_Clr_EP, UDC_CTRL);
++                              /* enable the EP0 RX FIFO */
++                              outw (UDC_Set_FIFO_En, UDC_CTRL);
++                              /* deselect the EP0 RX FIFO */
++                              outw (0, UDC_EP_NUM);
++                      } else {
++                              /* We still have another packet of data to send
++                               * in this control read data stage or else we
++                               * need a zero-length terminating packet.
++                               */
++                              UDCDBG ("ACK control read data stage packet");
++                              omap1510_write_noniso_tx_fifo (endpoint);
++                              /* enable the EP0 tx FIFO to start transmission */
++                              outw (UDC_Set_FIFO_En, UDC_CTRL);
++                              /* deselect EP0 TX FIFO */
++                              outw (UDC_EP_Dir, UDC_EP_NUM);
++                      }
++              }
++      } else if (status & UDC_STALL) {
++              UDCDBG ("EP0 stall during TX");
++              /* deselect EP0 TX FIFO */
++              outw (UDC_EP_Dir, UDC_EP_NUM);
++      } else {
++              /* deselect EP0 TX FIFO */
++              outw (UDC_EP_Dir, UDC_EP_NUM);
++      }
++}
++
++/* Handle RX transaction on non-ISO endpoint.
++ * This function implements TRM Figure 14-27.
++ * The ep argument is a physical endpoint number for a non-ISO OUT endpoint
++ * in the range 1 to 15.
++ */
++static void omap1510_udc_epn_rx (int ep)
++{
++      unsigned short status;
++
++      /* Check endpoint status */
++      status = inw (UDC_STAT_FLG);
++
++      if (status & UDC_ACK) {
++              int nbytes;
++              struct usb_endpoint_instance *endpoint =
++                      omap1510_find_ep (ep);
++
++              nbytes = omap1510_read_noniso_rx_fifo (endpoint);
++              usbd_rcv_complete (endpoint, nbytes, 0);
++
++              /* enable rx FIFO to prepare for next packet */
++              outw (UDC_Set_FIFO_En, UDC_CTRL);
++      } else if (status & UDC_STALL) {
++              UDCDBGA ("STALL on RX endpoint %d", ep);
++      } else if (status & UDC_NAK) {
++              UDCDBGA ("NAK on RX ep %d", ep);
++      } else {
++              serial_printf ("omap-bi: RX on ep %d with status %x", ep,
++                             status);
++      }
++}
++
++/* Handle TX transaction on non-ISO endpoint.
++ * This function implements TRM Figure 14-29.
++ * The ep argument is a physical endpoint number for a non-ISO IN endpoint
++ * in the range 16 to 30.
++ */
++static void omap1510_udc_epn_tx (int ep)
++{
++      unsigned short status;
++
++      /*serial_printf("omap1510_udc_epn_tx( %x )\n",ep); */
++
++      /* Check endpoint status */
++      status = inw (UDC_STAT_FLG);
++
++      if (status & UDC_ACK) {
++              struct usb_endpoint_instance *endpoint =
++                      omap1510_find_ep (ep);
++
++              /* We need to transmit a terminating zero-length packet now if
++               * we have sent all of the data in this URB and the transfer
++               * size was an exact multiple of the packet size.
++               */
++              if (endpoint->tx_urb
++                  && (endpoint->last == endpoint->tx_packetSize)
++                  && (endpoint->tx_urb->actual_length - endpoint->sent -
++                      endpoint->last == 0)) {
++                      /* Prepare to transmit a zero-length packet. */
++                      endpoint->sent += endpoint->last;
++                      /* write 0 bytes of data to FIFO */
++                      omap1510_write_noniso_tx_fifo (endpoint);
++                      /* enable tx FIFO to start transmission */
++                      outw (UDC_Set_FIFO_En, UDC_CTRL);
++              } else if (endpoint->tx_urb
++                         && endpoint->tx_urb->actual_length) {
++                      /* retire the data that was just sent */
++                      usbd_tx_complete (endpoint);
++                      /* Check to see if we have more data ready to transmit
++                       * now.
++                       */
++                      if (endpoint->tx_urb
++                          && endpoint->tx_urb->actual_length) {
++                              /* write data to FIFO */
++                              omap1510_write_noniso_tx_fifo (endpoint);
++                              /* enable tx FIFO to start transmission */
++                              outw (UDC_Set_FIFO_En, UDC_CTRL);
++                      }
++              }
++      } else if (status & UDC_STALL) {
++              UDCDBGA ("STALL on TX endpoint %d", ep);
++      } else if (status & UDC_NAK) {
++              UDCDBGA ("NAK on TX endpoint %d", ep);
++      } else {
++              /*serial_printf("omap-bi: TX on ep %d with status %x\n", ep, status); */
++      }
++}
++
++
++/*
++-------------------------------------------------------------------------------
++*/
++
++/* Handle general USB interrupts and dispatch according to type.
++ * This function implements TRM Figure 14-13.
++ */
++void s3c2410_udc_irq (void)
++{
++      u_int8_t save_idx = inb(S3C2410_UDC_INDEX_REG);
++      u_int8_t usb_status = inb(S3C2410_UDC_USB_INT_REG);
++      u_int8_t usbd_status = inb(S3C2410_UDC_EP_INT_REG);
++
++      UDCDBGA("< IRQ usbs=0x%02x, usbds=0x%02x start >", usb_status,
++              usbd_status);
++
++      if (usb_status & S3C2410_UDC_USBINT_RESET) {
++              valid_irq++;
++      }
++
++      if (usb_status & S3C2410_UDC_USBINT_RESUME) {
++              valid_irq++;
++
++      }
++
++      if (usb_status & S3C2410_UDC_USBINT_SUSPEND) {
++              valid_irq++;
++
++      }
++
++      /* Endpoint Interrupts */
++      if (usbd_status) {
++              int i;
++
++              if (usbd_status & S3C2410_UDC_INT_EP0) {
++                      s3c2410_udc_ep0();
++                      outb(S3C2410_UDC_INT_EP0, S3C2410_UDC_EP_INT_REG);
++                      valid_irq++;
++              }
++
++              for (i = 1; i < 5; i++) {
++                      u_int32_t tmp = 1 << i;
++
++                      if (usbd_status & tmp) {
++                              /* FIXME: Handle EP X */
++                              s3c2410_udc_epn(i);
++                              outb(tmp, S3C2410_UDC_EP_INT_REG);
++                              valid_irq++;
++                      }
++              }
++      }
++      outb(save_idx, S3C2410_UDC_INDEX_REG);
++
++#if 0
++      if (!(irq_src & ~UDC_SOF_Flg))  /* ignore SOF interrupts ) */
++              return;
++
++      UDCDBGA ("< IRQ #%d start >- %x", udc_interrupts, irq_src);
++      /*serial_printf("< IRQ #%d start >- %x\n", udc_interrupts, irq_src); */
++
++      if (irq_src & UDC_DS_Chg) {
++              /* Device status changed */
++              omap1510_udc_state_changed ();
++              valid_irq++;
++      }
++      if (irq_src & UDC_EP0_RX) {
++              /* Endpoint 0 receive */
++              outw (UDC_EP0_RX, UDC_IRQ_SRC); /* ack interrupt */
++              omap1510_udc_ep0_rx (udc_device->bus->endpoint_array + 0);
++              valid_irq++;
++      }
++      if (irq_src & UDC_EP0_TX) {
++              /* Endpoint 0 transmit */
++              outw (UDC_EP0_TX, UDC_IRQ_SRC); /* ack interrupt */
++              omap1510_udc_ep0_tx (udc_device->bus->endpoint_array + 0);
++              valid_irq++;
++      }
++      if (irq_src & UDC_Setup) {
++              /* Device setup */
++              omap1510_udc_setup (udc_device->bus->endpoint_array + 0);
++              valid_irq++;
++      }
++      /*if (!valid_irq) */
++      /*      serial_printf("unknown interrupt, IRQ_SRC %.4x\n", irq_src); */
++#endif
++      UDCDBGA ("< IRQ end >", udc_interrupts);
++
++      udc_interrupts++;
++}
++
++/* This function implements TRM Figure 14-26. */
++void omap1510_udc_noniso_irq (void)
++{
++      unsigned short epnum;
++      unsigned short irq_src = inw (UDC_IRQ_SRC);
++      int valid_irq = 0;
++
++      if (!(irq_src & (UDC_EPn_RX | UDC_EPn_TX)))
++              return;
++
++      UDCDBGA ("non-ISO IRQ, IRQ_SRC %x", inw (UDC_IRQ_SRC));
++
++      if (irq_src & UDC_EPn_RX) {     /* Endpoint N OUT transaction */
++              /* Determine the endpoint number for this interrupt */
++              epnum = (inw (UDC_EPN_STAT) & 0x0f00) >> 8;
++              UDCDBGA ("RX on ep %x", epnum);
++
++              /* acknowledge interrupt */
++              outw (UDC_EPn_RX, UDC_IRQ_SRC);
++
++              if (epnum) {
++                      /* select the endpoint FIFO */
++                      outw (UDC_EP_Sel | epnum, UDC_EP_NUM);
++
++                      omap1510_udc_epn_rx (epnum);
++
++                      /* deselect the endpoint FIFO */
++                      outw (epnum, UDC_EP_NUM);
++              }
++              valid_irq++;
++      }
++      if (irq_src & UDC_EPn_TX) {     /* Endpoint N IN transaction */
++              /* Determine the endpoint number for this interrupt */
++              epnum = (inw (UDC_EPN_STAT) & 0x000f) | USB_DIR_IN;
++              UDCDBGA ("TX on ep %x", epnum);
++
++              /* acknowledge interrupt */
++              outw (UDC_EPn_TX, UDC_IRQ_SRC);
++
++              if (epnum) {
++                      /* select the endpoint FIFO */
++                      outw (UDC_EP_Sel | UDC_EP_Dir | epnum, UDC_EP_NUM);
++
++                      omap1510_udc_epn_tx (epnum);
++
++                      /* deselect the endpoint FIFO */
++                      outw (UDC_EP_Dir | epnum, UDC_EP_NUM);
++              }
++              valid_irq++;
++      }
++      if (!valid_irq)
++              serial_printf (": unknown non-ISO interrupt, IRQ_SRC %.4x\n",
++                             irq_src);
++}
++
++/*
++-------------------------------------------------------------------------------
++*/
++
++
++/*
++ * Start of public functions.
++ */
++
++/* Called to start packet transmission. */
++void udc_endpoint_write (struct usb_endpoint_instance *endpoint)
++{
++      unsigned short epnum =
++              endpoint->endpoint_address & USB_ENDPOINT_NUMBER_MASK;
++
++      UDCDBGA ("Starting transmit on ep %x", epnum);
++
++      if (endpoint->tx_urb) {
++              /* select the endpoint FIFO */
++              outw (UDC_EP_Sel | UDC_EP_Dir | epnum, UDC_EP_NUM);
++              /* write data to FIFO */
++              omap1510_write_noniso_tx_fifo (endpoint);
++              /* enable tx FIFO to start transmission */
++              outw (UDC_Set_FIFO_En, UDC_CTRL);
++              /* deselect the endpoint FIFO */
++              outw (UDC_EP_Dir | epnum, UDC_EP_NUM);
++      }
++}
++
++/* Start to initialize h/w stuff */
++int udc_init (void)
++{
++      u16 udc_rev;
++      uchar value;
++      ulong gpio;
++      int i;
++
++      /* Let the device settle down before we start */
++      for (i = 0; i < UDC_INIT_MDELAY; i++) udelay(1000);
++
++      udc_device = NULL;
++
++      UDCDBG ("starting");
++
++      /* Check peripheral reset. Must be 1 to make sure
++         MPU TIPB peripheral reset is inactive */
++      UDCREG (ARM_RSTCT2);
++
++      /* Set and check clock control.
++       * We might ought to be using the clock control API to do
++       * this instead of fiddling with the clock registers directly
++       * here.
++       */
++      outw ((1 << 4) | (1 << 5), CLOCK_CTRL);
++      UDCREG (CLOCK_CTRL);
++      /* Set and check APLL */
++      outw (0x0008, APLL_CTRL);
++      UDCREG (APLL_CTRL);
++      /* Set and check DPLL */
++      outw (0x2210, DPLL_CTRL);
++      UDCREG (DPLL_CTRL);
++      /* Set and check SOFT */
++      outw ((1 << 4) | (1 << 3) | 1, SOFT_REQ);
++      /* Short delay to wait for DPLL */
++      udelay (1000);
++
++      /* Print banner with device revision */
++      udc_rev = inw (UDC_REV) & 0xff;
++      printf ("USB:   TI OMAP1510 USB function module rev %d.%d\n",
++              udc_rev >> 4, udc_rev & 0xf);
++
++#ifdef CONFIG_OMAP_SX1
++      i2c_read (0x32, 0x04, 1, &value, 1);
++      value |= 0x04;
++      i2c_write (0x32, 0x04, 1, &value, 1);
++
++      i2c_read (0x32, 0x03, 1, &value, 1);
++      value |= 0x01;
++      i2c_write (0x32, 0x03, 1, &value, 1);
++
++      gpio = inl(GPIO_PIN_CONTROL_REG);
++      gpio |=  0x0002; /* A_IRDA_OFF */
++      gpio |=  0x0800; /* A_SWITCH   */
++      gpio |=  0x8000; /* A_USB_ON   */
++      outl (gpio, GPIO_PIN_CONTROL_REG);
++
++      gpio = inl(GPIO_DIR_CONTROL_REG);
++      gpio &= ~0x0002; /* A_IRDA_OFF */
++      gpio &= ~0x0800; /* A_SWITCH   */
++      gpio &= ~0x8000; /* A_USB_ON   */
++      outl (gpio, GPIO_DIR_CONTROL_REG);
++
++      gpio = inl(GPIO_DATA_OUTPUT_REG);
++      gpio |=  0x0002; /* A_IRDA_OFF */
++      gpio &= ~0x0800; /* A_SWITCH   */
++      gpio &= ~0x8000; /* A_USB_ON   */
++      outl (gpio, GPIO_DATA_OUTPUT_REG);
++#endif
++
++      /* The VBUS_MODE bit selects whether VBUS detection is done via
++       * software (1) or hardware (0).  When software detection is
++       * selected, VBUS_CTRL selects whether USB is not connected (0)
++       * or connected (1).
++       */
++      outl (inl (FUNC_MUX_CTRL_0) | UDC_VBUS_MODE, FUNC_MUX_CTRL_0);
++      outl (inl (FUNC_MUX_CTRL_0) & ~UDC_VBUS_CTRL, FUNC_MUX_CTRL_0);
++      UDCREGL (FUNC_MUX_CTRL_0);
++
++      /*
++       * At this point, device is ready for configuration...
++       */
++
++      UDCDBG ("disable USB interrupts");
++      outw (0, UDC_IRQ_EN);
++      UDCREG (UDC_IRQ_EN);
++
++      UDCDBG ("disable USB DMA");
++      outw (0, UDC_DMA_IRQ_EN);
++      UDCREG (UDC_DMA_IRQ_EN);
++
++      UDCDBG ("initialize SYSCON1");
++      outw (UDC_Self_Pwr | UDC_Pullup_En, UDC_SYSCON1);
++      UDCREG (UDC_SYSCON1);
++
++      return 0;
++}
++
++/* Stall endpoint */
++static void udc_stall_ep (unsigned int ep_addr)
++{
++      /*int ep_addr = PHYS_EP_TO_EP_ADDR(ep); */
++      int ep_num = ep_addr & USB_ENDPOINT_NUMBER_MASK;
++
++      UDCDBGA ("stall ep_addr %d", ep_addr);
++
++      /* REVISIT?
++       * The OMAP TRM section 14.2.4.2 says we must check that the FIFO
++       * is empty before halting the endpoint.  The current implementation
++       * doesn't check that the FIFO is empty.
++       */
++
++      if (!ep_num) {
++              outw (UDC_Stall_Cmd, UDC_SYSCON2);
++      } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT) {
++              if (inw (UDC_EP_RX (ep_num)) & UDC_EPn_RX_Valid) {
++                      /* we have a valid rx endpoint, so halt it */
++                      outw (UDC_EP_Sel | ep_num, UDC_EP_NUM);
++                      outw (UDC_Set_Halt, UDC_CTRL);
++                      outw (ep_num, UDC_EP_NUM);
++              }
++      } else {
++              if (inw (UDC_EP_TX (ep_num)) & UDC_EPn_TX_Valid) {
++                      /* we have a valid tx endpoint, so halt it */
++                      outw (UDC_EP_Sel | UDC_EP_Dir | ep_num, UDC_EP_NUM);
++                      outw (UDC_Set_Halt, UDC_CTRL);
++                      outw (ep_num, UDC_EP_NUM);
++              }
++      }
++}
++
++/* Reset endpoint */
++#if 0
++static void udc_reset_ep (unsigned int ep_addr)
++{
++      /*int ep_addr = PHYS_EP_TO_EP_ADDR(ep); */
++      int ep_num = ep_addr & USB_ENDPOINT_NUMBER_MASK;
++
++      UDCDBGA ("reset ep_addr %d", ep_addr);
++
++      if (!ep_num) {
++              /* control endpoint 0 can't be reset */
++      } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT) {
++              UDCDBGA ("UDC_EP_RX(%d) = 0x%04x", ep_num,
++                       inw (UDC_EP_RX (ep_num)));
++              if (inw (UDC_EP_RX (ep_num)) & UDC_EPn_RX_Valid) {
++                      /* we have a valid rx endpoint, so reset it */
++                      outw (ep_num | UDC_EP_Sel, UDC_EP_NUM);
++                      outw (UDC_Reset_EP, UDC_CTRL);
++                      outw (ep_num, UDC_EP_NUM);
++                      UDCDBGA ("OUT endpoint %d reset", ep_num);
++              }
++      } else {
++              UDCDBGA ("UDC_EP_TX(%d) = 0x%04x", ep_num,
++                       inw (UDC_EP_TX (ep_num)));
++              /* Resetting of tx endpoints seems to be causing the USB function
++               * module to fail, which causes problems when the driver is
++               * uninstalled.  We'll skip resetting tx endpoints for now until
++               * we figure out what the problem is.
++               */
++#if 0
++              if (inw (UDC_EP_TX (ep_num)) & UDC_EPn_TX_Valid) {
++                      /* we have a valid tx endpoint, so reset it */
++                      outw (ep_num | UDC_EP_Dir | UDC_EP_Sel, UDC_EP_NUM);
++                      outw (UDC_Reset_EP, UDC_CTRL);
++                      outw (ep_num | UDC_EP_Dir, UDC_EP_NUM);
++                      UDCDBGA ("IN endpoint %d reset", ep_num);
++              }
++#endif
++      }
++}
++#endif
++
++/* ************************************************************************** */
++
++/**
++ * udc_check_ep - check logical endpoint
++  *
++ * Return physical endpoint number to use for this logical endpoint or zero if not valid.
++ */
++#if 0
++int udc_check_ep (int logical_endpoint, int packetsize)
++{
++      if ((logical_endpoint == 0x80) ||
++          ((logical_endpoint & 0x8f) != logical_endpoint)) {
++              return 0;
++      }
++
++      switch (packetsize) {
++      case 8:
++      case 16:
++      case 32:
++      case 64:
++      case 128:
++      case 256:
++      case 512:
++              break;
++      default:
++              return 0;
++      }
++
++      return EP_ADDR_TO_PHYS_EP (logical_endpoint);
++}
++#endif
++
++/*
++ * udc_setup_ep - setup endpoint
++ *
++ * Associate a physical endpoint with endpoint_instance
++ */
++void udc_setup_ep (struct usb_device_instance *device,
++                 unsigned int ep, struct usb_endpoint_instance *endpoint)
++{
++      UDCDBGA ("setting up endpoint addr %x", endpoint->endpoint_address);
++
++      /* This routine gets called by bi_modinit for endpoint 0 and from
++       * bi_config for all of the other endpoints.  bi_config gets called
++       * during the DEVICE_CREATE, DEVICE_CONFIGURED, and
++       * DEVICE_SET_INTERFACE events.  We need to reconfigure the OMAP packet
++       * RAM after bi_config scans the selected device configuration and
++       * initializes the endpoint structures, but before this routine enables
++       * the OUT endpoint FIFOs.  Since bi_config calls this routine in a
++       * loop for endpoints 1 through UDC_MAX_ENDPOINTS, we reconfigure our
++       * packet RAM here when ep==1.
++       * I really hate to do this here, but it seems like the API exported
++       * by the USB bus interface controller driver to the usbd-bi module
++       * isn't quite right so there is no good place to do this.
++       */
++      if (ep == 1) {
++              omap1510_deconfigure_device ();
++              omap1510_configure_device (device);
++      }
++
++      if (endpoint && (ep < UDC_MAX_ENDPOINTS)) {
++              int ep_addr = endpoint->endpoint_address;
++
++              if (!ep_addr) {
++                      /* nothing to do for endpoint 0 */
++              } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) {
++                      /* nothing to do for IN (tx) endpoints */
++              } else {        /* OUT (rx) endpoint */
++                      if (endpoint->rcv_packetSize) {
++                              /*struct urb* urb = &(urb_out_array[ep&0xFF]); */
++                              /*urb->endpoint = endpoint; */
++                              /*urb->device = device; */
++                              /*urb->buffer_length = sizeof(urb->buffer); */
++
++                              /*endpoint->rcv_urb = urb; */
++                              omap1510_prepare_endpoint_for_rx (ep_addr);
++                      }
++              }
++      }
++}
++
++/**
++ * udc_disable_ep - disable endpoint
++ * @ep:
++ *
++ * Disable specified endpoint
++ */
++#if 0
++void udc_disable_ep (unsigned int ep_addr)
++{
++      /*int ep_addr = PHYS_EP_TO_EP_ADDR(ep); */
++      int ep_num = ep_addr & USB_ENDPOINT_NUMBER_MASK;
++      struct usb_endpoint_instance *endpoint = omap1510_find_ep (ep_addr);    /*udc_device->bus->endpoint_array + ep; */
++
++      UDCDBGA ("disable ep_addr %d", ep_addr);
++
++      if (!ep_num) {
++              /* nothing to do for endpoint 0 */ ;
++      } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) {
++              if (endpoint->tx_packetSize) {
++                      /* we have a valid tx endpoint */
++                      /*usbd_flush_tx(endpoint); */
++                      endpoint->tx_urb = NULL;
++              }
++      } else {
++              if (endpoint->rcv_packetSize) {
++                      /* we have a valid rx endpoint */
++                      /*usbd_flush_rcv(endpoint); */
++                      endpoint->rcv_urb = NULL;
++              }
++      }
++}
++#endif
++
++/* ************************************************************************** */
++
++/**
++ * udc_connected - is the USB cable connected
++ *
++ * Return non-zero if cable is connected.
++ */
++#if 0
++int udc_connected (void)
++{
++      return ((inw (UDC_DEVSTAT) & UDC_ATT) == UDC_ATT);
++}
++#endif
++
++/* Turn on the USB connection by enabling the pullup resistor */
++void udc_connect (void)
++{
++      UDCDBG ("connect, enable Pullup");
++}
++
++/* Turn off the USB connection by disabling the pullup resistor */
++void udc_disconnect (void)
++{
++      UDCDBG ("disconnect, disable Pullup");
++}
++
++/* ************************************************************************** */
++
++
++/*
++ * udc_disable_interrupts - disable interrupts
++ * switch off interrupts
++ */
++#if 0
++void udc_disable_interrupts (struct usb_device_instance *device)
++{
++      UDCDBG ("disabling all interrupts");
++      outw (0, UDC_IRQ_EN);
++}
++#endif
++
++/* ************************************************************************** */
++
++/**
++ * udc_ep0_packetsize - return ep0 packetsize
++ */
++#if 0
++int udc_ep0_packetsize (void)
++{
++      return EP0_PACKETSIZE;
++}
++#endif
++
++/* Switch on the UDC */
++void udc_enable (struct usb_device_instance *device)
++{
++      UDCDBGA ("enable device %p, status %d", device, device->status);
++
++      /* initialize driver state variables */
++      udc_devstat = 0;
++
++      /* Save the device structure pointer */
++      udc_device = device;
++
++      /* Setup ep0 urb */
++      if (!ep0_urb) {
++              ep0_urb =
++                      usbd_alloc_urb (udc_device,
++                                      udc_device->bus->endpoint_array);
++      } else {
++              serial_printf ("udc_enable: ep0_urb already allocated %p\n",
++                             ep0_urb);
++      }
++
++#ifdef FIXME
++      /* The VBUS_MODE bit selects whether VBUS detection is done via
++       * software (1) or hardware (0).  When software detection is
++       * selected, VBUS_CTRL selects whether USB is not connected (0)
++       * or connected (1).
++       */
++      outl (inl (FUNC_MUX_CTRL_0) | UDC_VBUS_CTRL | UDC_VBUS_MODE,
++            FUNC_MUX_CTRL_0);
++      UDCREGL (FUNC_MUX_CTRL_0);
++#endif
++
++      s3c2410_configure_device(device);
++}
++
++/* Switch off the UDC */
++void udc_disable (void)
++{
++      UDCDBG ("disable UDC");
++
++      s3c2410_deconfigure_device();
++
++#ifdef FIXME
++      /* The VBUS_MODE bit selects whether VBUS detection is done via
++       * software (1) or hardware (0).  When software detection is
++       * selected, VBUS_CTRL selects whether USB is not connected (0)
++       * or connected (1).
++       */
++      outl (inl (FUNC_MUX_CTRL_0) | UDC_VBUS_MODE, FUNC_MUX_CTRL_0);
++      outl (inl (FUNC_MUX_CTRL_0) & ~UDC_VBUS_CTRL, FUNC_MUX_CTRL_0);
++      UDCREGL (FUNC_MUX_CTRL_0);
++#endif
++
++      /* Free ep0 URB */
++      if (ep0_urb) {
++              /*usbd_dealloc_urb(ep0_urb); */
++              ep0_urb = NULL;
++      }
++
++      /* Reset device pointer.
++       * We ought to do this here to balance the initialization of udc_device
++       * in udc_enable, but some of our other exported functions get called
++       * by the bus interface driver after udc_disable, so we have to hang on
++       * to the device pointer to avoid a null pointer dereference. */
++      /* udc_device = NULL; */
++}
++
++/**
++ * udc_startup - allow udc code to do any additional startup
++ */
++void udc_startup_events (struct usb_device_instance *device)
++{
++      /* The DEVICE_INIT event puts the USB device in the state STATE_INIT. */
++      usbd_device_event_irq (device, DEVICE_INIT, 0);
++
++      /* The DEVICE_CREATE event puts the USB device in the state
++       * STATE_ATTACHED.
++       */
++      usbd_device_event_irq (device, DEVICE_CREATE, 0);
++
++      /* Some USB controller driver implementations signal
++       * DEVICE_HUB_CONFIGURED and DEVICE_RESET events here.
++       * DEVICE_HUB_CONFIGURED causes a transition to the state STATE_POWERED,
++       * and DEVICE_RESET causes a transition to the state STATE_DEFAULT.
++       * The OMAP USB client controller has the capability to detect when the
++       * USB cable is connected to a powered USB bus via the ATT bit in the
++       * DEVSTAT register, so we will defer the DEVICE_HUB_CONFIGURED and
++       * DEVICE_RESET events until later.
++       */
++
++      udc_enable (device);
++}
++
++#endif
+Index: git/fs/cramfs/cramfs.c
+===================================================================
+--- git.orig/fs/cramfs/cramfs.c        2007-01-04 12:21:15.000000000 +0100
++++ git/fs/cramfs/cramfs.c     2007-01-04 12:21:18.000000000 +0100
+@@ -27,7 +27,7 @@
+ #include <common.h>
+ #include <malloc.h>
+-#if (CONFIG_COMMANDS & CFG_CMD_JFFS2)
++#if (CONFIG_COMMANDS & CFG_CMD_CRAMFS)
+ #include <asm/byteorder.h>
+ #include <linux/stat.h>
+@@ -343,5 +343,22 @@
+       }
+       return 1;
+ }
+-
++#else
++int cramfs_load (char *loadoffset, struct part_info *info, char *filename)
++{
++      return -1;
++}
++int cramfs_ls (struct part_info *info, char *filename)
++{
++      return 0;
++}
++int cramfs_info (struct part_info *info)
++{
++      return 0;
++}
++int cramfs_check (struct part_info *info)
++{
++      return 0;
++}
+ #endif /* CFG_FS_CRAMFS */
++
+Index: git/include/asm-arm/arch-s3c24x0/mmc.h
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/include/asm-arm/arch-s3c24x0/mmc.h     2007-01-04 12:21:18.000000000 +0100
+@@ -0,0 +1,112 @@
++/*
++ *  linux/drivers/mmc/mmc_pxa.h
++ *
++ *  Author: Vladimir Shebordaev, Igor Oblakov
++ *  Copyright:  MontaVista Software Inc.
++ *
++ *  $Id: mmc_pxa.h,v 0.3.1.6 2002/09/25 19:25:48 ted Exp ted $
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License version 2 as
++ *  published by the Free Software Foundation.
++ */
++#ifndef __MMC_PXA_P_H__
++#define __MMC_PXA_P_H__
++
++#include <asm/arch/regs-sdi.h>
++
++#define MMC_DEFAULT_RCA                       (1<<16)
++
++#define MMC_BLOCK_SIZE                        512
++#define MMC_CMD_RESET                 0
++#define MMC_CMD_SEND_OP_COND          1
++#define MMC_CMD_ALL_SEND_CID          2
++#define MMC_CMD_SET_RCA                       3
++#define MMC_CMD_SELECT_CARD           7
++#define MMC_CMD_SEND_CSD              9
++#define MMC_CMD_SEND_CID              10
++#define MMC_CMD_SEND_STATUS           13
++#define MMC_CMD_SET_BLOCKLEN          16
++#define MMC_CMD_READ_BLOCK            17
++#define MMC_CMD_RD_BLK_MULTI          18
++#define MMC_CMD_WRITE_BLOCK           24
++
++#define MMC_MAX_BLOCK_SIZE            512
++
++#define MMC_R1_IDLE_STATE             0x01
++#define MMC_R1_ERASE_STATE            0x02
++#define MMC_R1_ILLEGAL_CMD            0x04
++#define MMC_R1_COM_CRC_ERR            0x08
++#define MMC_R1_ERASE_SEQ_ERR          0x01
++#define MMC_R1_ADDR_ERR                       0x02
++#define MMC_R1_PARAM_ERR              0x04
++
++#define MMC_R1B_WP_ERASE_SKIP         0x0002
++#define MMC_R1B_ERR                   0x0004
++#define MMC_R1B_CC_ERR                        0x0008
++#define MMC_R1B_CARD_ECC_ERR          0x0010
++#define MMC_R1B_WP_VIOLATION          0x0020
++#define MMC_R1B_ERASE_PARAM           0x0040
++#define MMC_R1B_OOR                   0x0080
++#define MMC_R1B_IDLE_STATE            0x0100
++#define MMC_R1B_ERASE_RESET           0x0200
++#define MMC_R1B_ILLEGAL_CMD           0x0400
++#define MMC_R1B_COM_CRC_ERR           0x0800
++#define MMC_R1B_ERASE_SEQ_ERR         0x1000
++#define MMC_R1B_ADDR_ERR              0x2000
++#define MMC_R1B_PARAM_ERR             0x4000
++
++typedef struct mmc_cid
++{
++/* FIXME: BYTE_ORDER */
++   uchar year:4,
++   month:4;
++   uchar sn[3];
++   uchar fwrev:4,
++   hwrev:4;
++   uchar name[6];
++   uchar id[3];
++} mmc_cid_t;
++
++typedef struct mmc_csd
++{
++      uchar   ecc:2,
++              file_format:2,
++              tmp_write_protect:1,
++              perm_write_protect:1,
++              copy:1,
++              file_format_grp:1;
++      uint64_t content_prot_app:1,
++              rsvd3:4,
++              write_bl_partial:1,
++              write_bl_len:4,
++              r2w_factor:3,
++              default_ecc:2,
++              wp_grp_enable:1,
++              wp_grp_size:5,
++              erase_grp_mult:5,
++              erase_grp_size:5,
++              c_size_mult1:3,
++              vdd_w_curr_max:3,
++              vdd_w_curr_min:3,
++              vdd_r_curr_max:3,
++              vdd_r_curr_min:3,
++              c_size:12,
++              rsvd2:2,
++              dsr_imp:1,
++              read_blk_misalign:1,
++              write_blk_misalign:1,
++              read_bl_partial:1;
++
++      ushort  read_bl_len:4,
++              ccc:12;
++      uchar   tran_speed;
++      uchar   nsac;
++      uchar   taac;
++      uchar   rsvd1:2,
++              spec_vers:4,
++              csd_structure:2;
++} mmc_csd_t;
++
++
++#endif /* __MMC_PXA_P_H__ */
+Index: git/include/asm-arm/arch-s3c24x0/regs-sdi.h
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/include/asm-arm/arch-s3c24x0/regs-sdi.h        2007-01-04 12:21:18.000000000 +0100
+@@ -0,0 +1,110 @@
++/* linux/include/asm/arch-s3c2410/regs-sdi.h
++ *
++ * Copyright (c) 2004 Simtec Electronics <linux@simtec.co.uk>
++ *                  http://www.simtec.co.uk/products/SWLINUX/
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License version 2 as
++ * published by the Free Software Foundation.
++ *
++ * S3C2410 MMC/SDIO register definitions
++ *
++ *  Changelog:
++ *    18-Aug-2004 Ben Dooks      Created initial file
++ *    29-Nov-2004 Koen Martens   Added some missing defines, fixed duplicates
++ *    29-Nov-2004 Ben Dooks    Updated Koen's patch
++*/
++
++#ifndef __ASM_ARM_REGS_SDI
++#define __ASM_ARM_REGS_SDI "regs-sdi.h"
++
++#define S3C2440_SDICON_SDRESET        (1<<8)
++#define S3C2440_SDICON_MMCCLOCK       (1<<5)
++#define S3C2410_SDICON_BYTEORDER      (1<<4)
++#define S3C2410_SDICON_SDIOIRQ        (1<<3)
++#define S3C2410_SDICON_RWAITEN        (1<<2)
++#define S3C2410_SDICON_FIFORESET      (1<<1)
++#define S3C2410_SDICON_CLOCKTYPE      (1<<0)
++
++#define S3C2410_SDICMDCON_ABORT       (1<<12)
++#define S3C2410_SDICMDCON_WITHDATA    (1<<11)
++#define S3C2410_SDICMDCON_LONGRSP     (1<<10)
++#define S3C2410_SDICMDCON_WAITRSP     (1<<9)
++#define S3C2410_SDICMDCON_CMDSTART    (1<<8)
++#define S3C2410_SDICMDCON_SENDERHOST  (1<<6)
++#define S3C2410_SDICMDCON_INDEX       (0x3f)
++
++#define S3C2410_SDICMDSTAT_CRCFAIL    (1<<12)
++#define S3C2410_SDICMDSTAT_CMDSENT    (1<<11)
++#define S3C2410_SDICMDSTAT_CMDTIMEOUT (1<<10)
++#define S3C2410_SDICMDSTAT_RSPFIN     (1<<9)
++#define S3C2410_SDICMDSTAT_XFERING    (1<<8)
++#define S3C2410_SDICMDSTAT_INDEX      (0xff)
++
++#define S3C2440_SDIDCON_DS_BYTE       (0<<22)
++#define S3C2440_SDIDCON_DS_HALFWORD   (1<<22)
++#define S3C2440_SDIDCON_DS_WORD       (2<<22)
++#define S3C2410_SDIDCON_IRQPERIOD     (1<<21)
++#define S3C2410_SDIDCON_TXAFTERRESP   (1<<20)
++#define S3C2410_SDIDCON_RXAFTERCMD    (1<<19)
++#define S3C2410_SDIDCON_BUSYAFTERCMD  (1<<18)
++#define S3C2410_SDIDCON_BLOCKMODE     (1<<17)
++#define S3C2410_SDIDCON_WIDEBUS       (1<<16)
++#define S3C2410_SDIDCON_DMAEN         (1<<15)
++#define S3C2410_SDIDCON_STOP          (1<<14)
++#define S3C2440_SDIDCON_DATSTART      (1<<14)
++#define S3C2410_SDIDCON_DATMODE             (3<<12)
++#define S3C2410_SDIDCON_BLKNUM        (0x7ff)
++
++/* constants for S3C2410_SDIDCON_DATMODE */
++#define S3C2410_SDIDCON_XFER_READY    (0<<12)
++#define S3C2410_SDIDCON_XFER_CHKSTART (1<<12)
++#define S3C2410_SDIDCON_XFER_RXSTART  (2<<12)
++#define S3C2410_SDIDCON_XFER_TXSTART  (3<<12)
++
++#define S3C2410_SDIDCON_BLKNUM_MASK   (0xFFF)
++#define S3C2410_SDIDCNT_BLKNUM_SHIFT  (12)
++
++#define S3C2410_SDIDSTA_RDYWAITREQ    (1<<10)
++#define S3C2410_SDIDSTA_SDIOIRQDETECT (1<<9)
++#define S3C2410_SDIDSTA_FIFOFAIL      (1<<8)  /* reserved on 2440 */
++#define S3C2410_SDIDSTA_CRCFAIL       (1<<7)
++#define S3C2410_SDIDSTA_RXCRCFAIL     (1<<6)
++#define S3C2410_SDIDSTA_DATATIMEOUT   (1<<5)
++#define S3C2410_SDIDSTA_XFERFINISH    (1<<4)
++#define S3C2410_SDIDSTA_BUSYFINISH    (1<<3)
++#define S3C2410_SDIDSTA_SBITERR       (1<<2)  /* reserved on 2410a/2440 */
++#define S3C2410_SDIDSTA_TXDATAON      (1<<1)
++#define S3C2410_SDIDSTA_RXDATAON      (1<<0)
++
++#define S3C2440_SDIFSTA_FIFORESET      (1<<16)
++#define S3C2440_SDIFSTA_FIFOFAIL       (3<<14)  /* 3 is correct (2 bits) */
++#define S3C2410_SDIFSTA_TFDET          (1<<13)
++#define S3C2410_SDIFSTA_RFDET          (1<<12)
++#define S3C2410_SDIFSTA_TFHALF         (1<<11)
++#define S3C2410_SDIFSTA_TFEMPTY        (1<<10)
++#define S3C2410_SDIFSTA_RFLAST         (1<<9)
++#define S3C2410_SDIFSTA_RFFULL         (1<<8)
++#define S3C2410_SDIFSTA_RFHALF         (1<<7)
++#define S3C2410_SDIFSTA_COUNTMASK      (0x7f)
++
++#define S3C2410_SDIIMSK_RESPONSECRC    (1<<17)
++#define S3C2410_SDIIMSK_CMDSENT        (1<<16)
++#define S3C2410_SDIIMSK_CMDTIMEOUT     (1<<15)
++#define S3C2410_SDIIMSK_RESPONSEND     (1<<14)
++#define S3C2410_SDIIMSK_READWAIT       (1<<13)
++#define S3C2410_SDIIMSK_SDIOIRQ        (1<<12)
++#define S3C2410_SDIIMSK_FIFOFAIL       (1<<11)
++#define S3C2410_SDIIMSK_CRCSTATUS      (1<<10)
++#define S3C2410_SDIIMSK_DATACRC        (1<<9)
++#define S3C2410_SDIIMSK_DATATIMEOUT    (1<<8)
++#define S3C2410_SDIIMSK_DATAFINISH     (1<<7)
++#define S3C2410_SDIIMSK_BUSYFINISH     (1<<6)
++#define S3C2410_SDIIMSK_SBITERR        (1<<5) /* reserved 2440/2410a */
++#define S3C2410_SDIIMSK_TXFIFOHALF     (1<<4)
++#define S3C2410_SDIIMSK_TXFIFOEMPTY    (1<<3)
++#define S3C2410_SDIIMSK_RXFIFOLAST     (1<<2)
++#define S3C2410_SDIIMSK_RXFIFOFULL     (1<<1)
++#define S3C2410_SDIIMSK_RXFIFOHALF     (1<<0)
++
++#endif /* __ASM_ARM_REGS_SDI */
+Index: git/include/asm-arm/mach-types.h
+===================================================================
+--- git.orig/include/asm-arm/mach-types.h      2007-01-04 12:21:15.000000000 +0100
++++ git/include/asm-arm/mach-types.h   2007-01-04 12:21:18.000000000 +0100
+@@ -424,7 +424,7 @@
+ #define MACH_TYPE_MPORT3S              411
+ #define MACH_TYPE_RA_ALPHA             412
+ #define MACH_TYPE_XCEP                 413
+-#define MACH_TYPE_ARCOM_MERCURY        414
++#define MACH_TYPE_ARCOM_VULCAN         414
+ #define MACH_TYPE_STARGATE             415
+ #define MACH_TYPE_ARMADILLOJ           416
+ #define MACH_TYPE_ELROY_JACK           417
+@@ -457,7 +457,7 @@
+ #define MACH_TYPE_XM250                444
+ #define MACH_TYPE_T6TC1XB              445
+ #define MACH_TYPE_ESS710               446
+-#define MACH_TYPE_MX3ADS               447
++#define MACH_TYPE_MX31ADS              447
+ #define MACH_TYPE_HIMALAYA             448
+ #define MACH_TYPE_BOLFENK              449
+ #define MACH_TYPE_AT91RM9200KR         450
+@@ -736,7 +736,309 @@
+ #define MACH_TYPE_LN2410SBC            725
+ #define MACH_TYPE_CB3RUFC              726
+ #define MACH_TYPE_MP2USB               727
+-#define MACH_TYPE_PDNB3               1002
++#define MACH_TYPE_NTNP425C             728
++#define MACH_TYPE_COLIBRI              729
++#define MACH_TYPE_PCM7220              730
++#define MACH_TYPE_GATEWAY7001          731
++#define MACH_TYPE_PCM027               732
++#define MACH_TYPE_CMPXA                733
++#define MACH_TYPE_ANUBIS               734
++#define MACH_TYPE_ITE8152              735
++#define MACH_TYPE_LPC3XXX              736
++#define MACH_TYPE_PUPPETEER            737
++#define MACH_TYPE_MACH_VADATECH        738
++#define MACH_TYPE_E570                 739
++#define MACH_TYPE_X50                  740
++#define MACH_TYPE_RECON                741
++#define MACH_TYPE_XBOARDGP8            742
++#define MACH_TYPE_FPIC2                743
++#define MACH_TYPE_AKITA                744
++#define MACH_TYPE_A81                  745
++#define MACH_TYPE_SVM_SC25X            746
++#define MACH_TYPE_VADATECH020          747
++#define MACH_TYPE_TLI                  748
++#define MACH_TYPE_EDB9315LC            749
++#define MACH_TYPE_PASSEC               750
++#define MACH_TYPE_DS_TIGER             751
++#define MACH_TYPE_E310                 752
++#define MACH_TYPE_E330                 753
++#define MACH_TYPE_RT3000               754
++#define MACH_TYPE_NOKIA770             755
++#define MACH_TYPE_PNX0106              756
++#define MACH_TYPE_HX21XX               757
++#define MACH_TYPE_FARADAY              758
++#define MACH_TYPE_SBC9312              759
++#define MACH_TYPE_BATMAN               760
++#define MACH_TYPE_JPD201               761
++#define MACH_TYPE_MIPSA                762
++#define MACH_TYPE_KACOM                763
++#define MACH_TYPE_SWARCOCPU            764
++#define MACH_TYPE_SWARCODSL            765
++#define MACH_TYPE_BLUEANGEL            766
++#define MACH_TYPE_HAIRYGRAMA           767
++#define MACH_TYPE_BANFF                768
++#define MACH_TYPE_CARMEVA              769
++#define MACH_TYPE_SAM255               770
++#define MACH_TYPE_PPM10                771
++#define MACH_TYPE_EDB9315A             772
++#define MACH_TYPE_SUNSET               773
++#define MACH_TYPE_STARGATE2            774
++#define MACH_TYPE_INTELMOTE2           775
++#define MACH_TYPE_TRIZEPS4             776
++#define MACH_TYPE_MAINSTONE2           777
++#define MACH_TYPE_EZ_IXP42X            778
++#define MACH_TYPE_TAPWAVE_ZODIAC       779
++#define MACH_TYPE_UNIVERSALMETER       780
++#define MACH_TYPE_HICOARM9             781
++#define MACH_TYPE_PNX4008              782
++#define MACH_TYPE_KWS6000              783
++#define MACH_TYPE_PORTUX920T           784
++#define MACH_TYPE_EZ_X5                785
++#define MACH_TYPE_OMAP_RUDOLPH         786
++#define MACH_TYPE_CPUAT91              787
++#define MACH_TYPE_REA9200              788
++#define MACH_TYPE_ACTS_PUNE_SA1110     789
++#define MACH_TYPE_IXP425               790
++#define MACH_TYPE_ARGONPLUSODYSSEY     791
++#define MACH_TYPE_PERCH                792
++#define MACH_TYPE_EIS05R1              793
++#define MACH_TYPE_PEPPERPAD            794
++#define MACH_TYPE_SB3010               795
++#define MACH_TYPE_RM9200               796
++#define MACH_TYPE_DMA03                797
++#define MACH_TYPE_ROAD_S101            798
++#define MACH_TYPE_IQ_NEXTGEN_A         799
++#define MACH_TYPE_IQ_NEXTGEN_B         800
++#define MACH_TYPE_IQ_NEXTGEN_C         801
++#define MACH_TYPE_IQ_NEXTGEN_D         802
++#define MACH_TYPE_IQ_NEXTGEN_E         803
++#define MACH_TYPE_MALLOW_AT91          804
++#define MACH_TYPE_CYBERTRACKER_I       805
++#define MACH_TYPE_GESBC931X            806
++#define MACH_TYPE_CENTIPAD             807
++#define MACH_TYPE_ARMSOC               808
++#define MACH_TYPE_SE4200               809
++#define MACH_TYPE_EMS197A              810
++#define MACH_TYPE_MICRO9               811
++#define MACH_TYPE_MICRO9L              812
++#define MACH_TYPE_UC5471DSP            813
++#define MACH_TYPE_SJ5471ENG            814
++#define MACH_TYPE_CMPXA26X             815
++#define MACH_TYPE_NC                   816
++#define MACH_TYPE_OMAP_PALMTE          817
++#define MACH_TYPE_AJAX52X              818
++#define MACH_TYPE_SIRIUSTAR            819
++#define MACH_TYPE_IODATA_HDLG          820
++#define MACH_TYPE_AT91RM9200UTL        821
++#define MACH_TYPE_BIOSAFE              822
++#define MACH_TYPE_MP1000               823
++#define MACH_TYPE_PARSY                824
++#define MACH_TYPE_CCXP                 825
++#define MACH_TYPE_OMAP_GSAMPLE         826
++#define MACH_TYPE_REALVIEW_EB          827
++#define MACH_TYPE_SAMOA                828
++#define MACH_TYPE_T3XSCALE             829
++#define MACH_TYPE_I878                 830
++#define MACH_TYPE_BORZOI               831
++#define MACH_TYPE_GECKO                832
++#define MACH_TYPE_DS101                833
++#define MACH_TYPE_OMAP_PALMTT2         834
++#define MACH_TYPE_XSCALE_PALMLD        835
++#define MACH_TYPE_CC9C                 836
++#define MACH_TYPE_SBC1670              837
++#define MACH_TYPE_IXDP28X5             838
++#define MACH_TYPE_OMAP_PALMTT          839
++#define MACH_TYPE_ML696K               840
++#define MACH_TYPE_ARCOM_ZEUS           841
++#define MACH_TYPE_OSIRIS               842
++#define MACH_TYPE_MAESTRO              843
++#define MACH_TYPE_TUNGE2               844
++#define MACH_TYPE_IXBBM                845
++#define MACH_TYPE_MX27                 846
++#define MACH_TYPE_AX8004               847
++#define MACH_TYPE_AT91SAM9261EK        848
++#define MACH_TYPE_LOFT                 849
++#define MACH_TYPE_MAGPIE               850
++#define MACH_TYPE_MX21                 851
++#define MACH_TYPE_MB87M3400            852
++#define MACH_TYPE_MGUARD_DELTA         853
++#define MACH_TYPE_DAVINCI_DVDP         854
++#define MACH_TYPE_HTCUNIVERSAL         855
++#define MACH_TYPE_TPAD                 856
++#define MACH_TYPE_ROVERP3              857
++#define MACH_TYPE_JORNADA928           858
++#define MACH_TYPE_MV88FXX81            859
++#define MACH_TYPE_STMP36XX             860
++#define MACH_TYPE_SXNI79524            861
++#define MACH_TYPE_AMS_DELTA            862
++#define MACH_TYPE_URANIUM              863
++#define MACH_TYPE_UCON                 864
++#define MACH_TYPE_NAS100D              865
++#define MACH_TYPE_L083_1000            866
++#define MACH_TYPE_EZX                  867
++#define MACH_TYPE_PNX5220              868
++#define MACH_TYPE_BUTTE                869
++#define MACH_TYPE_SRM2                 870
++#define MACH_TYPE_DSBR                 871
++#define MACH_TYPE_CRYSTALBALL          872
++#define MACH_TYPE_TINYPXA27X           873
++#define MACH_TYPE_HERBIE               874
++#define MACH_TYPE_MAGICIAN             875
++#define MACH_TYPE_CM4002               876
++#define MACH_TYPE_B4                   877
++#define MACH_TYPE_MAUI                 878
++#define MACH_TYPE_CYBERTRACKER_G       879
++#define MACH_TYPE_NXDKN                880
++#define MACH_TYPE_MIO8390              881
++#define MACH_TYPE_OMI_BOARD            882
++#define MACH_TYPE_MX21CIV              883
++#define MACH_TYPE_MAHI_CDAC            884
++#define MACH_TYPE_XSCALE_PALMTX        885
++#define MACH_TYPE_S3C2413              887
++#define MACH_TYPE_SAMSYS_EP0           888
++#define MACH_TYPE_WG302V1              889
++#define MACH_TYPE_WG302V2              890
++#define MACH_TYPE_EB42X                891
++#define MACH_TYPE_IQ331ES              892
++#define MACH_TYPE_COSYDSP              893
++#define MACH_TYPE_UPLAT7D              894
++#define MACH_TYPE_PTDAVINCI            895
++#define MACH_TYPE_MBUS                 896
++#define MACH_TYPE_NADIA2VB             897
++#define MACH_TYPE_R1000                898
++#define MACH_TYPE_HW90250              899
++#define MACH_TYPE_OMAP_2430SDP         900
++#define MACH_TYPE_DAVINCI_EVM          901
++#define MACH_TYPE_OMAP_TORNADO         902
++#define MACH_TYPE_OLOCREEK             903
++#define MACH_TYPE_PALMZ72              904
++#define MACH_TYPE_NXDB500              905
++#define MACH_TYPE_APF9328              906
++#define MACH_TYPE_OMAP_WIPOQ           907
++#define MACH_TYPE_OMAP_TWIP            908
++#define MACH_TYPE_XSCALE_PALMTREO650   909
++#define MACH_TYPE_ACUMEN               910
++#define MACH_TYPE_XP100                911
++#define MACH_TYPE_FS2410               912
++#define MACH_TYPE_PXA270_CERF          913
++#define MACH_TYPE_SQ2FTLPALM           914
++#define MACH_TYPE_BSEMSERVER           915
++#define MACH_TYPE_NETCLIENT            916
++#define MACH_TYPE_XSCALE_PALMTT5       917
++#define MACH_TYPE_OMAP_PALMTC          918
++#define MACH_TYPE_OMAP_APOLLON         919
++#define MACH_TYPE_ARGONLVEVB           920
++#define MACH_TYPE_REA_2D               921
++#define MACH_TYPE_TI3E524              922
++#define MACH_TYPE_ATEB9200             923
++#define MACH_TYPE_AUCKLAND             924
++#define MACH_TYPE_AK3320M              925
++#define MACH_TYPE_DURAMAX              926
++#define MACH_TYPE_N35                  927
++#define MACH_TYPE_PRONGHORN            928
++#define MACH_TYPE_FUNDY                929
++#define MACH_TYPE_LOGICPD_PXA270       930
++#define MACH_TYPE_CPU777               931
++#define MACH_TYPE_SIMICON9201          932
++#define MACH_TYPE_LEAP2_HPM            933
++#define MACH_TYPE_CM922TXA10           934
++#define MACH_TYPE_PXA                  935
++#define MACH_TYPE_SANDGATE2            936
++#define MACH_TYPE_SANDGATE2G           937
++#define MACH_TYPE_SANDGATE2P           938
++#define MACH_TYPE_FRED_JACK            939
++#define MACH_TYPE_TTG_COLOR1           940
++#define MACH_TYPE_NXEB500HMI           941
++#define MACH_TYPE_NETDCU8              942
++#define MACH_TYPE_ML675050_CPU_BOA     943
++#define MACH_TYPE_NG_FVX538            944
++#define MACH_TYPE_NG_FVS338            945
++#define MACH_TYPE_PNX4103              946
++#define MACH_TYPE_HESDB                947
++#define MACH_TYPE_XSILO                948
++#define MACH_TYPE_ESPRESSO             949
++#define MACH_TYPE_EMLC                 950
++#define MACH_TYPE_SISTERON             951
++#define MACH_TYPE_RX1950               952
++#define MACH_TYPE_TSC_VENUS            953
++#define MACH_TYPE_DS101J               954
++#define MACH_TYPE_MXC30030ADS          955
++#define MACH_TYPE_FUJITSU_WIMAXSOC     956
++#define MACH_TYPE_DUALPCMODEM          957
++#define MACH_TYPE_GESBC9312            958
++#define MACH_TYPE_HTCAPACHE            959
++#define MACH_TYPE_IXDP435              960
++#define MACH_TYPE_CATPROVT100          961
++#define MACH_TYPE_PICOTUX1XX           962
++#define MACH_TYPE_PICOTUX2XX           963
++#define MACH_TYPE_DSMG600              964
++#define MACH_TYPE_EMPC2                965
++#define MACH_TYPE_VENTURA              966
++#define MACH_TYPE_PHIDGET_SBC          967
++#define MACH_TYPE_IJ3K                 968
++#define MACH_TYPE_PISGAH               969
++#define MACH_TYPE_OMAP_FSAMPLE         970
++#define MACH_TYPE_SG720                971
++#define MACH_TYPE_REDFOX               972
++#define MACH_TYPE_MYSH_EP9315_1        973
++#define MACH_TYPE_TPF106               974
++#define MACH_TYPE_AT91RM9200KG         975
++#define MACH_TYPE_SLEDB                976
++#define MACH_TYPE_ONTRACK              977
++#define MACH_TYPE_PM1200               978
++#define MACH_TYPE_ESS24XXX             979
++#define MACH_TYPE_COREMP7              980
++#define MACH_TYPE_NEXCODER_6446        981
++#define MACH_TYPE_STVC8380             982
++#define MACH_TYPE_TEKLYNX              983
++#define MACH_TYPE_CARBONADO            984
++#define MACH_TYPE_SYSMOS_MP730         985
++#define MACH_TYPE_SNAPPER_CL15         986
++#define MACH_TYPE_PGIGIM               987
++#define MACH_TYPE_PTX9160P2            988
++#define MACH_TYPE_DCORE1               989
++#define MACH_TYPE_VICTORPXA            990
++#define MACH_TYPE_MX2DTB               991
++#define MACH_TYPE_PXA_IREX_ER0100      992
++#define MACH_TYPE_OMAP_PALMZ71         993
++#define MACH_TYPE_BARTEC_DEG           994
++#define MACH_TYPE_HW50251              995
++#define MACH_TYPE_IBOX                 996
++#define MACH_TYPE_ATLASLH7A404         997
++#define MACH_TYPE_PT2026               998
++#define MACH_TYPE_HTCALPINE            999
++#define MACH_TYPE_BARTEC_VTU           1000
++#define MACH_TYPE_VCOREII              1001
++#define MACH_TYPE_PDNB3                1002
++#define MACH_TYPE_HTCBEETLES           1003
++#define MACH_TYPE_S3C6400              1004
++#define MACH_TYPE_S3C2443              1005
++#define MACH_TYPE_OMAP_LDK             1006
++#define MACH_TYPE_SMDK2460             1007
++#define MACH_TYPE_SMDK2440             1008
++#define MACH_TYPE_SMDK2412             1009
++#define MACH_TYPE_WEBBOX               1010
++#define MACH_TYPE_CWWNDP               1011
++#define MACH_TYPE_DRAGON               1012
++#define MACH_TYPE_OPENDO_CPU_BOARD     1013
++#define MACH_TYPE_CCM2200              1014
++#define MACH_TYPE_ETWARM               1015
++#define MACH_TYPE_M93030               1016
++#define MACH_TYPE_CC7U                 1017
++#define MACH_TYPE_MTT_RANGER           1018
++#define MACH_TYPE_NEXUS                1019
++#define MACH_TYPE_DESMAN               1020
++#define MACH_TYPE_BKDE303              1021
++#define MACH_TYPE_SMDK2413             1022
++#define MACH_TYPE_AML_M7200            1023
++#define MACH_TYPE_AML_M5900            1024
++#define MACH_TYPE_SG640                1025
++#define MACH_TYPE_EDG79524             1026
++#define MACH_TYPE_AI2410               1027
++#define MACH_TYPE_IXP465               1028
++#define MACH_TYPE_BALLOON3             1029
++#define MACH_TYPE_QT2410               1108
++#define MACH_TYPE_GTA01                1182
+ #ifdef CONFIG_ARCH_EBSA110
+ # ifdef machine_arch_type
+@@ -3541,9 +3843,9 @@
+ # else
+ #  define machine_arch_type   MACH_TYPE_RAMSES
+ # endif
+-# define machine_is_ramses()  (machine_arch_type == MACH_TYPE_RAMSES)
++# define machine_is_mnci()    (machine_arch_type == MACH_TYPE_RAMSES)
+ #else
+-# define machine_is_ramses()  (0)
++# define machine_is_mnci()    (0)
+ #endif
+ #ifdef CONFIG_ARCH_S28X
+@@ -4501,9 +4803,9 @@
+ # else
+ #  define machine_arch_type   MACH_TYPE_M825XX
+ # endif
+-# define machine_is_m825xx()  (machine_arch_type == MACH_TYPE_M825XX)
++# define machine_is_comcerto()        (machine_arch_type == MACH_TYPE_M825XX)
+ #else
+-# define machine_is_m825xx()  (0)
++# define machine_is_comcerto()        (0)
+ #endif
+ #ifdef CONFIG_SA1100_M7100
+@@ -5658,16 +5960,16 @@
+ # define machine_is_xcep()    (0)
+ #endif
+-#ifdef CONFIG_MACH_ARCOM_MERCURY
++#ifdef CONFIG_MACH_ARCOM_VULCAN
+ # ifdef machine_arch_type
+ #  undef machine_arch_type
+ #  define machine_arch_type   __machine_arch_type
+ # else
+-#  define machine_arch_type   MACH_TYPE_ARCOM_MERCURY
++#  define machine_arch_type   MACH_TYPE_ARCOM_VULCAN
+ # endif
+-# define machine_is_arcom_mercury()   (machine_arch_type == MACH_TYPE_ARCOM_MERCURY)
++# define machine_is_arcom_vulcan()    (machine_arch_type == MACH_TYPE_ARCOM_VULCAN)
+ #else
+-# define machine_is_arcom_mercury()   (0)
++# define machine_is_arcom_vulcan()    (0)
+ #endif
+ #ifdef CONFIG_MACH_STARGATE
+@@ -6054,16 +6356,16 @@
+ # define machine_is_ess710()  (0)
+ #endif
+-#ifdef CONFIG_MACH_MX3ADS
++#ifdef CONFIG_MACH_MX31ADS
+ # ifdef machine_arch_type
+ #  undef machine_arch_type
+ #  define machine_arch_type   __machine_arch_type
+ # else
+-#  define machine_arch_type   MACH_TYPE_MX3ADS
++#  define machine_arch_type   MACH_TYPE_MX31ADS
+ # endif
+-# define machine_is_mx3ads()  (machine_arch_type == MACH_TYPE_MX3ADS)
++# define machine_is_mx31ads() (machine_arch_type == MACH_TYPE_MX31ADS)
+ #else
+-# define machine_is_mx3ads()  (0)
++# define machine_is_mx31ads() (0)
+ #endif
+ #ifdef CONFIG_MACH_HIMALAYA
+@@ -7333,9 +7635,9 @@
+ # else
+ #  define machine_arch_type   MACH_TYPE_ARGONPLUSEVB
+ # endif
+-# define machine_is_argonplusevb()    (machine_arch_type == MACH_TYPE_ARGONPLUSEVB)
++# define machine_is_i30030evb()       (machine_arch_type == MACH_TYPE_ARGONPLUSEVB)
+ #else
+-# define machine_is_argonplusevb()    (0)
++# define machine_is_i30030evb()       (0)
+ #endif
+ #ifdef CONFIG_MACH_SCMA11EVB
+@@ -7345,9 +7647,9 @@
+ # else
+ #  define machine_arch_type   MACH_TYPE_SCMA11EVB
+ # endif
+-# define machine_is_scma11evb()       (machine_arch_type == MACH_TYPE_SCMA11EVB)
++# define machine_is_mxc27530evb()     (machine_arch_type == MACH_TYPE_SCMA11EVB)
+ #else
+-# define machine_is_scma11evb()       (0)
++# define machine_is_mxc27530evb()     (0)
+ #endif
+ #ifdef CONFIG_MACH_SMDK2800
+@@ -8305,9 +8607,9 @@
+ # else
+ #  define machine_arch_type   MACH_TYPE_SCMA11BB
+ # endif
+-# define machine_is_scma11bb()        (machine_arch_type == MACH_TYPE_SCMA11BB)
++# define machine_is_mxc27530ads()     (machine_arch_type == MACH_TYPE_SCMA11BB)
+ #else
+-# define machine_is_scma11bb()        (0)
++# define machine_is_mxc27530ads()     (0)
+ #endif
+ #ifdef CONFIG_MACH_TRIZEPS3
+@@ -9193,9 +9495,9 @@
+ # else
+ #  define machine_arch_type   MACH_TYPE_ZEUSEVB
+ # endif
+-# define machine_is_zeusevb() (machine_arch_type == MACH_TYPE_ZEUSEVB)
++# define machine_is_mxc91131evb()     (machine_arch_type == MACH_TYPE_ZEUSEVB)
+ #else
+-# define machine_is_zeusevb() (0)
++# define machine_is_mxc91131evb()     (0)
+ #endif
+ #ifdef CONFIG_MACH_P700
+@@ -9402,6 +9704,3643 @@
+ # define machine_is_mp2usb()  (0)
+ #endif
++#ifdef CONFIG_MACH_NTNP425C
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NTNP425C
++# endif
++# define machine_is_ntnp425c()        (machine_arch_type == MACH_TYPE_NTNP425C)
++#else
++# define machine_is_ntnp425c()        (0)
++#endif
++
++#ifdef CONFIG_MACH_COLIBRI
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_COLIBRI
++# endif
++# define machine_is_colibri() (machine_arch_type == MACH_TYPE_COLIBRI)
++#else
++# define machine_is_colibri() (0)
++#endif
++
++#ifdef CONFIG_MACH_PCM7220
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PCM7220
++# endif
++# define machine_is_pcm7220() (machine_arch_type == MACH_TYPE_PCM7220)
++#else
++# define machine_is_pcm7220() (0)
++#endif
++
++#ifdef CONFIG_MACH_GATEWAY7001
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_GATEWAY7001
++# endif
++# define machine_is_gateway7001()     (machine_arch_type == MACH_TYPE_GATEWAY7001)
++#else
++# define machine_is_gateway7001()     (0)
++#endif
++
++#ifdef CONFIG_MACH_PCM027
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PCM027
++# endif
++# define machine_is_pcm027()  (machine_arch_type == MACH_TYPE_PCM027)
++#else
++# define machine_is_pcm027()  (0)
++#endif
++
++#ifdef CONFIG_MACH_CMPXA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CMPXA
++# endif
++# define machine_is_cmpxa()   (machine_arch_type == MACH_TYPE_CMPXA)
++#else
++# define machine_is_cmpxa()   (0)
++#endif
++
++#ifdef CONFIG_MACH_ANUBIS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ANUBIS
++# endif
++# define machine_is_anubis()  (machine_arch_type == MACH_TYPE_ANUBIS)
++#else
++# define machine_is_anubis()  (0)
++#endif
++
++#ifdef CONFIG_MACH_ITE8152
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ITE8152
++# endif
++# define machine_is_ite8152() (machine_arch_type == MACH_TYPE_ITE8152)
++#else
++# define machine_is_ite8152() (0)
++#endif
++
++#ifdef CONFIG_MACH_LPC3XXX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_LPC3XXX
++# endif
++# define machine_is_lpc3xxx() (machine_arch_type == MACH_TYPE_LPC3XXX)
++#else
++# define machine_is_lpc3xxx() (0)
++#endif
++
++#ifdef CONFIG_MACH_PUPPETEER
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PUPPETEER
++# endif
++# define machine_is_puppeteer()       (machine_arch_type == MACH_TYPE_PUPPETEER)
++#else
++# define machine_is_puppeteer()       (0)
++#endif
++
++#ifdef CONFIG_MACH_MACH_VADATECH
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MACH_VADATECH
++# endif
++# define machine_is_vt001()   (machine_arch_type == MACH_TYPE_MACH_VADATECH)
++#else
++# define machine_is_vt001()   (0)
++#endif
++
++#ifdef CONFIG_MACH_E570
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_E570
++# endif
++# define machine_is_e570()    (machine_arch_type == MACH_TYPE_E570)
++#else
++# define machine_is_e570()    (0)
++#endif
++
++#ifdef CONFIG_MACH_X50
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_X50
++# endif
++# define machine_is_x50()     (machine_arch_type == MACH_TYPE_X50)
++#else
++# define machine_is_x50()     (0)
++#endif
++
++#ifdef CONFIG_MACH_RECON
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_RECON
++# endif
++# define machine_is_recon()   (machine_arch_type == MACH_TYPE_RECON)
++#else
++# define machine_is_recon()   (0)
++#endif
++
++#ifdef CONFIG_MACH_XBOARDGP8
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_XBOARDGP8
++# endif
++# define machine_is_xboardgp8()       (machine_arch_type == MACH_TYPE_XBOARDGP8)
++#else
++# define machine_is_xboardgp8()       (0)
++#endif
++
++#ifdef CONFIG_MACH_FPIC2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_FPIC2
++# endif
++# define machine_is_fpic2()   (machine_arch_type == MACH_TYPE_FPIC2)
++#else
++# define machine_is_fpic2()   (0)
++#endif
++
++#ifdef CONFIG_MACH_AKITA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AKITA
++# endif
++# define machine_is_akita()   (machine_arch_type == MACH_TYPE_AKITA)
++#else
++# define machine_is_akita()   (0)
++#endif
++
++#ifdef CONFIG_MACH_A81
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_A81
++# endif
++# define machine_is_a81()     (machine_arch_type == MACH_TYPE_A81)
++#else
++# define machine_is_a81()     (0)
++#endif
++
++#ifdef CONFIG_MACH_SVM_SC25X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SVM_SC25X
++# endif
++# define machine_is_svm_sc25x()       (machine_arch_type == MACH_TYPE_SVM_SC25X)
++#else
++# define machine_is_svm_sc25x()       (0)
++#endif
++
++#ifdef CONFIG_MACH_VADATECH020
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_VADATECH020
++# endif
++# define machine_is_vt020()   (machine_arch_type == MACH_TYPE_VADATECH020)
++#else
++# define machine_is_vt020()   (0)
++#endif
++
++#ifdef CONFIG_MACH_TLI
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TLI
++# endif
++# define machine_is_tli()     (machine_arch_type == MACH_TYPE_TLI)
++#else
++# define machine_is_tli()     (0)
++#endif
++
++#ifdef CONFIG_MACH_EDB9315LC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EDB9315LC
++# endif
++# define machine_is_edb9315lc()       (machine_arch_type == MACH_TYPE_EDB9315LC)
++#else
++# define machine_is_edb9315lc()       (0)
++#endif
++
++#ifdef CONFIG_MACH_PASSEC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PASSEC
++# endif
++# define machine_is_passec()  (machine_arch_type == MACH_TYPE_PASSEC)
++#else
++# define machine_is_passec()  (0)
++#endif
++
++#ifdef CONFIG_MACH_DS_TIGER
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DS_TIGER
++# endif
++# define machine_is_ds_tiger()        (machine_arch_type == MACH_TYPE_DS_TIGER)
++#else
++# define machine_is_ds_tiger()        (0)
++#endif
++
++#ifdef CONFIG_MACH_E310
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_E310
++# endif
++# define machine_is_e310()    (machine_arch_type == MACH_TYPE_E310)
++#else
++# define machine_is_e310()    (0)
++#endif
++
++#ifdef CONFIG_MACH_E330
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_E330
++# endif
++# define machine_is_e330()    (machine_arch_type == MACH_TYPE_E330)
++#else
++# define machine_is_e330()    (0)
++#endif
++
++#ifdef CONFIG_MACH_RT3000
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_RT3000
++# endif
++# define machine_is_rt3000()  (machine_arch_type == MACH_TYPE_RT3000)
++#else
++# define machine_is_rt3000()  (0)
++#endif
++
++#ifdef CONFIG_MACH_NOKIA770
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NOKIA770
++# endif
++# define machine_is_nokia770()        (machine_arch_type == MACH_TYPE_NOKIA770)
++#else
++# define machine_is_nokia770()        (0)
++#endif
++
++#ifdef CONFIG_MACH_PNX0106
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PNX0106
++# endif
++# define machine_is_pnx0106() (machine_arch_type == MACH_TYPE_PNX0106)
++#else
++# define machine_is_pnx0106() (0)
++#endif
++
++#ifdef CONFIG_MACH_HX21XX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HX21XX
++# endif
++# define machine_is_hx21xx()  (machine_arch_type == MACH_TYPE_HX21XX)
++#else
++# define machine_is_hx21xx()  (0)
++#endif
++
++#ifdef CONFIG_MACH_FARADAY
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_FARADAY
++# endif
++# define machine_is_faraday() (machine_arch_type == MACH_TYPE_FARADAY)
++#else
++# define machine_is_faraday() (0)
++#endif
++
++#ifdef CONFIG_MACH_SBC9312
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SBC9312
++# endif
++# define machine_is_sbc9312() (machine_arch_type == MACH_TYPE_SBC9312)
++#else
++# define machine_is_sbc9312() (0)
++#endif
++
++#ifdef CONFIG_MACH_BATMAN
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BATMAN
++# endif
++# define machine_is_batman()  (machine_arch_type == MACH_TYPE_BATMAN)
++#else
++# define machine_is_batman()  (0)
++#endif
++
++#ifdef CONFIG_MACH_JPD201
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_JPD201
++# endif
++# define machine_is_jpd201()  (machine_arch_type == MACH_TYPE_JPD201)
++#else
++# define machine_is_jpd201()  (0)
++#endif
++
++#ifdef CONFIG_MACH_MIPSA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MIPSA
++# endif
++# define machine_is_mipsa()   (machine_arch_type == MACH_TYPE_MIPSA)
++#else
++# define machine_is_mipsa()   (0)
++#endif
++
++#ifdef CONFIG_MACH_KACOM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_KACOM
++# endif
++# define machine_is_kacom()   (machine_arch_type == MACH_TYPE_KACOM)
++#else
++# define machine_is_kacom()   (0)
++#endif
++
++#ifdef CONFIG_MACH_SWARCOCPU
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SWARCOCPU
++# endif
++# define machine_is_swarcocpu()       (machine_arch_type == MACH_TYPE_SWARCOCPU)
++#else
++# define machine_is_swarcocpu()       (0)
++#endif
++
++#ifdef CONFIG_MACH_SWARCODSL
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SWARCODSL
++# endif
++# define machine_is_swarcodsl()       (machine_arch_type == MACH_TYPE_SWARCODSL)
++#else
++# define machine_is_swarcodsl()       (0)
++#endif
++
++#ifdef CONFIG_MACH_BLUEANGEL
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BLUEANGEL
++# endif
++# define machine_is_blueangel()       (machine_arch_type == MACH_TYPE_BLUEANGEL)
++#else
++# define machine_is_blueangel()       (0)
++#endif
++
++#ifdef CONFIG_MACH_HAIRYGRAMA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HAIRYGRAMA
++# endif
++# define machine_is_hairygrama()      (machine_arch_type == MACH_TYPE_HAIRYGRAMA)
++#else
++# define machine_is_hairygrama()      (0)
++#endif
++
++#ifdef CONFIG_MACH_BANFF
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BANFF
++# endif
++# define machine_is_banff()   (machine_arch_type == MACH_TYPE_BANFF)
++#else
++# define machine_is_banff()   (0)
++#endif
++
++#ifdef CONFIG_MACH_CARMEVA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CARMEVA
++# endif
++# define machine_is_carmeva() (machine_arch_type == MACH_TYPE_CARMEVA)
++#else
++# define machine_is_carmeva() (0)
++#endif
++
++#ifdef CONFIG_MACH_SAM255
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SAM255
++# endif
++# define machine_is_sam255()  (machine_arch_type == MACH_TYPE_SAM255)
++#else
++# define machine_is_sam255()  (0)
++#endif
++
++#ifdef CONFIG_MACH_PPM10
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PPM10
++# endif
++# define machine_is_ppm10()   (machine_arch_type == MACH_TYPE_PPM10)
++#else
++# define machine_is_ppm10()   (0)
++#endif
++
++#ifdef CONFIG_MACH_EDB9315A
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EDB9315A
++# endif
++# define machine_is_edb9315a()        (machine_arch_type == MACH_TYPE_EDB9315A)
++#else
++# define machine_is_edb9315a()        (0)
++#endif
++
++#ifdef CONFIG_MACH_SUNSET
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SUNSET
++# endif
++# define machine_is_sunset()  (machine_arch_type == MACH_TYPE_SUNSET)
++#else
++# define machine_is_sunset()  (0)
++#endif
++
++#ifdef CONFIG_MACH_STARGATE2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_STARGATE2
++# endif
++# define machine_is_stargate2()       (machine_arch_type == MACH_TYPE_STARGATE2)
++#else
++# define machine_is_stargate2()       (0)
++#endif
++
++#ifdef CONFIG_MACH_INTELMOTE2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_INTELMOTE2
++# endif
++# define machine_is_intelmote2()      (machine_arch_type == MACH_TYPE_INTELMOTE2)
++#else
++# define machine_is_intelmote2()      (0)
++#endif
++
++#ifdef CONFIG_MACH_TRIZEPS4
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TRIZEPS4
++# endif
++# define machine_is_trizeps4()        (machine_arch_type == MACH_TYPE_TRIZEPS4)
++#else
++# define machine_is_trizeps4()        (0)
++#endif
++
++#ifdef CONFIG_MACH_MAINSTONE2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MAINSTONE2
++# endif
++# define machine_is_mainstone2()      (machine_arch_type == MACH_TYPE_MAINSTONE2)
++#else
++# define machine_is_mainstone2()      (0)
++#endif
++
++#ifdef CONFIG_MACH_EZ_IXP42X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EZ_IXP42X
++# endif
++# define machine_is_ez_ixp42x()       (machine_arch_type == MACH_TYPE_EZ_IXP42X)
++#else
++# define machine_is_ez_ixp42x()       (0)
++#endif
++
++#ifdef CONFIG_MACH_TAPWAVE_ZODIAC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TAPWAVE_ZODIAC
++# endif
++# define machine_is_tapwave_zodiac()  (machine_arch_type == MACH_TYPE_TAPWAVE_ZODIAC)
++#else
++# define machine_is_tapwave_zodiac()  (0)
++#endif
++
++#ifdef CONFIG_MACH_UNIVERSALMETER
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_UNIVERSALMETER
++# endif
++# define machine_is_universalmeter()  (machine_arch_type == MACH_TYPE_UNIVERSALMETER)
++#else
++# define machine_is_universalmeter()  (0)
++#endif
++
++#ifdef CONFIG_MACH_HICOARM9
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HICOARM9
++# endif
++# define machine_is_hicoarm9()        (machine_arch_type == MACH_TYPE_HICOARM9)
++#else
++# define machine_is_hicoarm9()        (0)
++#endif
++
++#ifdef CONFIG_MACH_PNX4008
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PNX4008
++# endif
++# define machine_is_pnx4008() (machine_arch_type == MACH_TYPE_PNX4008)
++#else
++# define machine_is_pnx4008() (0)
++#endif
++
++#ifdef CONFIG_MACH_KWS6000
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_KWS6000
++# endif
++# define machine_is_kws6000() (machine_arch_type == MACH_TYPE_KWS6000)
++#else
++# define machine_is_kws6000() (0)
++#endif
++
++#ifdef CONFIG_MACH_PORTUX920T
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PORTUX920T
++# endif
++# define machine_is_portux920t()      (machine_arch_type == MACH_TYPE_PORTUX920T)
++#else
++# define machine_is_portux920t()      (0)
++#endif
++
++#ifdef CONFIG_MACH_EZ_X5
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EZ_X5
++# endif
++# define machine_is_ez_x5()   (machine_arch_type == MACH_TYPE_EZ_X5)
++#else
++# define machine_is_ez_x5()   (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_RUDOLPH
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_RUDOLPH
++# endif
++# define machine_is_omap_rudolph()    (machine_arch_type == MACH_TYPE_OMAP_RUDOLPH)
++#else
++# define machine_is_omap_rudolph()    (0)
++#endif
++
++#ifdef CONFIG_MACH_CPUAT91
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CPUAT91
++# endif
++# define machine_is_cpuat91() (machine_arch_type == MACH_TYPE_CPUAT91)
++#else
++# define machine_is_cpuat91() (0)
++#endif
++
++#ifdef CONFIG_MACH_REA9200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_REA9200
++# endif
++# define machine_is_rea9200() (machine_arch_type == MACH_TYPE_REA9200)
++#else
++# define machine_is_rea9200() (0)
++#endif
++
++#ifdef CONFIG_MACH_ACTS_PUNE_SA1110
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ACTS_PUNE_SA1110
++# endif
++# define machine_is_acts_pune_sa1110()        (machine_arch_type == MACH_TYPE_ACTS_PUNE_SA1110)
++#else
++# define machine_is_acts_pune_sa1110()        (0)
++#endif
++
++#ifdef CONFIG_MACH_IXP425
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IXP425
++# endif
++# define machine_is_ixp425()  (machine_arch_type == MACH_TYPE_IXP425)
++#else
++# define machine_is_ixp425()  (0)
++#endif
++
++#ifdef CONFIG_MACH_ARGONPLUSODYSSEY
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ARGONPLUSODYSSEY
++# endif
++# define machine_is_i30030ads()       (machine_arch_type == MACH_TYPE_ARGONPLUSODYSSEY)
++#else
++# define machine_is_i30030ads()       (0)
++#endif
++
++#ifdef CONFIG_MACH_PERCH
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PERCH
++# endif
++# define machine_is_perch()   (machine_arch_type == MACH_TYPE_PERCH)
++#else
++# define machine_is_perch()   (0)
++#endif
++
++#ifdef CONFIG_MACH_EIS05R1
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EIS05R1
++# endif
++# define machine_is_eis05r1() (machine_arch_type == MACH_TYPE_EIS05R1)
++#else
++# define machine_is_eis05r1() (0)
++#endif
++
++#ifdef CONFIG_MACH_PEPPERPAD
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PEPPERPAD
++# endif
++# define machine_is_pepperpad()       (machine_arch_type == MACH_TYPE_PEPPERPAD)
++#else
++# define machine_is_pepperpad()       (0)
++#endif
++
++#ifdef CONFIG_MACH_SB3010
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SB3010
++# endif
++# define machine_is_sb3010()  (machine_arch_type == MACH_TYPE_SB3010)
++#else
++# define machine_is_sb3010()  (0)
++#endif
++
++#ifdef CONFIG_MACH_RM9200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_RM9200
++# endif
++# define machine_is_rm9200()  (machine_arch_type == MACH_TYPE_RM9200)
++#else
++# define machine_is_rm9200()  (0)
++#endif
++
++#ifdef CONFIG_MACH_DMA03
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DMA03
++# endif
++# define machine_is_dma03()   (machine_arch_type == MACH_TYPE_DMA03)
++#else
++# define machine_is_dma03()   (0)
++#endif
++
++#ifdef CONFIG_MACH_ROAD_S101
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ROAD_S101
++# endif
++# define machine_is_road_s101()       (machine_arch_type == MACH_TYPE_ROAD_S101)
++#else
++# define machine_is_road_s101()       (0)
++#endif
++
++#ifdef CONFIG_MACH_IQ_NEXTGEN_A
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IQ_NEXTGEN_A
++# endif
++# define machine_is_iq_nextgen_a()    (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_A)
++#else
++# define machine_is_iq_nextgen_a()    (0)
++#endif
++
++#ifdef CONFIG_MACH_IQ_NEXTGEN_B
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IQ_NEXTGEN_B
++# endif
++# define machine_is_iq_nextgen_b()    (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_B)
++#else
++# define machine_is_iq_nextgen_b()    (0)
++#endif
++
++#ifdef CONFIG_MACH_IQ_NEXTGEN_C
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IQ_NEXTGEN_C
++# endif
++# define machine_is_iq_nextgen_c()    (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_C)
++#else
++# define machine_is_iq_nextgen_c()    (0)
++#endif
++
++#ifdef CONFIG_MACH_IQ_NEXTGEN_D
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IQ_NEXTGEN_D
++# endif
++# define machine_is_iq_nextgen_d()    (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_D)
++#else
++# define machine_is_iq_nextgen_d()    (0)
++#endif
++
++#ifdef CONFIG_MACH_IQ_NEXTGEN_E
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IQ_NEXTGEN_E
++# endif
++# define machine_is_iq_nextgen_e()    (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_E)
++#else
++# define machine_is_iq_nextgen_e()    (0)
++#endif
++
++#ifdef CONFIG_MACH_MALLOW_AT91
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MALLOW_AT91
++# endif
++# define machine_is_mallow_at91()     (machine_arch_type == MACH_TYPE_MALLOW_AT91)
++#else
++# define machine_is_mallow_at91()     (0)
++#endif
++
++#ifdef CONFIG_MACH_CYBERTRACKER_I
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CYBERTRACKER_I
++# endif
++# define machine_is_cybertracker_i()  (machine_arch_type == MACH_TYPE_CYBERTRACKER_I)
++#else
++# define machine_is_cybertracker_i()  (0)
++#endif
++
++#ifdef CONFIG_MACH_GESBC931X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_GESBC931X
++# endif
++# define machine_is_gesbc931x()       (machine_arch_type == MACH_TYPE_GESBC931X)
++#else
++# define machine_is_gesbc931x()       (0)
++#endif
++
++#ifdef CONFIG_MACH_CENTIPAD
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CENTIPAD
++# endif
++# define machine_is_centipad()        (machine_arch_type == MACH_TYPE_CENTIPAD)
++#else
++# define machine_is_centipad()        (0)
++#endif
++
++#ifdef CONFIG_MACH_ARMSOC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ARMSOC
++# endif
++# define machine_is_armsoc()  (machine_arch_type == MACH_TYPE_ARMSOC)
++#else
++# define machine_is_armsoc()  (0)
++#endif
++
++#ifdef CONFIG_MACH_SE4200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SE4200
++# endif
++# define machine_is_se4200()  (machine_arch_type == MACH_TYPE_SE4200)
++#else
++# define machine_is_se4200()  (0)
++#endif
++
++#ifdef CONFIG_MACH_EMS197A
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EMS197A
++# endif
++# define machine_is_ems197a() (machine_arch_type == MACH_TYPE_EMS197A)
++#else
++# define machine_is_ems197a() (0)
++#endif
++
++#ifdef CONFIG_MACH_MICRO9
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MICRO9
++# endif
++# define machine_is_micro9()  (machine_arch_type == MACH_TYPE_MICRO9)
++#else
++# define machine_is_micro9()  (0)
++#endif
++
++#ifdef CONFIG_MACH_MICRO9L
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MICRO9L
++# endif
++# define machine_is_micro9l() (machine_arch_type == MACH_TYPE_MICRO9L)
++#else
++# define machine_is_micro9l() (0)
++#endif
++
++#ifdef CONFIG_MACH_UC5471DSP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_UC5471DSP
++# endif
++# define machine_is_uc5471dsp()       (machine_arch_type == MACH_TYPE_UC5471DSP)
++#else
++# define machine_is_uc5471dsp()       (0)
++#endif
++
++#ifdef CONFIG_MACH_SJ5471ENG
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SJ5471ENG
++# endif
++# define machine_is_sj5471eng()       (machine_arch_type == MACH_TYPE_SJ5471ENG)
++#else
++# define machine_is_sj5471eng()       (0)
++#endif
++
++#ifdef CONFIG_MACH_CMPXA26X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CMPXA26X
++# endif
++# define machine_is_none()    (machine_arch_type == MACH_TYPE_CMPXA26X)
++#else
++# define machine_is_none()    (0)
++#endif
++
++#ifdef CONFIG_MACH_NC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NC
++# endif
++# define machine_is_nc1()     (machine_arch_type == MACH_TYPE_NC)
++#else
++# define machine_is_nc1()     (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_PALMTE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_PALMTE
++# endif
++# define machine_is_omap_palmte()     (machine_arch_type == MACH_TYPE_OMAP_PALMTE)
++#else
++# define machine_is_omap_palmte()     (0)
++#endif
++
++#ifdef CONFIG_MACH_AJAX52X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AJAX52X
++# endif
++# define machine_is_ajax52x() (machine_arch_type == MACH_TYPE_AJAX52X)
++#else
++# define machine_is_ajax52x() (0)
++#endif
++
++#ifdef CONFIG_MACH_SIRIUSTAR
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SIRIUSTAR
++# endif
++# define machine_is_siriustar()       (machine_arch_type == MACH_TYPE_SIRIUSTAR)
++#else
++# define machine_is_siriustar()       (0)
++#endif
++
++#ifdef CONFIG_MACH_IODATA_HDLG
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IODATA_HDLG
++# endif
++# define machine_is_iodata_hdlg()     (machine_arch_type == MACH_TYPE_IODATA_HDLG)
++#else
++# define machine_is_iodata_hdlg()     (0)
++#endif
++
++#ifdef CONFIG_MACH_AT91RM9200UTL
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AT91RM9200UTL
++# endif
++# define machine_is_at91rm9200utl()   (machine_arch_type == MACH_TYPE_AT91RM9200UTL)
++#else
++# define machine_is_at91rm9200utl()   (0)
++#endif
++
++#ifdef CONFIG_MACH_BIOSAFE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BIOSAFE
++# endif
++# define machine_is_biosafe() (machine_arch_type == MACH_TYPE_BIOSAFE)
++#else
++# define machine_is_biosafe() (0)
++#endif
++
++#ifdef CONFIG_MACH_MP1000
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MP1000
++# endif
++# define machine_is_mp1000()  (machine_arch_type == MACH_TYPE_MP1000)
++#else
++# define machine_is_mp1000()  (0)
++#endif
++
++#ifdef CONFIG_MACH_PARSY
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PARSY
++# endif
++# define machine_is_parsy()   (machine_arch_type == MACH_TYPE_PARSY)
++#else
++# define machine_is_parsy()   (0)
++#endif
++
++#ifdef CONFIG_MACH_CCXP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CCXP
++# endif
++# define machine_is_ccxp270() (machine_arch_type == MACH_TYPE_CCXP)
++#else
++# define machine_is_ccxp270() (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_GSAMPLE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_GSAMPLE
++# endif
++# define machine_is_omap_gsample()    (machine_arch_type == MACH_TYPE_OMAP_GSAMPLE)
++#else
++# define machine_is_omap_gsample()    (0)
++#endif
++
++#ifdef CONFIG_MACH_REALVIEW_EB
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_REALVIEW_EB
++# endif
++# define machine_is_realview_eb()     (machine_arch_type == MACH_TYPE_REALVIEW_EB)
++#else
++# define machine_is_realview_eb()     (0)
++#endif
++
++#ifdef CONFIG_MACH_SAMOA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SAMOA
++# endif
++# define machine_is_samoa()   (machine_arch_type == MACH_TYPE_SAMOA)
++#else
++# define machine_is_samoa()   (0)
++#endif
++
++#ifdef CONFIG_MACH_T3XSCALE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_T3XSCALE
++# endif
++# define machine_is_t3xscale()        (machine_arch_type == MACH_TYPE_T3XSCALE)
++#else
++# define machine_is_t3xscale()        (0)
++#endif
++
++#ifdef CONFIG_MACH_I878
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_I878
++# endif
++# define machine_is_i878()    (machine_arch_type == MACH_TYPE_I878)
++#else
++# define machine_is_i878()    (0)
++#endif
++
++#ifdef CONFIG_MACH_BORZOI
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BORZOI
++# endif
++# define machine_is_borzoi()  (machine_arch_type == MACH_TYPE_BORZOI)
++#else
++# define machine_is_borzoi()  (0)
++#endif
++
++#ifdef CONFIG_MACH_GECKO
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_GECKO
++# endif
++# define machine_is_gecko()   (machine_arch_type == MACH_TYPE_GECKO)
++#else
++# define machine_is_gecko()   (0)
++#endif
++
++#ifdef CONFIG_MACH_DS101
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DS101
++# endif
++# define machine_is_ds101()   (machine_arch_type == MACH_TYPE_DS101)
++#else
++# define machine_is_ds101()   (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_PALMTT2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_PALMTT2
++# endif
++# define machine_is_omap_palmtt2()    (machine_arch_type == MACH_TYPE_OMAP_PALMTT2)
++#else
++# define machine_is_omap_palmtt2()    (0)
++#endif
++
++#ifdef CONFIG_MACH_XSCALE_PALMLD
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_XSCALE_PALMLD
++# endif
++# define machine_is_xscale_palmld()   (machine_arch_type == MACH_TYPE_XSCALE_PALMLD)
++#else
++# define machine_is_xscale_palmld()   (0)
++#endif
++
++#ifdef CONFIG_MACH_CC9C
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CC9C
++# endif
++# define machine_is_cc9c()    (machine_arch_type == MACH_TYPE_CC9C)
++#else
++# define machine_is_cc9c()    (0)
++#endif
++
++#ifdef CONFIG_MACH_SBC1670
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SBC1670
++# endif
++# define machine_is_sbc1670() (machine_arch_type == MACH_TYPE_SBC1670)
++#else
++# define machine_is_sbc1670() (0)
++#endif
++
++#ifdef CONFIG_MACH_IXDP28X5
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IXDP28X5
++# endif
++# define machine_is_ixdp28x5()        (machine_arch_type == MACH_TYPE_IXDP28X5)
++#else
++# define machine_is_ixdp28x5()        (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_PALMTT
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_PALMTT
++# endif
++# define machine_is_omap_palmtt()     (machine_arch_type == MACH_TYPE_OMAP_PALMTT)
++#else
++# define machine_is_omap_palmtt()     (0)
++#endif
++
++#ifdef CONFIG_MACH_ML696K
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ML696K
++# endif
++# define machine_is_ml696k()  (machine_arch_type == MACH_TYPE_ML696K)
++#else
++# define machine_is_ml696k()  (0)
++#endif
++
++#ifdef CONFIG_MACH_ARCOM_ZEUS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ARCOM_ZEUS
++# endif
++# define machine_is_arcom_zeus()      (machine_arch_type == MACH_TYPE_ARCOM_ZEUS)
++#else
++# define machine_is_arcom_zeus()      (0)
++#endif
++
++#ifdef CONFIG_MACH_OSIRIS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OSIRIS
++# endif
++# define machine_is_osiris()  (machine_arch_type == MACH_TYPE_OSIRIS)
++#else
++# define machine_is_osiris()  (0)
++#endif
++
++#ifdef CONFIG_MACH_MAESTRO
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MAESTRO
++# endif
++# define machine_is_maestro() (machine_arch_type == MACH_TYPE_MAESTRO)
++#else
++# define machine_is_maestro() (0)
++#endif
++
++#ifdef CONFIG_MACH_TUNGE2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TUNGE2
++# endif
++# define machine_is_tunge2()  (machine_arch_type == MACH_TYPE_TUNGE2)
++#else
++# define machine_is_tunge2()  (0)
++#endif
++
++#ifdef CONFIG_MACH_IXBBM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IXBBM
++# endif
++# define machine_is_ixbbm()   (machine_arch_type == MACH_TYPE_IXBBM)
++#else
++# define machine_is_ixbbm()   (0)
++#endif
++
++#ifdef CONFIG_MACH_MX27
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MX27
++# endif
++# define machine_is_mx27ads() (machine_arch_type == MACH_TYPE_MX27)
++#else
++# define machine_is_mx27ads() (0)
++#endif
++
++#ifdef CONFIG_MACH_AX8004
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AX8004
++# endif
++# define machine_is_ax8004()  (machine_arch_type == MACH_TYPE_AX8004)
++#else
++# define machine_is_ax8004()  (0)
++#endif
++
++#ifdef CONFIG_MACH_AT91SAM9261EK
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AT91SAM9261EK
++# endif
++# define machine_is_at91sam9261ek()   (machine_arch_type == MACH_TYPE_AT91SAM9261EK)
++#else
++# define machine_is_at91sam9261ek()   (0)
++#endif
++
++#ifdef CONFIG_MACH_LOFT
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_LOFT
++# endif
++# define machine_is_loft()    (machine_arch_type == MACH_TYPE_LOFT)
++#else
++# define machine_is_loft()    (0)
++#endif
++
++#ifdef CONFIG_MACH_MAGPIE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MAGPIE
++# endif
++# define machine_is_magpie()  (machine_arch_type == MACH_TYPE_MAGPIE)
++#else
++# define machine_is_magpie()  (0)
++#endif
++
++#ifdef CONFIG_MACH_MX21
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MX21
++# endif
++# define machine_is_mx21ads() (machine_arch_type == MACH_TYPE_MX21)
++#else
++# define machine_is_mx21ads() (0)
++#endif
++
++#ifdef CONFIG_MACH_MB87M3400
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MB87M3400
++# endif
++# define machine_is_mb87m3400()       (machine_arch_type == MACH_TYPE_MB87M3400)
++#else
++# define machine_is_mb87m3400()       (0)
++#endif
++
++#ifdef CONFIG_MACH_MGUARD_DELTA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MGUARD_DELTA
++# endif
++# define machine_is_mguard_delta()    (machine_arch_type == MACH_TYPE_MGUARD_DELTA)
++#else
++# define machine_is_mguard_delta()    (0)
++#endif
++
++#ifdef CONFIG_MACH_DAVINCI_DVDP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DAVINCI_DVDP
++# endif
++# define machine_is_davinci_dvdp()    (machine_arch_type == MACH_TYPE_DAVINCI_DVDP)
++#else
++# define machine_is_davinci_dvdp()    (0)
++#endif
++
++#ifdef CONFIG_MACH_HTCUNIVERSAL
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HTCUNIVERSAL
++# endif
++# define machine_is_htcuniversal()    (machine_arch_type == MACH_TYPE_HTCUNIVERSAL)
++#else
++# define machine_is_htcuniversal()    (0)
++#endif
++
++#ifdef CONFIG_MACH_TPAD
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TPAD
++# endif
++# define machine_is_tpad()    (machine_arch_type == MACH_TYPE_TPAD)
++#else
++# define machine_is_tpad()    (0)
++#endif
++
++#ifdef CONFIG_MACH_ROVERP3
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ROVERP3
++# endif
++# define machine_is_roverp3() (machine_arch_type == MACH_TYPE_ROVERP3)
++#else
++# define machine_is_roverp3() (0)
++#endif
++
++#ifdef CONFIG_MACH_JORNADA928
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_JORNADA928
++# endif
++# define machine_is_jornada928()      (machine_arch_type == MACH_TYPE_JORNADA928)
++#else
++# define machine_is_jornada928()      (0)
++#endif
++
++#ifdef CONFIG_MACH_MV88FXX81
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MV88FXX81
++# endif
++# define machine_is_mv88fxx81()       (machine_arch_type == MACH_TYPE_MV88FXX81)
++#else
++# define machine_is_mv88fxx81()       (0)
++#endif
++
++#ifdef CONFIG_MACH_STMP36XX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_STMP36XX
++# endif
++# define machine_is_stmp36xx()        (machine_arch_type == MACH_TYPE_STMP36XX)
++#else
++# define machine_is_stmp36xx()        (0)
++#endif
++
++#ifdef CONFIG_MACH_SXNI79524
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SXNI79524
++# endif
++# define machine_is_sxni79524()       (machine_arch_type == MACH_TYPE_SXNI79524)
++#else
++# define machine_is_sxni79524()       (0)
++#endif
++
++#ifdef CONFIG_MACH_AMS_DELTA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AMS_DELTA
++# endif
++# define machine_is_ams_delta()       (machine_arch_type == MACH_TYPE_AMS_DELTA)
++#else
++# define machine_is_ams_delta()       (0)
++#endif
++
++#ifdef CONFIG_MACH_URANIUM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_URANIUM
++# endif
++# define machine_is_uranium() (machine_arch_type == MACH_TYPE_URANIUM)
++#else
++# define machine_is_uranium() (0)
++#endif
++
++#ifdef CONFIG_MACH_UCON
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_UCON
++# endif
++# define machine_is_ucon()    (machine_arch_type == MACH_TYPE_UCON)
++#else
++# define machine_is_ucon()    (0)
++#endif
++
++#ifdef CONFIG_MACH_NAS100D
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NAS100D
++# endif
++# define machine_is_nas100d() (machine_arch_type == MACH_TYPE_NAS100D)
++#else
++# define machine_is_nas100d() (0)
++#endif
++
++#ifdef CONFIG_MACH_L083_1000
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_L083_1000
++# endif
++# define machine_is_l083()    (machine_arch_type == MACH_TYPE_L083_1000)
++#else
++# define machine_is_l083()    (0)
++#endif
++
++#ifdef CONFIG_MACH_EZX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EZX
++# endif
++# define machine_is_ezx()     (machine_arch_type == MACH_TYPE_EZX)
++#else
++# define machine_is_ezx()     (0)
++#endif
++
++#ifdef CONFIG_MACH_PNX5220
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PNX5220
++# endif
++# define machine_is_pnx5220() (machine_arch_type == MACH_TYPE_PNX5220)
++#else
++# define machine_is_pnx5220() (0)
++#endif
++
++#ifdef CONFIG_MACH_BUTTE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BUTTE
++# endif
++# define machine_is_butte()   (machine_arch_type == MACH_TYPE_BUTTE)
++#else
++# define machine_is_butte()   (0)
++#endif
++
++#ifdef CONFIG_MACH_SRM2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SRM2
++# endif
++# define machine_is_srm2()    (machine_arch_type == MACH_TYPE_SRM2)
++#else
++# define machine_is_srm2()    (0)
++#endif
++
++#ifdef CONFIG_MACH_DSBR
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DSBR
++# endif
++# define machine_is_dsbr()    (machine_arch_type == MACH_TYPE_DSBR)
++#else
++# define machine_is_dsbr()    (0)
++#endif
++
++#ifdef CONFIG_MACH_CRYSTALBALL
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CRYSTALBALL
++# endif
++# define machine_is_crystalball()     (machine_arch_type == MACH_TYPE_CRYSTALBALL)
++#else
++# define machine_is_crystalball()     (0)
++#endif
++
++#ifdef CONFIG_MACH_TINYPXA27X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TINYPXA27X
++# endif
++# define machine_is_tinypxa27x()      (machine_arch_type == MACH_TYPE_TINYPXA27X)
++#else
++# define machine_is_tinypxa27x()      (0)
++#endif
++
++#ifdef CONFIG_MACH_HERBIE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HERBIE
++# endif
++# define machine_is_herbie()  (machine_arch_type == MACH_TYPE_HERBIE)
++#else
++# define machine_is_herbie()  (0)
++#endif
++
++#ifdef CONFIG_MACH_MAGICIAN
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MAGICIAN
++# endif
++# define machine_is_magician()        (machine_arch_type == MACH_TYPE_MAGICIAN)
++#else
++# define machine_is_magician()        (0)
++#endif
++
++#ifdef CONFIG_MACH_CM4002
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CM4002
++# endif
++# define machine_is_cm4002()  (machine_arch_type == MACH_TYPE_CM4002)
++#else
++# define machine_is_cm4002()  (0)
++#endif
++
++#ifdef CONFIG_MACH_B4
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_B4
++# endif
++# define machine_is_b4()      (machine_arch_type == MACH_TYPE_B4)
++#else
++# define machine_is_b4()      (0)
++#endif
++
++#ifdef CONFIG_MACH_MAUI
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MAUI
++# endif
++# define machine_is_maui()    (machine_arch_type == MACH_TYPE_MAUI)
++#else
++# define machine_is_maui()    (0)
++#endif
++
++#ifdef CONFIG_MACH_CYBERTRACKER_G
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CYBERTRACKER_G
++# endif
++# define machine_is_cybertracker_g()  (machine_arch_type == MACH_TYPE_CYBERTRACKER_G)
++#else
++# define machine_is_cybertracker_g()  (0)
++#endif
++
++#ifdef CONFIG_MACH_NXDKN
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NXDKN
++# endif
++# define machine_is_nxdkn()   (machine_arch_type == MACH_TYPE_NXDKN)
++#else
++# define machine_is_nxdkn()   (0)
++#endif
++
++#ifdef CONFIG_MACH_MIO8390
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MIO8390
++# endif
++# define machine_is_mio8390() (machine_arch_type == MACH_TYPE_MIO8390)
++#else
++# define machine_is_mio8390() (0)
++#endif
++
++#ifdef CONFIG_MACH_OMI_BOARD
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMI_BOARD
++# endif
++# define machine_is_omi_board()       (machine_arch_type == MACH_TYPE_OMI_BOARD)
++#else
++# define machine_is_omi_board()       (0)
++#endif
++
++#ifdef CONFIG_MACH_MX21CIV
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MX21CIV
++# endif
++# define machine_is_mx21civ() (machine_arch_type == MACH_TYPE_MX21CIV)
++#else
++# define machine_is_mx21civ() (0)
++#endif
++
++#ifdef CONFIG_MACH_MAHI_CDAC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MAHI_CDAC
++# endif
++# define machine_is_mahi_cdac()       (machine_arch_type == MACH_TYPE_MAHI_CDAC)
++#else
++# define machine_is_mahi_cdac()       (0)
++#endif
++
++#ifdef CONFIG_MACH_XSCALE_PALMTX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_XSCALE_PALMTX
++# endif
++# define machine_is_xscale_palmtx()   (machine_arch_type == MACH_TYPE_XSCALE_PALMTX)
++#else
++# define machine_is_xscale_palmtx()   (0)
++#endif
++
++#ifdef CONFIG_MACH_S3C2413
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_S3C2413
++# endif
++# define machine_is_s3c2413() (machine_arch_type == MACH_TYPE_S3C2413)
++#else
++# define machine_is_s3c2413() (0)
++#endif
++
++#ifdef CONFIG_MACH_SAMSYS_EP0
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SAMSYS_EP0
++# endif
++# define machine_is_samsys_ep0()      (machine_arch_type == MACH_TYPE_SAMSYS_EP0)
++#else
++# define machine_is_samsys_ep0()      (0)
++#endif
++
++#ifdef CONFIG_MACH_WG302V1
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_WG302V1
++# endif
++# define machine_is_wg302v1() (machine_arch_type == MACH_TYPE_WG302V1)
++#else
++# define machine_is_wg302v1() (0)
++#endif
++
++#ifdef CONFIG_MACH_WG302V2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_WG302V2
++# endif
++# define machine_is_wg302v2() (machine_arch_type == MACH_TYPE_WG302V2)
++#else
++# define machine_is_wg302v2() (0)
++#endif
++
++#ifdef CONFIG_MACH_EB42X
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EB42X
++# endif
++# define machine_is_eb42x()   (machine_arch_type == MACH_TYPE_EB42X)
++#else
++# define machine_is_eb42x()   (0)
++#endif
++
++#ifdef CONFIG_MACH_IQ331ES
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IQ331ES
++# endif
++# define machine_is_iq331es() (machine_arch_type == MACH_TYPE_IQ331ES)
++#else
++# define machine_is_iq331es() (0)
++#endif
++
++#ifdef CONFIG_MACH_COSYDSP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_COSYDSP
++# endif
++# define machine_is_cosydsp() (machine_arch_type == MACH_TYPE_COSYDSP)
++#else
++# define machine_is_cosydsp() (0)
++#endif
++
++#ifdef CONFIG_MACH_UPLAT7D
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_UPLAT7D
++# endif
++# define machine_is_uplat7d_proto()   (machine_arch_type == MACH_TYPE_UPLAT7D)
++#else
++# define machine_is_uplat7d_proto()   (0)
++#endif
++
++#ifdef CONFIG_MACH_PTDAVINCI
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PTDAVINCI
++# endif
++# define machine_is_ptdavinci()       (machine_arch_type == MACH_TYPE_PTDAVINCI)
++#else
++# define machine_is_ptdavinci()       (0)
++#endif
++
++#ifdef CONFIG_MACH_MBUS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MBUS
++# endif
++# define machine_is_mbus()    (machine_arch_type == MACH_TYPE_MBUS)
++#else
++# define machine_is_mbus()    (0)
++#endif
++
++#ifdef CONFIG_MACH_NADIA2VB
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NADIA2VB
++# endif
++# define machine_is_nadia2vb()        (machine_arch_type == MACH_TYPE_NADIA2VB)
++#else
++# define machine_is_nadia2vb()        (0)
++#endif
++
++#ifdef CONFIG_MACH_R1000
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_R1000
++# endif
++# define machine_is_r1000()   (machine_arch_type == MACH_TYPE_R1000)
++#else
++# define machine_is_r1000()   (0)
++#endif
++
++#ifdef CONFIG_MACH_HW90250
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HW90250
++# endif
++# define machine_is_hw90250() (machine_arch_type == MACH_TYPE_HW90250)
++#else
++# define machine_is_hw90250() (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_2430SDP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_2430SDP
++# endif
++# define machine_is_omap_2430sdp()    (machine_arch_type == MACH_TYPE_OMAP_2430SDP)
++#else
++# define machine_is_omap_2430sdp()    (0)
++#endif
++
++#ifdef CONFIG_MACH_DAVINCI_EVM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DAVINCI_EVM
++# endif
++# define machine_is_davinci_evm()     (machine_arch_type == MACH_TYPE_DAVINCI_EVM)
++#else
++# define machine_is_davinci_evm()     (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_TORNADO
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_TORNADO
++# endif
++# define machine_is_omap_tornado()    (machine_arch_type == MACH_TYPE_OMAP_TORNADO)
++#else
++# define machine_is_omap_tornado()    (0)
++#endif
++
++#ifdef CONFIG_MACH_OLOCREEK
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OLOCREEK
++# endif
++# define machine_is_olocreek()        (machine_arch_type == MACH_TYPE_OLOCREEK)
++#else
++# define machine_is_olocreek()        (0)
++#endif
++
++#ifdef CONFIG_MACH_PALMZ72
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PALMZ72
++# endif
++# define machine_is_palmz72() (machine_arch_type == MACH_TYPE_PALMZ72)
++#else
++# define machine_is_palmz72() (0)
++#endif
++
++#ifdef CONFIG_MACH_NXDB500
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NXDB500
++# endif
++# define machine_is_nxdb500() (machine_arch_type == MACH_TYPE_NXDB500)
++#else
++# define machine_is_nxdb500() (0)
++#endif
++
++#ifdef CONFIG_MACH_APF9328
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_APF9328
++# endif
++# define machine_is_apf9328() (machine_arch_type == MACH_TYPE_APF9328)
++#else
++# define machine_is_apf9328() (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_WIPOQ
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_WIPOQ
++# endif
++# define machine_is_omap_wipoq()      (machine_arch_type == MACH_TYPE_OMAP_WIPOQ)
++#else
++# define machine_is_omap_wipoq()      (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_TWIP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_TWIP
++# endif
++# define machine_is_omap_twip()       (machine_arch_type == MACH_TYPE_OMAP_TWIP)
++#else
++# define machine_is_omap_twip()       (0)
++#endif
++
++#ifdef CONFIG_MACH_XSCALE_PALMTREO650
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_XSCALE_PALMTREO650
++# endif
++# define machine_is_xscale_treo650()  (machine_arch_type == MACH_TYPE_XSCALE_PALMTREO650)
++#else
++# define machine_is_xscale_treo650()  (0)
++#endif
++
++#ifdef CONFIG_MACH_ACUMEN
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ACUMEN
++# endif
++# define machine_is_acumen()  (machine_arch_type == MACH_TYPE_ACUMEN)
++#else
++# define machine_is_acumen()  (0)
++#endif
++
++#ifdef CONFIG_MACH_XP100
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_XP100
++# endif
++# define machine_is_xp100()   (machine_arch_type == MACH_TYPE_XP100)
++#else
++# define machine_is_xp100()   (0)
++#endif
++
++#ifdef CONFIG_MACH_FS2410
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_FS2410
++# endif
++# define machine_is_fs2410()  (machine_arch_type == MACH_TYPE_FS2410)
++#else
++# define machine_is_fs2410()  (0)
++#endif
++
++#ifdef CONFIG_MACH_PXA270_CERF
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PXA270_CERF
++# endif
++# define machine_is_pxa270_cerf()     (machine_arch_type == MACH_TYPE_PXA270_CERF)
++#else
++# define machine_is_pxa270_cerf()     (0)
++#endif
++
++#ifdef CONFIG_MACH_SQ2FTLPALM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SQ2FTLPALM
++# endif
++# define machine_is_sq2ftlpalm()      (machine_arch_type == MACH_TYPE_SQ2FTLPALM)
++#else
++# define machine_is_sq2ftlpalm()      (0)
++#endif
++
++#ifdef CONFIG_MACH_BSEMSERVER
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BSEMSERVER
++# endif
++# define machine_is_bsemserver()      (machine_arch_type == MACH_TYPE_BSEMSERVER)
++#else
++# define machine_is_bsemserver()      (0)
++#endif
++
++#ifdef CONFIG_MACH_NETCLIENT
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NETCLIENT
++# endif
++# define machine_is_netclient()       (machine_arch_type == MACH_TYPE_NETCLIENT)
++#else
++# define machine_is_netclient()       (0)
++#endif
++
++#ifdef CONFIG_MACH_XSCALE_PALMTT5
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_XSCALE_PALMTT5
++# endif
++# define machine_is_xscale_palmtt5()  (machine_arch_type == MACH_TYPE_XSCALE_PALMTT5)
++#else
++# define machine_is_xscale_palmtt5()  (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_PALMTC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_PALMTC
++# endif
++# define machine_is_xscale_palmtc()   (machine_arch_type == MACH_TYPE_OMAP_PALMTC)
++#else
++# define machine_is_xscale_palmtc()   (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_APOLLON
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_APOLLON
++# endif
++# define machine_is_omap_apollon()    (machine_arch_type == MACH_TYPE_OMAP_APOLLON)
++#else
++# define machine_is_omap_apollon()    (0)
++#endif
++
++#ifdef CONFIG_MACH_ARGONLVEVB
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ARGONLVEVB
++# endif
++# define machine_is_mxc30030evb()     (machine_arch_type == MACH_TYPE_ARGONLVEVB)
++#else
++# define machine_is_mxc30030evb()     (0)
++#endif
++
++#ifdef CONFIG_MACH_REA_2D
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_REA_2D
++# endif
++# define machine_is_rea_2d()  (machine_arch_type == MACH_TYPE_REA_2D)
++#else
++# define machine_is_rea_2d()  (0)
++#endif
++
++#ifdef CONFIG_MACH_TI3E524
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TI3E524
++# endif
++# define machine_is_eti3e524()        (machine_arch_type == MACH_TYPE_TI3E524)
++#else
++# define machine_is_eti3e524()        (0)
++#endif
++
++#ifdef CONFIG_MACH_ATEB9200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ATEB9200
++# endif
++# define machine_is_ateb9200()        (machine_arch_type == MACH_TYPE_ATEB9200)
++#else
++# define machine_is_ateb9200()        (0)
++#endif
++
++#ifdef CONFIG_MACH_AUCKLAND
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AUCKLAND
++# endif
++# define machine_is_auckland()        (machine_arch_type == MACH_TYPE_AUCKLAND)
++#else
++# define machine_is_auckland()        (0)
++#endif
++
++#ifdef CONFIG_MACH_AK3320M
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AK3320M
++# endif
++# define machine_is_ak3220m() (machine_arch_type == MACH_TYPE_AK3320M)
++#else
++# define machine_is_ak3220m() (0)
++#endif
++
++#ifdef CONFIG_MACH_DURAMAX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DURAMAX
++# endif
++# define machine_is_duramax() (machine_arch_type == MACH_TYPE_DURAMAX)
++#else
++# define machine_is_duramax() (0)
++#endif
++
++#ifdef CONFIG_MACH_N35
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_N35
++# endif
++# define machine_is_n35()     (machine_arch_type == MACH_TYPE_N35)
++#else
++# define machine_is_n35()     (0)
++#endif
++
++#ifdef CONFIG_MACH_PRONGHORN
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PRONGHORN
++# endif
++# define machine_is_pronghorn()       (machine_arch_type == MACH_TYPE_PRONGHORN)
++#else
++# define machine_is_pronghorn()       (0)
++#endif
++
++#ifdef CONFIG_MACH_FUNDY
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_FUNDY
++# endif
++# define machine_is_fundy()   (machine_arch_type == MACH_TYPE_FUNDY)
++#else
++# define machine_is_fundy()   (0)
++#endif
++
++#ifdef CONFIG_MACH_LOGICPD_PXA270
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_LOGICPD_PXA270
++# endif
++# define machine_is_logicpd_pxa270()  (machine_arch_type == MACH_TYPE_LOGICPD_PXA270)
++#else
++# define machine_is_logicpd_pxa270()  (0)
++#endif
++
++#ifdef CONFIG_MACH_CPU777
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CPU777
++# endif
++# define machine_is_cpu777()  (machine_arch_type == MACH_TYPE_CPU777)
++#else
++# define machine_is_cpu777()  (0)
++#endif
++
++#ifdef CONFIG_MACH_SIMICON9201
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SIMICON9201
++# endif
++# define machine_is_simicon9201()     (machine_arch_type == MACH_TYPE_SIMICON9201)
++#else
++# define machine_is_simicon9201()     (0)
++#endif
++
++#ifdef CONFIG_MACH_LEAP2_HPM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_LEAP2_HPM
++# endif
++# define machine_is_leap2_hpm()       (machine_arch_type == MACH_TYPE_LEAP2_HPM)
++#else
++# define machine_is_leap2_hpm()       (0)
++#endif
++
++#ifdef CONFIG_MACH_CM922TXA10
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CM922TXA10
++# endif
++# define machine_is_cm922txa10()      (machine_arch_type == MACH_TYPE_CM922TXA10)
++#else
++# define machine_is_cm922txa10()      (0)
++#endif
++
++#ifdef CONFIG_MACH_PXA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PXA
++# endif
++# define machine_is_sandgate()        (machine_arch_type == MACH_TYPE_PXA)
++#else
++# define machine_is_sandgate()        (0)
++#endif
++
++#ifdef CONFIG_MACH_SANDGATE2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SANDGATE2
++# endif
++# define machine_is_sandgate2()       (machine_arch_type == MACH_TYPE_SANDGATE2)
++#else
++# define machine_is_sandgate2()       (0)
++#endif
++
++#ifdef CONFIG_MACH_SANDGATE2G
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SANDGATE2G
++# endif
++# define machine_is_sandgate2g()      (machine_arch_type == MACH_TYPE_SANDGATE2G)
++#else
++# define machine_is_sandgate2g()      (0)
++#endif
++
++#ifdef CONFIG_MACH_SANDGATE2P
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SANDGATE2P
++# endif
++# define machine_is_sandgate2p()      (machine_arch_type == MACH_TYPE_SANDGATE2P)
++#else
++# define machine_is_sandgate2p()      (0)
++#endif
++
++#ifdef CONFIG_MACH_FRED_JACK
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_FRED_JACK
++# endif
++# define machine_is_fred_jack()       (machine_arch_type == MACH_TYPE_FRED_JACK)
++#else
++# define machine_is_fred_jack()       (0)
++#endif
++
++#ifdef CONFIG_MACH_TTG_COLOR1
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TTG_COLOR1
++# endif
++# define machine_is_ttg_color1()      (machine_arch_type == MACH_TYPE_TTG_COLOR1)
++#else
++# define machine_is_ttg_color1()      (0)
++#endif
++
++#ifdef CONFIG_MACH_NXEB500HMI
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NXEB500HMI
++# endif
++# define machine_is_nxeb500hmi()      (machine_arch_type == MACH_TYPE_NXEB500HMI)
++#else
++# define machine_is_nxeb500hmi()      (0)
++#endif
++
++#ifdef CONFIG_MACH_NETDCU8
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NETDCU8
++# endif
++# define machine_is_netdcu8() (machine_arch_type == MACH_TYPE_NETDCU8)
++#else
++# define machine_is_netdcu8() (0)
++#endif
++
++#ifdef CONFIG_MACH_ML675050_CPU_BOA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ML675050_CPU_BOA
++# endif
++# define machine_is_ml675050_cpu_boa()        (machine_arch_type == MACH_TYPE_ML675050_CPU_BOA)
++#else
++# define machine_is_ml675050_cpu_boa()        (0)
++#endif
++
++#ifdef CONFIG_MACH_NG_FVX538
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NG_FVX538
++# endif
++# define machine_is_ng_fvx538()       (machine_arch_type == MACH_TYPE_NG_FVX538)
++#else
++# define machine_is_ng_fvx538()       (0)
++#endif
++
++#ifdef CONFIG_MACH_NG_FVS338
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NG_FVS338
++# endif
++# define machine_is_ng_fvs338()       (machine_arch_type == MACH_TYPE_NG_FVS338)
++#else
++# define machine_is_ng_fvs338()       (0)
++#endif
++
++#ifdef CONFIG_MACH_PNX4103
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PNX4103
++# endif
++# define machine_is_pnx4103() (machine_arch_type == MACH_TYPE_PNX4103)
++#else
++# define machine_is_pnx4103() (0)
++#endif
++
++#ifdef CONFIG_MACH_HESDB
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HESDB
++# endif
++# define machine_is_hesdb()   (machine_arch_type == MACH_TYPE_HESDB)
++#else
++# define machine_is_hesdb()   (0)
++#endif
++
++#ifdef CONFIG_MACH_XSILO
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_XSILO
++# endif
++# define machine_is_xsilo()   (machine_arch_type == MACH_TYPE_XSILO)
++#else
++# define machine_is_xsilo()   (0)
++#endif
++
++#ifdef CONFIG_MACH_ESPRESSO
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ESPRESSO
++# endif
++# define machine_is_espresso()        (machine_arch_type == MACH_TYPE_ESPRESSO)
++#else
++# define machine_is_espresso()        (0)
++#endif
++
++#ifdef CONFIG_MACH_EMLC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EMLC
++# endif
++# define machine_is_emlc()    (machine_arch_type == MACH_TYPE_EMLC)
++#else
++# define machine_is_emlc()    (0)
++#endif
++
++#ifdef CONFIG_MACH_SISTERON
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SISTERON
++# endif
++# define machine_is_sisteron()        (machine_arch_type == MACH_TYPE_SISTERON)
++#else
++# define machine_is_sisteron()        (0)
++#endif
++
++#ifdef CONFIG_MACH_RX1950
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_RX1950
++# endif
++# define machine_is_rx1950()  (machine_arch_type == MACH_TYPE_RX1950)
++#else
++# define machine_is_rx1950()  (0)
++#endif
++
++#ifdef CONFIG_MACH_TSC_VENUS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TSC_VENUS
++# endif
++# define machine_is_tsc_venus()       (machine_arch_type == MACH_TYPE_TSC_VENUS)
++#else
++# define machine_is_tsc_venus()       (0)
++#endif
++
++#ifdef CONFIG_MACH_DS101J
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DS101J
++# endif
++# define machine_is_ds101j()  (machine_arch_type == MACH_TYPE_DS101J)
++#else
++# define machine_is_ds101j()  (0)
++#endif
++
++#ifdef CONFIG_MACH_MXC30030ADS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MXC30030ADS
++# endif
++# define machine_is_mxc30030ads()     (machine_arch_type == MACH_TYPE_MXC30030ADS)
++#else
++# define machine_is_mxc30030ads()     (0)
++#endif
++
++#ifdef CONFIG_MACH_FUJITSU_WIMAXSOC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_FUJITSU_WIMAXSOC
++# endif
++# define machine_is_fujitsu_wimaxsoc()        (machine_arch_type == MACH_TYPE_FUJITSU_WIMAXSOC)
++#else
++# define machine_is_fujitsu_wimaxsoc()        (0)
++#endif
++
++#ifdef CONFIG_MACH_DUALPCMODEM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DUALPCMODEM
++# endif
++# define machine_is_dualpcmodem()     (machine_arch_type == MACH_TYPE_DUALPCMODEM)
++#else
++# define machine_is_dualpcmodem()     (0)
++#endif
++
++#ifdef CONFIG_MACH_GESBC9312
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_GESBC9312
++# endif
++# define machine_is_gesbc9312()       (machine_arch_type == MACH_TYPE_GESBC9312)
++#else
++# define machine_is_gesbc9312()       (0)
++#endif
++
++#ifdef CONFIG_MACH_HTCAPACHE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HTCAPACHE
++# endif
++# define machine_is_htcapache()       (machine_arch_type == MACH_TYPE_HTCAPACHE)
++#else
++# define machine_is_htcapache()       (0)
++#endif
++
++#ifdef CONFIG_MACH_IXDP435
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IXDP435
++# endif
++# define machine_is_ixdp435() (machine_arch_type == MACH_TYPE_IXDP435)
++#else
++# define machine_is_ixdp435() (0)
++#endif
++
++#ifdef CONFIG_MACH_CATPROVT100
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CATPROVT100
++# endif
++# define machine_is_catprovt100()     (machine_arch_type == MACH_TYPE_CATPROVT100)
++#else
++# define machine_is_catprovt100()     (0)
++#endif
++
++#ifdef CONFIG_MACH_PICOTUX1XX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PICOTUX1XX
++# endif
++# define machine_is_picotux1xx()      (machine_arch_type == MACH_TYPE_PICOTUX1XX)
++#else
++# define machine_is_picotux1xx()      (0)
++#endif
++
++#ifdef CONFIG_MACH_PICOTUX2XX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PICOTUX2XX
++# endif
++# define machine_is_picotux2xx()      (machine_arch_type == MACH_TYPE_PICOTUX2XX)
++#else
++# define machine_is_picotux2xx()      (0)
++#endif
++
++#ifdef CONFIG_MACH_DSMG600
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DSMG600
++# endif
++# define machine_is_dsmg600() (machine_arch_type == MACH_TYPE_DSMG600)
++#else
++# define machine_is_dsmg600() (0)
++#endif
++
++#ifdef CONFIG_MACH_EMPC2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EMPC2
++# endif
++# define machine_is_empc2()   (machine_arch_type == MACH_TYPE_EMPC2)
++#else
++# define machine_is_empc2()   (0)
++#endif
++
++#ifdef CONFIG_MACH_VENTURA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_VENTURA
++# endif
++# define machine_is_ventura() (machine_arch_type == MACH_TYPE_VENTURA)
++#else
++# define machine_is_ventura() (0)
++#endif
++
++#ifdef CONFIG_MACH_PHIDGET_SBC
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PHIDGET_SBC
++# endif
++# define machine_is_phidget_sbc()     (machine_arch_type == MACH_TYPE_PHIDGET_SBC)
++#else
++# define machine_is_phidget_sbc()     (0)
++#endif
++
++#ifdef CONFIG_MACH_IJ3K
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IJ3K
++# endif
++# define machine_is_ij3k()    (machine_arch_type == MACH_TYPE_IJ3K)
++#else
++# define machine_is_ij3k()    (0)
++#endif
++
++#ifdef CONFIG_MACH_PISGAH
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PISGAH
++# endif
++# define machine_is_pisgah()  (machine_arch_type == MACH_TYPE_PISGAH)
++#else
++# define machine_is_pisgah()  (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_FSAMPLE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_FSAMPLE
++# endif
++# define machine_is_omap_fsample()    (machine_arch_type == MACH_TYPE_OMAP_FSAMPLE)
++#else
++# define machine_is_omap_fsample()    (0)
++#endif
++
++#ifdef CONFIG_MACH_SG720
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SG720
++# endif
++# define machine_is_sg720()   (machine_arch_type == MACH_TYPE_SG720)
++#else
++# define machine_is_sg720()   (0)
++#endif
++
++#ifdef CONFIG_MACH_REDFOX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_REDFOX
++# endif
++# define machine_is_redfox()  (machine_arch_type == MACH_TYPE_REDFOX)
++#else
++# define machine_is_redfox()  (0)
++#endif
++
++#ifdef CONFIG_MACH_MYSH_EP9315_1
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MYSH_EP9315_1
++# endif
++# define machine_is_mysh_ep9315_1()   (machine_arch_type == MACH_TYPE_MYSH_EP9315_1)
++#else
++# define machine_is_mysh_ep9315_1()   (0)
++#endif
++
++#ifdef CONFIG_MACH_TPF106
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TPF106
++# endif
++# define machine_is_tpf106()  (machine_arch_type == MACH_TYPE_TPF106)
++#else
++# define machine_is_tpf106()  (0)
++#endif
++
++#ifdef CONFIG_MACH_AT91RM9200KG
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AT91RM9200KG
++# endif
++# define machine_is_at91rm9200kg()    (machine_arch_type == MACH_TYPE_AT91RM9200KG)
++#else
++# define machine_is_at91rm9200kg()    (0)
++#endif
++
++#ifdef CONFIG_MACH_SLEDB
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SLEDB
++# endif
++# define machine_is_racemt2() (machine_arch_type == MACH_TYPE_SLEDB)
++#else
++# define machine_is_racemt2() (0)
++#endif
++
++#ifdef CONFIG_MACH_ONTRACK
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ONTRACK
++# endif
++# define machine_is_ontrack() (machine_arch_type == MACH_TYPE_ONTRACK)
++#else
++# define machine_is_ontrack() (0)
++#endif
++
++#ifdef CONFIG_MACH_PM1200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PM1200
++# endif
++# define machine_is_pm1200()  (machine_arch_type == MACH_TYPE_PM1200)
++#else
++# define machine_is_pm1200()  (0)
++#endif
++
++#ifdef CONFIG_MACH_ESS24XXX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ESS24XXX
++# endif
++# define machine_is_ess24562()        (machine_arch_type == MACH_TYPE_ESS24XXX)
++#else
++# define machine_is_ess24562()        (0)
++#endif
++
++#ifdef CONFIG_MACH_COREMP7
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_COREMP7
++# endif
++# define machine_is_coremp7() (machine_arch_type == MACH_TYPE_COREMP7)
++#else
++# define machine_is_coremp7() (0)
++#endif
++
++#ifdef CONFIG_MACH_NEXCODER_6446
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NEXCODER_6446
++# endif
++# define machine_is_nexcoder_6446()   (machine_arch_type == MACH_TYPE_NEXCODER_6446)
++#else
++# define machine_is_nexcoder_6446()   (0)
++#endif
++
++#ifdef CONFIG_MACH_STVC8380
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_STVC8380
++# endif
++# define machine_is_stvc8380()        (machine_arch_type == MACH_TYPE_STVC8380)
++#else
++# define machine_is_stvc8380()        (0)
++#endif
++
++#ifdef CONFIG_MACH_TEKLYNX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TEKLYNX
++# endif
++# define machine_is_teklynx() (machine_arch_type == MACH_TYPE_TEKLYNX)
++#else
++# define machine_is_teklynx() (0)
++#endif
++
++#ifdef CONFIG_MACH_CARBONADO
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CARBONADO
++# endif
++# define machine_is_carbonado()       (machine_arch_type == MACH_TYPE_CARBONADO)
++#else
++# define machine_is_carbonado()       (0)
++#endif
++
++#ifdef CONFIG_MACH_SYSMOS_MP730
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SYSMOS_MP730
++# endif
++# define machine_is_sysmos_mp730()    (machine_arch_type == MACH_TYPE_SYSMOS_MP730)
++#else
++# define machine_is_sysmos_mp730()    (0)
++#endif
++
++#ifdef CONFIG_MACH_SNAPPER_CL15
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SNAPPER_CL15
++# endif
++# define machine_is_snapper_cl15()    (machine_arch_type == MACH_TYPE_SNAPPER_CL15)
++#else
++# define machine_is_snapper_cl15()    (0)
++#endif
++
++#ifdef CONFIG_MACH_PGIGIM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PGIGIM
++# endif
++# define machine_is_pgigim()  (machine_arch_type == MACH_TYPE_PGIGIM)
++#else
++# define machine_is_pgigim()  (0)
++#endif
++
++#ifdef CONFIG_MACH_PTX9160P2
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PTX9160P2
++# endif
++# define machine_is_ptx9160p2()       (machine_arch_type == MACH_TYPE_PTX9160P2)
++#else
++# define machine_is_ptx9160p2()       (0)
++#endif
++
++#ifdef CONFIG_MACH_DCORE1
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DCORE1
++# endif
++# define machine_is_dcore1()  (machine_arch_type == MACH_TYPE_DCORE1)
++#else
++# define machine_is_dcore1()  (0)
++#endif
++
++#ifdef CONFIG_MACH_VICTORPXA
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_VICTORPXA
++# endif
++# define machine_is_victorpxa()       (machine_arch_type == MACH_TYPE_VICTORPXA)
++#else
++# define machine_is_victorpxa()       (0)
++#endif
++
++#ifdef CONFIG_MACH_MX2DTB
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MX2DTB
++# endif
++# define machine_is_mx2dtb()  (machine_arch_type == MACH_TYPE_MX2DTB)
++#else
++# define machine_is_mx2dtb()  (0)
++#endif
++
++#ifdef CONFIG_MACH_PXA_IREX_ER0100
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PXA_IREX_ER0100
++# endif
++# define machine_is_pxa_irex_er0100() (machine_arch_type == MACH_TYPE_PXA_IREX_ER0100)
++#else
++# define machine_is_pxa_irex_er0100() (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_PALMZ71
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_PALMZ71
++# endif
++# define machine_is_omap_palmz71()    (machine_arch_type == MACH_TYPE_OMAP_PALMZ71)
++#else
++# define machine_is_omap_palmz71()    (0)
++#endif
++
++#ifdef CONFIG_MACH_BARTEC_DEG
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BARTEC_DEG
++# endif
++# define machine_is_bartec_deg()      (machine_arch_type == MACH_TYPE_BARTEC_DEG)
++#else
++# define machine_is_bartec_deg()      (0)
++#endif
++
++#ifdef CONFIG_MACH_HW50251
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HW50251
++# endif
++# define machine_is_hw50251() (machine_arch_type == MACH_TYPE_HW50251)
++#else
++# define machine_is_hw50251() (0)
++#endif
++
++#ifdef CONFIG_MACH_IBOX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IBOX
++# endif
++# define machine_is_ibox()    (machine_arch_type == MACH_TYPE_IBOX)
++#else
++# define machine_is_ibox()    (0)
++#endif
++
++#ifdef CONFIG_MACH_ATLASLH7A404
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ATLASLH7A404
++# endif
++# define machine_is_atlaslh7a404()    (machine_arch_type == MACH_TYPE_ATLASLH7A404)
++#else
++# define machine_is_atlaslh7a404()    (0)
++#endif
++
++#ifdef CONFIG_MACH_PT2026
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PT2026
++# endif
++# define machine_is_pt2026()  (machine_arch_type == MACH_TYPE_PT2026)
++#else
++# define machine_is_pt2026()  (0)
++#endif
++
++#ifdef CONFIG_MACH_HTCALPINE
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HTCALPINE
++# endif
++# define machine_is_htcalpine()       (machine_arch_type == MACH_TYPE_HTCALPINE)
++#else
++# define machine_is_htcalpine()       (0)
++#endif
++
++#ifdef CONFIG_MACH_BARTEC_VTU
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BARTEC_VTU
++# endif
++# define machine_is_bartec_vtu()      (machine_arch_type == MACH_TYPE_BARTEC_VTU)
++#else
++# define machine_is_bartec_vtu()      (0)
++#endif
++
++#ifdef CONFIG_MACH_VCOREII
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_VCOREII
++# endif
++# define machine_is_vcoreii() (machine_arch_type == MACH_TYPE_VCOREII)
++#else
++# define machine_is_vcoreii() (0)
++#endif
++
++#ifdef CONFIG_MACH_PDNB3
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_PDNB3
++# endif
++# define machine_is_pdnb3()   (machine_arch_type == MACH_TYPE_PDNB3)
++#else
++# define machine_is_pdnb3()   (0)
++#endif
++
++#ifdef CONFIG_MACH_HTCBEETLES
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_HTCBEETLES
++# endif
++# define machine_is_htcbeetles()      (machine_arch_type == MACH_TYPE_HTCBEETLES)
++#else
++# define machine_is_htcbeetles()      (0)
++#endif
++
++#ifdef CONFIG_MACH_S3C6400
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_S3C6400
++# endif
++# define machine_is_s3c6400() (machine_arch_type == MACH_TYPE_S3C6400)
++#else
++# define machine_is_s3c6400() (0)
++#endif
++
++#ifdef CONFIG_MACH_S3C2443
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_S3C2443
++# endif
++# define machine_is_s3c2443() (machine_arch_type == MACH_TYPE_S3C2443)
++#else
++# define machine_is_s3c2443() (0)
++#endif
++
++#ifdef CONFIG_MACH_OMAP_LDK
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OMAP_LDK
++# endif
++# define machine_is_omap_ldk()        (machine_arch_type == MACH_TYPE_OMAP_LDK)
++#else
++# define machine_is_omap_ldk()        (0)
++#endif
++
++#ifdef CONFIG_MACH_SMDK2460
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SMDK2460
++# endif
++# define machine_is_smdk2460()        (machine_arch_type == MACH_TYPE_SMDK2460)
++#else
++# define machine_is_smdk2460()        (0)
++#endif
++
++#ifdef CONFIG_MACH_SMDK2440
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SMDK2440
++# endif
++# define machine_is_smdk2440()        (machine_arch_type == MACH_TYPE_SMDK2440)
++#else
++# define machine_is_smdk2440()        (0)
++#endif
++
++#ifdef CONFIG_MACH_SMDK2412
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SMDK2412
++# endif
++# define machine_is_smdk2412()        (machine_arch_type == MACH_TYPE_SMDK2412)
++#else
++# define machine_is_smdk2412()        (0)
++#endif
++
++#ifdef CONFIG_MACH_WEBBOX
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_WEBBOX
++# endif
++# define machine_is_webbox()  (machine_arch_type == MACH_TYPE_WEBBOX)
++#else
++# define machine_is_webbox()  (0)
++#endif
++
++#ifdef CONFIG_MACH_CWWNDP
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CWWNDP
++# endif
++# define machine_is_cwwndp()  (machine_arch_type == MACH_TYPE_CWWNDP)
++#else
++# define machine_is_cwwndp()  (0)
++#endif
++
++#ifdef CONFIG_MACH_DRAGON
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DRAGON
++# endif
++# define machine_is_dragon()  (machine_arch_type == MACH_TYPE_DRAGON)
++#else
++# define machine_is_dragon()  (0)
++#endif
++
++#ifdef CONFIG_MACH_OPENDO_CPU_BOARD
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_OPENDO_CPU_BOARD
++# endif
++# define machine_is_opendo_cpu_board()        (machine_arch_type == MACH_TYPE_OPENDO_CPU_BOARD)
++#else
++# define machine_is_opendo_cpu_board()        (0)
++#endif
++
++#ifdef CONFIG_MACH_CCM2200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CCM2200
++# endif
++# define machine_is_ccm2200() (machine_arch_type == MACH_TYPE_CCM2200)
++#else
++# define machine_is_ccm2200() (0)
++#endif
++
++#ifdef CONFIG_MACH_ETWARM
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_ETWARM
++# endif
++# define machine_is_etwarm()  (machine_arch_type == MACH_TYPE_ETWARM)
++#else
++# define machine_is_etwarm()  (0)
++#endif
++
++#ifdef CONFIG_MACH_M93030
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_M93030
++# endif
++# define machine_is_m93030()  (machine_arch_type == MACH_TYPE_M93030)
++#else
++# define machine_is_m93030()  (0)
++#endif
++
++#ifdef CONFIG_MACH_CC7U
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CC7U
++# endif
++# define machine_is_cc7u()    (machine_arch_type == MACH_TYPE_CC7U)
++#else
++# define machine_is_cc7u()    (0)
++#endif
++
++#ifdef CONFIG_MACH_MTT_RANGER
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_MTT_RANGER
++# endif
++# define machine_is_mtt_ranger()      (machine_arch_type == MACH_TYPE_MTT_RANGER)
++#else
++# define machine_is_mtt_ranger()      (0)
++#endif
++
++#ifdef CONFIG_MACH_NEXUS
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_NEXUS
++# endif
++# define machine_is_nexus()   (machine_arch_type == MACH_TYPE_NEXUS)
++#else
++# define machine_is_nexus()   (0)
++#endif
++
++#ifdef CONFIG_MACH_DESMAN
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DESMAN
++# endif
++# define machine_is_desman()  (machine_arch_type == MACH_TYPE_DESMAN)
++#else
++# define machine_is_desman()  (0)
++#endif
++
++#ifdef CONFIG_MACH_BKDE303
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BKDE303
++# endif
++# define machine_is_bkde303() (machine_arch_type == MACH_TYPE_BKDE303)
++#else
++# define machine_is_bkde303() (0)
++#endif
++
++#ifdef CONFIG_MACH_SMDK2413
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SMDK2413
++# endif
++# define machine_is_smdk2413()        (machine_arch_type == MACH_TYPE_SMDK2413)
++#else
++# define machine_is_smdk2413()        (0)
++#endif
++
++#ifdef CONFIG_MACH_AML_M7200
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AML_M7200
++# endif
++# define machine_is_aml_m7200()       (machine_arch_type == MACH_TYPE_AML_M7200)
++#else
++# define machine_is_aml_m7200()       (0)
++#endif
++
++#ifdef CONFIG_MACH_AML_M5900
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AML_M5900
++# endif
++# define machine_is_aml_m5900()       (machine_arch_type == MACH_TYPE_AML_M5900)
++#else
++# define machine_is_aml_m5900()       (0)
++#endif
++
++#ifdef CONFIG_MACH_SG640
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_SG640
++# endif
++# define machine_is_sg640()   (machine_arch_type == MACH_TYPE_SG640)
++#else
++# define machine_is_sg640()   (0)
++#endif
++
++#ifdef CONFIG_MACH_EDG79524
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_EDG79524
++# endif
++# define machine_is_edg79524()        (machine_arch_type == MACH_TYPE_EDG79524)
++#else
++# define machine_is_edg79524()        (0)
++#endif
++
++#ifdef CONFIG_MACH_AI2410
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_AI2410
++# endif
++# define machine_is_ai2410()  (machine_arch_type == MACH_TYPE_AI2410)
++#else
++# define machine_is_ai2410()  (0)
++#endif
++
++#ifdef CONFIG_MACH_IXP465
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_IXP465
++# endif
++# define machine_is_ixp465()  (machine_arch_type == MACH_TYPE_IXP465)
++#else
++# define machine_is_ixp465()  (0)
++#endif
++
++#ifdef CONFIG_MACH_BALLOON3
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_BALLOON3
++# endif
++# define machine_is_balloon3()        (machine_arch_type == MACH_TYPE_BALLOON3)
++#else
++# define machine_is_balloon3()        (0)
++#endif
++
++#ifdef CONFIG_MACH_QT2410
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_QT2410
++# endif
++# define machine_is_qt2410()  (machine_arch_type == MACH_TYPE_QT2410)
++#else
++# define machine_is_qt2410()  (0)
++#endif
++
++#ifdef CONFIG_MACH_GTA01
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_GTA01
++# endif
++# define machine_is_gta01()   (machine_arch_type == MACH_TYPE_GTA01)
++#else
++# define machine_is_gta01()   (0)
++#endif
++
++
+ /*
+  * These have not yet been registered
+  */
+Index: git/include/configs/gta01.h
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/include/configs/gta01.h        2007-01-04 12:21:18.000000000 +0100
+@@ -0,0 +1,233 @@
++/*
++ * (C) Copyright 2006 Harald Welte <hwelte@hmw-consulting.de>
++ *
++ * Configuation settings for the FIC GTA01 Linux GSM phone
++ *
++ * 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
++ */
++
++#ifndef __CONFIG_H
++#define __CONFIG_H
++
++/* we want to start u-boot directly from within NAND flash */
++#define CONFIG_S3C2410_NAND_BOOT      1
++
++/*
++ * High Level Configuration Options
++ * (easy to change)
++ */
++#define CONFIG_ARM920T                1       /* This is an ARM920T Core      */
++#define       CONFIG_S3C2410          1       /* in a SAMSUNG S3C2410 SoC     */
++#define CONFIG_SMDK2410               1       /* on a SAMSUNG SMDK2410 Board  */
++
++/* input clock of PLL */
++#define CONFIG_SYS_CLK_FREQ   12000000/* the GTA01 has 12MHz input clock */
++
++
++#define USE_920T_MMU          1
++#define CONFIG_USE_IRQ                1
++
++/*
++ * Size of malloc() pool
++ */
++#define CFG_MALLOC_LEN                (CFG_ENV_SIZE + 128*1024)
++#define CFG_GBL_DATA_SIZE     128     /* size in bytes reserved for initial data */
++
++/*
++ * Hardware drivers
++ */
++
++/*
++ * select serial console configuration
++ */
++#define CONFIG_SERIAL1          1     /* we use SERIAL 1 on GTA01 */
++//#define CONFIG_HWFLOW               1
++
++/************************************************************
++ * RTC
++ ************************************************************/
++#define       CONFIG_RTC_S3C24X0      1
++
++/* allow to overwrite serial and ethaddr */
++#define CONFIG_ENV_OVERWRITE
++
++#define CONFIG_BAUDRATE               115200
++
++/***********************************************************
++ * Command definition
++ ***********************************************************/
++#define CONFIG_COMMANDS (\
++                      CFG_CMD_BDI      | \
++                      CFG_CMD_LOADS    | \
++                      CFG_CMD_LAODB    | \
++                      CFG_CMD_IMI      | \
++                      CFG_CMD_CACHE    | \
++                      CFG_CMD_MEMORY   | \
++                      CFG_CMD_ENV      | \
++                      /* CFG_CMD_IRQ   | */  \
++                      CFG_CMD_BOOTD    | \
++                      CFG_CMD_CONSOLE  | \
++                      CFG_CMD_ASKENV   | \
++                      CFG_CMD_RUN      | \
++                      CFG_CMD_ECHO     | \
++                      CFG_CMD_I2C      | \
++                      CFG_CMD_REGINFO  | \
++                      CFG_CMD_IMMAP    | \
++                      CFG_CMD_DATE     | \
++                      CFG_CMD_AUTOSCRIPT | \
++                      CFG_CMD_BSP      | \
++                      CFG_CMD_ELF      | \
++                      CFG_CMD_MISC     | \
++                      CFG_CMD_USB      | \
++                      CFG_CMD_JFFS2    | \
++                      CFG_CMD_DIAG     | \
++                      /* CFG_CMD_HWFLOW        | */ \
++                      CFG_CMD_SAVES    | \
++                      CFG_CMD_NAND     | \
++                      CFG_CMD_PORTIO   | \
++                      CFG_CMD_MMC      | \
++                      CFG_CMD_FAT      | \
++                      CFG_CMD_EXT2     | \
++                      0)
++/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
++#include <cmd_confdefs.h>
++
++#define CONFIG_BOOTDELAY      3
++#define CONFIG_BOOTARGS       "rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8"
++#define CONFIG_BOOTCOMMAND    "nand read 0x32000000 0x34000 0x200000; bootm 0x32000000"
++
++#define CONFIG_DOS_PARTITION  1
++
++#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
++#define CONFIG_KGDB_BAUDRATE  115200          /* speed to run kgdb serial port */
++/* what's this ? it's not used anywhere */
++#define CONFIG_KGDB_SER_INDEX 1               /* which serial port to use */
++#endif
++
++/*
++ * Miscellaneous configurable options
++ */
++#define       CFG_LONGHELP                            /* undef to save memory         */
++#define       CFG_PROMPT              "GTA01 # "      /* Monitor Command Prompt       */
++#define       CFG_CBSIZE              256             /* Console I/O Buffer Size      */
++#define       CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
++#define       CFG_MAXARGS             16              /* max number of command args   */
++#define CFG_BARGSIZE          CFG_CBSIZE      /* Boot Argument Buffer Size    */
++
++#define CFG_MEMTEST_START     0x30000000      /* memtest works on     */
++#define CFG_MEMTEST_END               0x33F00000      /* 63 MB in DRAM        */
++
++#undef  CFG_CLKS_IN_HZ                /* everything, incl board info, in Hz */
++
++#define       CFG_LOAD_ADDR           0x33000000      /* default load address */
++
++/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */
++/* it to wrap 100 times (total 1562500) to get 1 sec. */
++#define       CFG_HZ                  1562500
++
++/* valid baudrates */
++#define CFG_BAUDRATE_TABLE    { 9600, 19200, 38400, 57600, 115200 }
++
++/*-----------------------------------------------------------------------
++ * Stack sizes
++ *
++ * The stack sizes are set up in start.S using the settings below
++ */
++#define CONFIG_STACKSIZE      (128*1024)      /* regular stack */
++#ifdef CONFIG_USE_IRQ
++#define CONFIG_STACKSIZE_IRQ  (4*1024)        /* IRQ stack */
++#define CONFIG_STACKSIZE_FIQ  (4*1024)        /* FIQ stack */
++#endif
++
++#define CONFIG_USB_OHCI               1
++
++/*-----------------------------------------------------------------------
++ * Physical Memory Map
++ */
++#define CONFIG_NR_DRAM_BANKS  1          /* we have 1 bank of DRAM */
++#define PHYS_SDRAM_1          0x30000000 /* SDRAM Bank #1 */
++#define PHYS_SDRAM_1_SIZE     0x04000000 /* 64 MB */
++#define PHYS_SDRAM_RES_SIZE   0x00200000 /* 2 MB for frame buffer */
++
++/*-----------------------------------------------------------------------
++ * FLASH and environment organization
++ */
++
++/* No NOR flash in this device */
++#define CFG_NO_FLASH          1
++
++#define       CFG_ENV_IS_IN_NAND      1
++#define CFG_ENV_SIZE          0x4000          /* 16k Total Size of Environment Sector */
++#define CFG_ENV_OFFSET                0x30000         /* environment after bootloader */
++
++#define NAND_MAX_CHIPS                1
++#define CFG_NAND_BASE         0x4e000000
++#define CFG_MAX_NAND_DEVICE   1
++
++#define CONFIG_MMC            1
++#define CFG_MMC_BASE          0xff000000
++
++/* EXT2 driver */
++#define CONFIG_EXT2           1
++
++#if 0
++/* FAT driver in u-boot is broken currently */
++#define CONFIG_FAT            1
++#define CONFIG_SUPPORT_VFAT   1
++#endif
++
++/* JFFS2 driver */
++#define CONFIG_JFFS2_CMDLINE  1
++#define CONFIG_JFFS2_NAND     1
++#define CONFIG_JFFS2_NAND_DEV 0
++#define CONFIG_JFFS2_NAND_OFF 0x634000
++#define CONFIG_JFFS2_NAND_SIZE        0x39cc000
++
++/* ATAG configuration */
++#define CONFIG_INITRD_TAG             1
++#define CONFIG_SETUP_MEMORY_TAGS      1
++#define CONFIG_CMDLINE_TAG            1
++#define CONFIG_REVISION_TAG           1
++#if 0
++#define CONFIG_SERIAL_TAG             1
++#endif
++
++#define CONFIG_DRIVER_S3C24X0_I2C     1
++#define CONFIG_HARD_I2C                       1
++#define CFG_I2C_SPEED                 400000  /* 400kHz according to PCF50606 data sheet */
++#define CFG_I2C_SLAVE                 0x7f
++
++/* we have a board_late_init() function */
++#define BOARD_LATE_INIT                       1
++
++#if 0
++#define CONFIG_VIDEO
++#define CONFIG_VIDEO_S3C2410
++#define CONFIG_CFB_CONSOLE
++#define CONFIG_VIDEO_LOGO
++#define CONFIG_VGA_AS_SINGLE_DEVICE
++
++#define VIDEO_KBD_INIT_FCT    0
++#define VIDEO_TSTC_FCT                serial_tstc
++#define VIDEO_GETC_FCT                serial_getc
++
++#define LCD_VIDEO_ADDR                0x33d00000
++#endif
++
++#endif        /* __CONFIG_H */
+Index: git/include/configs/qt2410.h
+===================================================================
+--- /dev/null  1970-01-01 00:00:00.000000000 +0000
++++ git/include/configs/qt2410.h       2007-01-04 12:21:18.000000000 +0100
+@@ -0,0 +1,245 @@
++/*
++ * (C) Copyright 2002
++ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
++ * Marius Groeger <mgroeger@sysgo.de>
++ * Gary Jennejohn <gj@denx.de>
++ * David Mueller <d.mueller@elsoft.ch>
++ *
++ * Configuation settings for the SAMSUNG SMDK2410 board.
++ *
++ * 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
++ */
++
++#ifndef __CONFIG_H
++#define __CONFIG_H
++
++#if 1
++/* If we want to start u-boot from usb bootloader in NOR flash */
++#define CONFIG_SKIP_RELOCATE_UBOOT    1
++#define       CONFIG_SKIP_LOWLEVEL_INIT       1
++#else
++/* If we want to start u-boot directly from within NAND flash */
++#define CONFIG_S3C2410_NAND_BOOT      1
++#endif
++
++/*
++ * High Level Configuration Options
++ * (easy to change)
++ */
++#define CONFIG_ARM920T                1       /* This is an ARM920T Core      */
++#define       CONFIG_S3C2410          1       /* in a SAMSUNG S3C2410 SoC     */
++#define CONFIG_SMDK2410               1       /* on a SAMSUNG SMDK2410 Board  */
++
++/* input clock of PLL */
++#define CONFIG_SYS_CLK_FREQ   12000000/* the SMDK2410 has 12MHz input clock */
++
++
++#define USE_920T_MMU          1
++#define CONFIG_USE_IRQ                1
++//#undef CONFIG_USE_IRQ                       /* we don't need IRQ/FIQ stuff */
++
++/*
++ * Size of malloc() pool
++ */
++#define CFG_MALLOC_LEN                (CFG_ENV_SIZE + 128*1024)
++#define CFG_GBL_DATA_SIZE     128     /* size in bytes reserved for initial data */
++
++/*
++ * Hardware drivers
++ */
++#define CONFIG_DRIVER_CS8900  1       /* we have a CS8900 on-board */
++#define CS8900_BASE           0x19000300
++#define CS8900_BUS16          1 /* the Linux driver does accesses as shorts */
++
++/*
++ * select serial console configuration
++ */
++#define CONFIG_SERIAL1          1     /* we use SERIAL 1 on SMDK2410 */
++#define CONFIG_HWFLOW         1
++
++/************************************************************
++ * RTC
++ ************************************************************/
++#define       CONFIG_RTC_S3C24X0      1
++
++/* allow to overwrite serial and ethaddr */
++#define CONFIG_ENV_OVERWRITE
++
++#define CONFIG_BAUDRATE               115200
++
++/***********************************************************
++ * Command definition
++ ***********************************************************/
++#define CONFIG_COMMANDS \
++                      (CONFIG_CMD_DFL  | \
++                      CFG_CMD_BSP      | \
++                      CFG_CMD_CACHE    | \
++                      CFG_CMD_DATE     | \
++                      CFG_CMD_DHCP     | \
++                      CFG_CMD_DIAG     | \
++                      CFG_CMD_ELF      | \
++                      CFG_CMD_EXT2     | \
++                      CFG_CMD_FAT      | \
++                      CFG_CMD_HWFLOW   | \
++                      /* CFG_CMD_IDE   | */ \
++                      /* CFG_CMD_IRQ   | */ \
++                      CFG_CMD_JFFS2    | \
++                      CFG_CMD_MMC      | \
++                      CFG_CMD_NAND     | \
++                      CFG_CMD_PING     | \
++                      CFG_CMD_PORTIO   | \
++                      CFG_CMD_REGINFO  | \
++                      CFG_CMD_SAVES    | \
++                      CFG_CMD_USB)
++
++/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */
++#include <cmd_confdefs.h>
++
++#define CONFIG_BOOTDELAY      3
++#define CONFIG_BOOTARGS       "rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8"
++#define CONFIG_ETHADDR                01:ab:cd:ef:fe:dc
++#define CONFIG_NETMASK          255.255.255.0
++#define CONFIG_IPADDR         10.0.0.110
++#define CONFIG_SERVERIP               10.0.0.1
++/*#define CONFIG_BOOTFILE     "elinos-lart" */
++#define CONFIG_BOOTCOMMAND    "nand load 0x32000000 0x34000 0x200000; bootm 0x32000000"
++
++#define CONFIG_DOS_PARTITION  1
++
++#if (CONFIG_COMMANDS & CFG_CMD_KGDB)
++#define CONFIG_KGDB_BAUDRATE  115200          /* speed to run kgdb serial port */
++/* what's this ? it's not used anywhere */
++#define CONFIG_KGDB_SER_INDEX 1               /* which serial port to use */
++#endif
++
++/*
++ * Miscellaneous configurable options
++ */
++#define       CFG_LONGHELP                            /* undef to save memory         */
++#define       CFG_PROMPT              "QT2410 # "     /* Monitor Command Prompt       */
++#define       CFG_CBSIZE              256             /* Console I/O Buffer Size      */
++#define       CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
++#define       CFG_MAXARGS             16              /* max number of command args   */
++#define CFG_BARGSIZE          CFG_CBSIZE      /* Boot Argument Buffer Size    */
++
++#define CFG_MEMTEST_START     0x30000000      /* memtest works on     */
++#define CFG_MEMTEST_END               0x33F00000      /* 63 MB in DRAM        */
++
++#undef  CFG_CLKS_IN_HZ                /* everything, incl board info, in Hz */
++
++#define       CFG_LOAD_ADDR           0x33000000      /* default load address */
++
++/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */
++/* it to wrap 100 times (total 1562500) to get 1 sec. */
++#define       CFG_HZ                  1562500
++
++/* valid baudrates */
++#define CFG_BAUDRATE_TABLE    { 9600, 19200, 38400, 57600, 115200 }
++
++/*-----------------------------------------------------------------------
++ * Stack sizes
++ *
++ * The stack sizes are set up in start.S using the settings below
++ */
++#define CONFIG_STACKSIZE      (128*1024)      /* regular stack */
++#ifdef CONFIG_USE_IRQ
++#define CONFIG_STACKSIZE_IRQ  (4*1024)        /* IRQ stack */
++#define CONFIG_STACKSIZE_FIQ  (4*1024)        /* FIQ stack */
++#endif
++
++/* IDE/ATA config */
++
++#if 0
++#define CFG_IDE_MAXBUS                1
++#define CFG_IDE_MAXDEVICE     2
++#define CFG_IDE_PREINIT               0
++
++#define CFG_ATA_BASE_ADDR     
++#endif
++
++#define CONFIG_USB_OHCI               1
++
++/*-----------------------------------------------------------------------
++ * Physical Memory Map
++ */
++#define CONFIG_NR_DRAM_BANKS  1          /* we have 1 bank of DRAM */
++#define PHYS_SDRAM_1          0x30000000 /* SDRAM Bank #1 */
++#define PHYS_SDRAM_1_SIZE     0x04000000 /* 64 MB */
++#define PHYS_SDRAM_RES_SIZE   0x00200000 /* 2 MB for frame buffer */
++
++#define PHYS_FLASH_1          0x00000000 /* Flash Bank #1 */
++
++#define CFG_FLASH_BASE                PHYS_FLASH_1
++
++/*-----------------------------------------------------------------------
++ * FLASH and environment organization
++ */
++
++#define CONFIG_AMD_LV400      1       /* uncomment this if you have a LV400 flash */
++
++#define CFG_MAX_FLASH_BANKS   1       /* max number of memory banks */
++#define PHYS_FLASH_SIZE               0x00080000 /* 512KB */
++#define CFG_MAX_FLASH_SECT    (11)    /* max number of sectors on one chip */
++
++/* timeout values are in ticks */
++#define CFG_FLASH_ERASE_TOUT  (5*CFG_HZ) /* Timeout for Flash Erase */
++#define CFG_FLASH_WRITE_TOUT  (5*CFG_HZ) /* Timeout for Flash Write */
++
++#define       CFG_ENV_IS_IN_NAND      1
++#define CFG_ENV_SIZE          0x4000          /* 16k Total Size of Environment Sector */
++#define CFG_ENV_OFFSET                0x30000         /* environment after bootloader */
++
++#define NAND_MAX_CHIPS                1
++#define CFG_NAND_BASE         0x4e000000
++#define CFG_MAX_NAND_DEVICE   1
++
++#define CONFIG_MMC            1
++#define CFG_MMC_BASE          0xff000000
++
++#define CONFIG_EXT2           1
++
++/* FAT driver in u-boot is broken currently */
++#define CONFIG_FAT            1
++#define CONFIG_SUPPORT_VFAT   1
++
++/* ATAG configuration */
++#define CONFIG_INITRD_TAG             1
++#define CONFIG_SETUP_MEMORY_TAGS      1
++#define CONFIG_CMDLINE_TAG            1
++#if 0
++#define CONFIG_SERIAL_TAG             1
++#define CONFIG_REVISION_TAG           1
++#endif
++
++
++#if 0
++#define CONFIG_VIDEO
++#define CONFIG_VIDEO_S3C2410
++#define CONFIG_CFB_CONSOLE
++#define CONFIG_VIDEO_LOGO
++#define CONFIG_VGA_AS_SINGLE_DEVICE
++
++#define VIDEO_KBD_INIT_FCT    0
++#define VIDEO_TSTC_FCT                serial_tstc
++#define VIDEO_GETC_FCT                serial_getc
++
++#define LCD_VIDEO_ADDR                0x33d00000
++#endif
++
++#endif        /* __CONFIG_H */
+Index: git/include/s3c2410.h
+===================================================================
+--- git.orig/include/s3c2410.h 2007-01-04 12:21:15.000000000 +0100
++++ git/include/s3c2410.h      2007-01-04 12:21:18.000000000 +0100
+@@ -38,12 +38,6 @@
+ #define S3C2410_ECCSIZE               512
+ #define S3C2410_ECCBYTES      3
+-typedef enum {
+-      S3C24X0_UART0,
+-      S3C24X0_UART1,
+-      S3C24X0_UART2
+-} S3C24X0_UARTS_NR;
+-
+ /* S3C2410 device base addresses */
+ #define S3C24X0_MEMCTL_BASE           0x48000000
+ #define S3C24X0_USB_HOST_BASE         0x49000000
+@@ -65,9 +59,23 @@
+ #define S3C2410_SDI_BASE              0x5A000000
++#define oNFCONF                       0x00
++#define oNFCMD                        0x04
++#define oNFADDR                       0x08
++#define oNFDATA                       0x0C
++#define oNFSTAT                       0x10
++#define oNFECC                        0x14
++
++#ifndef __ASSEMBLER__
++
+ /* include common stuff */
+ #include <s3c24x0.h>
++typedef enum {
++      S3C24X0_UART0,
++      S3C24X0_UART1,
++      S3C24X0_UART2
++} S3C24X0_UARTS_NR;
+ static inline S3C24X0_MEMCTL * const S3C24X0_GetBase_MEMCTL(void)
+ {
+@@ -142,6 +150,7 @@
+       return (S3C2410_SDI * const)S3C2410_SDI_BASE;
+ }
++#endif
+ /* ISR */
+ #define pISR_RESET            (*(unsigned *)(_ISR_STARTADDRESS+0x0))
+Index: git/include/s3c24x0.h
+===================================================================
+--- git.orig/include/s3c24x0.h 2007-01-04 12:21:15.000000000 +0100
++++ git/include/s3c24x0.h      2007-01-04 12:21:18.000000000 +0100
+@@ -637,13 +637,7 @@
+       S3C24X0_REG32   SDIDCNT;
+       S3C24X0_REG32   SDIDSTA;
+       S3C24X0_REG32   SDIFSTA;
+-#ifdef __BIG_ENDIAN
+-      S3C24X0_REG8    res[3];
+-      S3C24X0_REG8    SDIDAT;
+-#else
+-      S3C24X0_REG8    SDIDAT;
+-      S3C24X0_REG8    res[3];
+-#endif
++      S3C24X0_REG32   SDIDAT;
+       S3C24X0_REG32   SDIIMSK;
+ } /*__attribute__((__packed__))*/ S3C2410_SDI;
+@@ -1123,11 +1117,7 @@
+ #define rSDIDatCnt            (*(volatile unsigned *)0x5A000030)
+ #define rSDIDatSta            (*(volatile unsigned *)0x5A000034)
+ #define rSDIFSTA              (*(volatile unsigned *)0x5A000038)
+-#ifdef __BIG_ENDIAN
+-#define rSDIDAT                       (*(volatile unsigned char *)0x5A00003F)
+-#else
+-#define rSDIDAT                       (*(volatile unsigned char *)0x5A00003C)
+-#endif
++#define rSDIDAT                       (*(volatile unsigned *)0x5A00003C)
+ #define rSDIIntMsk            (*(volatile unsigned *)0x5A000040)
+ #endif
diff --git a/packages/uboot/u-boot.inc b/packages/uboot/u-boot.inc
new file mode 100644 (file)
index 0000000..3b26e55
--- /dev/null
@@ -0,0 +1,30 @@
+DESCRIPTION = "U-boot bootloader"
+HOMEPAGE = "http://u-boot.sf.net"
+SECTION = "bootloaders"
+PRIORITY = "optional"
+LICENSE = "GPL"
+PROVIDES = "virtual/bootloader"
+
+EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}"
+
+UBOOT_MACHINE ?= "${MACHINE}_config"
+UBOOT_IMAGE = "u-boot-${MACHINE}-${PV}-${PR}.bin"
+
+do_compile () {
+       unset LDFLAGS
+       unset CFLAGS
+       unset CPPFLAGS
+       oe_runmake ${UBOOT_MACHINE}
+       oe_runmake all
+}
+
+do_deploy () {
+       install -d ${DEPLOY_DIR_IMAGE}
+       install ${S}/u-boot.bin ${DEPLOY_DIR_IMAGE}/${UBOOT_IMAGE}
+}
+do_deploy[dirs] = "${S}"
+addtask deploy before do_build after do_compile
+
+do_stage() {
+       install -m755 tools/mkimage ${STAGING_BINDIR_NATIVE}
+}
index 6b87cf9..cefaa9b 100644 (file)
@@ -1,8 +1,4 @@
-DESCRIPTION = "U-boot bootloader"
-PROVIDES = "virtual/bootloader"
-SECTION = "bootloader"
-PRIORITY = "optional"
-LICENSE = "GPL"
+require u-boot.inc
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${PN}-${PV}.tar.bz2 \
           file://arm_flags.patch;patch=1 "
@@ -13,13 +9,10 @@ SRC_URI_append_mnci   = "file://mnci.patch;patch=1 \
                          file://command-names.patch;patch=1"
 # TODO: SRC_URI_append_rt3000
 
-EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}"
 TARGET_LDFLAGS = ""
 
-UBOOT_MACHINE ?= "${MACHINE}_config"
 UBOOT_MACHINE_mnci   = "mnci_config"
 UBOOT_MACHINE_vibren = "pxa255_idp_config"
-UBOOT_IMAGE = "u-boot-${MACHINE}-${PV}-${PR}.bin"
 
 inherit base
 
@@ -28,18 +21,6 @@ do_compile () {
        oe_runmake all
 }
 
-do_stage() {
-       install -m755 tools/mkimage ${STAGING_BINDIR_NATIVE}
-}
-
-do_deploy () {
-       install -d ${DEPLOY_DIR_IMAGE}
-       install ${S}/u-boot.bin ${DEPLOY_DIR_IMAGE}/${UBOOT_IMAGE}
-}
-do_deploy[dirs] = "${S}"
-addtask deploy before do_build after do_compile
-
-
 #########################################################
 
 RDEPENDS_append_mnci = " hwctrl"
index ca6baec..5c158f2 100644 (file)
@@ -1,8 +1,4 @@
-DESCRIPTION = "U-boot bootloader"
-PROVIDES = "virtual/bootloader"
-SECTION = "bootloader"
-PRIORITY = "optional"
-LICENSE = "GPL"
+require u-boot.inc
 
 DEFAULT_PREFERENCE = "-1"
 
@@ -30,13 +26,9 @@ SRC_URI_append_dht-walnut= "\
         file://u-boot-dht-walnut-df2.patch;patch=1"
 
 
-EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}"
 EXTRA_OEMAKE_gumstix = "CROSS_COMPILE=${TARGET_PREFIX} GUMSTIX_400MHZ=${GUMSTIX_400MHZ}"
 TARGET_LDFLAGS = ""
 
-UBOOT_MACHINE ?= "${MACHINE}_config"
-UBOOT_IMAGE = "u-boot-${MACHINE}-${PV}-${PR}.bin"
-
 UBOOT_MACHINE_dht-walnut = "walnut_config"
 
 def gumstix_mhz(d):
@@ -55,14 +47,3 @@ do_compile () {
        oe_runmake ${UBOOT_MACHINE}
        oe_runmake all
 }
-
-do_stage() {
-       install -m755 tools/mkimage ${STAGING_BINDIR_NATIVE}
-}
-
-do_deploy () {
-       install -d ${DEPLOY_DIR_IMAGE}
-       install ${S}/u-boot.bin ${DEPLOY_DIR_IMAGE}/${UBOOT_IMAGE}
-}
-do_deploy[dirs] = "${S}"
-addtask deploy before do_build after do_compile
index bfd0fb8..7bd09c6 100644 (file)
@@ -1,36 +1,8 @@
-DESCRIPTION = "U-boot bootloader"
-PROVIDES = "virtual/bootloader"
-SECTION = "bootloader"
-PRIORITY = "optional"
-LICENSE = "GPL"
+require u-boot.inc
 
 PR = "r1"
 
 SRC_URI = "ftp://ftp.denx.de/pub/u-boot/u-boot-1.1.6.tar.bz2 \
            file://devkit-idp.patch;patch=1"
 
-EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}"
-
-UBOOT_MACHINE ?= "${MACHINE}_config"
-UBOOT_IMAGE = "u-boot-${MACHINE}-${PV}-${PR}.bin"
-
 PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-do_compile () {
-       unset LDFLAGS
-       unset CFLAGS
-       unset CPPFLAGS
-       oe_runmake ${UBOOT_MACHINE}
-       oe_runmake all
-}
-
-do_stage() {
-       install -m755 tools/mkimage ${STAGING_BINDIR_NATIVE}
-}
-
-do_deploy () {
-       install -d ${DEPLOY_DIR_IMAGE}
-       install ${S}/u-boot.bin ${DEPLOY_DIR_IMAGE}/${UBOOT_IMAGE}
-}
-do_deploy[dirs] = "${S}"
-addtask deploy before do_build after do_compile
index 361d9c8..c29aba7 100644 (file)
@@ -1,8 +1,4 @@
-DESCRIPTION = "U-boot bootloader"
-PROVIDES = "virtual/bootloader"
-SECTION = "bootloader"
-PRIORITY = "optional"
-LICENSE = "GPL"
+require u-boot.inc
 
 PR = "r2"
 
@@ -16,31 +12,6 @@ SRC_URI_append_navman-icn330 = " http://www.duff.dk/navman/navman-u-boot-2006-30
 
 S = "${WORKDIR}/git"
 
-#EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX} CFLAGS="" CPPFLAGS="" LDFLAGS="""
-EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}"
-
-UBOOT_MACHINE ?= "${MACHINE}_config"
-UBOOT_IMAGE = "u-boot-${MACHINE}-${PV}-${PR}.bin"
-
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 
 #inherit base
-
-do_compile () {
-       unset LDFLAGS
-       unset CFLAGS
-       unset CPPFLAGS
-       oe_runmake ${UBOOT_MACHINE}
-       oe_runmake all
-}
-
-do_stage() {
-       install -m755 tools/mkimage ${STAGING_BINDIR_NATIVE}
-}
-
-do_deploy () {
-       install -d ${DEPLOY_DIR_IMAGE}
-       install ${S}/u-boot.bin ${DEPLOY_DIR_IMAGE}/${UBOOT_IMAGE}
-}
-do_deploy[dirs] = "${S}"
-addtask deploy before do_build after do_compile
index fa59bab..9362b62 100644 (file)
@@ -1,8 +1,4 @@
-DESCRIPTION = "U-boot bootloader"
-PROVIDES = "virtual/bootloader"
-SECTION = "bootloader"
-PRIORITY = "optional"
-LICENSE = "GPL"
+require u-boot.inc
 
 DEFAULT_PREFERENCE = "-1"
 
@@ -10,31 +6,6 @@ SRC_URI = "git://www.denx.de/git/u-boot.git;protocol=git "
 
 S = "${WORKDIR}/git"
 
-#EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX} CFLAGS="" CPPFLAGS="" LDFLAGS="""
-EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}"
-
-UBOOT_MACHINE ?= "${MACHINE}_config"
-UBOOT_IMAGE = "u-boot-${MACHINE}-${PV}-${PR}.bin"
-
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 
 #inherit base
-
-do_compile () {
-       unset LDFLAGS
-       unset CFLAGS
-       unset CPPFLAGS
-       oe_runmake ${UBOOT_MACHINE}
-       oe_runmake all
-}
-
-do_stage() {
-       install -m 755 tools/mkimage ${STAGING_BINDIR_NATIVE}
-}
-
-do_deploy () {
-       install -d ${DEPLOY_DIR_IMAGE}
-       install ${S}/u-boot.bin ${DEPLOY_DIR_IMAGE}/${UBOOT_IMAGE}
-}
-do_deploy[dirs] = "${S}"
-addtask deploy before do_build after do_compile
diff --git a/packages/uboot/uboot-gta01_svn.bb b/packages/uboot/uboot-gta01_svn.bb
new file mode 100644 (file)
index 0000000..b78b81d
--- /dev/null
@@ -0,0 +1,56 @@
+DESCRIPTION = "U-boot bootloader w/ Neo1973 (GTA01) support"
+AUTHOR = "Harald Welte <laforge@openmoko.org>
+LICENSE = "GPL"
+SECTION = "bootloader"
+PRIORITY = "optional"
+PV = "1.2.0+svn${SRCDATE}"
+PR = "r3"
+
+PROVIDES = "virtual/bootloader"
+S = "${WORKDIR}/git"
+
+SRC_URI = "git://www.denx.de/git/u-boot.git/;protocol=git \
+           svn://svn.openmoko.org/trunk/src/target/u-boot;module=patches;proto=https \
+          file://fix-arm920t-eabi.patch;patch=1"
+
+EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}"
+TARGET_LDFLAGS = ""
+UBOOT_MACHINES = "gta01v3 gta01v4 gta01bv2 gta01bv3"
+
+do_quilt() {
+        mv ${WORKDIR}/patches ${S}/patches && cd ${S} && quilt push -av
+        rm -Rf patches .pc
+}
+
+do_compile () {
+       chmod +x board/neo1973/split_by_variant.sh
+       for type in ram nand
+       do
+               for mach in ${UBOOT_MACHINES}
+               do
+                       oe_runmake ${mach}_config
+                       oe_runmake clean
+                       if [ ${type} == "ram" ]; then
+                               echo 'PLATFORM_RELFLAGS += -DBUILD_FOR_RAM' >> board/neo1973/config.tmp
+                       fi
+                       oe_runmake all
+                       mv u-boot.bin u-boot_${mach}_${type}.bin
+               done
+       done
+}
+
+do_deploy () {
+       install -d ${DEPLOY_DIR_IMAGE}
+       for type in nand ram
+       do
+               for mach in ${UBOOT_MACHINES}
+               do
+                       install ${S}/u-boot_${mach}_${type}.bin ${DEPLOY_DIR_IMAGE}/u-boot_${type}-${mach}-${DATETIME}.bin
+               done
+       done
+       install -m 0755 tools/mkimage ${STAGING_BINDIR_NATIVE}/uboot-mkimage
+}
+
+do_deploy[dirs] = "${S}"
+addtask deploy before do_build after do_compile
+addtask quilt before do_patch after do_unpack
diff --git a/packages/uboot/uboot-qt2410_0.0+cvs20061030.bb b/packages/uboot/uboot-qt2410_0.0+cvs20061030.bb
new file mode 100644 (file)
index 0000000..102030f
--- /dev/null
@@ -0,0 +1,41 @@
+DESCRIPTION = "U-boot bootloader w/ armzone qt2410 support"
+SECTION = "bootloader"
+PRIORITY = "optional"
+LICENSE = "GPL"
+SRCDATE := "${PV}"
+PR = "r0"
+
+PROVIDES = "virtual/bootloader"
+S = "${WORKDIR}/git"
+
+SRC_URI = "git://www.denx.de/git/u-boot.git/;protocol=git \
+          file://u-boot-20061030-qt2410-gta01.patch;patch=1 \
+          file://qt2410_*.h"
+
+EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}"
+TARGET_LDFLAGS = ""
+UBOOT_MACHINE = "qt2410_config"
+
+inherit base
+
+do_compile () {
+       for type in nand  ram
+       do
+               install -m 0644 ${WORKDIR}/qt2410_${type}.h include/configs/qt2410.h
+               oe_runmake ${UBOOT_MACHINE}
+               oe_runmake all
+               mv u-boot.bin u-boot_$type.bin
+       done
+}
+
+do_deploy () {
+       install -d ${DEPLOY_DIR_IMAGE}
+       for type in nand ram
+       do
+               install ${S}/u-boot_$type.bin ${DEPLOY_DIR_IMAGE}/u-boot_$type-${MACHINE}-${DATETIME}.bin
+       done
+       install -m 0755 tools/mkimage ${STAGING_BINDIR}/uboot-mkimage
+}
+
+do_deploy[dirs] = "${S}"
+addtask deploy before do_build after do_compile
diff --git a/packages/uclibc/uclibc-0.9.28/powerpc/.mtn2git_empty b/packages/uclibc/uclibc-0.9.28/powerpc/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/uclibc/uclibc-0.9.28/powerpc/uClibc.config b/packages/uclibc/uclibc-0.9.28/powerpc/uClibc.config
new file mode 100644 (file)
index 0000000..8a12c10
--- /dev/null
@@ -0,0 +1,180 @@
+#
+# Automatically generated make config: don't edit
+# Tue Feb  6 19:17:06 2007
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+TARGET_powerpc=y
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="powerpc"
+FORCE_OPTIONS_FOR_ARCH=y
+ARCH_BIG_ENDIAN=y
+
+#
+# Using Big Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+KERNEL_SOURCE="/proj/oplinux-0.2/op-linux/branches/oplinux-0.2/efika/build/tmp/cross/powerpc-linux-uclibc"
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+DOPIC=y
+# HAVE_NO_SHARED is not set
+# ARCH_HAS_NO_LDSO is not set
+HAVE_SHARED=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+# UCLIBC_STATIC_LDCONFIG is not set
+LDSO_RUNPATH=y
+UCLIBC_CTOR_DTOR=y
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_THREADS=y
+PTHREADS_DEBUG_SUPPORT=y
+LINUXTHREADS_OLD=y
+UCLIBC_HAS_LFS=y
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+MALLOC_GLIBC_COMPAT=y
+UCLIBC_DYNAMIC_ATEXIT=y
+COMPAT_ATEXIT=y
+# UCLIBC_SUSV3_LEGACY is not set
+UCLIBC_HAS_SHADOW=y
+UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+UCLIBC_HAS___PROGNAME=y
+UNIX98PTY_ONLY=y
+ASSUME_DEVPTS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+
+#
+# Networking Support
+#
+UCLIBC_HAS_IPV6=y
+UCLIBC_HAS_RPC=y
+UCLIBC_HAS_FULL_RPC=y
+UCLIBC_HAS_REENTRANT_RPC=y
+UCLIBC_USE_NETLINK=y
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+# UCLIBC_HAS_LOCALE is not set
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+UCLIBC_HAS_STDIO_BUFSIZ_256=y
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_REGEX_OLD=y
+UCLIBC_HAS_FNMATCH=y
+UCLIBC_HAS_FNMATCH_OLD=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_GLOB=y
+# UCLIBC_HAS_GNU_GLOB is not set
+
+#
+# Library Installation Options
+#
+SHARED_LIB_LOADER_PREFIX="/lib"
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="//usr"
+
+#
+# Security options
+#
+# UCLIBC_BUILD_PIE is not set
+# UCLIBC_HAS_ARC4RANDOM is not set
+# HAVE_NO_SSP is not set
+# UCLIBC_HAS_SSP is not set
+UCLIBC_BUILD_RELRO=y
+# UCLIBC_BUILD_NOW is not set
+UCLIBC_BUILD_NOEXECSTACK=y
+
+#
+# uClibc development/debugging options
+#
+CROSS_COMPILER_PREFIX=""
+# DODEBUG is not set
+# DODEBUG_PT is not set
+DOSTRIP=y
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MALLOC_DEBUGGING is not set
+WARNINGS="-Wall"
+# EXTRA_WARNINGS is not set
+# DOMULTI is not set
+# UCLIBC_MJN3_ONLY is not set
diff --git a/packages/uclibc/uclibc-cvs/powerpc/.mtn2git_empty b/packages/uclibc/uclibc-cvs/powerpc/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/uclibc/uclibc-cvs/powerpc/uClibc.config b/packages/uclibc/uclibc-cvs/powerpc/uClibc.config
new file mode 100644 (file)
index 0000000..8a12c10
--- /dev/null
@@ -0,0 +1,180 @@
+#
+# Automatically generated make config: don't edit
+# Tue Feb  6 19:17:06 2007
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+TARGET_powerpc=y
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="powerpc"
+FORCE_OPTIONS_FOR_ARCH=y
+ARCH_BIG_ENDIAN=y
+
+#
+# Using Big Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+KERNEL_SOURCE="/proj/oplinux-0.2/op-linux/branches/oplinux-0.2/efika/build/tmp/cross/powerpc-linux-uclibc"
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+DOPIC=y
+# HAVE_NO_SHARED is not set
+# ARCH_HAS_NO_LDSO is not set
+HAVE_SHARED=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+# UCLIBC_STATIC_LDCONFIG is not set
+LDSO_RUNPATH=y
+UCLIBC_CTOR_DTOR=y
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_THREADS=y
+PTHREADS_DEBUG_SUPPORT=y
+LINUXTHREADS_OLD=y
+UCLIBC_HAS_LFS=y
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+MALLOC_GLIBC_COMPAT=y
+UCLIBC_DYNAMIC_ATEXIT=y
+COMPAT_ATEXIT=y
+# UCLIBC_SUSV3_LEGACY is not set
+UCLIBC_HAS_SHADOW=y
+UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+UCLIBC_HAS___PROGNAME=y
+UNIX98PTY_ONLY=y
+ASSUME_DEVPTS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+
+#
+# Networking Support
+#
+UCLIBC_HAS_IPV6=y
+UCLIBC_HAS_RPC=y
+UCLIBC_HAS_FULL_RPC=y
+UCLIBC_HAS_REENTRANT_RPC=y
+UCLIBC_USE_NETLINK=y
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+# UCLIBC_HAS_LOCALE is not set
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+UCLIBC_HAS_STDIO_BUFSIZ_256=y
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_REGEX_OLD=y
+UCLIBC_HAS_FNMATCH=y
+UCLIBC_HAS_FNMATCH_OLD=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_GLOB=y
+# UCLIBC_HAS_GNU_GLOB is not set
+
+#
+# Library Installation Options
+#
+SHARED_LIB_LOADER_PREFIX="/lib"
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="//usr"
+
+#
+# Security options
+#
+# UCLIBC_BUILD_PIE is not set
+# UCLIBC_HAS_ARC4RANDOM is not set
+# HAVE_NO_SSP is not set
+# UCLIBC_HAS_SSP is not set
+UCLIBC_BUILD_RELRO=y
+# UCLIBC_BUILD_NOW is not set
+UCLIBC_BUILD_NOEXECSTACK=y
+
+#
+# uClibc development/debugging options
+#
+CROSS_COMPILER_PREFIX=""
+# DODEBUG is not set
+# DODEBUG_PT is not set
+DOSTRIP=y
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MALLOC_DEBUGGING is not set
+WARNINGS="-Wall"
+# EXTRA_WARNINGS is not set
+# DOMULTI is not set
+# UCLIBC_MJN3_ONLY is not set
index 729f176..02c41eb 100644 (file)
@@ -5,7 +5,7 @@ DESCRIPTION = "NSLU2 binary upload tool"
 HOMEPAGE = "http://www.nslu2-linux.org/wiki/Main/UpSlug"
 SECTION = "console/network"
 PRIORITY = "optional"
-LICENSE = "GPL-2"
+LICENSE = "GPLv2"
 COMPATIBLE_MACHINE = "nslu2"
 
 SRC_TAG = "UPSLUG_${@'_'.join(bb.data.getVar('PV',d,1).split('.'))}"
index 95b340c..e0d7f2b 100644 (file)
@@ -5,7 +5,7 @@ DESCRIPTION = "NSLU2 binary upload tool"
 HOMEPAGE = "http://www.nslu2-linux.org/wiki/Main/UpSlug"
 SECTION = "console/network"
 PRIORITY = "optional"
-LICENSE = "GPL-2"
+LICENSE = "GPLv2"
 COMPATIBLE_MACHINE = "nslu2"
 
 # Use releases in preference
index c76e3fc..fe0677f 100644 (file)
@@ -1,13 +1,9 @@
-PR = "r0"
 DESCRIPTION = "Xerces-c xml"
-SECTION =  "libs"
+SECTION = "libs"
 PRIORITY = "optional"
 LICENSE = "MIT"
 
-
-
-
-S="${WORKDIR}/xerces-c-src_2_6_0"
+S = "${WORKDIR}/xerces-c-src_2_6_0"
 
 SRC_URI = "http://www.axint.net/apache/xml/xerces-c/xerces-c-src_2_6_0.tar.gz"
 
index 86f8845..8fdab80 100644 (file)
@@ -1,13 +1,9 @@
-PR = "r0"
 DESCRIPTION = "Xerces-c xml"
 SECTION =  "libs"
 PRIORITY = "optional"
 LICENSE = "MIT"
 
-
-
-
-S="${WORKDIR}/xerces-c-src_2_7_0"
+S = "${WORKDIR}/xerces-c-src_2_7_0"
 
 SRC_URI = "http://www.axint.net/apache/xml/xerces-c/source/xerces-c-src_2_7_0.tar.gz"
 
diff --git a/packages/xoo/files/.mtn2git_empty b/packages/xoo/files/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/xoo/files/gta01.png b/packages/xoo/files/gta01.png
new file mode 100644 (file)
index 0000000..e0aae82
Binary files /dev/null and b/packages/xoo/files/gta01.png differ
diff --git a/packages/xoo/files/gta01.xml b/packages/xoo/files/gta01.xml
new file mode 100644 (file)
index 0000000..877a91f
--- /dev/null
@@ -0,0 +1,7 @@
+<skin>
+  <device
+    img="gta01.png"
+    width="680" height="689"
+    display_width="480" display_height="640" display_depth="16"
+    display_x="98" display_y="22" />
+</skin>
index 992d918..71a39b0 100644 (file)
@@ -7,7 +7,16 @@ DEPENDS = "virtual/libx11 libxtst gtk+ libglade"
 PV = "0.7+svn${SRCDATE}"
 PR = "r1"
 
-SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=Xoo;proto=http"
+SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=Xoo;proto=http \
+           file://*.png \
+           file://*.xml"
 S = "${WORKDIR}/Xoo"
 
 inherit autotools
+
+do_install_append() {
+       for i in ${WORKDIR}/*.png ${WORKDIR}/*.xml; do
+               install -m 0644 $i ${D}${datadir}/${PN}/
+       done
+}
+
index b322350..0787a7c 100644 (file)
@@ -1,5 +1,5 @@
 DESCRIPTION = "X mkfontdir app"
-SECTION = "x11/apps"
+SECTION = "x11/applications"
 LICENSE = "MIT-X"
 
 S="${WORKDIR}/mkfontdir-${PV}"
index 3ec30fd..0eb8501 100644 (file)
@@ -1,5 +1,5 @@
 DESCRIPTION = "X mkfontdir app"
-SECTION = "x11/apps"
+SECTION = "x11/applications"
 LICENSE = "MIT-X"
 
 S="${WORKDIR}/mkfontdir-${PV}"
index 051a9e5..5bbab6a 100644 (file)
@@ -1,5 +1,5 @@
 DESCRIPTION = "X mkfontscale app"
-SECTION = "x11/apps"
+SECTION = "x11/applications"
 LICENSE = "MIT-X"
 S="${WORKDIR}/mkfontscale-${PV}"
 
index 27a1dd2..b2a73f9 100644 (file)
@@ -1,6 +1,6 @@
 DESCRIPTION = "X application"
 HOMEPAGE = "http://www.x.org"
-SECTION = "x11/apps"
+SECTION = "x11/applications"
 LICENSE = "MIT-X"
 
 #DEPENDS = ""
index b129103..5d02234 100644 (file)
@@ -1,5 +1,5 @@
 DESCRIPTION = "xterm app"
-SECTION = "x11/apps"
+SECTION = "x11/applications"
 LICENSE = "MIT-X"
 
 DEPENDS = "libxaw xproto virtual/libx11 xextproto xext xau libxpm ncurses"
index 9b42446..7696c47 100644 (file)
@@ -2,21 +2,20 @@
 # Copyright (C) 2004, Advanced Micro Devices, Inc.  All Rights Reserved
 # Released under the MIT license (see packages/COPYING)
 
+DESCRIPTION = "*The* screensaver package for X11"
+HOMEPAGE = "http://www.jwz.org/xscreensaver/"
+SECTION = "x11-misc"
+LICENSE = "BSD"
+DEPENDS = "intltool virtual/libx11 gtk+ libxml2 libglade"
+PR = "r1"
+
 BROKEN = "1"
 # upstream is at 4.22 now - patches do not apply
 
-SRC_URI="http://www.jwz.org/xscreensaver/xscreensaver-${PV}.tar.gz \
-       file://fixes.patch;patch=1 \
-       file://configure.patch;patch=1 \
-       file://XScreenSaver"
-
-DESCRIPTION="*The* screensaver package for X11"
-LICENSE="BSD"
-HOMEPAGE="http://www.jwz.org/xscreensaver/"
-PR = "r1"
-SECTION="x11-misc"
-
-DEPENDS = "intltool virtual/libx11 gtk+ libxml2 libglade"
+SRC_URI = "http://www.jwz.org/xscreensaver/xscreensaver-${PV}.tar.gz \
+           file://fixes.patch;patch=1 \
+           file://configure.patch;patch=1 \
+           file://XScreenSaver"
 
 # xscreensaver-demo is a glade app
 LDFLAGS_append = " -Wl,--export-dynamic"
index 3b951fd..6c2776d 100644 (file)
@@ -2,19 +2,17 @@
 # Copyright (C) 2004, Advanced Micro Devices, Inc.  All Rights Reserved
 # Released under the MIT license (see packages/COPYING)
 
-SRC_URI="http://www.jwz.org/xscreensaver/xscreensaver-${PV}.tar.gz \
-         file://fixes.patch;patch=1 \
-         file://configure.in.patch;patch=1 \
-         file://XScreenSaver"
-
-DESCRIPTION="*The* screensaver package for X11"
-LICENSE="BSD"
-HOMEPAGE="http://www.jwz.org/xscreensaver/"
-PR = "r0"
-SECTION="x11-misc"
-
+DESCRIPTION = "*The* screensaver package for X11"
+HOMEPAGE = "http://www.jwz.org/xscreensaver/"
+SECTION = "x11-misc"
+LICENSE = "BSD"
 DEPENDS = "intltool virtual/libx11 gtk+ libxml2 libglade"
 
+SRC_URI = "http://www.jwz.org/xscreensaver/xscreensaver-${PV}.tar.gz \
+           file://fixes.patch;patch=1 \
+           file://configure.in.patch;patch=1 \
+           file://XScreenSaver"
+
 # xscreensaver-demo is a glade app
 LDFLAGS_append = " -Wl,--export-dynamic"
 
diff --git a/packages/xserver-kdrive-common/.mtn2git_empty b/packages/xserver-kdrive-common/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/xserver-kdrive-common/xserver-kdrive-common/.mtn2git_empty b/packages/xserver-kdrive-common/xserver-kdrive-common/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/xserver-kdrive-common/xserver-kdrive-common/etc/.mtn2git_empty b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/.mtn2git_empty b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xdefaults b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xdefaults
new file mode 100644 (file)
index 0000000..f5b69dd
--- /dev/null
@@ -0,0 +1,3 @@
+Rxvt*scrollBar_right: true
+Rxvt*font: xft:Mono:pixelsize=9
+
diff --git a/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xinit b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xinit
new file mode 100644 (file)
index 0000000..f566ffe
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/sh
+# 
+
+export USER=root
+export HOME=/home/root
+if [ ! -d $HOME ] && [ -d /root ]; then
+  HOME=/root
+fi
+export XAPPLRESDIR=/usr/X11R6/lib/app-defaults
+export XFILESEARCHPATH=./%N%S%C.ad:/usr/X11R6/lib/X11/%L/%T/%N%S%C:/usr/X11R6/lib/X11/%l/%T/%N%S%C:/usr/X11R6/lib/X11/%T/%N%S%C:./%N%S.ad:/usr/X11R6/lib/X11/%L/%T/%N%S:/usr/X11R6/lib/X11/%l/%T/%N%S:/usr/X11R6/lib/X11/%T/%N%S:/usr/local/lib/X11/app-defaults/%N%S%C.ad
+
+export PATH=$PATH:/usr/X11R6/bin
+
+SYSSESSIONDIR=/etc/X11/Xinit.d
+
+exec run-parts $SYSSESSIONDIR
diff --git a/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xserver b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xserver
new file mode 100644 (file)
index 0000000..983b875
--- /dev/null
@@ -0,0 +1,108 @@
+#!/bin/sh
+#
+
+# note xinit needs full server path
+XSERVER=/usr/bin/Xipaq
+if [ -f /usr/bin/Xfbdev ]; then
+  XSERVER=/usr/bin/Xfbdev
+fi
+if [ -f /usr/bin/Xepson ]; then
+  XSERVER=/usr/bin/Xepson
+fi
+if [ -f /usr/bin/Xorg ]; then
+  XSERVER=/usr/bin/Xorg
+fi
+if [ -f /usr/bin/Xomap ]; then
+  XSERVER=/usr/bin/Xomap
+fi
+if [ -f /usr/bin/Xw100 ]; then                                                                                                                                              
+  XSERVER=Xw100                                                                                                                                                             
+fi                                                                                                                                                                          
+if [ -f /usr/bin/Ximageon ]; then                                                                                                                                           
+   XSERVER=Ximageon                                                                                                                                                          
+fi   
+
+. /etc/profile
+
+
+
+fallback_screen_arg() {
+    geom=`fbset | grep geometry`
+    w=`echo $geom | awk '{ print $2 }'`
+    h=`echo $geom | awk '{ print $3 }'`
+    b=`echo $geom | awk '{ print $6 }'`
+    echo -n "${w}x${h}x${b}"
+} 
+
+module_id() {
+    ## used to read from assets, but sometimes assets is corrupted
+    # grep "Module ID" /proc/hal/assets | sed "s/.*://"
+    ## used to read from /proc/hal/model, but that is removed in 2.6
+    # echo ' iPAQ' `cat /proc/hal/model`
+    awk 'BEGIN { FS=": " } /Hardware/ { print $2 } ' </proc/cpuinfo
+}
+
+export USER=root
+
+ARGS=" -br -pn"
+
+# use ucb 1x00 touchscreen if present
+if [ -z "$TSLIB_TSDEVICE" ] && [ -e /dev/touchscreen/ucb1x00 ]; then
+  ARGS="$ARGS -mouse /dev/touchscreen/ucb1x00"
+fi
+
+# use usb mouse if present
+# Xorg doesn't support "-mouse" option, and uses /dev/input/mice automatically
+if [ -z "$TSLIB_TSDEVICE" ] && [ -e /dev/input/mice ] && [ "$XSERVER" != "Xorg" ]; then
+  ARGS="$ARGS -mouse /dev/input/mice"
+fi
+
+# start off server in conventional location.
+case `module_id` in
+        "HP iPAQ H3100" | "HP iPAQ H3800")                                                                                                                                   
+                ARGS="$ARGS -dpi 100 -rgba vrgb -screen 320x240@90" ;;                                                                                                       
+        "HP iPAQ H3600" | "HP iPAQ H3700" | "HP iPAQ H3900")                                                                                                                 
+                ARGS="$ARGS -dpi 100 -rgba vbgr -screen 320x240@270" ;;                                                                                                      
+        "HP iPAQ H5400" | "HP iPAQ H2200")                                                                                                                                   
+                ARGS="$ARGS -dpi 100 -rgba rgb" ;;                                                                                                                           
+        "HP iPAQ HX4700")                                                                                                                                                    
+                ARGS="$ARGS -dpi 200" ;;                                                                                                                                     
+        "Ramses")                                                                                                                                                            
+                # What is this "vt2" in aid of?                                                                                                                              
+                ARGS="$ARGS -dpi 100 -rgba vrgb -screen 320x240@90 vt2" ;;                                                                                                   
+        # both 'Sharp-Collie' and just 'Collie' have been reported                                                                                                           
+        *Poodle)                                                                                                                                                             
+                ARGS="$ARGS -dpi 100 -rgba vrgb -screen 320x240@270" ;;                                                                                                      
+        *Collie)                                                                                                                                                             
+                ARGS="$ARGS -dpi 100 -rgba vrgb -screen 320x240@270"                                                                                                         
+                ;;                                                                                                                                                           
+        "SHARP Shepherd" | "SHARP Husky" | "SHARP Corgi")                                                                                                                    
+                ARGS="$ARGS -dpi 200 -rgba rgb" ;;                                                                                                                           
+        "SHARP Spitz" | "SHARP Akita" | "SHARP Borzoi")                                                                                                                      
+                ARGS="$ARGS -dpi 200 -rgba rgb -screen 480x640@270" ;;                                                                                                       
+        "Simpad")                                                                                                                                                            
+                ARGS="$ARGS -dpi 100 -rgba rgb" ;;                                                                                                                           
+        "Generic OMAP1510/1610/1710")                                                                                                                                        
+                ARGS="$ARGS -dpi 220 -mouse /dev/input/event0" ;;                                                                                                            
+        "Cellon C8000 Board")                                                                                                                                                
+                ARGS="$ARGS -dpi 100 -screen 240x320,10,1" ;;                                                                                                                
+        "HTC Universal")                                                                                                                                                     
+                ARGS="$ARGS -dpi 100 -screen 480x640@270" ;;                                                                                
+       "ARM-IntegratorCP" | "ARM-Versatile PB")
+               ARGS="$ARGS -rgba vrgb" ;;
+       "Compulab CM-x270")
+                modprobe mbxfb
+               ARGS="$ARGS -fb /dev/fb1"
+                ;;
+        *)
+               # Its a device we dont know about - in which case force
+                # kdrive to use the current framebuffer geometry otherwise
+               # it will defualt to trying to achieve 1024x768 
+               S=`fallback_screen_arg`
+               ARGS="$ARGS -screen $S"
+               ;;
+esac
+
+DISPLAY=':0'
+
+exec xinit /etc/X11/Xsession -- $XSERVER $DISPLAY $ARGS $*
diff --git a/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession
new file mode 100644 (file)
index 0000000..a438e13
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+HOME_VOLATILE=/home/$USER/ramdisk
+export HOME_VOLATILE
+
+if [ -f /usr/bin/dbus-launch ]; then
+  ## test for an existing bus daemon, just to be safe
+  if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
+     ## if not found, launch a new one
+     eval `dbus-launch --auto-syntax --exit-with-session`
+     echo "D-BUS per-session daemon address is: $DBUS_SESSION_BUS_ADDRESS"
+  fi
+fi
+
+. /etc/profile
+
+if [ -f $HOME/.profile ]; then
+ . $HOME/.profile
+fi
+
+SYSSESSIONDIR=/etc/X11/Xsession.d
+
+run-parts $SYSSESSIONDIR
+
+exit 0
+
diff --git a/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession.d/.mtn2git_empty b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession.d/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession.d/30xTs_Calibrate b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession.d/30xTs_Calibrate
new file mode 100644 (file)
index 0000000..8e6a8b2
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+while [ ! -z $TSLIB_TSDEVICE ] && [ ! -f /etc/pointercal ]
+do
+   /usr/bin/xtscal
+done
diff --git a/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession.d/60xXDefaults b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession.d/60xXDefaults
new file mode 100644 (file)
index 0000000..d3a284d
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+if [ -e $HOME/.Xdefaults ]; then
+    xrdb -merge -nocpp < $HOME/.Xdefaults
+fi
diff --git a/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession.d/90xXWindowManager b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession.d/90xXWindowManager
new file mode 100644 (file)
index 0000000..b2b65a0
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+if [ -x $HOME/.Xsession ]; then
+    exec $HOME/.Xsession
+else
+    exec /usr/bin/x-window-manager
+fi
+
+
diff --git a/packages/xserver-kdrive-common/xserver-kdrive-common_0.1.bb b/packages/xserver-kdrive-common/xserver-kdrive-common_0.1.bb
new file mode 100644 (file)
index 0000000..c076a34
--- /dev/null
@@ -0,0 +1,18 @@
+DESCRIPTION = "Common X11 scripts"
+LICENSE = "GPL"
+SECTION = "x11"
+RDEPENDS_${PN} = "xmodmap libxrandr xdpyinfo xtscal xinit"
+PR = "r9"
+
+SRC_URI = "file://etc"
+S = ${WORKDIR}
+
+PACKAGE_ARCH = "all"
+
+do_install() {
+       cp -R ${S}/etc ${D}/etc
+       rm -fR ${D}/etc/.svn
+       rm -fR ${D}/etc/*/.svn
+       rm -fR ${D}/etc/*/*/.svn
+       chmod -R 755 ${D}/etc
+}
\ No newline at end of file
diff --git a/packages/xserver-kdrive-common/xserver-nodm-init.bb b/packages/xserver-kdrive-common/xserver-nodm-init.bb
new file mode 100644 (file)
index 0000000..cea9f0c
--- /dev/null
@@ -0,0 +1,21 @@
+DESCRIPTION = "Simple Xserver Init Script (no dm)"
+LICENSE = "GPL"
+SECTION = "x11"
+PRIORITY = "optional"
+PR = "r8"
+
+SRC_URI = "file://xserver-nodm"
+S = ${WORKDIR}
+
+PACKAGE_ARCH = "all"
+
+do_install() {
+    install -d ${D}/etc
+    install -d ${D}/etc/init.d
+    install xserver-nodm ${D}/etc/init.d
+}    
+
+inherit update-rc.d
+
+INITSCRIPT_NAME = "xserver-nodm"
+INITSCRIPT_PARAMS = "start 99 5 2 . stop 20 0 1 6 ."
diff --git a/packages/xserver-kdrive-common/xserver-nodm-init/.mtn2git_empty b/packages/xserver-kdrive-common/xserver-nodm-init/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/xserver-kdrive-common/xserver-nodm-init/xserver-nodm b/packages/xserver-kdrive-common/xserver-nodm-init/xserver-nodm
new file mode 100755 (executable)
index 0000000..a56edaa
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+killproc() {            # kill the named process(es)
+        pid=`/bin/ps -e x |
+             /bin/grep $1 |
+             /bin/grep -v grep |
+             /bin/sed -e 's/^  *//' -e 's/ .*//'`
+        [ "$pid" != "" ] && kill $pid
+}
+
+for x in $(cat /proc/cmdline); do
+        case $x in
+        x11=false)
+               echo "X Server disabled" 
+               exit 0;
+                ;;
+        esac
+done
+
+case "$1" in
+  start)
+    # We don't want this script to block the rest of the boot process
+    if [ "$2" != "background" ]; then
+      $0 $1 background &
+    else
+       . /etc/profile
+
+       echo "Starting Xserver"
+       /etc/X11/Xserver &
+    fi 
+  ;;
+
+  stop)
+        echo "Stopping XServer"
+        killproc xinit
+  ;;
+
+  restart)
+       $0 stop
+        sleep 1
+        $0 start
+  ;;
+
+  *)
+        echo "usage: $0 { start | stop | restart }"
+  ;;
+esac
+
+exit 0
index d17e8c2..e1e06d5 100644 (file)
@@ -1,7 +1,7 @@
 DESCRIPTION = "A VoIP SIP phone for the Yealink USB handset"
 HOMEPAGE = "http://www.devbase.at/voip/"
 MAINTAINER = "Thomas Reitmayr <treitmayr@yahoo.com>"
-LICENSE = "GPL-2"
+LICENSE = "GPLv2"
 PRIORITY = "optional"
 DEPENDS = "liblinphone"
 RDEPENDS = "liblinphone"
index 80d0392..3f6fa7c 100644 (file)
@@ -1,5 +1,5 @@
 DESCRIPTION = "Password manager"
-SECTION     = "opie/applications"
+SECTION = "opie/applications"
 PRIORITY    = "optional"
 LICENSE     = "GPL"
 RCONFLICTS  = "opie-zsafe"
index 934522e..9384a8a 100644 (file)
@@ -166,6 +166,9 @@ ac_cv_func_mmap_fixed_mapped=${ac_cv_func_mmap_fixed_mapped=yes}
 # dbus
 ac_cv_have_abstract_sockets=${ac_cv_have_abstract_sockets=no}
 
+#glibc
+libc_cv_forced_unwind=yes
+
 # lftp
 ac_cv_file___dev_ptc_=yes
 
index e69de29..9358856 100644 (file)
@@ -0,0 +1,6 @@
+# clamav
+clamav_av_func_working_snprintf_long=${clamav_av_func_working_snprintf_long=yes}
+clamav_av_have_in_port_t=${clamav_av_have_in_port_t=yes}
+clamav_av_have_in_addr_t=${clamav_av_have_in_addr_t=yes}
+ac_cv_func_mmap_fixed_mapped=${ac_cv_func_mmap_fixed_mapped=yes}
+
index 0f302ec..f7f987e 100644 (file)
@@ -318,3 +318,7 @@ samba_cv_USE_SETUIDX=${samba_cv_USE_SETUIDX=yes}
 samba_cv_have_longlong=${samba_cv_have_longlong=yes}
 samba_cv_have_setresgid=${samba_cv_have_setresgid=yes}
 samba_cv_have_setresuid=${samba_cv_have_setresuid=yes}
+
+#monotone
+ac_cv_sync_with_stdio=${ac_cv_sync_with_stdio=yes} 
+ac_cv_sync_with_stdio_2=${ac_cv_sync_with_stdio_2=yes}