summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MAINTAINERS8
-rw-r--r--classes/autotools.bbclass2
-rw-r--r--classes/dsmg600-image.bbclass19
-rw-r--r--classes/insane.bbclass303
-rw-r--r--classes/kernel.bbclass36
-rw-r--r--classes/linux-kernel-base.bbclass4
-rw-r--r--classes/module.bbclass17
-rw-r--r--classes/nas100d-image.bbclass19
-rw-r--r--classes/nslu2-image.bbclass20
-rw-r--r--classes/nslu2-jffs2-image.bbclass18
-rw-r--r--classes/nslu2-ramdisk-image.bbclass18
-rw-r--r--classes/openmoko-base.bbclass19
-rw-r--r--classes/openmoko-panel-plugin.bbclass6
-rw-r--r--classes/openmoko.bbclass3
-rw-r--r--conf/bitbake.conf2
-rw-r--r--conf/distro/amsdelta-oe.conf29
-rw-r--r--conf/distro/angstrom-2007.1-oabi.conf2
-rw-r--r--conf/distro/angstrom-2007.1.conf17
-rw-r--r--conf/distro/include/openmoko.inc127
-rw-r--r--conf/distro/include/preferred-openmoko-versions.inc60
-rw-r--r--conf/distro/include/sane-srcdates.inc2
-rw-r--r--conf/distro/include/slugos.inc8
-rw-r--r--conf/distro/mokoslug.conf22
-rw-r--r--conf/distro/openmoko.conf28
-rw-r--r--conf/distro/slugos.conf94
-rw-r--r--conf/distro/unslung.conf6
-rw-r--r--conf/machine/efika.conf2
-rw-r--r--conf/machine/fic-gta01.conf38
-rw-r--r--conf/machine/include/collie-2.4.conf6
-rw-r--r--conf/machine/include/simpad-2.4.conf2
-rw-r--r--conf/machine/include/simpad-2.6.conf2
-rw-r--r--conf/machine/nslu2be.conf5
-rw-r--r--conf/machine/nslu2le.conf5
-rw-r--r--conf/machine/shark.conf24
-rw-r--r--conf/machine/simpad.conf1
-rw-r--r--packages/altboot/altboot_wip.bb2
-rw-r--r--packages/angstrom/angstrom-mokogateway-image.bb35
-rw-r--r--packages/angstrom/task-angstrom-x11.bb3
-rw-r--r--packages/apache2/apache2_2.2.3.bb2
-rw-r--r--packages/arm-kernel-shim/arm-kernel-shim_1.3.bb4
-rw-r--r--packages/arm-kernel-shim/files/cmdline_if_none.patch45
-rw-r--r--packages/arm-kernel-shim/files/config-dsmg600.h14
-rw-r--r--packages/arm-kernel-shim/files/passthrough-atags.patch20
-rw-r--r--packages/base-files/base-files/angstrom/issue9
-rw-r--r--packages/base-files/base-files/angstrom/issue.net9
-rw-r--r--packages/base-files/base-files/armzone-qt2410/.mtn2git_empty (renamed from packages/lighttpd/1.4.13/.mtn2git_empty)0
-rw-r--r--packages/base-files/base-files/armzone-qt2410/fstab16
-rw-r--r--packages/base-files/base-files/fic-gta01/.mtn2git_empty (renamed from packages/lighttpd/conf/.mtn2git_empty)0
-rw-r--r--packages/base-files/base-files/fic-gta01/fstab16
-rw-r--r--packages/base-files/base-files_3.0.14.bb2
-rw-r--r--packages/beepmp/beepmp_0.9.7.bb2
-rw-r--r--packages/cairo/cairo_1.3.14.bb (renamed from packages/cairo/cairo_1.3.12.bb)2
-rw-r--r--packages/contacts/contacts_0.2.bb2
-rw-r--r--packages/cups/cups_1.2.7.bb8
-rw-r--r--packages/cyrus-imapd/cyrus-imapd-2.2.12/remove-install-strip.patch45
-rw-r--r--packages/cyrus-imapd/cyrus-imapd_2.2.12.bb3
-rw-r--r--packages/dates/dates_0.3.1.bb1
-rw-r--r--packages/dcop/dcopidl-native_3.5.4.bb2
-rw-r--r--packages/dcop/dcopidl2cpp-native_3.5.4.bb2
-rw-r--r--packages/dhcdbd/dhcdbd_1.14.bb17
-rw-r--r--packages/dhcdbd/dhcdbd_1.16.bb17
-rw-r--r--packages/dhcdbd/dhcdbd_2.0.bb17
-rw-r--r--packages/e2fsprogs/e2fsprogs/e2fsprogs_1.34.bb20
-rw-r--r--packages/e2fsprogs/e2fsprogs_1.38.bb51
-rw-r--r--packages/eds/eds-dbus_svn.bb58
-rw-r--r--packages/enchant/enchant_1.1.3.bb2
-rw-r--r--packages/enchant/enchant_1.2.5.bb2
-rw-r--r--packages/esound/esound_0.2.36.bb3
-rw-r--r--packages/fftw/fftw_3.1.2.bb3
-rw-r--r--packages/galago/eds-feed_0.3.2.bb16
-rw-r--r--packages/galago/galago-daemon_0.3.4.bb12
-rw-r--r--packages/glibc/glibc.inc4
-rw-r--r--packages/glibc/glibc_2.2.5.bb2
-rw-r--r--packages/glibc/glibc_2.3.2.bb1
-rw-r--r--packages/glibc/glibc_2.3.3.bb2
-rw-r--r--packages/glibc/glibc_2.5.bb3
-rw-r--r--packages/gnome/gnome-vfs_2.16.3.bb3
-rw-r--r--packages/gnuplot/qtplot_0.2.bb2
-rw-r--r--packages/gpe-bluetooth/gpe-bluetooth_0.51.bb2
-rw-r--r--packages/gpe-bluetooth/gpe-bluetooth_0.52.bb2
-rw-r--r--packages/gpe-bluetooth/gpe-bluetooth_0.53.bb2
-rw-r--r--packages/gpe-bluetooth/gpe-bluetooth_0.54.bb2
-rw-r--r--packages/gpe-conf/gpe-conf_0.2.4.bb (renamed from packages/gpe-conf/gpe-conf_0.2.2.bb)0
-rw-r--r--packages/gpe-filemanager/gpe-filemanager_0.23.bb2
-rw-r--r--packages/gpe-filemanager/gpe-filemanager_0.24.bb2
-rw-r--r--packages/gpe-filemanager/gpe-filemanager_0.25.bb2
-rw-r--r--packages/gpe-login/gpe-login_0.87.bb2
-rw-r--r--packages/gpe-mini-browser/gpe-mini-browser_0.17.bb2
-rw-r--r--packages/gpe-mini-browser/gpe-mini-browser_0.18.bb2
-rw-r--r--packages/gpe-session-scripts/gpe-session-scripts_0.67.bb6
-rw-r--r--packages/gpe-shield/gpe-shield_0.9.bb2
-rw-r--r--packages/gpe-themes/gpe-theme-clearlooks_0.2.bb15
-rw-r--r--packages/gpe-themes/gpe-theme-clearlooks_0.3.bb14
-rw-r--r--packages/gpe-themes/gpe-theme-industrial_0.2.bb14
-rw-r--r--packages/gpe-todo/gpe-todo-hildon_0.54.bb2
-rw-r--r--packages/gpe-todo/gpe-todo-hildon_0.55.bb2
-rw-r--r--packages/gpe-what/gpe-what_cvs.bb3
-rw-r--r--packages/gpephone/addressbook_0.1.bb2
-rw-r--r--packages/gpephone/audioplayer_1.0.bb2
-rw-r--r--packages/gpephone/calendar_1.0.bb2
-rw-r--r--packages/gpephone/cms92init_0.1.bb2
-rw-r--r--packages/gpephone/connect_0.1.bb2
-rw-r--r--packages/gpephone/gloox_0.8.1.bb2
-rw-r--r--packages/gpephone/gpe-applauncher_0.7.bb2
-rw-r--r--packages/gpephone/gpe-phonepanel_0.7.bb2
-rw-r--r--packages/gpephone/gsmmux_alpha-2.bb2
-rw-r--r--packages/gpephone/iksemel_1.2.bb2
-rw-r--r--packages/gpephone/libabenabler_0.1.bb2
-rw-r--r--packages/gpephone/libcalenabler_1.0.bb2
-rw-r--r--packages/gpephone/libchenabler_0.1.bb2
-rw-r--r--packages/gpephone/libgemwidget_0.1.bb2
-rw-r--r--packages/gpephone/libgpephone_0.3.bb2
-rw-r--r--packages/gpephone/libiac_0.1.bb2
-rw-r--r--packages/gpephone/libidn_0.5.19.bb2
-rw-r--r--packages/gpephone/libim_0.1.bb2
-rw-r--r--packages/gpephone/liblipsevent_0.1.bb2
-rw-r--r--packages/gpephone/libmsgenabler_1.0.bb2
-rw-r--r--packages/gpephone/librecord_0.1.bb2
-rw-r--r--packages/gpephone/libvocenabler_0.1.bb2
-rw-r--r--packages/gpephone/phoneserver_1.0.bb2
-rw-r--r--packages/gpephone/sms_1.0.bb2
-rw-r--r--packages/gpephone/soundserver_1.0.bb2
-rw-r--r--packages/gpephone/videoplayer_0.1.bb2
-rw-r--r--packages/gpephone/voicecall_0.1.bb2
-rw-r--r--packages/gpephone/xoo-theme-gpephone_1.0.bb2
-rw-r--r--packages/gpsd/gpsd.inc7
-rw-r--r--packages/gpsd/gpsd_2.34.bb3
-rw-r--r--packages/grub/grub_0.93.bb7
-rw-r--r--packages/grub/grub_0.97.bb10
-rw-r--r--packages/gsm/.mtn2git_empty (renamed from packages/lighttpd/conf/etc/.mtn2git_empty)0
-rw-r--r--packages/gsm/libgsmd_svn.bb24
-rw-r--r--packages/gtk+/pixops-test.bb25
-rw-r--r--packages/gtk+/pixops-test/.mtn2git_empty (renamed from packages/lighttpd/conf/etc/init.d/.mtn2git_empty)0
-rw-r--r--packages/gtk+/pixops-test/gtk-logo-rgb.gifbin0 -> 6459 bytes
-rw-r--r--packages/gtk+/pixops-test/pixops-test.c69
-rw-r--r--packages/hal/hal_0.5.7.bb33
-rw-r--r--packages/images/openmoko-devel-image.bb6
-rw-r--r--packages/images/openmoko-image.bb27
-rw-r--r--packages/images/openmoko-sdk-image.bb5
-rw-r--r--packages/images/slugos-image.bb83
-rw-r--r--packages/images/unslung-image.bb17
-rw-r--r--packages/ipkg/files/is-processing.patch127
-rw-r--r--packages/ipkg/ipkg_0.99.163.bb4
-rw-r--r--packages/ixp4xx/ixp4xx-npe_2.3.bb7
-rw-r--r--packages/js/files/arm/.mtn2git_empty (renamed from packages/madwifi/madwifi-ng-r1844-20061208/.mtn2git_empty)0
-rw-r--r--packages/js/files/arm/jsautocfg.h (renamed from packages/mozilla/firefox-2.0.0.1/arm/jsautocfg.h)6
-rw-r--r--packages/js/files/powerpc/.mtn2git_empty (renamed from packages/mozilla/firefox-2.0.0.1/arm/.mtn2git_empty)0
-rw-r--r--packages/js/files/powerpc/jsautocfg.h (renamed from packages/mozilla/firefox-2.0.0.1/powerpc/jsautocfg.h)0
-rw-r--r--packages/js/js_1.5.bb2
-rw-r--r--packages/libeventdb/libeventdb_0.19.bb2
-rw-r--r--packages/libeventdb/libeventdb_0.21.bb2
-rw-r--r--packages/libeventdb/libeventdb_0.30.bb2
-rw-r--r--packages/libeventdb/libeventdb_svn.bb2
-rw-r--r--packages/libftdi/.mtn2git_empty (renamed from packages/mozilla/firefox-2.0.0.1/powerpc/.mtn2git_empty)0
-rw-r--r--packages/libftdi/files/.mtn2git_empty (renamed from packages/mozilla/firefox-2.0/arm/.mtn2git_empty)0
-rw-r--r--packages/libftdi/files/doxygen-configure.patch28
-rw-r--r--packages/libftdi/libftdi-native_0.8.bb5
-rw-r--r--packages/libftdi/libftdi_0.8.bb17
-rw-r--r--packages/libgpepimc/libgpepimc-hildon_0.5.bb2
-rw-r--r--packages/libgpepimc/libgpepimc.inc2
-rw-r--r--packages/libgpeplugin/libgpeplugin_cvs.bb6
-rw-r--r--packages/libgpevtype/libgpevtype_0.15.bb2
-rw-r--r--packages/libgpevtype/libgpevtype_0.16.bb13
-rw-r--r--packages/libgpevtype/libgpevtype_0.17.bb9
-rw-r--r--packages/libgpevtype/libgpevtype_svn.bb9
-rw-r--r--packages/libgpewidget/libgpewidget-hildon_0.102.bb2
-rw-r--r--packages/libgpewidget/libgpewidget_0.114.bb2
-rw-r--r--packages/libgpewidget/libgpewidget_svn.bb6
-rw-r--r--packages/libhandoff/libhandoff_svn.bb (renamed from packages/libhandoff/libhandoff_cvs.bb)6
-rw-r--r--packages/libxml/libxml2-native_2.6.26.bb20
-rw-r--r--packages/libxslt/libxslt-native_1.1.17.bb4
-rw-r--r--packages/lighttpd/1.4.13/configure.in.patch28
-rw-r--r--packages/lighttpd/lighttpd/.mtn2git_empty (renamed from packages/mozilla/firefox-2.0/powerpc/.mtn2git_empty)0
-rw-r--r--packages/lighttpd/lighttpd/configure.in.patch34
-rw-r--r--packages/lighttpd/lighttpd/index.html1
-rw-r--r--packages/lighttpd/lighttpd/lighttpd (renamed from packages/lighttpd/conf/etc/init.d/lighttpd)7
-rw-r--r--packages/lighttpd/lighttpd/lighttpd.conf (renamed from packages/lighttpd/conf/etc/lighttpd.conf)0
-rw-r--r--packages/lighttpd/lighttpd/src-server.c.patch (renamed from packages/lighttpd/1.4.13/src-server.c.patch)0
-rw-r--r--packages/lighttpd/lighttpd_1.4.13.bb26
-rw-r--r--packages/linux/collie-kernels-2.4-embedix.bb2
-rw-r--r--packages/linux/gta01-kernel_2.6.bb1
-rw-r--r--packages/linux/ixp4xx-kernel.inc2
-rw-r--r--packages/linux/ixp4xx-kernel/2.6.19/defconfig2
-rw-r--r--packages/linux/ixp4xx-kernel/2.6.20/defconfig2
-rw-r--r--packages/linux/ixp4xx-kernel_2.6.19.bb2
-rw-r--r--packages/linux/ixp4xx-kernel_2.6.20.bb2
-rw-r--r--packages/linux/linux-gta01/.mtn2git_empty (renamed from packages/sqlite/sqlite3-3.3.7/.mtn2git_empty)0
-rw-r--r--packages/linux/linux-gta01/defconfig-2.6.20-fic-gta011771
-rw-r--r--packages/linux/linux-gta01/defconfig-fic-gta011621
-rw-r--r--packages/linux/linux-gta01/udc-nomodule-misccr.patch22
-rw-r--r--packages/linux/linux-gta01_2.6.17.14.bb101
-rw-r--r--packages/linux/linux-gta01_2.6.17.7.bb97
-rw-r--r--packages/linux/linux-gta01_2.6.20.bb102
-rw-r--r--packages/linux/linux-handhelds-2.6_2.6.19-hh11.bb11
-rw-r--r--packages/linux/linux-handhelds-2.6_2.6.19-hh12.bb11
-rw-r--r--packages/linux/linux-z/.mtn2git_empty (renamed from packages/sqlite/sqlite3-3.3.9/.mtn2git_empty)0
-rw-r--r--packages/linux/linux-z/shark/.mtn2git_empty0
-rw-r--r--packages/linux/linux-z/shark/defconfig1126
-rw-r--r--packages/linux/linux-z_2.6.20.bb23
-rw-r--r--packages/linux/linux/progear/progear_bl-r6.patch186
-rw-r--r--packages/linux/linux/simpad/.mtn2git_empty0
-rw-r--r--packages/linux/linux/simpad/defconfig1167
-rw-r--r--packages/linux/linux/simpad/linux-2.6.20.SIMpad.mq200.patch1776
-rw-r--r--packages/linux/linux/simpad/linux-2.6.20.SIMpad.ucb1x00-switches.patch227
-rw-r--r--packages/linux/linux_2.6.20.bb5
-rw-r--r--packages/lm_sensors/lmsensors-apps_2.10.1.bb2
-rw-r--r--packages/madwifi/files/10-xscale-be-elf-copts.patch8
-rw-r--r--packages/madwifi/files/10-xscale-le-elf-copts.patch8
-rw-r--r--packages/madwifi/files/20-xscale-VFP-wackelf.patch (renamed from packages/madwifi/files/slugos-VFP-wackelf.patch)0
-rw-r--r--packages/madwifi/files/slugos-xscale-be-elf-copts.patch10
-rw-r--r--packages/madwifi/files/slugos-xscale-le-elf-copts.patch8
-rw-r--r--packages/madwifi/madwifi-ng-r1844-20061208/10-xscale-be-elf-copts.patch12
-rw-r--r--packages/madwifi/madwifi-ng-r1844-20061208/10-xscale-le-elf-copts.patch10
-rw-r--r--packages/madwifi/madwifi-ng_r.inc8
-rw-r--r--packages/madwifi/madwifi-ng_r1527-20060425.bb2
-rw-r--r--packages/madwifi/madwifi-ng_r1692-20060723.bb2
-rw-r--r--packages/madwifi/madwifi-ng_r2100-20070210.bb (renamed from packages/madwifi/madwifi-ng_r1871-20061229.bb)0
-rw-r--r--packages/matchbox2/.mtn2git_empty0
-rw-r--r--packages/matchbox2/files/.mtn2git_empty0
-rw-r--r--packages/matchbox2/files/glib-2.8-backport.patch110
-rw-r--r--packages/matchbox2/matchbox-panel-2_svn.bb24
-rw-r--r--packages/meta/slugos-packages.bb9
-rw-r--r--packages/mozilla/files/arm/.mtn2git_empty0
-rw-r--r--packages/mozilla/files/arm/jsautocfg.h (renamed from packages/mozilla/firefox-1.0.7/jsautocfg.h)8
-rw-r--r--packages/mozilla/files/powerpc/.mtn2git_empty0
-rw-r--r--packages/mozilla/files/powerpc/jsautocfg.h (renamed from packages/mozilla/firefox-2.0/powerpc/jsautocfg.h)0
-rw-r--r--packages/mozilla/firefox-1.5.0.6/jsautocfg.h52
-rw-r--r--packages/mozilla/firefox-2.0/arm/jsautocfg.h52
-rw-r--r--packages/mtpaint/.mtn2git_empty0
-rw-r--r--packages/mtpaint/mtpaint_3.02.bb25
-rw-r--r--packages/netbase/netbase/fic-gta01/.mtn2git_empty0
-rw-r--r--packages/netbase/netbase/fic-gta01/interfaces28
-rw-r--r--packages/netbase/netbase_4.21.bb2
-rw-r--r--packages/nonworking/bluez-bluefw/bluez-bluefw_0.9.bb4
-rw-r--r--packages/nonworking/lufs/lufs_0.9.7.bb20
-rw-r--r--packages/nonworking/pixdev/pixdev-stable_0.1.bb14
-rw-r--r--packages/nonworking/python/python-gsl_0.2.0.bb18
-rw-r--r--packages/nonworking/qualendar/qualendar_0.8.0.bb12
-rw-r--r--packages/nonworking/snmpz/snmpz_1.1.bb12
-rw-r--r--packages/nonworking/unison/unison_2.9.1.bb10
-rw-r--r--packages/nonworking/xfree86/xfree86_4.3.0.bb8
-rw-r--r--packages/notification-daemon/notification-daemon_0.3.5.bb12
-rw-r--r--packages/notification-daemon/notification-daemon_0.3.6.bb8
-rw-r--r--packages/openmoko-apps/.mtn2git_empty0
-rw-r--r--packages/openmoko-apps/openmoko-appmanager_svn.bb7
-rw-r--r--packages/openmoko-apps/openmoko-dialer_svn.bb9
-rw-r--r--packages/openmoko-apps/openmoko-footer_svn.bb6
-rw-r--r--packages/openmoko-apps/openmoko-mainmenu_svn.bb9
-rw-r--r--packages/openmoko-apps/openmoko-messages_svn.bb7
-rw-r--r--packages/openmoko-apps/openmoko-simplemediaplayer_svn.bb19
-rw-r--r--packages/openmoko-apps/openmoko-taskmanager_svn.bb6
-rw-r--r--packages/openmoko-base/.mtn2git_empty0
-rw-r--r--packages/openmoko-base/files/.mtn2git_empty0
-rw-r--r--packages/openmoko-base/files/session17
-rw-r--r--packages/openmoko-base/openmoko-common_svn.bb21
-rw-r--r--packages/openmoko-base/openmoko-libs_svn.bb19
-rw-r--r--packages/openmoko-base/openmoko-session_svn.bb29
-rw-r--r--packages/openmoko-base/openmoko-theme-standard_svn.bb24
-rw-r--r--packages/openmoko-examples/.mtn2git_empty0
-rw-r--r--packages/openmoko-examples/openmoko-finger-demo_svn.bb6
-rw-r--r--packages/openmoko-examples/openmoko-panel-demo-simple_svn.bb11
-rw-r--r--packages/openmoko-examples/openmoko-panel-demo_svn.bb7
-rw-r--r--packages/openmoko-examples/openmoko-stylus-demo-simple_svn.bb6
-rw-r--r--packages/openmoko-examples/openmoko-stylus-demo_svn.bb6
-rw-r--r--packages/openmoko-panel-plugins/.mtn2git_empty0
-rw-r--r--packages/openmoko-panel-plugins/openmoko-panel-battery_svn.bb5
-rw-r--r--packages/openmoko-panel-plugins/openmoko-panel-clock_svn.bb5
-rw-r--r--packages/openmoko-panel-plugins/openmoko-panel-gsm_svn.bb7
-rw-r--r--packages/openmoko-panel-plugins/openmoko-panel-mainmenu_svn.bb5
-rw-r--r--packages/openmoko-pim/.mtn2git_empty0
-rw-r--r--packages/openmoko-pim/openmoko-contacts/.mtn2git_empty0
-rw-r--r--packages/openmoko-pim/openmoko-contacts/index.theme654
-rw-r--r--packages/openmoko-pim/openmoko-contacts/intltool-update.in1089
-rw-r--r--packages/openmoko-pim/openmoko-contacts/stock_contact.pngbin0 -> 2311 bytes
-rw-r--r--packages/openmoko-pim/openmoko-contacts/stock_person.pngbin0 -> 2280 bytes
-rw-r--r--packages/openmoko-pim/openmoko-contacts_svn.bb31
-rw-r--r--packages/openmoko-pim/openmoko-dates/.mtn2git_empty0
-rw-r--r--packages/openmoko-pim/openmoko-dates/compile-fix.patch12
-rw-r--r--packages/openmoko-pim/openmoko-dates/intltool-update.in1089
-rw-r--r--packages/openmoko-pim/openmoko-dates/remove-bogus-include.patch10
-rw-r--r--packages/openmoko-pim/openmoko-dates_svn.bb24
-rw-r--r--packages/openmoko-tools/.mtn2git_empty0
-rw-r--r--packages/openmoko-tools/openmoko-chordmaster_svn.bb6
-rw-r--r--packages/openobex/openobex_1.2.bb3
-rw-r--r--packages/openocd/openocd-native_svn.bb11
-rw-r--r--packages/openocd/openocd_svn.bb12
-rw-r--r--packages/ossie/ossie-channeldemo_svn.bb3
-rw-r--r--packages/ossie/ossie-demo_svn.bb3
-rw-r--r--packages/ossie/ossie-gpp-device_svn.bb3
-rw-r--r--packages/ossie/ossie-interpolator_svn.bb3
-rw-r--r--packages/ossie/ossie-modulator_svn.bb3
-rw-r--r--packages/ossie/ossie-nodebooter_svn.bb3
-rw-r--r--packages/ossie/ossie-randombits_svn.bb4
-rw-r--r--packages/ossie/ossie-rxdemo_svn.bb3
-rw-r--r--packages/ossie/ossie-sigproc_svn.bb3
-rw-r--r--packages/ossie/ossie-soundout-device_svn.bb3
-rw-r--r--packages/ossie/ossie-standardinterfaces_svn.bb3
-rw-r--r--packages/ossie/ossie-tx-random-data_svn.bb3
-rw-r--r--packages/ossie/ossie-usrp-device_svn.bb3
-rw-r--r--packages/ossie/ossie-usrp-tx-control_svn.bb3
-rw-r--r--packages/ossie/ossiecf_svn.bb3
-rw-r--r--packages/pciutils/pciutils-2.2.4/configure-uclibc.patch14
-rw-r--r--packages/pciutils/pciutils_2.2.4.bb5
-rw-r--r--packages/poptop/poptop_1.3.0.bb2
-rw-r--r--packages/pptp-linux/pptp-linux_1.5.0.bb2
-rw-r--r--packages/qpe-games/hexatrolic_1.0beta3.bb2
-rw-r--r--packages/qpe-games/labyrinth_0.7.bb2
-rw-r--r--packages/qpf-fonts/terminus.bb3
-rw-r--r--packages/radlib/radlib-common.inc56
-rw-r--r--packages/s3c2410-utils/.mtn2git_empty0
-rw-r--r--packages/s3c2410-utils/files/.mtn2git_empty0
-rw-r--r--packages/s3c2410-utils/files/s3c2410_boot_usb-20060807.tar.bz2bin0 -> 3485 bytes
-rw-r--r--packages/s3c2410-utils/files/sjf2410-linux-20060807.tar.bz2bin0 -> 18471 bytes
-rw-r--r--packages/s3c2410-utils/s3c2410-boot-usb-native_20060807.bb31
-rw-r--r--packages/s3c2410-utils/s3c2410-boot-usb-native_svn.bb31
-rw-r--r--packages/s3c2410-utils/sjf2410-linux-native_20060807.bb32
-rw-r--r--packages/s3c2410-utils/sjf2410-linux-native_svn.bb32
-rw-r--r--packages/samba/samba-essential.inc9
-rw-r--r--packages/samba/samba-essential_3.0.20.bb13
-rw-r--r--packages/samba/samba.inc16
-rw-r--r--packages/samba/samba_3.0.10.bb5
-rw-r--r--packages/samba/samba_3.0.14a.bb12
-rw-r--r--packages/samba/samba_3.0.20.bb12
-rw-r--r--packages/samba/samba_3.0.23c.bb12
-rw-r--r--packages/samba/samba_3.0.5.bb5
-rw-r--r--packages/samba/samba_3.0.9.bb5
-rw-r--r--packages/shared-mime-info/shared-mime-info_0.20.bb (renamed from packages/shared-mime-info/shared-mime-info_0.16.bb)14
-rw-r--r--packages/slugos-init/slugos-init_0.10.bb7
-rw-r--r--packages/sqlite/sqlite3-3.3.12/.mtn2git_empty0
-rw-r--r--packages/sqlite/sqlite3-3.3.12/cross-compile.patch (renamed from packages/sqlite/sqlite3-3.3.7/cross-compile.patch)0
-rw-r--r--packages/sqlite/sqlite3-3.3.12/ldflags.patch (renamed from packages/sqlite/sqlite3-3.3.9/ldflags.patch)0
-rw-r--r--packages/sqlite/sqlite3-3.3.12/libtool.patch (renamed from packages/sqlite/sqlite3-3.3.7/libtool.patch)0
-rw-r--r--packages/sqlite/sqlite3-3.3.7/ldflags.patch67
-rw-r--r--packages/sqlite/sqlite3-3.3.9/cross-compile.patch92
-rw-r--r--packages/sqlite/sqlite3-3.3.9/libtool.patch25
-rw-r--r--packages/sqlite/sqlite3_3.3.12.bb (renamed from packages/sqlite/sqlite3_3.3.7.bb)2
-rw-r--r--packages/sqlite/sqlite3_3.3.9.bb2
-rw-r--r--packages/suspend-desktop/suspend-desktop_1.0.bb2
-rw-r--r--packages/tasks/task-base.bb4
-rw-r--r--packages/tasks/task-openmoko.bb248
-rw-r--r--packages/tasks/task-slugos.bb88
-rw-r--r--packages/tinymail/tinymail_svn.bb5
-rw-r--r--packages/tslib/tslib-1.0/.mtn2git_empty0
-rw-r--r--packages/tslib/tslib-1.0/ts.conf25
-rw-r--r--packages/tslib/tslib-1.0/tslib-input_raw-grab_events.patch120
-rw-r--r--packages/tslib/tslib_1.0.bb3
-rw-r--r--packages/uboot/files/fix-arm920t-eabi.patch9
-rw-r--r--packages/uboot/files/gta01_nand.h233
-rw-r--r--packages/uboot/files/qt2410.h256
-rw-r--r--packages/uboot/files/qt2410_nand.h256
-rw-r--r--packages/uboot/files/qt2410_ram.h256
-rw-r--r--packages/uboot/files/u-boot-20060807-qt2410.patch8435
-rw-r--r--packages/uboot/files/u-boot-20060807.tar.bz2bin0 -> 6446218 bytes
-rw-r--r--packages/uboot/files/u-boot-20060907-gta01.patch901
-rw-r--r--packages/uboot/files/u-boot-20060907.tar.bz2bin0 -> 6535380 bytes
-rw-r--r--packages/uboot/files/u-boot-20061030-ext2load_hex.patch14
-rw-r--r--packages/uboot/files/u-boot-20061030-gta01bv2.patch246
-rw-r--r--packages/uboot/files/u-boot-20061030-gta01v4.patch132
-rw-r--r--packages/uboot/files/u-boot-20061030-qt2410-gta01.patch9272
-rw-r--r--packages/uboot/uboot-gta01_svn.bb56
-rw-r--r--packages/uboot/uboot-qt2410_0.0+cvs20061030.bb41
-rw-r--r--packages/uclibc/uclibc-0.9.28/powerpc/.mtn2git_empty0
-rw-r--r--packages/uclibc/uclibc-0.9.28/powerpc/uClibc.config180
-rw-r--r--packages/uclibc/uclibc-cvs/powerpc/.mtn2git_empty0
-rw-r--r--packages/uclibc/uclibc-cvs/powerpc/uClibc.config180
-rw-r--r--packages/xerces-c/xerces-c_2.6.0.bb8
-rw-r--r--packages/xerces-c/xerces-c_2.7.0.bb6
-rw-r--r--packages/xoo/files/.mtn2git_empty0
-rw-r--r--packages/xoo/files/gta01.pngbin0 -> 182899 bytes
-rw-r--r--packages/xoo/files/gta01.xml7
-rw-r--r--packages/xoo/xoo_svn.bb11
-rw-r--r--packages/xscreensaver/xscreensaver_4.16.bb23
-rw-r--r--packages/xscreensaver/xscreensaver_4.22.bb20
-rw-r--r--packages/xserver-common/xserver-common_1.14.bb2
-rw-r--r--packages/xserver-kdrive-common/.mtn2git_empty0
-rw-r--r--packages/xserver-kdrive-common/xserver-kdrive-common/.mtn2git_empty0
-rw-r--r--packages/xserver-kdrive-common/xserver-kdrive-common/etc/.mtn2git_empty0
-rw-r--r--packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/.mtn2git_empty0
-rw-r--r--packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xdefaults3
-rw-r--r--packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xinit16
-rw-r--r--packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xserver108
-rw-r--r--packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession26
-rw-r--r--packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession.d/.mtn2git_empty0
-rw-r--r--packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession.d/30xTs_Calibrate6
-rw-r--r--packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession.d/60xXDefaults4
-rw-r--r--packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession.d/90xXWindowManager8
-rw-r--r--packages/xserver-kdrive-common/xserver-kdrive-common_0.1.bb18
-rw-r--r--packages/xserver-kdrive-common/xserver-nodm-init.bb21
-rw-r--r--packages/xserver-kdrive-common/xserver-nodm-init/.mtn2git_empty0
-rwxr-xr-xpackages/xserver-kdrive-common/xserver-nodm-init/xserver-nodm49
-rw-r--r--packages/zsafe/zsafe_2.1.3.bb2
-rw-r--r--removal.txt5
-rw-r--r--site/common-glibc6
-rw-r--r--site/powerpc-linux4
394 files changed, 34715 insertions, 1371 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index eae78b2b8b..e34d15493a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -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/*
diff --git a/classes/autotools.bbclass b/classes/autotools.bbclass
index 927e3432b7..33546e0eb6 100644
--- a/classes/autotools.bbclass
+++ b/classes/autotools.bbclass
@@ -115,7 +115,7 @@ autotools_do_configure() {
echo "no" | glib-gettextize --force --copy
fi
fi
- if grep "^AC_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then
+ if grep "^[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then
oenote Executing intltoolize --copy --force --automake
intltoolize --copy --force --automake
fi
diff --git a/classes/dsmg600-image.bbclass b/classes/dsmg600-image.bbclass
new file mode 100644
index 0000000000..6920fe5dbd
--- /dev/null
+++ b/classes/dsmg600-image.bbclass
@@ -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; "
diff --git a/classes/insane.bbclass b/classes/insane.bbclass
index e30375288d..9a046cb32f 100644
--- a/classes/insane.bbclass
+++ b/classes/insane.bbclass
@@ -9,6 +9,7 @@
# -Check if .la files wrongly point to workdir
# -Check if .pc files wrongly point to workdir
# -Check if packages contains .debug directories or .so files where they should be in -dev or -dbg
+# -Check if config.log contains traces to broken autoconf tests
#
@@ -23,6 +24,167 @@ inherit package
PACKAGE_DEPENDS += "pax-utils-native"
PACKAGEFUNCS += " do_package_qa "
+
+#
+# dictionary for elf headers
+#
+# feel free to add and correct.
+#
+# TARGET_OS TARGET_ARCH MACHINE, OSABI, ABIVERSION, Little Endian
+def package_qa_get_machine_dict():
+ return {
+ "linux" : { "arm" : (40, 97, 0, True),
+ "armeb": (40, 97, 0, False),
+ "powerpc": (20, 0, 0, False),
+ "i386": ( 3, 0, 0, True),
+ "x64_64": (62, 0, 0, True),
+ "ia64": (50, 0, 0, True),
+ "alpha": (36902, 0, 0, True),
+ "hppa": (15, 3, 0, False),
+ "m68k": ( 4, 0, 0, False),
+ "mips": ( 8, 0, 0, False),
+ "s390": (22, 0, 0, False),
+ "sparc": ( 2, 0, 0, False),
+ },
+ "linux-uclibc" : { "arm" : (40, 97, 0, True),
+ "armeb": (40, 97, 0, False),
+ "powerpc": (20, 0, 0, False),
+ "mipsel": ( 8, 0, 0, True),
+ },
+ "linux-gnueabi" : {
+ "arm" : (40, 0, 0, True),
+ },
+ }
+
+# factory for a class, embedded in a method
+def package_qa_get_elf(path):
+ class ELFFile:
+ EI_NIDENT = 16
+
+ EI_CLASS = 4
+ EI_DATA = 5
+ EI_VERSION = 6
+ EI_OSABI = 7
+ EI_ABIVERSION = 8
+
+ # possible values for EI_CLASS
+ ELFCLASSNONE = 0
+ ELFCLASS32 = 1
+ ELFCLASS64 = 2
+
+ # possible value for EI_VERSION
+ EV_CURRENT = 1
+
+ # possible values for EI_DATA
+ ELFDATANONE = 0
+ ELFDATA2LSB = 1
+ ELFDATA2MSB = 2
+
+ def my_assert(expectation, result):
+ if not expectation == result:
+ #print "'%x','%x'" % (ord(expectation), ord(result))
+ raise "This does not work as expected"
+ my_assert = staticmethod(my_assert)
+
+ def __init__(self, name):
+ self.name = name
+
+ def open(self):
+ self.file = file(self.name, "r")
+ self.data = self.file.read(ELFFile.EI_NIDENT+4)
+
+ ELFFile.my_assert(len(self.data), ELFFile.EI_NIDENT+4)
+ ELFFile.my_assert(self.data[0], chr(0x7f) )
+ ELFFile.my_assert(self.data[1], 'E')
+ ELFFile.my_assert(self.data[2], 'L')
+ ELFFile.my_assert(self.data[3], 'F')
+ ELFFile.my_assert(self.data[ELFFile.EI_CLASS], chr(ELFFile.ELFCLASS32)) # only 32 bits
+ ELFFile.my_assert(self.data[ELFFile.EI_VERSION], chr(ELFFile.EV_CURRENT) )
+
+ self.sex = self.data[ELFFile.EI_DATA]
+ if self.sex == chr(ELFFile.ELFDATANONE):
+ raise "Can't be"
+ elif self.sex == chr(ELFFile.ELFDATA2LSB):
+ self.sex = "<"
+ elif self.sex == chr(ELFFile.ELFDATA2MSB):
+ self.sex = ">"
+ else:
+ raise "Even more worse"
+
+ def osAbi(self):
+ return ord(self.data[ELFFile.EI_OSABI])
+
+ def abiVersion(self):
+ return ord(self.data[ELFFile.EI_ABIVERSION])
+
+ def isLittleEndian(self):
+ return self.sex == "<"
+
+ def isBigEngian(self):
+ return self.sex == ">"
+
+ def machine(self):
+ """
+ We know the sex stored in self.sex and we
+ know the position
+ """
+ import struct
+ (a,) = struct.unpack(self.sex+"H", self.data[18:20])
+ return a
+
+ return ELFFile(path)
+
+
+#
+#
+# Known Error classes
+# 0 - non dev contains .so
+# 1 - package contains a dangerous RPATH
+# 2 - package depends on debug package
+# 3 - non dbg contains .so
+# 4 - wrong architecture
+# 5 - .la contains installed=yes or reference to the workdir
+# 6 - .pc contains reference to /usr/include or workdir
+#
+#
+
+def package_qa_clean_path(path,d):
+ import bb
+ return path.replace(bb.data.getVar('TMPDIR',d,True),"")
+
+def package_qa_make_fatal_error(error_class, name, path,d):
+ """
+ decide if an error is fatal
+
+ TODO: Load a whitelist of known errors
+ """
+ if error_class == 0:
+ return False
+ else:
+ return True
+
+def package_qa_write_error(error_class, name, path, d):
+ import bb, os
+ if not bb.data.getVar('QA_LOG', d):
+ return
+
+ ERROR_NAMES =[
+ "non dev contains .so",
+ "package contains RPATH",
+ "package depends on debug package",
+ "non dbg contains .debug",
+ "wrong architecture",
+ "evil hides inside the .la",
+ "evil hides inside the .pc",
+ ]
+
+
+ log_path = os.path.join( bb.data.getVar('T', d, True), "log.qa_package" )
+ f = file( log_path, "a+")
+ print >> f, "%s, %s, %s" % (ERROR_NAMES[error_class], name, package_qa_clean_path(path,d))
+ f.close()
+
+
def package_qa_check_rpath(file,name,d):
"""
Check for dangerous RPATHs
@@ -31,16 +193,18 @@ def package_qa_check_rpath(file,name,d):
scanelf = os.path.join(bb.data.getVar('STAGING_BINDIR_NATIVE',d,True),'scanelf')
bad_dir = bb.data.getVar('TMPDIR', d, True) + "/work"
if not os.path.exists(scanelf):
- bb.note("Can not check RPATH scanelf not found")
+ bb.fatal("Can not check RPATH scanelf not found")
if not bad_dir in bb.data.getVar('WORKDIR', d, True):
- bb.error("This class assumed that WORKDIR is ${TMPDIR}/work... Not doing any check")
+ bb.fatal("This class assumed that WORKDIR is ${TMPDIR}/work... Not doing any check")
output = os.popen("%s -Byr %s" % (scanelf,file))
txt = output.readline().rsplit()
if bad_dir in txt:
+ package_qa_write_error( 1, name, file, d)
bb.error("QA Issue package %s contains bad RPATH %s in file %s" % (name, txt, file))
+ return False
- pass
+ return True
def package_qa_check_devdbg(path, name,d):
"""
@@ -48,51 +212,130 @@ def package_qa_check_devdbg(path, name,d):
non dev packages containing
"""
- import bb
+ import bb, os
+ sane = True
+
if not "-dev" in name:
- if path[-3:] == ".so":
- bb.error("QA Issue: non dev package contains .so: %s" % name)
+ if path[-3:] == ".so" and os.path.islink(path):
+ package_qa_write_error( 0, name, path, d )
+ bb.error("QA Issue: non -dev package %s contains symlink .so: %s path '%s'" % (name, package_qa_clean_path(path,d)))
+ if package_qa_make_fatal_error( 0, name, path, d ):
+ sane = False
if not "-dbg" in name:
if '.debug' in path:
- bb.error("QA Issue: non debug package contains .debug directory: %s" % name)
+ package_qa_write_error( 3, name, path, d )
+ bb.error("QA Issue: non debug package contains .debug directory: %s path %s" % (name, package_qa_clean_path(path,d)))
+ if package_qa_make_fatal_error( 3, name, path, d ):
+ sane = False
+
+ return sane
def package_qa_check_perm(path,name,d):
"""
Check the permission of files
"""
- pass
+ sane = True
+ return sane
def package_qa_check_arch(path,name,d):
"""
Check if archs are compatible
"""
- pass
+ import bb
+ target_os = bb.data.getVar('TARGET_OS', d, True)
+ target_arch = bb.data.getVar('TARGET_ARCH', d, True)
+
+ #this will throw an exception, then fix the dict above
+ (machine, osabi, abiversion, littleendian) = package_qa_get_machine_dict()[target_os][target_arch]
+ elf = package_qa_get_elf(path)
+ try:
+ elf.open()
+ except:
+ # just for debbugging to check the parser, remove once convinced...
+ return True
+
+ sane = True
+ if not machine == elf.machine():
+ bb.error("Architecture did not match (%d to %d) on %s" %(machine, elf.machine(), package_qa_clean_path(path,d)))
+ sane = package_qa_make_fatal_error( 4, name, path, d )
+ elif not osabi == elf.osAbi():
+ bb.error("OSABI did not match (%d to %d) on %s" % (osabi, elf.osAbi(), package_qa_clean_path(path,d)))
+ sane = package_qa_make_fatal_error( 4, name, path, d )
+ elif not abiversion == elf.abiVersion():
+ bb.error("ABI version did not match (%d to %d) on %s" % (abiversion, elf.abiVersion(), package_qa_clean_path(path,d)))
+ sane = package_qa_make_fatal_error( 4, name, path, d )
+ elif not littleendian == elf.isLittleEndian():
+ bb.error("Endiannes did not match (%d to %d) on %s" % (littleendian, elf.isLittleEndian(), package_qa_clean_path(path,d)))
+ sane = package_qa_make_fatal_error( 4, name, path, d )
+
+ return sane
def package_qa_check_pcla(path,name,d):
"""
- .pc and .la files should not point
+ .pc and .la files should not point to the WORKDIR
"""
+ sane = True
+ return sane
def package_qa_check_staged(path,d):
"""
Check staged la and pc files for sanity
-e.g. installed being false
+
+ As this is run after every stage we should be able
+ to find the one responsible for the errors easily even
+ if we look at every .pc and .la file
"""
- pass
+ import os, bb
+
+ sane = True
+ workdir = os.path.join(bb.data.getVar('TMPDIR', d, True), "work")
+
+ if bb.data.inherits_class("native", d):
+ installed = "installed=no"
+ else:
+ installed = "installed=yes"
+
+ # find all .la and .pc files
+ # read the content
+ # and check for stuff that looks wrong
+ for root, dirs, files in os.walk(path):
+ for file in files:
+ path = os.path.join(root,file)
+ if file[-2:] == "la":
+ file_content = open(path).read()
+ if installed in file_content or workdir in file_content:
+ bb.error("QA issue: %s failed sanity test (reference to workdir or installed)" % file )
+ if package_qa_make_fatal_error( 5, "staging", path, d):
+ sane = False
+ elif file[-2:] == "pc":
+ file_content = open(path).read()
+ if "/usr/include" in file_content or workdir in file_content:
+ bb.error("QA issue: %s failed sanity test (reference to /usr/include or workdir)" % file )
+ if package_qa_make_fatal_error( 6, "staging", path, d):
+ sane = False
+
+ return sane
# Walk over all files in a directory and call func
def package_qa_walk(path, funcs, package,d):
import os
+ sane = True
+
for root, dirs, files in os.walk(path):
for file in files:
path = os.path.join(root,file)
for func in funcs:
- func(path, package,d)
+ if not func(path, package,d):
+ sane = False
+
+ return sane
def package_qa_check_rdepends(pkg, workdir, d):
- import bb
+ import bb
+ sane = True
if not "-dbg" in pkg and not "task-" in pkg and not "-image" in pkg:
# Copied from package_ipk.bbclass
# boiler plate to update the data
@@ -121,7 +364,12 @@ def package_qa_check_rdepends(pkg, workdir, d):
# Now do the sanity check!!!
for rdepend in rdepends:
if "-dbg" in rdepend:
+ package_qa_write_error( 2, name, rdepend, d )
bb.error("QA issue, koen give us a better msg!!!")
+ if package_qa_make_fatal_error( 2, name, rdepend, d ):
+ sane = False
+
+ return sane
# The PACKAGE FUNC to scan each package
python do_package_qa () {
@@ -133,19 +381,38 @@ python do_package_qa () {
if not packages:
return
+ walk_sane = True
+ rdepends_sane = True
for package in packages.split():
- bb.note("Package: %s" % package)
+ bb.note("Checking Package: %s" % package)
path = "%s/install/%s" % (workdir, package)
- package_qa_walk(path, [package_qa_check_rpath, package_qa_check_devdbg, package_qa_check_perm, package_qa_check_arch], package, d)
- package_qa_check_rdepends(package, workdir, d)
+ if not package_qa_walk(path, [package_qa_check_rpath, package_qa_check_devdbg, package_qa_check_perm, package_qa_check_arch], package, d):
+ walk_sane = False
+ if not package_qa_check_rdepends(package, workdir, d):
+ rdepends_sane = False
+ if not walk_sane or not rdepends_sane:
+ bb.fatal("QA ran found fatal errors. Please consider fixing them")
+ bb.note("DONE with PACKAGE QA")
}
# The Staging Func, to check all staging
addtask qa_staging after do_populate_staging before do_build
python do_qa_staging() {
- bb.note("Staged!")
+ bb.note("QA checking staging")
- package_qa_check_staged(bb.data.getVar('STAGING_DIR',d,True), d)
+ if not package_qa_check_staged(bb.data.getVar('STAGING_LIBDIR',d,True), d):
+ bb.fatal("QA staging was broken by the package built above")
+}
+
+# Check broken config.log files
+addtask qa_configure after do_configure before do_compile
+python do_qa_configure() {
+ bb.note("Checking sanity of the config.log file")
+ import os
+ for root, dirs, files in os.walk(bb.data.getVar('WORKDIR', d, True)):
+ if "config.log" in files:
+ if os.system("grep 'CROSS COMPILE Badness:' %s > /dev/null" % (os.path.join(root,"config.log"))) == 0:
+ bb.fatal("This autoconf log indicates errors, it looked at host includes. Rerun configure task after fixing this. Path was '%s'" % root)
}
diff --git a/classes/kernel.bbclass b/classes/kernel.bbclass
index 21f441e3d0..2434ca1f0a 100644
--- a/classes/kernel.bbclass
+++ b/classes/kernel.bbclass
@@ -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)
-
}
diff --git a/classes/linux-kernel-base.bbclass b/classes/linux-kernel-base.bbclass
index e58c228080..4e2e2da373 100644
--- a/classes/linux-kernel-base.bbclass
+++ b/classes/linux-kernel-base.bbclass
@@ -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
diff --git a/classes/module.bbclass b/classes/module.bbclass
index 6089f90462..7eac001ec4 100644
--- a/classes/module.bbclass
+++ b/classes/module.bbclass
@@ -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
index 0000000000..0d48ebd476
--- /dev/null
+++ b/classes/nas100d-image.bbclass
@@ -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
index 0000000000..e1af34fa57
--- /dev/null
+++ b/classes/nslu2-image.bbclass
@@ -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
index 56ad0f0659..0000000000
--- a/classes/nslu2-jffs2-image.bbclass
+++ /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
index 0b545854fd..0000000000
--- a/classes/nslu2-ramdisk-image.bbclass
+++ /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
index 0000000000..35243c9752
--- /dev/null
+++ b/classes/openmoko-base.bbclass
@@ -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
index 0000000000..0494b412c6
--- /dev/null
+++ b/classes/openmoko-panel-plugin.bbclass
@@ -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
index 0000000000..808ab8fcb6
--- /dev/null
+++ b/classes/openmoko.bbclass
@@ -0,0 +1,3 @@
+inherit openmoko-base autotools pkgconfig
+
+DEPENDS_prepend = "${@["openmoko-libs ", ""][(bb.data.getVar('PN', d, 1) == 'openmoko-libs')]}"
diff --git a/conf/bitbake.conf b/conf/bitbake.conf
index 55c0e51295..f9abebf291 100644
--- a/conf/bitbake.conf
+++ b/conf/bitbake.conf
@@ -320,7 +320,7 @@ export palmqtdir = "/opt/QtPalmtop"
GNU_MIRROR = "ftp://ftp.gnu.org/gnu"
DEBIAN_MIRROR = "ftp://ftp.debian.org/debian/pool"
-SOURCEFORGE_MIRROR = "http://surfnet.dl.sourceforge.net"
+SOURCEFORGE_MIRROR = "http://downloads.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}"
diff --git a/conf/distro/amsdelta-oe.conf b/conf/distro/amsdelta-oe.conf
index 362e6e5a30..6e7adda029 100644
--- a/conf/distro/amsdelta-oe.conf
+++ b/conf/distro/amsdelta-oe.conf
@@ -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
#
diff --git a/conf/distro/angstrom-2007.1-oabi.conf b/conf/distro/angstrom-2007.1-oabi.conf
index c88aa06697..4dbdcca795 100644
--- a/conf/distro/angstrom-2007.1-oabi.conf
+++ b/conf/distro/angstrom-2007.1-oabi.conf
@@ -11,7 +11,7 @@ TARGET_OS = "linux"
PACKAGE_ARCH = "arm-oabi"
PACKAGE_EXTRA_ARCHS = "arm-oabi"
-PREFERRED_VERSION_linux-handhelds-2.6_h3600 = "2.6.19-hh7"
+PREFERRED_VERSION_linux-handhelds-2.6_h3600 = "2.6.19-hh10"
FEED_ARCH_collie = "arm-oabi"
FEED_ARCH_h3600 = "arm-oabi"
diff --git a/conf/distro/angstrom-2007.1.conf b/conf/distro/angstrom-2007.1.conf
index 263673f7f5..b367b3f142 100644
--- a/conf/distro/angstrom-2007.1.conf
+++ b/conf/distro/angstrom-2007.1.conf
@@ -8,14 +8,23 @@
#DISTRO_VERSION = "2007.3"
DISTRO_VERSION = "test-${DATE}"
-DISTRO_REVISION = "32"
+DISTRO_REVISION = "33"
require conf/distro/include/angstrom.inc
require conf/distro/include/sane-srcdates.inc
-DISTRO_TYPE = "debug"
+DISTRO_TYPE ?= "debug"
#DISTRO_TYPE = "release"
+# Ship just basic locale by default. Locales are big (~1Mb uncompr.), so
+# shipping some adhoc subset will be still useless and size burden for
+# users of all other languages/countries. Instead, worth to make it easy
+# to install additional languages: installer/wizard + metapackages which
+# will RRECOMMEND as much as possible content for a given language
+# (locales, UI transalations, help, etc. - useless for pros, but really
+# helpful for common users).
+IMAGE_LINGUAS = "en-gb"
+
#Set the right arch for the feeds
#Alphabetically sorted
@@ -97,10 +106,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"
diff --git a/conf/distro/include/openmoko.inc b/conf/distro/include/openmoko.inc
new file mode 100644
index 0000000000..0a86870b2c
--- /dev/null
+++ b/conf/distro/include/openmoko.inc
@@ -0,0 +1,127 @@
+#
+# Header
+#
+DISTRO_NAME = "OpenMoKo"
+
+#
+# Naming schemes
+#
+PARALLEL_INSTALL_MODULES = "1"
+INHERIT += "debian multimachine"
+
+#
+# Packaging and output format
+#
+INHERIT += "package_ipk"
+IMAGE_FSTYPES = "tar.gz ext2.gz jffs2"
+IMAGE_FSTYPES_x86 = "tar.gz"
+IMAGE_ROOTFS_SIZE_ext2 = "131072"
+
+#
+# Binutils & Compiler
+#
+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"
+
+# EABI stuff
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/arm-angstrom-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
+
+#
+# Target OS & FPU system
+#
+TARGET_OS = "linux"
+TARGET_FPU_arm = "soft"
+TARGET_FPU_armeb = "soft"
+PREFERRED_PROVIDER_virtual/libiconv = "glibc"
+PREFERRED_PROVIDER_virtual/libintl = "glibc"
+PREFERRED_VERSION_linux-libc-headers_x86 = "2.6.15.99"
+PREFERRED_VERSION_linux-libc_headers = "2.6.18"
+#
+# Features
+#
+DISTRO_FEATURES = "alsa bluetooth ext2 ipsec nfs ppp smbfs usbgadget usbhost"
+
+#
+# Bootstrap & Init
+#
+MACHINE_TASK_PROVIDER = "task-base"
+require conf/distro/include/sane-srcdates.inc
+
+#
+# Framebuffer & X
+#
+PREFERRED_PROVIDER_virtual/libx11 ?= "libx11"
+PREFERRED_PROVIDER_virtual/ecore ?= "ecore-x11"
+PREFERRED_PROVIDER_virtual/evas ?= "evas-x11"
+PREFERRED_PROVIDER_virtual/esmart ?= "esmart-x11"
+PREFERRED_PROVIDER_virtual/libsdl = "libsdl-x11"
+PREFERRED_PROVIDER_virtual/xserver ?= "xserver-kdrive"
+PREFERRED_PROVIDER_tslib ?= "tslib"
+PREFERRED_PROVIDER_xserver ?= "xserver-kdrive"
+require conf/distro/include/preferred-xorg-versions-X11R7.1.inc
+
+#
+# Gnome
+#
+PREFERRED_PROVIDER_dbus-glib = "dbus-glib"
+PREFERRED_PROVIDER_gconf = "gconf-dbus"
+#new
+#PREFERRED_PROVIDER_gnome-vfs = "gnome-vfs"
+#old
+PREFERRED_PROVIDER_gnome-vfs = "gnome-vfs-dbus"
+PREFERRED_PROVIDER_virtual/xserver = "xserver-kdrive"
+PREFERRED_PROVIDER_bluez-utils = "bluez-utils-dbus"
+
+PREFERRED_VERSION_dbus-native = "1.0.2"
+PREFERRED_VERSION_dbus = "1.0.2"
+PREFERRED_VERSION_dbus-glib-native = "0.71"
+PREFERRED_VERSION_dbus-glib = "0.71"
+PREFERRED_VERSION_atk = "1.9.0"
+PREFERRED_VERSION_pango = "1.8.2"
+PREFERRED_VERSION_glib-2.0 = "2.12.3"
+PREFERRED_VERSION_gtk+ = "2.6.10"
+PREFERRED_VERSION_gtk-engines = "2.6.5"
+#PREFERRED_VERSION_gnome-vfs = "2.16.3"
+
+PREFERRED_VERSION_fontconfig = "2.4.1"
+
+#
+# GPE
+#
+PREFERRED_PROVIDER_libgpewidget = "libgpewidget"
+
+#
+# O-Hand
+#
+PREFERRED_VERSION_contacts = "0.1"
+PREFERRED_VERSION_dates = "0.1"
+# PREFERRED_VERSION_web = "???"
+
+#
+# Development
+#
+PREFERRED_PROVIDER_qemu-native = "qemu-native"
+PREFERRED_VERSION_qemu-native = "0.8.2+cvs${SRCDATE}"
+
+#
+# Opie
+#
+QTE_VERSION = "2.3.10"
+PALMTOP_USE_MULTITHREADED_QTE = "yes"
+require conf/distro/include/preferred-opie-versions.inc
+
+#
+# Enlightenment
+#
+require conf/distro/include/preferred-e-versions.inc
+
+#
+# OpenMoko
+#
+
+#We comment this out since external developers don't needs to use SRCDATE="now" as that generated unneed traffic
+#require conf/distro/include/preferred-openmoko-versions.inc
+
diff --git a/conf/distro/include/preferred-openmoko-versions.inc b/conf/distro/include/preferred-openmoko-versions.inc
new file mode 100644
index 0000000000..263406c90b
--- /dev/null
+++ b/conf/distro/include/preferred-openmoko-versions.inc
@@ -0,0 +1,60 @@
+#
+# Specify which versions of OpenMoko packages to build
+#
+
+#
+# Base
+#
+
+SRCDATE_uboot = "now"
+SRCDATE_uboot-gta01 = "now"
+SRCDATE_kernel = "now"
+SRCDATE_linux-gta01 = "now"
+SRCDATE_linux-gta01-nobbt = "now"
+SRCDATE_libgsmd = "now"
+SRCDATE_openmoko-session = "now"
+SRCDATE_openmoko-common = "now"
+SRCDATE_openmoko-theme-standard = "now"
+SRCDATE_openmoko-libs = "now"
+
+#
+# Examples
+#
+SRCDATE_openmoko-stylus-demo = "now"
+SRCDATE_openmoko-stylus-demo-simple = "now"
+SRCDATE_openmoko-finger-demo = "now"
+SRCDATE_openmoko-panel-demo = "now"
+SRCDATE_openmoko-panel-demo-simple = "now"
+
+#
+# PIM
+#
+SRCDATE_openmoko-contacts = "now"
+SRCDATE_openmoko-dates = "now"
+
+#
+# Applications
+#
+SRCDATE_openmoko-appmanager = "now"
+SRCDATE_openmoko-chordmaster = "now"
+SRCDATE_openmoko-dialer = "now"
+SRCDATE_openmoko-footer = "now"
+SRCDATE_openmoko-phone = "now"
+SRCDATE_openmoko-mainmenu = "now"
+SRCDATE_openmoko-taskmanager = "now"
+
+#
+# Multimedia
+#
+SRCDATE_openmoko-simplemediaplayer = "now"
+
+#
+# Panel Plugins
+#
+SRCDATE_openmoko-panel-clock = "now"
+SRCDATE_openmoko-panel-battery = "now"
+SRCDATE_openmoko-panel-mainmenu = "now"
+SRCDATE_openmoko-panel-gsm = "now"
+SRCDATE_openmoko-panel-gps = "now"
+SRCDATE_openmoko-panel-bt = "now"
+SRCDATE_openmoko-panel-usb = "now"
diff --git a/conf/distro/include/sane-srcdates.inc b/conf/distro/include/sane-srcdates.inc
index cfdf1abebc..7b888b9d5f 100644
--- a/conf/distro/include/sane-srcdates.inc
+++ b/conf/distro/include/sane-srcdates.inc
@@ -22,7 +22,7 @@ SRCDATE_xxf86vmext ?= "20060814"
SRCDATE_contacts ?= "20060707"
SRCDATE_dates ?= "20060707"
SRCDATE_fstests ?= "20061122"
-SRCDATE_eds-dbus ?= "20070115"
+SRCDATE_eds-dbus ?= "20070215"
SRCDATE_libmatchbox ?= "20060612"
SRCDATE_libfakekey ?= "20051101"
SRCDATE_matchbox-common ?= "20060612"
diff --git a/conf/distro/include/slugos.inc b/conf/distro/include/slugos.inc
index a26a069fa0..a89d193225 100644
--- a/conf/distro/include/slugos.inc
+++ b/conf/distro/include/slugos.inc
@@ -49,9 +49,7 @@ INHERIT += "package_ipk debian multimachine"
# 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"
+FULL_OPTIMIZATION = "-Os -fomit-frame-pointer -frename-registers -fno-unroll-loops -fno-inline-functions -fweb -funit-at-a-time"
#----------------------------------------------------------------------------------
# FEEDS
@@ -86,7 +84,9 @@ CMDLINE_DEBUG = "noirqdebug"
#
# Everything in this list gets added to the flash image, along with any RDEPENDS
# it has itself!
-SLUGOS_EXTRA_RDEPENDS ?= ""
+DISTRO_EXTRA_DEPENDS ?= ""
+DISTRO_EXTRA_RDEPENDS ?= ""
+DISTRO_EXTRA_RRECOMMENDS ?= ""
#----------------------------------------------------------------------------------
# PACKAGE VERSION CONTROL
diff --git a/conf/distro/mokoslug.conf b/conf/distro/mokoslug.conf
new file mode 100644
index 0000000000..ea20fdd6b6
--- /dev/null
+++ b/conf/distro/mokoslug.conf
@@ -0,0 +1,22 @@
+#@--------------------------------------------------------------------
+#@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 = ""
+
+INHERIT += "nslu2-image" \ No newline at end of file
diff --git a/conf/distro/openmoko.conf b/conf/distro/openmoko.conf
new file mode 100644
index 0000000000..6e33867aa9
--- /dev/null
+++ b/conf/distro/openmoko.conf
@@ -0,0 +1,28 @@
+#-----------------------------------------------------------------------------
+#@TYPE: Distribution
+#@NAME: OpenMoKo
+#@DESCRIPTION: Linux Distribution Configuration for the FIC GTA01 Project
+#-----------------------------------------------------------------------------
+
+#
+# Header
+#
+DISTRO_NAME = "OpenMoKo"
+DISTRO_VERSION = ".dev-snapshot-${DATE}"
+#DISTRO_TYPE = "release"
+DISTRO_TYPE = "debug"
+
+require conf/distro/include/openmoko.inc
+
+# Toolchain
+PREFERRED_VERSION_gcc ?= "4.1.1"
+PREFERRED_VERSION_gcc-cross ?= "4.1.1"
+PREFERRED_VERSION_gcc-cross-initial ?= "4.1.1"
+PREFERRED_VERSION_binutils ?= "2.17.50.0.5"
+PREFERRED_VERSION_binutils-cross ?= "2.17.50.0.5"
+PREFERRED_VERSION_linux-libc-headers ?= "2.6.18"
+# 2.5 has less bugs, but crashes dropbear :/
+PREFERRED_VERSION_glibc ?= "2.4"
+PREFERRED_VERSION_glibc-intermediate ?= "2.4"
+
+PREFERRED_VERSION_lmsensors-apps ?= "2.10.1"
diff --git a/conf/distro/slugos.conf b/conf/distro/slugos.conf
index 32b047aeae..980c158181 100644
--- a/conf/distro/slugos.conf
+++ b/conf/distro/slugos.conf
@@ -13,98 +13,4 @@ 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
diff --git a/conf/distro/unslung.conf b/conf/distro/unslung.conf
index f7ea4ded4d..de64aa8d2b 100644
--- a/conf/distro/unslung.conf
+++ b/conf/distro/unslung.conf
@@ -21,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')}"
diff --git a/conf/machine/efika.conf b/conf/machine/efika.conf
index 6701df6b8d..2e3524c522 100644
--- a/conf/machine/efika.conf
+++ b/conf/machine/efika.conf
@@ -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
index 0000000000..b47c81d476
--- /dev/null
+++ b/conf/machine/fic-gta01.conf
@@ -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
diff --git a/conf/machine/include/collie-2.4.conf b/conf/machine/include/collie-2.4.conf
index 0412ea359a..5b99c7485d 100644
--- a/conf/machine/include/collie-2.4.conf
+++ b/conf/machine/include/collie-2.4.conf
@@ -1,4 +1,8 @@
-PREFERRED_PROVIDER_virtual/kernel = "collie-kernels-2.4-embedix"
+PREFERRED_PROVIDER_virtual/kernel = "openzaurus-sa"
+COLLIE_MEMORY_SIZE =? "64"
+
+# workaround for bug 1877
+PREFERRED_PROVIDER_hostap-modules = "hostap-modules"
SERIAL_CONSOLE = "115200 ttyS0"
#
diff --git a/conf/machine/include/simpad-2.4.conf b/conf/machine/include/simpad-2.4.conf
index 3d9c77539f..06eb56d2b6 100644
--- a/conf/machine/include/simpad-2.4.conf
+++ b/conf/machine/include/simpad-2.4.conf
@@ -5,3 +5,5 @@ PREFERRED_VERSION_orinoco-modules = "0.13e"
BOOTSTRAP_EXTRA_RDEPENDS += "hostap-modules \
pcmcia-cs apm hostap-utils wpa-supplicant-nossl"
+
+USE_DEVFS = "1"
diff --git a/conf/machine/include/simpad-2.6.conf b/conf/machine/include/simpad-2.6.conf
index 45ddac1bec..69f04f0730 100644
--- a/conf/machine/include/simpad-2.6.conf
+++ b/conf/machine/include/simpad-2.6.conf
@@ -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"
diff --git a/conf/machine/nslu2be.conf b/conf/machine/nslu2be.conf
index 16d1ed8508..3ca3baf952 100644
--- a/conf/machine/nslu2be.conf
+++ b/conf/machine/nslu2be.conf
@@ -7,10 +7,9 @@ TARGET_ARCH = "armeb"
PACKAGE_EXTRA_ARCHS = "armv4b armv4tb armv5eb armv5teb ixp4xxbe"
MACHINE_ARCH = "ixp4xxbe"
-IXP4XX_MACHINE_OVERRIDE = ":nslu2:ixp4xx"
+
+OVERRIDES = "local:${MACHINE}:nslu2:ixp4xx:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:fail-fast:pn-${PN}"
require conf/machine/include/ixp4xx.conf
EXTRA_IMAGECMD_jffs2 += "--big-endian"
-
-OVERRIDES = "local:${MACHINE}:nslu2:ixp4xx:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:fail-fast:pn-${PN}"
diff --git a/conf/machine/nslu2le.conf b/conf/machine/nslu2le.conf
index 1dd1ddaf2f..bbbd6cdeb4 100644
--- a/conf/machine/nslu2le.conf
+++ b/conf/machine/nslu2le.conf
@@ -8,9 +8,8 @@ PACKAGE_EXTRA_ARCHS = "armv4 armv4t armv5e armv5te ixp4xxle"
MACHINE_ARCH = "ixp4xxle"
+OVERRIDES = "local:${MACHINE}:nslu2:ixp4xx:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:fail-fast:pn-${PN}"
+
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}"
-
diff --git a/conf/machine/shark.conf b/conf/machine/shark.conf
new file mode 100644
index 0000000000..648d4eae9f
--- /dev/null
+++ b/conf/machine/shark.conf
@@ -0,0 +1,24 @@
+#@TYPE: Machine
+#@NAME: DNARD NetworkComputer/Shark
+#@DESCRIPTION: Machine configuration for the SHARK based SHARK
+
+MACHINE_KERNEL_VERSION ?= "2.6"
+
+TARGET_ARCH = "arm"
+PREFERRED_PROVIDER_xserver = "xserver-kdrive"
+PREFERRED_PROVIDER_virtual/kernel = "linux-z"
+
+EXTRA_IMAGECMD_jffs2 = "--little-endian --eraseblock=0x20000 -n"
+EXTRA_IMAGEDEPENDS = ""
+SERIAL_CONSOLE = "ttySA0 115200 vt100"
+
+ROOT_FLASH_SIZE = "16"
+USE_VT = "0"
+
+require conf/machine/include/tune-strongarm.conf
+
+MACHINE_FEATURES = "kernel26 apm alsa pcmcia keyboard ext2"
+MACHINE_EXTRA_RDEPENDS_append = " mpg321 mpd madplay "
+
+MACHINE_TASK_PROVIDER = "task-base"
+GUI_MACHINE_CLASS = "bigscreen"
diff --git a/conf/machine/simpad.conf b/conf/machine/simpad.conf
index 13943bae39..2478ce17c9 100644
--- a/conf/machine/simpad.conf
+++ b/conf/machine/simpad.conf
@@ -20,7 +20,6 @@ EXTRA_IMAGECMD_jffs2 = "--little-endian --eraseblock=0x20000 -n"
EXTRA_IMAGEDEPENDS = ""
SERIAL_CONSOLE = "ttySA0 115200 vt100"
-USE_DEVFS = "1"
GUI_MACHINE_CLASS = "bigscreen"
ROOT_FLASH_SIZE = "16"
USE_VT = "0"
diff --git a/packages/altboot/altboot_wip.bb b/packages/altboot/altboot_wip.bb
index 714a3d1d2b..2de4c812b9 100644
--- a/packages/altboot/altboot_wip.bb
+++ b/packages/altboot/altboot_wip.bb
@@ -9,7 +9,7 @@
DESCRIPTION = "The altboot bootmanager"
MAINTAINER = "Matthias 'CoreDump' Hentges <oe@hentges.net>"
HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml"
-LICENSE = "GPL"
+LICENSE = "GPL"
######################################################################################
diff --git a/packages/angstrom/angstrom-mokogateway-image.bb b/packages/angstrom/angstrom-mokogateway-image.bb
new file mode 100644
index 0000000000..80673f61ec
--- /dev/null
+++ b/packages/angstrom/angstrom-mokogateway-image.bb
@@ -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
+
diff --git a/packages/angstrom/task-angstrom-x11.bb b/packages/angstrom/task-angstrom-x11.bb
index 95fb0cf0c6..36aa431d42 100644
--- a/packages/angstrom/task-angstrom-x11.bb
+++ b/packages/angstrom/task-angstrom-x11.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "Task packages for the Angstrom distribution"
-PR = "r27"
+PR = "r28"
ALLOW_EMPTY = "1"
PACKAGE_ARCH = "${MACHINE_ARCH}"
@@ -42,7 +42,6 @@ RDEPENDS_angstrom-gpe-task-base := "\
gpe-autostarter \
${@base_contains("MACHINE_FEATURES", "touchscreen", "libgtkstylus", "",d)} \
${@base_contains("MACHINE_FEATURES", "keyboard", "", "libgtkinput",d)} \
- ${@base_contains("MACHINE_FEATURES", "touchscreen", "detect-stylus", "",d)} \
suspend-desktop \
teleport \
xauth \
diff --git a/packages/apache2/apache2_2.2.3.bb b/packages/apache2/apache2_2.2.3.bb
index aaf5ab4298..df043d0ebf 100644
--- a/packages/apache2/apache2_2.2.3.bb
+++ b/packages/apache2/apache2_2.2.3.bb
@@ -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.3.bb b/packages/arm-kernel-shim/arm-kernel-shim_1.3.bb
index a4f5f8f7e9..4014d9e866 100644
--- a/packages/arm-kernel-shim/arm-kernel-shim_1.3.bb
+++ b/packages/arm-kernel-shim/arm-kernel-shim_1.3.bb
@@ -3,11 +3,13 @@ SECTION = ""
PRIORITY = "optional"
HOMEPAGE = "http://wiki.buici.com/twiki/bin/view/Main/ApexBootloader"
LICENSE = "GPL"
-PR = "r2"
+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 \
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
index 0000000000..460f7be090
--- /dev/null
+++ b/packages/arm-kernel-shim/files/cmdline_if_none.patch
@@ -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 */
diff --git a/packages/arm-kernel-shim/files/config-dsmg600.h b/packages/arm-kernel-shim/files/config-dsmg600.h
index 56b4035408..3203052d51 100644
--- a/packages/arm-kernel-shim/files/config-dsmg600.h
+++ b/packages/arm-kernel-shim/files/config-dsmg600.h
@@ -16,17 +16,23 @@
#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
diff --git a/packages/arm-kernel-shim/files/passthrough-atags.patch b/packages/arm-kernel-shim/files/passthrough-atags.patch
new file mode 100644
index 0000000000..194279df89
--- /dev/null
+++ b/packages/arm-kernel-shim/files/passthrough-atags.patch
@@ -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/base-files/base-files/angstrom/issue b/packages/base-files/base-files/angstrom/issue
index c322134459..302ba10e3d 100644
--- a/packages/base-files/base-files/angstrom/issue
+++ b/packages/base-files/base-files/angstrom/issue
@@ -1,2 +1,11 @@
+.-------.
+| | .-.
+| | |-----.-----.-----.| | .----..-----.-----.
+| | | __ | ---'| '--.| .-'| | |
+| | | | | |--- || --'| | | ' | | | |
+'---'---'--'--'--. |-----''----''--' '-----'-'-'-'
+ -' |
+ '---'
+
The Angstrom Distribution \n \l
diff --git a/packages/base-files/base-files/angstrom/issue.net b/packages/base-files/base-files/angstrom/issue.net
index 554e604a6f..182fc83759 100644
--- a/packages/base-files/base-files/angstrom/issue.net
+++ b/packages/base-files/base-files/angstrom/issue.net
@@ -1,3 +1,12 @@
+.-------.
+| | .-.
+| | |-----.-----.-----.| | .----..-----.-----.
+| | | __ | ---'| '--.| .-'| | |
+| | | | | |--- || --'| | | ' | | | |
+'---'---'--'--'--. |-----''----''--' '-----'-'-'-'
+ -' |
+ '---'
+
The Angstrom Distribution %h
diff --git a/packages/lighttpd/1.4.13/.mtn2git_empty b/packages/base-files/base-files/armzone-qt2410/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/lighttpd/1.4.13/.mtn2git_empty
+++ b/packages/base-files/base-files/armzone-qt2410/.mtn2git_empty
diff --git a/packages/base-files/base-files/armzone-qt2410/fstab b/packages/base-files/base-files/armzone-qt2410/fstab
new file mode 100644
index 0000000000..d339f800d3
--- /dev/null
+++ b/packages/base-files/base-files/armzone-qt2410/fstab
@@ -0,0 +1,16 @@
+# Root and Pseudo
+/dev/mtdblock4 / jffs2 rw,noatime 1 1
+proc /proc proc defaults 0 0
+
+# devpts?
+# usb?
+
+# Temporary
+tmpfs /var tmpfs defaults 0 0
+tmpfs /media/ram tmpfs defaults 0 0
+
+# SD/MMC
+/dev/mmcblk0p1 /media/card auto defaults,sync,noauto 0 0
+
+# USB Storage
+/dev/sda1 /media/hdd vfat noauto,umask=000,noatime,iocharset=utf8,codepage=932 0 0
diff --git a/packages/lighttpd/conf/.mtn2git_empty b/packages/base-files/base-files/fic-gta01/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/lighttpd/conf/.mtn2git_empty
+++ b/packages/base-files/base-files/fic-gta01/.mtn2git_empty
diff --git a/packages/base-files/base-files/fic-gta01/fstab b/packages/base-files/base-files/fic-gta01/fstab
new file mode 100644
index 0000000000..3837178c9a
--- /dev/null
+++ b/packages/base-files/base-files/fic-gta01/fstab
@@ -0,0 +1,16 @@
+# Root and Pseudo
+/dev/mtdblock4 / jffs2 rw,noatime 1 1
+proc /proc proc defaults 0 0
+
+# devpts?
+# usb?
+
+# Temporary
+tmpfs /var tmpfs defaults 0 0
+tmpfs /media/ram tmpfs defaults 0 0
+
+# microSD slot
+/dev/mmcblk0p1 /media/card auto defaults,sync,noauto 0 0
+
+# USB Storage
+/dev/sda1 /media/hdd vfat noauto,umask=000,noatime,iocharset=utf8,codepage=932 0 0
diff --git a/packages/base-files/base-files_3.0.14.bb b/packages/base-files/base-files_3.0.14.bb
index c149fd975b..d0b2a320df 100644
--- a/packages/base-files/base-files_3.0.14.bb
+++ b/packages/base-files/base-files_3.0.14.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Miscellaneous files for the base system."
SECTION = "base"
PRIORITY = "required"
-PR = "r58"
+PR = "r60"
LICENSE = "GPL"
SRC_URI = " \
diff --git a/packages/beepmp/beepmp_0.9.7.bb b/packages/beepmp/beepmp_0.9.7.bb
index e83237a18b..6eb86fa101 100644
--- a/packages/beepmp/beepmp_0.9.7.bb
+++ b/packages/beepmp/beepmp_0.9.7.bb
@@ -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/cairo/cairo_1.3.12.bb b/packages/cairo/cairo_1.3.14.bb
index cb83b8e4a2..6bc0cb37f7 100644
--- a/packages/cairo/cairo_1.3.12.bb
+++ b/packages/cairo/cairo_1.3.14.bb
@@ -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"
diff --git a/packages/contacts/contacts_0.2.bb b/packages/contacts/contacts_0.2.bb
index 071c827709..0f1b0d29ae 100644
--- a/packages/contacts/contacts_0.2.bb
+++ b/packages/contacts/contacts_0.2.bb
@@ -2,7 +2,7 @@ LICENSE = "LGPL"
SECTION = "x11"
DEPENDS = "glib-2.0 gtk+ libglade libbacon eds-dbus"
DESCRIPTION = "Contacts is an address-book application."
-PR = "r0"
+PR = "r1"
SRC_URI = "http://projects.o-hand.com/sources/contacts/contacts-0.2.tar.gz \
file://stock_contact.png \
diff --git a/packages/cups/cups_1.2.7.bb b/packages/cups/cups_1.2.7.bb
index acd735705c..22034f9a23 100644
--- a/packages/cups/cups_1.2.7.bb
+++ b/packages/cups/cups_1.2.7.bb
@@ -52,7 +52,15 @@ do_stage () {
oe_libinstall -C filter -so libcupsimage ${STAGING_LIBDIR}
}
+FILES_${PN}-dbg += "${libdir}/cups/backend/.debug \
+ ${libdir}/cups/cgi-bin/.debug \
+ ${libdir}/cups/filter/.debug \
+ ${libdir}/cups/monitor/.debug \
+ ${libdir}/cups/notifier/.debug \
+ ${libdir}/cups/daemon/.debug \
+ "
#package the html for the webgui inside the main packages (~1MB uncompressed)
+
FILES_${PN} += "${datadir}/doc/cups/images \
${datadir}/doc/cups/*html \
${datadir}/doc/cups/*.css \
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
index 0000000000..bb43d16516
--- /dev/null
+++ b/packages/cyrus-imapd/cyrus-imapd-2.2.12/remove-install-strip.patch
@@ -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) $<
diff --git a/packages/cyrus-imapd/cyrus-imapd_2.2.12.bb b/packages/cyrus-imapd/cyrus-imapd_2.2.12.bb
index e72253d4eb..8167719aab 100644
--- a/packages/cyrus-imapd/cyrus-imapd_2.2.12.bb
+++ b/packages/cyrus-imapd/cyrus-imapd_2.2.12.bb
@@ -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
diff --git a/packages/dates/dates_0.3.1.bb b/packages/dates/dates_0.3.1.bb
index 0870313df1..8dab1db54b 100644
--- a/packages/dates/dates_0.3.1.bb
+++ b/packages/dates/dates_0.3.1.bb
@@ -1,6 +1,7 @@
DESCRIPTION = "Dates is a calendar application."
SECTION = "x11"
LICENSE = "LGPL"
+PR = "r1"
DEPENDS = "glib-2.0 gtk+ libglade eds-dbus"
diff --git a/packages/dcop/dcopidl-native_3.5.4.bb b/packages/dcop/dcopidl-native_3.5.4.bb
index af90d5a20e..5f47effd24 100644
--- a/packages/dcop/dcopidl-native_3.5.4.bb
+++ b/packages/dcop/dcopidl-native_3.5.4.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "DCOP IDL parser"
-SECTION = "kde/devel"
+SECTION = "kde/devel"
PRIORITY = "optional"
LICENSE = "GPL"
DEPENDS = "uicmoc3-native"
diff --git a/packages/dcop/dcopidl2cpp-native_3.5.4.bb b/packages/dcop/dcopidl2cpp-native_3.5.4.bb
index 10969db923..2b5cd126d7 100644
--- a/packages/dcop/dcopidl2cpp-native_3.5.4.bb
+++ b/packages/dcop/dcopidl2cpp-native_3.5.4.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "DCOP IDL parser"
-SECTION = "kde/devel"
+SECTION = "kde/devel"
PRIORITY = "optional"
LICENSE = "GPL"
DEPENDS = "uicmoc3-native"
diff --git a/packages/dhcdbd/dhcdbd_1.14.bb b/packages/dhcdbd/dhcdbd_1.14.bb
index 8c05470f06..2da37f4466 100644
--- a/packages/dhcdbd/dhcdbd_1.14.bb
+++ b/packages/dhcdbd/dhcdbd_1.14.bb
@@ -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
diff --git a/packages/dhcdbd/dhcdbd_1.16.bb b/packages/dhcdbd/dhcdbd_1.16.bb
index a510c49286..d2ef7288c8 100644
--- a/packages/dhcdbd/dhcdbd_1.16.bb
+++ b/packages/dhcdbd/dhcdbd_1.16.bb
@@ -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
diff --git a/packages/dhcdbd/dhcdbd_2.0.bb b/packages/dhcdbd/dhcdbd_2.0.bb
index de9e24abd5..8495275ecb 100644
--- a/packages/dhcdbd/dhcdbd_2.0.bb
+++ b/packages/dhcdbd/dhcdbd_2.0.bb
@@ -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/e2fsprogs/e2fsprogs/e2fsprogs_1.34.bb b/packages/e2fsprogs/e2fsprogs/e2fsprogs_1.34.bb
index a0a449042f..6558236ae4 100644
--- a/packages/e2fsprogs/e2fsprogs/e2fsprogs_1.34.bb
+++ b/packages/e2fsprogs/e2fsprogs/e2fsprogs_1.34.bb
@@ -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
diff --git a/packages/e2fsprogs/e2fsprogs_1.38.bb b/packages/e2fsprogs/e2fsprogs_1.38.bb
index 4e3038577f..32e5f7b534 100644
--- a/packages/e2fsprogs/e2fsprogs_1.38.bb
+++ b/packages/e2fsprogs/e2fsprogs_1.38.bb
@@ -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}
+}
+
diff --git a/packages/eds/eds-dbus_svn.bb b/packages/eds/eds-dbus_svn.bb
index f5bef2e859..6563f1c867 100644
--- a/packages/eds/eds-dbus_svn.bb
+++ b/packages/eds/eds-dbus_svn.bb
@@ -1,18 +1,15 @@
DESCRIPTION = "Evolution database backend server"
HOMEPAGE = "http://projects.o-hand.com/eds"
LICENSE = "LGPL"
-DEPENDS = "intltool-native glib-2.0 gtk+ gconf dbus db gnome-common libglade virtual/libiconv zlib intltool"
+DEPENDS = "intltool-native glib-2.0 gtk+ gconf dbus db gnome-common virtual/libiconv zlib intltool"
PV = "1.4.0+svn${SRCDATE}"
-PR = "r2"
+PR = "r5"
SRC_URI = "svn://svn.o-hand.com/repos/${PN};module=trunk;proto=http \
file://no_libdb.patch;patch=1 \
file://no_iconv_test.patch;patch=1 \
- file://no_libedataserverui-20060126.patch;patch=1;maxdate=20061214 \
- file://no_libedataserverui.patch;patch=1;mindate=20061215 \
- file://disable_orbit.patch;patch=1;maxdate=20061214 \
- file://fix-bindig-tool.patch;patch=1;maxdate=20061223 \
+ file://no_libedataserverui.patch;patch=1 \
file://iconv-detect.h"
S = "${WORKDIR}/trunk"
@@ -26,37 +23,32 @@ EXTRA_OECONF = "--without-openldap --with-dbus --without-bug-buddy --without-sou
acpaths = " -I ${STAGING_DATADIR}/aclocal/gnome-macros "
-PACKAGES =+ "eds-pixmaps eds-zoneinfo eds-camel-providers eds-camel-lock-helper eds-camel-index-control libcamel-provider libcamel libebook libecal libedata-book libedata-cal libedataserver"
-
-RDEPENDS_${PN} += "eds-pixmaps eds-zoneinfo"
-
-FILES_eds-pixmaps = "${datadir}/pixmaps"
-FILES_eds-zoneinfo = "${datadir}/evolution-data-server-1.4/zoneinfo/"
-FILES_eds-camel-providers = "${libdir}/evolution-data-server-1.2/camel-providers/*.so ${libdir}/evolution-data-server-1.2/camel-providers/*.urls"
-FILES_eds-camel-lock-helper = "${libexecdir}/camel-lock-helper-1.2"
-FILES_eds-camel-index-control = "${libexecdir}/camel-index-control-1.2"
-FILES_libcamel-provider = "${libdir}/libcamel-provider-1.2.so.*"
-FILES_libcamel = "${libdir}/libcamel-1.2.so.*"
-FILES_libebook = "${libdir}/libebook-1.2*"
-FILES_libecal = "${libdir}/libecal-1.2.so.*"
-FILES_libedata-book = "${libdir}/libedata-book-1.2.so.*"
-FILES_libedata-cal = "${libdir}/libedata-cal-1.2.so.*"
-FILES_libedataserver = "${libdir}/libedataserver-1.2.so.*"
-
-FILES_${PN} += "${libdir}/evolution-data-server-1.2/extensions/*.so \
- ${libdir}/evolution-data-server-1.2/camel-providers/*.so \
- ${libdir}/evolution-data-server-1.2/camel-providers/*.urls \
- ${datadir}/evolution-data-server-1.4/zoneinfo/zones.tab \
- ${datadir}/evolution-data-server-1.4/zoneinfo/*/*.ics \
- ${datadir}/evolution-data-server-1.4/zoneinfo/*/*/*.ics \
- ${datadir}/dbus-1/services/*.service"
-FILES_${PN}-dev += "${libdir}/evolution-data-server-1.2/extensions/*.la \
- ${libdir}/evolution-data-server-1.2/camel-providers/*.la"
+PACKAGES =+ "libcamel-collateral libcamel libcamel-dev libebook libebook-dev libecal libecal-dev libedata-book libedata-book-dev libedata-cal libedata-cal-dev libedataserver libedataserver-dev"
+FILES_${PN}-dev =+ "${libdir}/pkgconfig/evolution-data-server-*.pc"
+FILES_${PN}-dbg =+ "${libdir}/evolution-data-server-*/camel-providers/.debug ${libdir}/evolution-data-server*/extensions/.debug/"
+
+FILES_libcamel = "${libdir}/libcamel-*.so.* ${libexecdir}/camel-*"
+FILES_libcamel-dev = "${libdir}/libcamel-*.so ${libdir}/libcamel-provider-*.so ${libdir}/pkgconfig/camel*pc ${includedir}/evolution-data-server*/camel"
+FILES_libcamel-collateral = "${libdir}/libcamel-provider-*.so.* ${libdir}/evolution-data-server-*/camel-providers/*.so ${libdir}/evolution-data-server-*/camel-providers/*.urls"
+
+FILES_libebook = "${libdir}/libebook-*.so.*"
+FILES_libebook-dev = "${libdir}/libebook-1.2.so ${libdir}/pkgconfig/libebook-*.pc ${includedir}/evolution-data-server*/libebook/*.h"
+
+FILES_libecal = "${libdir}/libecal-*.so.* ${datadir}/evolution-data-server-1.4/zoneinfo"
+FILES_libecal-dev = "${libdir}/libecal-*.so ${libdir}/pkgconfig/libecal-*.pc ${includedir}/evolution-data-server*/libecal/*.h ${includedir}/evolution-data-server*/libical/*.h"
+
+FILES_libedata-book = "${libexecdir}/e-addressbook-factory ${datadir}/dbus-1/services/*.AddressBook.service ${libdir}/libedata-book-*.so.* ${libdir}/evolution-data-server-*/extensions/libebook*.so"
+FILES_libedata-book-dev = "${libdir}/libedata-book-*.so ${libdir}/pkgconfig/libedata-book-*.pc ${includedir}/evolution-data-server-*/libedata-book"
+
+FILES_libedata-cal = "${libexecdir}/e-calendar-factory ${datadir}/dbus-1/services/*.Calendar.service ${libdir}/libedata-cal-*.so.* ${libdir}/evolution-data-server-*/extensions/libecal*.so"
+FILES_libedata-cal-dev = "${libdir}/libedata-cal-*.so ${libdir}/pkgconfig/libedata-cal-*.pc ${includedir}/evolution-data-server-*/libedata-cal"
+
+FILES_libedataserver = "${libdir}/libedataserver-*.so.*"
+FILES_libedataserver-dev = "${libdir}/libedataserver-*.so ${libdir}/pkgconfig/libedataserver-*.pc ${includedir}/evolution-data-server-*/libedataserver/*.h"
do_configure_append = " cp ${WORKDIR}/iconv-detect.h ${S} "
do_stage () {
autotools_stage_all
}
-
diff --git a/packages/enchant/enchant_1.1.3.bb b/packages/enchant/enchant_1.1.3.bb
index a1e70852b0..c33a1a3927 100644
--- a/packages/enchant/enchant_1.1.3.bb
+++ b/packages/enchant/enchant_1.1.3.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Enchant Spell checker API Library"
PRIORITY = "optional"
-SECTION = "libs"
+SECTION = "libs"
DEPENDS = "aspell"
RDEPENDS = "aspell"
diff --git a/packages/enchant/enchant_1.2.5.bb b/packages/enchant/enchant_1.2.5.bb
index 5045a762b0..5896d1275a 100644
--- a/packages/enchant/enchant_1.2.5.bb
+++ b/packages/enchant/enchant_1.2.5.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Enchant Spell checker API Library"
PRIORITY = "optional"
-SECTION = "libs"
+SECTION = "libs"
LICENSE = "LGPL"
DEPENDS = "aspell"
RDEPENDS = "aspell"
diff --git a/packages/esound/esound_0.2.36.bb b/packages/esound/esound_0.2.36.bb
index a7de15305f..a260882bae 100644
--- a/packages/esound/esound_0.2.36.bb
+++ b/packages/esound/esound_0.2.36.bb
@@ -12,6 +12,9 @@ EXTRA_OECONF = " \
--disable-arts \
--disable-artstest \
"
+do_configure_prepend() {
+ sed -i -e 's:/usr/include/mme:${STAGING_INCDIR}/mme:g' configure.ac
+}
do_stage() {
autotools_stage_all
diff --git a/packages/fftw/fftw_3.1.2.bb b/packages/fftw/fftw_3.1.2.bb
index e6bc885b77..58603ef24c 100644
--- a/packages/fftw/fftw_3.1.2.bb
+++ b/packages/fftw/fftw_3.1.2.bb
@@ -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"
diff --git a/packages/galago/eds-feed_0.3.2.bb b/packages/galago/eds-feed_0.3.2.bb
index 5ad9a822a6..59dc914eb2 100644
--- a/packages/galago/eds-feed_0.3.2.bb
+++ b/packages/galago/eds-feed_0.3.2.bb
@@ -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"
diff --git a/packages/galago/galago-daemon_0.3.4.bb b/packages/galago/galago-daemon_0.3.4.bb
index 9e27f72605..243e42da4e 100644
--- a/packages/galago/galago-daemon_0.3.4.bb
+++ b/packages/galago/galago-daemon_0.3.4.bb
@@ -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/"
diff --git a/packages/glibc/glibc.inc b/packages/glibc/glibc.inc
index 4e785d8275..7078a1c09f 100644
--- a/packages/glibc/glibc.inc
+++ b/packages/glibc/glibc.inc
@@ -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"
diff --git a/packages/glibc/glibc_2.2.5.bb b/packages/glibc/glibc_2.2.5.bb
index 6f00011d00..75f08be942 100644
--- a/packages/glibc/glibc_2.2.5.bb
+++ b/packages/glibc/glibc_2.2.5.bb
@@ -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"
diff --git a/packages/glibc/glibc_2.3.2.bb b/packages/glibc/glibc_2.3.2.bb
index 12db1928c6..1dba326201 100644
--- a/packages/glibc/glibc_2.3.2.bb
+++ b/packages/glibc/glibc_2.3.2.bb
@@ -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.
diff --git a/packages/glibc/glibc_2.3.3.bb b/packages/glibc/glibc_2.3.3.bb
index 7c2bf09e4e..0db2616a75 100644
--- a/packages/glibc/glibc_2.3.3.bb
+++ b/packages/glibc/glibc_2.3.3.bb
@@ -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"
diff --git a/packages/glibc/glibc_2.5.bb b/packages/glibc/glibc_2.5.bb
index 23230392e9..f9f24bbe7f 100644
--- a/packages/glibc/glibc_2.5.bb
+++ b/packages/glibc/glibc_2.5.bb
@@ -2,6 +2,9 @@ require glibc.inc
ARM_INSTRUCTION_SET = "arm"
+PACKAGES_DYNAMIC = "libc6*"
+RPROVIDES_${PN}-dev = "libc6-dev"
+
PR = "r4"
# the -isystem in bitbake.conf screws up glibc do_stage
diff --git a/packages/gnome/gnome-vfs_2.16.3.bb b/packages/gnome/gnome-vfs_2.16.3.bb
index 0c6176428e..b1f634c0e9 100644
--- a/packages/gnome/gnome-vfs_2.16.3.bb
+++ b/packages/gnome/gnome-vfs_2.16.3.bb
@@ -17,7 +17,8 @@ EXTRA_OECONF = " \
--disable-openssl \
--enable-gnutls \
--enable-avahi \
- "
+ --with-samba-includes=${STAGING_INCDIR} \
+ "
FILES_${PN} += " ${libdir}/vfs"
FILES_${PN}-dev += " ${libdir}/gnome-vfs-2.0/include"
diff --git a/packages/gnuplot/qtplot_0.2.bb b/packages/gnuplot/qtplot_0.2.bb
index 8b22c0e5d5..80b3e4a603 100644
--- a/packages/gnuplot/qtplot_0.2.bb
+++ b/packages/gnuplot/qtplot_0.2.bb
@@ -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-bluetooth/gpe-bluetooth_0.51.bb b/packages/gpe-bluetooth/gpe-bluetooth_0.51.bb
index 2eaa992955..15d8ccafcc 100644
--- a/packages/gpe-bluetooth/gpe-bluetooth_0.51.bb
+++ b/packages/gpe-bluetooth/gpe-bluetooth_0.51.bb
@@ -1,6 +1,6 @@
LICENSE = "GPL"
DESCRIPTION = "GPE bluetooth support user interface tool."
-SECTION = "gpe"
+SECTION = "gpe"
PRIORITY = "optional"
PR = "r1"
diff --git a/packages/gpe-bluetooth/gpe-bluetooth_0.52.bb b/packages/gpe-bluetooth/gpe-bluetooth_0.52.bb
index 7720647cf8..b6dcfcca61 100644
--- a/packages/gpe-bluetooth/gpe-bluetooth_0.52.bb
+++ b/packages/gpe-bluetooth/gpe-bluetooth_0.52.bb
@@ -1,6 +1,6 @@
LICENSE = "GPL"
DESCRIPTION = "GPE bluetooth support user interface tool."
-SECTION = "gpe"
+SECTION = "gpe"
PRIORITY = "optional"
PR = "r0"
diff --git a/packages/gpe-bluetooth/gpe-bluetooth_0.53.bb b/packages/gpe-bluetooth/gpe-bluetooth_0.53.bb
index 7720647cf8..b6dcfcca61 100644
--- a/packages/gpe-bluetooth/gpe-bluetooth_0.53.bb
+++ b/packages/gpe-bluetooth/gpe-bluetooth_0.53.bb
@@ -1,6 +1,6 @@
LICENSE = "GPL"
DESCRIPTION = "GPE bluetooth support user interface tool."
-SECTION = "gpe"
+SECTION = "gpe"
PRIORITY = "optional"
PR = "r0"
diff --git a/packages/gpe-bluetooth/gpe-bluetooth_0.54.bb b/packages/gpe-bluetooth/gpe-bluetooth_0.54.bb
index 24d3ff48ce..e664f51959 100644
--- a/packages/gpe-bluetooth/gpe-bluetooth_0.54.bb
+++ b/packages/gpe-bluetooth/gpe-bluetooth_0.54.bb
@@ -1,6 +1,6 @@
LICENSE = "GPL"
DESCRIPTION = "GPE bluetooth support user interface tool."
-SECTION = "gpe"
+SECTION = "gpe"
PRIORITY = "optional"
PR = "r1"
diff --git a/packages/gpe-conf/gpe-conf_0.2.2.bb b/packages/gpe-conf/gpe-conf_0.2.4.bb
index deea518a86..deea518a86 100644
--- a/packages/gpe-conf/gpe-conf_0.2.2.bb
+++ b/packages/gpe-conf/gpe-conf_0.2.4.bb
diff --git a/packages/gpe-filemanager/gpe-filemanager_0.23.bb b/packages/gpe-filemanager/gpe-filemanager_0.23.bb
index 5d0fe7a1b0..e2da6036fc 100644
--- a/packages/gpe-filemanager/gpe-filemanager_0.23.bb
+++ b/packages/gpe-filemanager/gpe-filemanager_0.23.bb
@@ -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"
diff --git a/packages/gpe-filemanager/gpe-filemanager_0.24.bb b/packages/gpe-filemanager/gpe-filemanager_0.24.bb
index 5d0fe7a1b0..e2da6036fc 100644
--- a/packages/gpe-filemanager/gpe-filemanager_0.24.bb
+++ b/packages/gpe-filemanager/gpe-filemanager_0.24.bb
@@ -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"
diff --git a/packages/gpe-filemanager/gpe-filemanager_0.25.bb b/packages/gpe-filemanager/gpe-filemanager_0.25.bb
index 1ccb811490..ac91df6a40 100644
--- a/packages/gpe-filemanager/gpe-filemanager_0.25.bb
+++ b/packages/gpe-filemanager/gpe-filemanager_0.25.bb
@@ -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"
diff --git a/packages/gpe-login/gpe-login_0.87.bb b/packages/gpe-login/gpe-login_0.87.bb
index 1674e0c8be..04839a4412 100644
--- a/packages/gpe-login/gpe-login_0.87.bb
+++ b/packages/gpe-login/gpe-login_0.87.bb
@@ -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"
diff --git a/packages/gpe-mini-browser/gpe-mini-browser_0.17.bb b/packages/gpe-mini-browser/gpe-mini-browser_0.17.bb
index 99523c08f8..b8146edbb8 100644
--- a/packages/gpe-mini-browser/gpe-mini-browser_0.17.bb
+++ b/packages/gpe-mini-browser/gpe-mini-browser_0.17.bb
@@ -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}"
diff --git a/packages/gpe-mini-browser/gpe-mini-browser_0.18.bb b/packages/gpe-mini-browser/gpe-mini-browser_0.18.bb
index 99523c08f8..b8146edbb8 100644
--- a/packages/gpe-mini-browser/gpe-mini-browser_0.18.bb
+++ b/packages/gpe-mini-browser/gpe-mini-browser_0.18.bb
@@ -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}"
diff --git a/packages/gpe-session-scripts/gpe-session-scripts_0.67.bb b/packages/gpe-session-scripts/gpe-session-scripts_0.67.bb
index 85c6a2575a..583fe2f7e3 100644
--- a/packages/gpe-session-scripts/gpe-session-scripts_0.67.bb
+++ b/packages/gpe-session-scripts/gpe-session-scripts_0.67.bb
@@ -4,14 +4,14 @@ DESCRIPTION = "GPE session startup scripts"
LICENSE = "GPL"
SECTION = "gpe"
PRIORITY = "optional"
-RDEPENDS_${PN} = "matchbox-panel (>= 0.9.2-r12) matchbox-desktop (>= 0.9.1-r1) matchbox-common (>= 0.9.1-r2) gpe-session-starter gpe-bluetooth xstroke xtscal gpe-question gpe-clock matchbox-applet-inputmanager xrandr xmodmap xdpyinfo xserver-common"
+RDEPENDS_${PN} = "matchbox-panel (>= 0.9.2-r12) matchbox-desktop (>= 0.9.1-r1) matchbox-common (>= 0.9.1-r2) gpe-session-starter xtscal gpe-question matchbox-applet-inputmanager xmodmap xdpyinfo xserver-common"
# more rdepends: keylaunch ipaq-sleep apmd blueprobe
-DEPENDS = "matchbox-wm matchbox-panel gpe-bluetooth xstroke xtscal gpe-question matchbox-applet-inputmanager gpe-clock xrandr xmodmap xdpyinfo xserver-common"
+DEPENDS = "matchbox-wm matchbox-panel xtscal gpe-question matchbox-applet-inputmanager xmodmap xdpyinfo xserver-common"
SRC_URI += "file://matchbox-session \
file://disable-composite.xsettings"
-PR = "r5"
+PR = "r6"
#apply a patch to set the fontsize for bigdpi (200+) devices to 5
SRC_URI_append_hx4700 = " file://highdpifontfix.patch;patch=1"
diff --git a/packages/gpe-shield/gpe-shield_0.9.bb b/packages/gpe-shield/gpe-shield_0.9.bb
index c47e00d52d..aac8899035 100644
--- a/packages/gpe-shield/gpe-shield_0.9.bb
+++ b/packages/gpe-shield/gpe-shield_0.9.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "GPE network security tool"
-SECTION = "gpe"
+SECTION = "gpe"
LICENSE = "GPL"
DEPENDS = "libgpewidget iptables virtual/kernel"
diff --git a/packages/gpe-themes/gpe-theme-clearlooks_0.2.bb b/packages/gpe-themes/gpe-theme-clearlooks_0.2.bb
index 796fc0ccae..77f8289025 100644
--- a/packages/gpe-themes/gpe-theme-clearlooks_0.2.bb
+++ b/packages/gpe-themes/gpe-theme-clearlooks_0.2.bb
@@ -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/
diff --git a/packages/gpe-themes/gpe-theme-clearlooks_0.3.bb b/packages/gpe-themes/gpe-theme-clearlooks_0.3.bb
index 8af15beb94..0ec4e10338 100644
--- a/packages/gpe-themes/gpe-theme-clearlooks_0.3.bb
+++ b/packages/gpe-themes/gpe-theme-clearlooks_0.3.bb
@@ -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/
diff --git a/packages/gpe-themes/gpe-theme-industrial_0.2.bb b/packages/gpe-themes/gpe-theme-industrial_0.2.bb
index 1a0b8f49a8..02b7a62c0d 100644
--- a/packages/gpe-themes/gpe-theme-industrial_0.2.bb
+++ b/packages/gpe-themes/gpe-theme-industrial_0.2.bb
@@ -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/
diff --git a/packages/gpe-todo/gpe-todo-hildon_0.54.bb b/packages/gpe-todo/gpe-todo-hildon_0.54.bb
index 8fa37565cb..9c75dec47a 100644
--- a/packages/gpe-todo/gpe-todo-hildon_0.54.bb
+++ b/packages/gpe-todo/gpe-todo-hildon_0.54.bb
@@ -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
diff --git a/packages/gpe-todo/gpe-todo-hildon_0.55.bb b/packages/gpe-todo/gpe-todo-hildon_0.55.bb
index 8fa37565cb..9c75dec47a 100644
--- a/packages/gpe-todo/gpe-todo-hildon_0.55.bb
+++ b/packages/gpe-todo/gpe-todo-hildon_0.55.bb
@@ -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
diff --git a/packages/gpe-what/gpe-what_cvs.bb b/packages/gpe-what/gpe-what_cvs.bb
index bd83a42c53..4572d467b6 100644
--- a/packages/gpe-what/gpe-what_cvs.bb
+++ b/packages/gpe-what/gpe-what_cvs.bb
@@ -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+"
diff --git a/packages/gpephone/addressbook_0.1.bb b/packages/gpephone/addressbook_0.1.bb
index 71764de6ca..21fd95fe66 100644
--- a/packages/gpephone/addressbook_0.1.bb
+++ b/packages/gpephone/addressbook_0.1.bb
@@ -1,6 +1,6 @@
LICENSE = "LiPS"
DESCRIPTION = "LiPS address book"
-SECTION = "gpe"
+SECTION = "gpe"
PRIORITY = "optional"
PR = "r0"
diff --git a/packages/gpephone/audioplayer_1.0.bb b/packages/gpephone/audioplayer_1.0.bb
index e79b294e81..77737248b4 100644
--- a/packages/gpephone/audioplayer_1.0.bb
+++ b/packages/gpephone/audioplayer_1.0.bb
@@ -1,6 +1,6 @@
LICENSE = "LiPS"
DESCRIPTION = "An audio player for GPE phone edition."
-SECTION = "gpe"
+SECTION = "gpe"
PRIORITY = "optional"
PR = "r0"
diff --git a/packages/gpephone/calendar_1.0.bb b/packages/gpephone/calendar_1.0.bb
index 342f81eed4..c78979e244 100644
--- a/packages/gpephone/calendar_1.0.bb
+++ b/packages/gpephone/calendar_1.0.bb
@@ -1,6 +1,6 @@
LICENSE = "LiPS"
DESCRIPTION = "Calendar application for GPE Phone Edition"
-SECTION = "gpe"
+SECTION = "gpe"
PRIORITY = "optional"
PR = "r0"
diff --git a/packages/gpephone/cms92init_0.1.bb b/packages/gpephone/cms92init_0.1.bb
index aaa079966d..ab0388a45d 100644
--- a/packages/gpephone/cms92init_0.1.bb
+++ b/packages/gpephone/cms92init_0.1.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "GSM/GPRS mux initializer"
LICENSE = "GPL"
-SECTION = "gpe"
+SECTION = "gpe"
PRIORITY = "optional"
DEPENDS = "glibc"
PR = "r0"
diff --git a/packages/gpephone/connect_0.1.bb b/packages/gpephone/connect_0.1.bb
index 3e14f78fcf..c5ce0a0d54 100644
--- a/packages/gpephone/connect_0.1.bb
+++ b/packages/gpephone/connect_0.1.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "GSM/GPRS mux tools"
LICENSE = "GPL"
-SECTION = "gpe"
+SECTION = "gpe"
PRIORITY = "optional"
DEPENDS = "glibc"
PR = "r0"
diff --git a/packages/gpephone/gloox_0.8.1.bb b/packages/gpephone/gloox_0.8.1.bb
index e6d6e509c7..09004a8182 100644
--- a/packages/gpephone/gloox_0.8.1.bb
+++ b/packages/gpephone/gloox_0.8.1.bb
@@ -1,6 +1,6 @@
LICENSE = "GPL"
DESCRIPTION = "full-featured Jabber/XMPP client library."
-SECTION = "networking"
+SECTION = "networking"
PRIORITY = "optional"
PR = "r0"
diff --git a/packages/gpephone/gpe-applauncher_0.7.bb b/packages/gpephone/gpe-applauncher_0.7.bb
index 6b6d08d547..ae6cd31d9a 100644
--- a/packages/gpephone/gpe-applauncher_0.7.bb
+++ b/packages/gpephone/gpe-applauncher_0.7.bb
@@ -1,6 +1,6 @@
LICENSE = "GPL"
DESCRIPTION = "A cellphone application launcher."
-SECTION = "gpe"
+SECTION = "gpe"
PRIORITY = "optional"
PR = "r0"
diff --git a/packages/gpephone/gpe-phonepanel_0.7.bb b/packages/gpephone/gpe-phonepanel_0.7.bb
index 770b028de9..1a2f4a272e 100644
--- a/packages/gpephone/gpe-phonepanel_0.7.bb
+++ b/packages/gpephone/gpe-phonepanel_0.7.bb
@@ -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"
diff --git a/packages/gpephone/gsmmux_alpha-2.bb b/packages/gpephone/gsmmux_alpha-2.bb
index 3354acdafb..9a6433a58a 100644
--- a/packages/gpephone/gsmmux_alpha-2.bb
+++ b/packages/gpephone/gsmmux_alpha-2.bb
@@ -1,6 +1,6 @@
LICENSE = "GPL"
DESCRIPTION = "A GSM (De-)Multiplexer."
-SECTION = "gsm"
+SECTION = "gsm"
PRIORITY = "optional"
PR = "r0"
diff --git a/packages/gpephone/iksemel_1.2.bb b/packages/gpephone/iksemel_1.2.bb
index 69cc98ec0d..40ad32ce0e 100644
--- a/packages/gpephone/iksemel_1.2.bb
+++ b/packages/gpephone/iksemel_1.2.bb
@@ -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"
diff --git a/packages/gpephone/libabenabler_0.1.bb b/packages/gpephone/libabenabler_0.1.bb
index 84afecb83b..7a8efb8382 100644
--- a/packages/gpephone/libabenabler_0.1.bb
+++ b/packages/gpephone/libabenabler_0.1.bb
@@ -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"
diff --git a/packages/gpephone/libcalenabler_1.0.bb b/packages/gpephone/libcalenabler_1.0.bb
index fc5367984f..f4be78092e 100644
--- a/packages/gpephone/libcalenabler_1.0.bb
+++ b/packages/gpephone/libcalenabler_1.0.bb
@@ -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"
diff --git a/packages/gpephone/libchenabler_0.1.bb b/packages/gpephone/libchenabler_0.1.bb
index dfc353964c..740ed21c65 100644
--- a/packages/gpephone/libchenabler_0.1.bb
+++ b/packages/gpephone/libchenabler_0.1.bb
@@ -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"
diff --git a/packages/gpephone/libgemwidget_0.1.bb b/packages/gpephone/libgemwidget_0.1.bb
index 88a7e6292c..40264b9bb2 100644
--- a/packages/gpephone/libgemwidget_0.1.bb
+++ b/packages/gpephone/libgemwidget_0.1.bb
@@ -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"
diff --git a/packages/gpephone/libgpephone_0.3.bb b/packages/gpephone/libgpephone_0.3.bb
index 48a5148143..9a78fd9947 100644
--- a/packages/gpephone/libgpephone_0.3.bb
+++ b/packages/gpephone/libgpephone_0.3.bb
@@ -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"
diff --git a/packages/gpephone/libiac_0.1.bb b/packages/gpephone/libiac_0.1.bb
index 42e9fc77bc..940b1ecc31 100644
--- a/packages/gpephone/libiac_0.1.bb
+++ b/packages/gpephone/libiac_0.1.bb
@@ -1,6 +1,6 @@
LICENSE = "LiPS"
DESCRIPTION = "LiPS IPC library."
-SECTION = "gpe/libs"
+SECTION = "gpe/libs"
PRIORITY = "optional"
DEPENDS = "gtk+ gtk-doc"
PR = "r1"
diff --git a/packages/gpephone/libidn_0.5.19.bb b/packages/gpephone/libidn_0.5.19.bb
index 9c37e015a9..4254ef466d 100644
--- a/packages/gpephone/libidn_0.5.19.bb
+++ b/packages/gpephone/libidn_0.5.19.bb
@@ -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"
diff --git a/packages/gpephone/libim_0.1.bb b/packages/gpephone/libim_0.1.bb
index f4524dea31..4d59957d79 100644
--- a/packages/gpephone/libim_0.1.bb
+++ b/packages/gpephone/libim_0.1.bb
@@ -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"
diff --git a/packages/gpephone/liblipsevent_0.1.bb b/packages/gpephone/liblipsevent_0.1.bb
index 0951b6b324..2618bf61c4 100644
--- a/packages/gpephone/liblipsevent_0.1.bb
+++ b/packages/gpephone/liblipsevent_0.1.bb
@@ -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"
diff --git a/packages/gpephone/libmsgenabler_1.0.bb b/packages/gpephone/libmsgenabler_1.0.bb
index 84c3b7971c..385501c959 100644
--- a/packages/gpephone/libmsgenabler_1.0.bb
+++ b/packages/gpephone/libmsgenabler_1.0.bb
@@ -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"
diff --git a/packages/gpephone/librecord_0.1.bb b/packages/gpephone/librecord_0.1.bb
index f13e810f29..532cc267ff 100644
--- a/packages/gpephone/librecord_0.1.bb
+++ b/packages/gpephone/librecord_0.1.bb
@@ -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"
diff --git a/packages/gpephone/libvocenabler_0.1.bb b/packages/gpephone/libvocenabler_0.1.bb
index f0b86ee0e3..0b2d23747c 100644
--- a/packages/gpephone/libvocenabler_0.1.bb
+++ b/packages/gpephone/libvocenabler_0.1.bb
@@ -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"
diff --git a/packages/gpephone/phoneserver_1.0.bb b/packages/gpephone/phoneserver_1.0.bb
index d9ee660cdb..522d31cee1 100644
--- a/packages/gpephone/phoneserver_1.0.bb
+++ b/packages/gpephone/phoneserver_1.0.bb
@@ -1,6 +1,6 @@
LICENSE = "LiPS"
DESCRIPTION = "Phone services server"
-SECTION = "gpe"
+SECTION = "gpe"
PRIORITY = "optional"
PR = "r1"
diff --git a/packages/gpephone/sms_1.0.bb b/packages/gpephone/sms_1.0.bb
index 12cd8b4f6e..1718483b59 100644
--- a/packages/gpephone/sms_1.0.bb
+++ b/packages/gpephone/sms_1.0.bb
@@ -1,6 +1,6 @@
LICENSE = "LiPS"
DESCRIPTION = "GSM Short message application"
-SECTION = "gpe"
+SECTION = "gpe"
PRIORITY = "optional"
PR = "r0"
diff --git a/packages/gpephone/soundserver_1.0.bb b/packages/gpephone/soundserver_1.0.bb
index bf45c2ecc6..5d47d9a370 100644
--- a/packages/gpephone/soundserver_1.0.bb
+++ b/packages/gpephone/soundserver_1.0.bb
@@ -1,6 +1,6 @@
LICENSE = "LiPS"
DESCRIPTION = "Cellphone alarm daemon"
-SECTION = "gpe"
+SECTION = "gpe"
PRIORITY = "optional"
PR = "r0"
diff --git a/packages/gpephone/videoplayer_0.1.bb b/packages/gpephone/videoplayer_0.1.bb
index 0cff5c3c73..70361920f9 100644
--- a/packages/gpephone/videoplayer_0.1.bb
+++ b/packages/gpephone/videoplayer_0.1.bb
@@ -1,6 +1,6 @@
LICENSE = "LiPS"
DESCRIPTION = "Video player application"
-SECTION = "gpe"
+SECTION = "gpe"
PRIORITY = "optional"
PR = "r0"
diff --git a/packages/gpephone/voicecall_0.1.bb b/packages/gpephone/voicecall_0.1.bb
index 2594991458..82bebf9d50 100644
--- a/packages/gpephone/voicecall_0.1.bb
+++ b/packages/gpephone/voicecall_0.1.bb
@@ -1,6 +1,6 @@
LICENSE = "LiPS"
DESCRIPTION = "Voice call application (with wifi support)"
-SECTION = "gpe"
+SECTION = "gpe"
PRIORITY = "optional"
PR = "r0"
diff --git a/packages/gpephone/xoo-theme-gpephone_1.0.bb b/packages/gpephone/xoo-theme-gpephone_1.0.bb
index 7bcd34e97d..0441e3e13b 100644
--- a/packages/gpephone/xoo-theme-gpephone_1.0.bb
+++ b/packages/gpephone/xoo-theme-gpephone_1.0.bb
@@ -1,6 +1,6 @@
LICENSE = "LiPS"
DESCRIPTION = "A neutral cellphone theme for Xoo."
-SECTION = "gpe"
+SECTION = "gpe"
PRIORITY = "optional"
PR = "r0"
diff --git a/packages/gpsd/gpsd.inc b/packages/gpsd/gpsd.inc
index e23167c80a..1f48fe0052 100644
--- a/packages/gpsd/gpsd.inc
+++ b/packages/gpsd/gpsd.inc
@@ -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
index 0000000000..58e9ebeee2
--- /dev/null
+++ b/packages/gpsd/gpsd_2.34.bb
@@ -0,0 +1,3 @@
+require gpsd.inc
+
+PR = "r0"
diff --git a/packages/grub/grub_0.93.bb b/packages/grub/grub_0.93.bb
index 8341184476..9fc008412d 100644
--- a/packages/grub/grub_0.93.bb
+++ b/packages/grub/grub_0.93.bb
@@ -1,14 +1,15 @@
DESCRIPTION = "GRUB is the GRand Unified Bootloader"
-SECTION = "base"
HOMEPAGE = "http://www.gnu.org/software/grub"
+SECTION = "bootloaders"
+PRIORITY = "optional"
SRC_URI = "ftp://alpha.gnu.org/gnu/grub/grub-${PV}.tar.gz; \
file://autohell.patch;patch=1 \
file://memcpy.patch;patch=1 \
file://reiserfs.patch;patch=1"
-S = "${WORKDIR}/grub-${PV}"
-
inherit autotools
COMPATIBLE_HOST = 'i.86.*-linux'
+
+FILES_${PN}-doc = "${datadir}"
diff --git a/packages/grub/grub_0.97.bb b/packages/grub/grub_0.97.bb
index 051296a31a..044ecba577 100644
--- a/packages/grub/grub_0.97.bb
+++ b/packages/grub/grub_0.97.bb
@@ -1,10 +1,11 @@
-SECTION = "base"
-DESCRIPTION = "grand unified bootloader"
+DESCRIPTION = "GRUB is the GRand Unified Bootloader"
+HOMEPAGE = "http://www.gnu.org/software/grub"
+SECTION = "bootloaders"
+PRIORITY = "optional"
+PR = "r1"
SRC_URI = "ftp://alpha.gnu.org/gnu/grub/grub-${PV}.tar.gz"
-S = "${WORKDIR}/grub-${PV}"
-
inherit autotools
python __anonymous () {
@@ -19,4 +20,5 @@ do_install_append_vmware() {
ln -sf ../usr/lib/grub/{$TARGET_ARCH}{$TARGET_VENDOR}/ ${D}/boot/grub
}
+FILES_${PN}-doc = "${datadir}"
FILES_${PN} = "/boot /usr"
diff --git a/packages/lighttpd/conf/etc/.mtn2git_empty b/packages/gsm/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/lighttpd/conf/etc/.mtn2git_empty
+++ b/packages/gsm/.mtn2git_empty
diff --git a/packages/gsm/libgsmd_svn.bb b/packages/gsm/libgsmd_svn.bb
new file mode 100644
index 0000000000..860adf3b0a
--- /dev/null
+++ b/packages/gsm/libgsmd_svn.bb
@@ -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 = "r2"
+
+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
index 0000000000..79bc33a04f
--- /dev/null
+++ b/packages/gtk+/pixops-test.bb
@@ -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/lighttpd/conf/etc/init.d/.mtn2git_empty b/packages/gtk+/pixops-test/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/lighttpd/conf/etc/init.d/.mtn2git_empty
+++ b/packages/gtk+/pixops-test/.mtn2git_empty
diff --git a/packages/gtk+/pixops-test/gtk-logo-rgb.gif b/packages/gtk+/pixops-test/gtk-logo-rgb.gif
new file mode 100644
index 0000000000..f6e934d5e6
--- /dev/null
+++ b/packages/gtk+/pixops-test/gtk-logo-rgb.gif
Binary files differ
diff --git a/packages/gtk+/pixops-test/pixops-test.c b/packages/gtk+/pixops-test/pixops-test.c
new file mode 100644
index 0000000000..f8906dfc42
--- /dev/null
+++ b/packages/gtk+/pixops-test/pixops-test.c
@@ -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;
+}
diff --git a/packages/hal/hal_0.5.7.bb b/packages/hal/hal_0.5.7.bb
index c6ca7f75dc..5933676260 100644
--- a/packages/hal/hal_0.5.7.bb
+++ b/packages/hal/hal_0.5.7.bb
@@ -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"
diff --git a/packages/images/openmoko-devel-image.bb b/packages/images/openmoko-devel-image.bb
new file mode 100644
index 0000000000..3f238196a4
--- /dev/null
+++ b/packages/images/openmoko-devel-image.bb
@@ -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
index 0000000000..0ebddcb276
--- /dev/null
+++ b/packages/images/openmoko-image.bb
@@ -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
index 0000000000..53586166eb
--- /dev/null
+++ b/packages/images/openmoko-sdk-image.bb
@@ -0,0 +1,5 @@
+require openmoko-devel-image.bb
+
+export PACKAGE_INSTALL += "\
+ task-openmoko-native-sdk \
+"
diff --git a/packages/images/slugos-image.bb b/packages/images/slugos-image.bb
index ce591f7e4e..d78528d700 100644
--- a/packages/images/slugos-image.bb
+++ b/packages/images/slugos-image.bb
@@ -6,7 +6,10 @@
DESCRIPTION = "Generic SlugOS image"
HOMEPAGE = "http://www.nslu2-linux.org"
LICENSE = "MIT"
-PR = "r45"
+PR = "r46"
+
+DEPENDS = "task-slugos"
+PACKAGE_INSTALL = "task-slugos"
COMPATIBLE_MACHINE = "nslu2"
@@ -31,80 +34,4 @@ 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;"
-# 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';"
-
-SLUGOS_EXTRA_INSTALL ?= ""
-
-DEPENDS = "task-slugos"
-RDEPENDS = "task-slugos ${SLUGOS_EXTRA_INSTALL}"
-
-PACKAGE_INSTALL = "${RDEPENDS}"
-
-inherit image
-
-#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.
-
-IMAGE_POSTPROCESS_COMMAND += "slugos_pack_image;"
-EXTRA_IMAGEDEPENDS += "slugimage-native nslu2-linksys-firmware ixp4xx-npe upslug2-native"
-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
-}
+inherit image nslu2-image dsmg600-image nas100d-image
diff --git a/packages/images/unslung-image.bb b/packages/images/unslung-image.bb
index b56f007523..897fb131c1 100644
--- a/packages/images/unslung-image.bb
+++ b/packages/images/unslung-image.bb
@@ -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
index 0000000000..779933ba1c
--- /dev/null
+++ b/packages/ipkg/files/is-processing.patch
@@ -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);
diff --git a/packages/ipkg/ipkg_0.99.163.bb b/packages/ipkg/ipkg_0.99.163.bb
index c2ac30e653..de3562d603 100644
--- a/packages/ipkg/ipkg_0.99.163.bb
+++ b/packages/ipkg/ipkg_0.99.163.bb
@@ -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}
diff --git a/packages/ixp4xx/ixp4xx-npe_2.3.bb b/packages/ixp4xx/ixp4xx-npe_2.3.bb
index c6d91ff950..ef422e214d 100644
--- a/packages/ixp4xx/ixp4xx-npe_2.3.bb
+++ b/packages/ixp4xx/ixp4xx-npe_2.3.bb
@@ -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)"
diff --git a/packages/madwifi/madwifi-ng-r1844-20061208/.mtn2git_empty b/packages/js/files/arm/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/madwifi/madwifi-ng-r1844-20061208/.mtn2git_empty
+++ b/packages/js/files/arm/.mtn2git_empty
diff --git a/packages/mozilla/firefox-2.0.0.1/arm/jsautocfg.h b/packages/js/files/arm/jsautocfg.h
index dd43fd28e3..7e8171fc23 100644
--- a/packages/mozilla/firefox-2.0.0.1/arm/jsautocfg.h
+++ b/packages/js/files/arm/jsautocfg.h
@@ -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
@@ -43,9 +43,9 @@
#define JS_ALIGN_OF_POINTER 4L
#define JS_ALIGN_OF_WORD 4L
-#define JS_BYTES_PER_WORD_LOG2 1L
+#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/arm/.mtn2git_empty b/packages/js/files/powerpc/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/mozilla/firefox-2.0.0.1/arm/.mtn2git_empty
+++ b/packages/js/files/powerpc/.mtn2git_empty
diff --git a/packages/mozilla/firefox-2.0.0.1/powerpc/jsautocfg.h b/packages/js/files/powerpc/jsautocfg.h
index 93d03744f2..93d03744f2 100644
--- a/packages/mozilla/firefox-2.0.0.1/powerpc/jsautocfg.h
+++ b/packages/js/files/powerpc/jsautocfg.h
diff --git a/packages/js/js_1.5.bb b/packages/js/js_1.5.bb
index cb353d968c..f53a4f83a5 100644
--- a/packages/js/js_1.5.bb
+++ b/packages/js/js_1.5.bb
@@ -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/libeventdb/libeventdb_0.19.bb b/packages/libeventdb/libeventdb_0.19.bb
index b8318bd407..52e44ecc0e 100644
--- a/packages/libeventdb/libeventdb_0.19.bb
+++ b/packages/libeventdb/libeventdb_0.19.bb
@@ -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"
diff --git a/packages/libeventdb/libeventdb_0.21.bb b/packages/libeventdb/libeventdb_0.21.bb
index b8318bd407..52e44ecc0e 100644
--- a/packages/libeventdb/libeventdb_0.21.bb
+++ b/packages/libeventdb/libeventdb_0.21.bb
@@ -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"
diff --git a/packages/libeventdb/libeventdb_0.30.bb b/packages/libeventdb/libeventdb_0.30.bb
index f125653b3e..d93766a21a 100644
--- a/packages/libeventdb/libeventdb_0.30.bb
+++ b/packages/libeventdb/libeventdb_0.30.bb
@@ -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"
diff --git a/packages/libeventdb/libeventdb_svn.bb b/packages/libeventdb/libeventdb_svn.bb
index 4f00f4aac8..c18d28d273 100644
--- a/packages/libeventdb/libeventdb_svn.bb
+++ b/packages/libeventdb/libeventdb_svn.bb
@@ -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/mozilla/firefox-2.0.0.1/powerpc/.mtn2git_empty b/packages/libftdi/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/mozilla/firefox-2.0.0.1/powerpc/.mtn2git_empty
+++ b/packages/libftdi/.mtn2git_empty
diff --git a/packages/mozilla/firefox-2.0/arm/.mtn2git_empty b/packages/libftdi/files/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/mozilla/firefox-2.0/arm/.mtn2git_empty
+++ b/packages/libftdi/files/.mtn2git_empty
diff --git a/packages/libftdi/files/doxygen-configure.patch b/packages/libftdi/files/doxygen-configure.patch
new file mode 100644
index 0000000000..6558cbd96f
--- /dev/null
+++ b/packages/libftdi/files/doxygen-configure.patch
@@ -0,0 +1,28 @@
+Index: libftdi-0.8/configure.in
+===================================================================
+--- libftdi-0.8.orig/configure.in
++++ libftdi-0.8/configure.in
+@@ -32,9 +32,5 @@ else
+ AC_MSG_RESULT(yes)
+ fi
+
+-dnl check for doxygen
+-AC_PATH_PROG(DOXYGEN, doxygen, $PATH)
+-AM_CONDITIONAL(HAVE_DOXYGEN, test -n $DOXYGEN);
+-
+ AC_OUTPUT([libftdi-config],[chmod a+x libftdi-config])
+-AC_OUTPUT(Makefile src/Makefile examples/Makefile doc/Doxyfile doc/Makefile libftdi.pc)
++AC_OUTPUT(Makefile src/Makefile examples/Makefile libftdi.pc)
+Index: libftdi-0.8/Makefile.am
+===================================================================
+--- libftdi-0.8.orig/Makefile.am
++++ libftdi-0.8/Makefile.am
+@@ -2,7 +2,7 @@
+ # have all needed files, that a GNU package needs
+ AUTOMAKE_OPTIONS = foreign 1.4
+
+-SUBDIRS = src examples doc
++SUBDIRS = src examples
+
+ EXTRA_DIST = libftdi.spec COPYING.LIB README ChangeLog libftdi-config.in
+
diff --git a/packages/libftdi/libftdi-native_0.8.bb b/packages/libftdi/libftdi-native_0.8.bb
new file mode 100644
index 0000000000..24f82778e5
--- /dev/null
+++ b/packages/libftdi/libftdi-native_0.8.bb
@@ -0,0 +1,5 @@
+require libftdi_${PV}.bb
+
+inherit native
+
+DEPENDS = "libusb-native"
diff --git a/packages/libftdi/libftdi_0.8.bb b/packages/libftdi/libftdi_0.8.bb
new file mode 100644
index 0000000000..f7426ceb1a
--- /dev/null
+++ b/packages/libftdi/libftdi_0.8.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "libftdi is a library (using libusb) to talk to FTDI's \
+FT232BM, FT245BM and FT2232C type chips including the popular bitbang mode."
+HOMEPAGE = "http://www.intra2net.com/de/produkte/opensource/ftdi"
+LICENSE = "GPL"
+DEPENDS = "libusb"
+
+SRC_URI = "http://www.intra2net.com/de/produkte/opensource/ftdi/TGZ/libftdi-${PV}.tar.gz \
+ file://doxygen-configure.patch;patch=1"
+S = "${WORKDIR}/libftdi-${PV}"
+
+inherit autotools
+
+EXTRA_OECONF = "--disable-docs"
+
+do_stage() {
+ autotools_stage_all
+}
diff --git a/packages/libgpepimc/libgpepimc-hildon_0.5.bb b/packages/libgpepimc/libgpepimc-hildon_0.5.bb
index 9872228e6b..ccd8aca6f4 100644
--- a/packages/libgpepimc/libgpepimc-hildon_0.5.bb
+++ b/packages/libgpepimc/libgpepimc-hildon_0.5.bb
@@ -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"
diff --git a/packages/libgpepimc/libgpepimc.inc b/packages/libgpepimc/libgpepimc.inc
index 8894ff6fe3..ef4b443016 100644
--- a/packages/libgpepimc/libgpepimc.inc
+++ b/packages/libgpepimc/libgpepimc.inc
@@ -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/libgpeplugin/libgpeplugin_cvs.bb b/packages/libgpeplugin/libgpeplugin_cvs.bb
index e00a1142c6..80fc6ec095 100644
--- a/packages/libgpeplugin/libgpeplugin_cvs.bb
+++ b/packages/libgpeplugin/libgpeplugin_cvs.bb
@@ -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/libgpevtype/libgpevtype_0.15.bb b/packages/libgpevtype/libgpevtype_0.15.bb
index 5f5de2eda3..3f8af85beb 100644
--- a/packages/libgpevtype/libgpevtype_0.15.bb
+++ b/packages/libgpevtype/libgpevtype_0.15.bb
@@ -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"
diff --git a/packages/libgpevtype/libgpevtype_0.16.bb b/packages/libgpevtype/libgpevtype_0.16.bb
index 5f5de2eda3..74f7bf312b 100644
--- a/packages/libgpevtype/libgpevtype_0.16.bb
+++ b/packages/libgpevtype/libgpevtype_0.16.bb
@@ -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
}
-
diff --git a/packages/libgpevtype/libgpevtype_0.17.bb b/packages/libgpevtype/libgpevtype_0.17.bb
index 33389233ef..7c2ebf6b1d 100644
--- a/packages/libgpevtype/libgpevtype_0.17.bb
+++ b/packages/libgpevtype/libgpevtype_0.17.bb
@@ -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
}
diff --git a/packages/libgpevtype/libgpevtype_svn.bb b/packages/libgpevtype/libgpevtype_svn.bb
index 5c7ca33fbb..213c009d85 100644
--- a/packages/libgpevtype/libgpevtype_svn.bb
+++ b/packages/libgpevtype/libgpevtype_svn.bb
@@ -4,7 +4,7 @@ PRIORITY = "optional"
LICENSE = "LGPL"
DEPENDS = "libmimedir libeventdb"
PV = "0.17+svn${SRCDATE}"
-PR = "r0"
+PR = "r1"
inherit pkgconfig gpe autotools
@@ -13,13 +13,8 @@ SRC_URI = "${GPE_SVN}"
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
}
-headers = "tag-db.h vcard.h vevent.h vtodo.h"
DEFAULT_PREFERENCE = "-1"
diff --git a/packages/libgpewidget/libgpewidget-hildon_0.102.bb b/packages/libgpewidget/libgpewidget-hildon_0.102.bb
index 6327341160..854d0ea6da 100644
--- a/packages/libgpewidget/libgpewidget-hildon_0.102.bb
+++ b/packages/libgpewidget/libgpewidget-hildon_0.102.bb
@@ -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"
diff --git a/packages/libgpewidget/libgpewidget_0.114.bb b/packages/libgpewidget/libgpewidget_0.114.bb
index 059ec61fc1..d79beeb417 100644
--- a/packages/libgpewidget/libgpewidget_0.114.bb
+++ b/packages/libgpewidget/libgpewidget_0.114.bb
@@ -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"
diff --git a/packages/libgpewidget/libgpewidget_svn.bb b/packages/libgpewidget/libgpewidget_svn.bb
index 1da0a946be..8b6d0ea584 100644
--- a/packages/libgpewidget/libgpewidget_svn.bb
+++ b/packages/libgpewidget/libgpewidget_svn.bb
@@ -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/libhandoff/libhandoff_cvs.bb b/packages/libhandoff/libhandoff_svn.bb
index bdac607847..c545d9270e 100644
--- a/packages/libhandoff/libhandoff_cvs.bb
+++ b/packages/libhandoff/libhandoff_svn.bb
@@ -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}"
diff --git a/packages/libxml/libxml2-native_2.6.26.bb b/packages/libxml/libxml2-native_2.6.26.bb
new file mode 100644
index 0000000000..74ddfeb33a
--- /dev/null
+++ b/packages/libxml/libxml2-native_2.6.26.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "GNOME XML library"
+
+SRC_URI = "ftp://xmlsoft.org/libxml2/libxml2-${PV}.tar.gz \
+ file://no-testapi.patch;patch=1"
+
+DEPENDS = "python-native"
+
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libxml2-${PV}"
+S = "${WORKDIR}/libxml2-${PV}"
+
+inherit autotools native pkgconfig
+
+EXTRA_OECONF = "--with-python=${STAGING_INCDIR}/python2.4 --without-debug --without-legacy --without-schemas --without-catalog --without-docbook --without-c14n"
+
+headers = "DOCBparser.h HTMLparser.h HTMLtree.h SAX.h SAX2.h c14n.h catalog.h chvalid.h debugXML.h dict.h encoding.h entities.h globals.h hash.h list.h nanoftp.h nanohttp.h parser.h parserInternals.h pattern.h relaxng.h schemasInternals.h threads.h tree.h uri.h valid.h xinclude.h xlink.h xmlIO.h xmlautomata.h xmlerror.h xmlexports.h xmlmemory.h xmlreader.h xmlregexp.h xmlschemas.h xmlschemastypes.h xmlstring.h xmlunicode.h xmlversion.h xmlwriter.h xpath.h xpathInternals.h xpointer.h"
+
+do_stage () {
+ oe_runmake install
+}
+
diff --git a/packages/libxslt/libxslt-native_1.1.17.bb b/packages/libxslt/libxslt-native_1.1.17.bb
new file mode 100644
index 0000000000..6134b2bf57
--- /dev/null
+++ b/packages/libxslt/libxslt-native_1.1.17.bb
@@ -0,0 +1,4 @@
+require libxslt_${PV}.bb
+inherit native
+
+DEPENDS = "libxml2-native (>=2.6.25)"
diff --git a/packages/lighttpd/1.4.13/configure.in.patch b/packages/lighttpd/1.4.13/configure.in.patch
deleted file mode 100644
index f4db64d4fe..0000000000
--- a/packages/lighttpd/1.4.13/configure.in.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Index: lighttpd-1.4.13-r0/lighttpd-1.4.13/configure.in
-===================================================================
---- lighttpd-1.4.13-r0.orig/lighttpd-1.4.13/configure.in 2006-10-09 18:19:34.000000000 +0200
-+++ lighttpd-1.4.13-r0/lighttpd-1.4.13/configure.in 2006-12-07 22:31:52.000000000 +0100
-@@ -250,23 +250,9 @@
- [WITH_PCRE=$withval],[WITH_PCRE=yes])
- AC_MSG_RESULT([$WITH_PCRE])
-
--if test "x$cross_compiling" = xno -a "$WITH_PCRE" != "no"; then
-- AC_PATH_PROG(PCRECONFIG, pcre-config)
-
-- if test x"$PCRECONFIG" != x; then
-- PCRE_LIB=`$PCRECONFIG --libs`
-- CPPFLAGS="$CPPFLAGS `$PCRECONFIG --cflags`"
-- OLDLIBS="$LIBS"
-- LIBS="$LIBS $PCRE_LIB"
-- AC_CHECK_LIB(pcre, pcre_compile, [
-- AC_CHECK_HEADERS([pcre.h], [
- AC_DEFINE([HAVE_LIBPCRE], [1], [libpcre])
- AC_DEFINE([HAVE_PCRE_H], [1])
-- ])
-- ])
-- LIBS="$OLDLIBS"
-- fi
--fi
-
- AC_SUBST(PCRE_LIB)
-
diff --git a/packages/mozilla/firefox-2.0/powerpc/.mtn2git_empty b/packages/lighttpd/lighttpd/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/mozilla/firefox-2.0/powerpc/.mtn2git_empty
+++ b/packages/lighttpd/lighttpd/.mtn2git_empty
diff --git a/packages/lighttpd/lighttpd/configure.in.patch b/packages/lighttpd/lighttpd/configure.in.patch
new file mode 100644
index 0000000000..3387fe5635
--- /dev/null
+++ b/packages/lighttpd/lighttpd/configure.in.patch
@@ -0,0 +1,34 @@
+Index: lighttpd-1.4.13/configure.in
+===================================================================
+--- lighttpd-1.4.13.orig/configure.in 2006-10-09 18:19:34.000000000 +0200
++++ lighttpd-1.4.13/configure.in 2007-02-13 18:42:34.000000000 +0100
+@@ -250,23 +250,23 @@
+ [WITH_PCRE=$withval],[WITH_PCRE=yes])
+ AC_MSG_RESULT([$WITH_PCRE])
+
+-if test "x$cross_compiling" = xno -a "$WITH_PCRE" != "no"; then
++#if test "x$cross_compiling" = xno -a "$WITH_PCRE" != "no"; then
+ AC_PATH_PROG(PCRECONFIG, pcre-config)
+
+- if test x"$PCRECONFIG" != x; then
++# if test x"$PCRECONFIG" != x; then
+ PCRE_LIB=`$PCRECONFIG --libs`
+ CPPFLAGS="$CPPFLAGS `$PCRECONFIG --cflags`"
+ OLDLIBS="$LIBS"
+ LIBS="$LIBS $PCRE_LIB"
+- AC_CHECK_LIB(pcre, pcre_compile, [
++# AC_CHECK_LIB(pcre, pcre_compile, [
+ AC_CHECK_HEADERS([pcre.h], [
+ AC_DEFINE([HAVE_LIBPCRE], [1], [libpcre])
+ AC_DEFINE([HAVE_PCRE_H], [1])
+ ])
+- ])
++# ])
+ LIBS="$OLDLIBS"
+- fi
+-fi
++# fi
++#fi
+
+ AC_SUBST(PCRE_LIB)
+
diff --git a/packages/lighttpd/lighttpd/index.html b/packages/lighttpd/lighttpd/index.html
new file mode 100644
index 0000000000..cd25bf17b3
--- /dev/null
+++ b/packages/lighttpd/lighttpd/index.html
@@ -0,0 +1 @@
+<html><body><h1>It works!</h1></body></html> \ No newline at end of file
diff --git a/packages/lighttpd/conf/etc/init.d/lighttpd b/packages/lighttpd/lighttpd/lighttpd
index 4661210c27..572381499a 100644
--- a/packages/lighttpd/conf/etc/init.d/lighttpd
+++ b/packages/lighttpd/lighttpd/lighttpd
@@ -22,12 +22,7 @@ case "$1" in
echo -n "Restarting $DESC: "
start-stop-daemon -K -x "$DAEMON"
sleep 1
- KEY_ARGS=""
- test -f $DROPBEAR_DSSKEY && KEY_ARGS="$KEY_ARGS -d $DROPBEAR_DSSKEY"
- test -f $DROPBEAR_RSAKEY && KEY_ARGS="$KEY_ARGS -r $DROPBEAR_RSAKEY"
- start-stop-daemon -S \
- -x "$DAEMON" -- $KEY_ARGS \
- -p "$DROPBEAR_PORT" $DROPBEAR_EXTRA_ARGS
+ start-stop-daemon -S -x "$DAEMON"
echo "$NAME."
;;
*)
diff --git a/packages/lighttpd/conf/etc/lighttpd.conf b/packages/lighttpd/lighttpd/lighttpd.conf
index 5642e3175f..5642e3175f 100644
--- a/packages/lighttpd/conf/etc/lighttpd.conf
+++ b/packages/lighttpd/lighttpd/lighttpd.conf
diff --git a/packages/lighttpd/1.4.13/src-server.c.patch b/packages/lighttpd/lighttpd/src-server.c.patch
index 6ca0c9ea40..6ca0c9ea40 100644
--- a/packages/lighttpd/1.4.13/src-server.c.patch
+++ b/packages/lighttpd/lighttpd/src-server.c.patch
diff --git a/packages/lighttpd/lighttpd_1.4.13.bb b/packages/lighttpd/lighttpd_1.4.13.bb
index 9cb3d26425..504a129db8 100644
--- a/packages/lighttpd/lighttpd_1.4.13.bb
+++ b/packages/lighttpd/lighttpd_1.4.13.bb
@@ -2,12 +2,14 @@ DESCRIPTION = "Web server"
SECTION = "net"
DEPENDS = "sqlite3 libpcre libxml2"
LICENSE = "BSD"
-PR = "r4"
+PR = "r5"
SRC_URI = "http://www.lighttpd.net/download/lighttpd-1.4.13.tar.gz \
- file://${PV}/configure.in.patch;patch=1;pnum=2 \
- file://${PV}/src-server.c.patch;patch=1;pnum=1 \
- file://conf/etc "
+ file://configure.in.patch;patch=1 \
+ file://src-server.c.patch;patch=1 \
+ file://index.html \
+ file://lighttpd.conf \
+ file://lighttpd"
EXTRA_OECONF="--without-bzip2 \
--without-ldap \
@@ -20,18 +22,20 @@ EXTRA_OECONF="--without-bzip2 \
--disable-nls \
--disable-static"
-inherit autotools pkgconfig
+inherit autotools pkgconfig update-rc.d
-do_install_append() {
- cp -R ${WORKDIR}/conf/etc ${D}/etc
- rm -fR ${D}/etc/.svn
- rm -fR ${D}/etc/init.d/.svn
+INITSCRIPT_NAME = "lighttpd"
+INITSCRIPT_PARAMS = "defaults 70"
- chmod -R 755 ${D}/etc
+do_install_append() {
+ install -d ${D}${sysconfdir}/init.d ${D}/www/logs ${D}/www/pages/dav ${D}/www/var
+ install -m 0755 ${WORKDIR}/lighttpd ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/lighttpd.conf ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/index.html ${D}/www/pages/
}
do_stage() {
autotools_stage_all
}
-FILES_${PN} += "${libdir}/mod_*.so /etc"
+FILES_${PN} += "${libdir}/mod_*.so ${sysconfdir} /www"
diff --git a/packages/linux/collie-kernels-2.4-embedix.bb b/packages/linux/collie-kernels-2.4-embedix.bb
index f53e86f6c4..022aca9ff8 100644
--- a/packages/linux/collie-kernels-2.4-embedix.bb
+++ b/packages/linux/collie-kernels-2.4-embedix.bb
@@ -6,7 +6,7 @@ PR = "r2"
COMPATIBLE_HOST = "arm.*-linux"
-DEPENDS = '${@base_conditional("DISTRO_TYPE", "debug", "openzaurus-sa", "collie-kernel-24-8 collie-kernel-32-0 collie-kernel-32-32 collie-kernel-40-24 collie-kernel-48-16 collie-kernel-58-6 collie-kernel-64-0",d)}'
+DEPENDS = '${@base_conditional("DISTRO_TYPE", "debug", "openzaurus-sa", "collie-kernel-64-0 collie-kernel-24-8 collie-kernel-32-0 collie-kernel-32-32 collie-kernel-40-24 collie-kernel-48-16 collie-kernel-58-6",d)}'
PACKAGES = ""
EXCLUDE_FROM_WORLD = "1"
diff --git a/packages/linux/gta01-kernel_2.6.bb b/packages/linux/gta01-kernel_2.6.bb
new file mode 100644
index 0000000000..eaafb7e7b2
--- /dev/null
+++ b/packages/linux/gta01-kernel_2.6.bb
@@ -0,0 +1 @@
+require linux-gta01_2.6.17.14.bb
diff --git a/packages/linux/ixp4xx-kernel.inc b/packages/linux/ixp4xx-kernel.inc
index d848427921..57d3028742 100644
--- a/packages/linux/ixp4xx-kernel.inc
+++ b/packages/linux/ixp4xx-kernel.inc
@@ -337,7 +337,7 @@ install_image() {
do_install_append() {
# Overwrite the unshimmed generic image with a shimmed one (but without
# any command line or machine id override).
- rm -f '${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_VERISON}'
+ rm -f '${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_VERSION}'
install_image '${MACHINE_ARCH}'
# Add the machine specific images, with appropriate suffixes
diff --git a/packages/linux/ixp4xx-kernel/2.6.19/defconfig b/packages/linux/ixp4xx-kernel/2.6.19/defconfig
index 56eaea7a27..58d6a39c8d 100644
--- a/packages/linux/ixp4xx-kernel/2.6.19/defconfig
+++ b/packages/linux/ixp4xx-kernel/2.6.19/defconfig
@@ -513,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
diff --git a/packages/linux/ixp4xx-kernel/2.6.20/defconfig b/packages/linux/ixp4xx-kernel/2.6.20/defconfig
index 93380dd3b9..d9a1bbc22f 100644
--- a/packages/linux/ixp4xx-kernel/2.6.20/defconfig
+++ b/packages/linux/ixp4xx-kernel/2.6.20/defconfig
@@ -529,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
diff --git a/packages/linux/ixp4xx-kernel_2.6.19.bb b/packages/linux/ixp4xx-kernel_2.6.19.bb
index eba9d6a404..293f06a8e1 100644
--- a/packages/linux/ixp4xx-kernel_2.6.19.bb
+++ b/packages/linux/ixp4xx-kernel_2.6.19.bb
@@ -6,7 +6,7 @@
# http://trac.nslu2-linux.org/kernel/
#
# The revision that is pulled from SVN is specified below
-IXP4XX_KERNEL_SVN_REV = "693"
+IXP4XX_KERNEL_SVN_REV = "698"
#
# The directory containing the patches to be applied is
# specified below
diff --git a/packages/linux/ixp4xx-kernel_2.6.20.bb b/packages/linux/ixp4xx-kernel_2.6.20.bb
index 2e768b133b..434fed24d5 100644
--- a/packages/linux/ixp4xx-kernel_2.6.20.bb
+++ b/packages/linux/ixp4xx-kernel_2.6.20.bb
@@ -6,7 +6,7 @@
# http://trac.nslu2-linux.org/kernel/
#
# The revision that is pulled from SVN is specified below
-IXP4XX_KERNEL_SVN_REV = "693"
+IXP4XX_KERNEL_SVN_REV = "698"
#
# The directory containing the patches to be applied is
# specified below
diff --git a/packages/sqlite/sqlite3-3.3.7/.mtn2git_empty b/packages/linux/linux-gta01/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/sqlite/sqlite3-3.3.7/.mtn2git_empty
+++ b/packages/linux/linux-gta01/.mtn2git_empty
diff --git a/packages/linux/linux-gta01/defconfig-2.6.20-fic-gta01 b/packages/linux/linux-gta01/defconfig-2.6.20-fic-gta01
new file mode 100644
index 0000000000..948ccd6f70
--- /dev/null
+++ b/packages/linux/linux-gta01/defconfig-2.6.20-fic-gta01
@@ -0,0 +1,1771 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.20
+# Thu Feb 15 23:04:12 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_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="-moko7"
+# CONFIG_LOCALVERSION_AUTO is not set
+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 is not set
+# CONFIG_RELAY is not set
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+# CONFIG_EMBEDDED is not set
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+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=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# 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=m
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=m
+# 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_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 is not set
+CONFIG_ARCH_S3C2410=y
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_OMAP is not set
+
+#
+# S3C24XX Implementations
+#
+# CONFIG_MACH_AML_M5900 is not set
+# CONFIG_MACH_ANUBIS is not set
+# CONFIG_MACH_OSIRIS is not set
+# CONFIG_ARCH_BAST is not set
+# CONFIG_ARCH_H1940 is not set
+# CONFIG_MACH_N30 is not set
+# CONFIG_ARCH_SMDK2410 is not set
+CONFIG_MACH_QT2410=y
+CONFIG_MACH_GTA01=y
+# CONFIG_ARCH_S3C2440 is not set
+# CONFIG_MACH_SMDK2413 is not set
+# CONFIG_MACH_VR1000 is not set
+# CONFIG_MACH_RX3715 is not set
+# CONFIG_MACH_OTOM is not set
+# CONFIG_MACH_NEXCODER_2440 is not set
+# CONFIG_MACH_VSTMS is not set
+CONFIG_S3C2410_CLOCK=y
+CONFIG_S3C2410_PM=y
+CONFIG_CPU_S3C2410_DMA=y
+CONFIG_CPU_S3C2410=y
+
+#
+# S3C2410 Boot
+#
+# CONFIG_S3C2410_BOOT_WATCHDOG is not set
+CONFIG_S3C2410_BOOT_ERROR_RESET=y
+
+#
+# S3C2410 Setup
+#
+CONFIG_S3C2410_DMA=y
+# CONFIG_S3C2410_DMA_DEBUG is not set
+CONFIG_S3C2410_PM_DEBUG=y
+CONFIG_S3C2410_PM_CHECK=y
+CONFIG_S3C2410_PM_CHECK_CHUNKSIZE=64
+CONFIG_S3C2410_LOWLEVEL_UART_PORT=0
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_ARM920T=y
+CONFIG_CPU_32v4T=y
+CONFIG_CPU_ABRT_EV4T=y
+CONFIG_CPU_CACHE_V4WT=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_COPY_V4WB=y
+CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
+
+#
+# Bus support
+#
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_PREEMPT=y
+CONFIG_NO_IDLE_HZ=y
+CONFIG_HZ=200
+# CONFIG_AEABI 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_RESOURCES_64BIT is not set
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="console=ttySAC0,115200n8 ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off debug"
+# CONFIG_XIP_KERNEL is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+# CONFIG_FPE_NWFPE is not set
+CONFIG_FPE_FASTFPE=y
+
+#
+# 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=y
+CONFIG_PM_LEGACY=y
+CONFIG_PM_DEBUG=y
+CONFIG_DISABLE_CONSOLE_SUSPEND=y
+# CONFIG_PM_SYSFS_DEPRECATED is not set
+CONFIG_APM=y
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+# CONFIG_NETDEBUG is not set
+CONFIG_PACKET=m
+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=m
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_ASK_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE is not set
+CONFIG_IP_FIB_HASH=y
+CONFIG_IP_MULTIPLE_TABLES=y
+# CONFIG_IP_ROUTE_MULTIPATH is not set
+# CONFIG_IP_ROUTE_VERBOSE is not set
+# CONFIG_IP_PNP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+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=y
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+# CONFIG_IPV6_PRIVACY is not set
+# CONFIG_IPV6_ROUTER_PREF is not set
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+# CONFIG_IPV6_MIP6 is not set
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
+CONFIG_IPV6_SIT=m
+CONFIG_IPV6_TUNNEL=m
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
+# CONFIG_NETWORK_SECMARK is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK_ENABLED=m
+CONFIG_NF_CONNTRACK_SUPPORT=y
+# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CT_ACCT=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+# CONFIG_NF_CONNTRACK_AMANDA is not set
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+# CONFIG_IP_NF_QUEUE is not set
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_TOS=m
+# CONFIG_IP_NF_MATCH_RECENT is not set
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_OWNER=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+CONFIG_NF_NAT=m
+CONFIG_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_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+# CONFIG_NF_NAT_AMANDA is not set
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_TOS=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+# CONFIG_IP_NF_RAW is not set
+# CONFIG_IP_NF_ARPTABLES is not set
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+CONFIG_NF_CONNTRACK_IPV6=m
+# CONFIG_IP6_NF_QUEUE is not set
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_HL=m
+# CONFIG_IP6_NF_RAW 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=y
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_NET_SCH_CLK_JIFFIES is not set
+CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y
+# CONFIG_NET_SCH_CLK_CPU is not set
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_INGRESS=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+# CONFIG_NET_EMATCH is not set
+# CONFIG_NET_CLS_ACT is not set
+# CONFIG_NET_CLS_POLICE is not set
+# CONFIG_NET_CLS_IND is not set
+CONFIG_NET_ESTIMATOR=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# 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=m
+
+#
+# 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_FIB_RULES=y
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=m
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_SYS_HYPERVISOR is not set
+
+#
+# Connector - unified userspace <-> kernelspace linker
+#
+CONFIG_CONNECTOR=m
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+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 is not set
+# CONFIG_MTD_JEDECPROBE 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_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+# CONFIG_MTD_OBSOLETE_CHIPS is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# 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=y
+CONFIG_MTD_NAND_VERIFY_WRITE=y
+# CONFIG_MTD_NAND_ECC_SMC is not set
+CONFIG_MTD_NAND_IDS=y
+CONFIG_MTD_NAND_S3C2410=y
+CONFIG_MTD_NAND_S3C2410_BBT=y
+CONFIG_MTD_NAND_S3C2410_DEBUG=y
+# CONFIG_MTD_NAND_S3C2410_HWECC is not set
+CONFIG_MTD_NAND_S3C2410_CLKSTOP=y
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_NANDSIM 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_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_UB=m
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
+CONFIG_BLK_DEV_INITRD=y
+# 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=m
+# CONFIG_SCSI_TGT is not set
+# CONFIG_SCSI_NETLINK is not set
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+# 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 is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+CONFIG_SCSI_SCAN_ASYNC=y
+
+#
+# SCSI Transports
+#
+# 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
+# CONFIG_SCSI_SAS_LIBSAS is not set
+
+#
+# SCSI low-level drivers
+#
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# Serial ATA (prod) and Parallel ATA (experimental) drivers
+#
+# CONFIG_ATA is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+CONFIG_MD=y
+# CONFIG_BLK_DEV_MD is not set
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+# 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
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# I2O device support
+#
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+
+#
+# PHY device support
+#
+# CONFIG_PHYLIB is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=m
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+CONFIG_NET_PCI=y
+CONFIG_CS89x0=m
+
+#
+# Ethernet (1000 Mbit)
+#
+
+#
+# Ethernet (10000 Mbit)
+#
+
+#
+# Token Ring devices
+#
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO 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=m
+# CONFIG_PPPOE is not set
+# 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 is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=480
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=640
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=m
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+CONFIG_KEYBOARD_STOWAWAY=m
+CONFIG_KEYBOARD_GTA01=m
+CONFIG_INPUT_MOUSE=y
+# CONFIG_MOUSE_PS2 is not set
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_INPUT_JOYSTICK is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+CONFIG_TOUCHSCREEN_S3C2410=y
+# CONFIG_TOUCHSCREEN_S3C2410_DEBUG is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_UCB1400 is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+# CONFIG_SERIO_SERPORT 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=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_S3C2410=y
+CONFIG_SERIAL_S3C2410_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=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+CONFIG_S3C2410_WATCHDOG=m
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+# CONFIG_TS0710_MUX is not set
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+
+#
+# I2C Algorithms
+#
+# CONFIG_I2C_ALGOBIT is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+CONFIG_I2C_S3C2410=y
+# CONFIG_I2C_STUB 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 is not set
+CONFIG_SENSORS_PCF50606=y
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_SENSORS_PCA9539 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_MAX6875 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
+
+#
+# SPI support
+#
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_BITBANG=y
+CONFIG_SPI_S3C24XX_GPIO=y
+CONFIG_SPI_S3C24XX=y
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SLAVE_JBT6K74=y
+
+#
+# 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_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_F71805F 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_LM70 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_PC87427 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47M192 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83791D is not set
+# CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83793 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
+#
+# CONFIG_TIFM_CORE is not set
+
+#
+# LED devices
+#
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=m
+
+#
+# LED drivers
+#
+CONFIG_LEDS_S3C24XX=m
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=m
+# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+# CONFIG_USB_DABUSB is not set
+
+#
+# Graphics support
+#
+# CONFIG_FIRMWARE_EDID is not set
+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_S1D13XXX is not set
+CONFIG_FB_S3C2410=y
+# CONFIG_FB_S3C2410_DEBUG is not set
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+# CONFIG_FONT_8x16 is not set
+CONFIG_FONT_6x11=y
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+
+#
+# Logo configuration
+#
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_DEVICE=y
+CONFIG_LCD_CLASS_DEVICE=y
+CONFIG_LCD_DEVICE=y
+CONFIG_BACKLIGHT_GTA01=y
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=y
+CONFIG_SND_PCM_OSS=y
+CONFIG_SND_PCM_OSS_PLUGINS=y
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# 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
+
+#
+# ALSA ARM devices
+#
+
+#
+# USB devices
+#
+CONFIG_SND_USB_AUDIO=m
+
+#
+# SoC audio support
+#
+CONFIG_SND_SOC=y
+
+#
+# Soc Platforms
+#
+
+#
+# SoC Audio for the Intel PXA2xx
+#
+
+#
+# SoC Audio for the Atmel AT91
+#
+
+#
+# SoC Audio for the Freescale i.MX
+#
+
+#
+# SoC Audio for the Samsung S3C24XX
+#
+CONFIG_SND_S3C24XX_SOC=y
+CONFIG_SND_S3C24XX_SOC_I2S=y
+CONFIG_SND_S3C24XX_SOC_NEO1973_WM8753=y
+
+#
+# Soc Codecs
+#
+# CONFIG_SND_SOC_AC97_CODEC is not set
+# CONFIG_SND_SOC_WM8711 is not set
+# CONFIG_SND_SOC_WM8510 is not set
+# CONFIG_SND_SOC_WM8731 is not set
+# CONFIG_SND_SOC_WM8750 is not set
+CONFIG_SND_SOC_WM8753=y
+# CONFIG_SND_SOC_WM8772 is not set
+# CONFIG_SND_SOC_WM8971 is not set
+# CONFIG_SND_SOC_WM8956 is not set
+# CONFIG_SND_SOC_WM8960 is not set
+CONFIG_SND_SOC_WM8976=y
+# CONFIG_SND_SOC_WM8974 is not set
+# CONFIG_SND_SOC_WM8980 is not set
+# CONFIG_SND_SOC_WM9713 is not set
+# CONFIG_SND_SOC_WM9712 is not set
+# CONFIG_SND_SOC_UDA1380 is not set
+# CONFIG_SND_SOC_AK4535 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=y
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+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_SUSPEND is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_ISP116X_HCD is not set
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_BIG_ENDIAN is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_SL811_HCD is not set
+
+#
+# USB Device Class drivers
+#
+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=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_DATAFAB=y
+CONFIG_USB_STORAGE_FREECOM=y
+CONFIG_USB_STORAGE_DPCM=y
+CONFIG_USB_STORAGE_USBAT=y
+CONFIG_USB_STORAGE_SDDR09=y
+CONFIG_USB_STORAGE_SDDR55=y
+CONFIG_USB_STORAGE_JUMPSHOT=y
+CONFIG_USB_STORAGE_ALAUDA=y
+CONFIG_USB_STORAGE_KARMA=y
+CONFIG_USB_LIBUSUAL=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+# CONFIG_USB_HIDINPUT_POWERBOOK is not set
+# CONFIG_HID_FF is not set
+# CONFIG_USB_HIDDEV is not set
+
+#
+# USB HID Boot Protocol drivers
+#
+# CONFIG_USB_KBD is not set
+# 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_TOUCHSCREEN is not set
+# CONFIG_USB_YEALINK is not set
+# CONFIG_USB_XPAD is not set
+# CONFIG_USB_ATI_REMOTE is not set
+# CONFIG_USB_ATI_REMOTE2 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 Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET_MII=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_MON=y
+
+#
+# USB port drivers
+#
+
+#
+# USB Serial Converter support
+#
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_AIRPRIME=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP2101=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=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=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SAFE_PADDED=y
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+# CONFIG_USB_SERIAL_DEBUG is not set
+CONFIG_USB_EZUSB=y
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX 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_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_PHIDGET is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_LD is not set
+CONFIG_USB_TRANCEVIBRATOR=m
+# CONFIG_USB_TEST is not set
+
+#
+# USB DSL modem support
+#
+
+#
+# USB Gadget Support
+#
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_NET2280 is not set
+# CONFIG_USB_GADGET_PXA2XX is not set
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+CONFIG_USB_GADGET_S3C2410=y
+CONFIG_USB_S3C2410=y
+# CONFIG_USB_S3C2410_DEBUG is not set
+# CONFIG_USB_GADGET_AT91 is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+# CONFIG_USB_GADGET_DUALSPEED is not set
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_ETH=y
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FILE_STORAGE is not set
+# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_MIDI_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+CONFIG_MMC=m
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_BLOCK=m
+# CONFIG_MMC_TIFM_SD is not set
+CONFIG_MMC_S3C=m
+
+#
+# Real Time Clock
+#
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+# CONFIG_RTC_HCTOSYS is not set
+CONFIG_RTC_DEBUG=y
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+
+#
+# RTC drivers
+#
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+CONFIG_RTC_DRV_S3C=m
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_TEST is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_V3020 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=y
+# CONFIG_EXT3_FS_XATTR is not set
+# CONFIG_EXT4DEV_FS is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+# CONFIG_REISERFS_FS 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=y
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+# CONFIG_AUTOFS_FS is not set
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+# CONFIG_ZISOFS 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 is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+CONFIG_CONFIGFS_FS=m
+
+#
+# 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=y
+# 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=y
+# 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=y
+# CONFIG_NFS_DIRECTIO is not set
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+# CONFIG_NFSD_V3_ACL is not set
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_TCP=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS is not set
+CONFIG_CIFS=m
+# CONFIG_CIFS_STATS is not set
+CONFIG_CIFS_WEAK_PW_HASH=y
+# CONFIG_CIFS_XATTR is not set
+# CONFIG_CIFS_DEBUG2 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
+# CONFIG_9P_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+
+#
+# Native Language Support
+#
+CONFIG_NLS=m
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+CONFIG_NLS_CODEPAGE_850=m
+# 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=m
+CONFIG_NLS_CODEPAGE_950=m
+# 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=m
+# 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 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=m
+
+#
+# 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=y
+# 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=y
+# 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 is not set
+# CONFIG_DEBUG_ERRORS is not set
+CONFIG_DEBUG_LL=y
+# CONFIG_DEBUG_ICEDCC is not set
+CONFIG_DEBUG_S3C2410_PORT=y
+CONFIG_DEBUG_S3C2410_UART=0
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_NULL=m
+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_GF128MUL=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=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_BITREVERSE=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_PLIST=y
+CONFIG_IOMAP_COPY=y
diff --git a/packages/linux/linux-gta01/defconfig-fic-gta01 b/packages/linux/linux-gta01/defconfig-fic-gta01
new file mode 100644
index 0000000000..40adbcd1a1
--- /dev/null
+++ b/packages/linux/linux-gta01/defconfig-fic-gta01
@@ -0,0 +1,1621 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.17.14
+# Tue Feb 13 20:26:21 2007
+#
+CONFIG_ARM=y
+CONFIG_MMU=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_VECTORS_BASE=0xffff0000
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION="-moko7"
+# CONFIG_LOCALVERSION_AUTO is not set
+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_IKCONFIG is not set
+# CONFIG_RELAY is not set
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_UID16=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_EMBEDDED is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+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_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+# CONFIG_SLOB is not set
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# Block layer
+#
+# CONFIG_BLK_DEV_IO_TRACE is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=m
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=m
+# 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_EP93XX 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_IXP23XX 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=y
+# 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_AT91RM9200 is not set
+
+#
+# S3C24XX Implementations
+#
+# CONFIG_MACH_ANUBIS is not set
+# CONFIG_MACH_OSIRIS is not set
+# CONFIG_ARCH_BAST is not set
+# CONFIG_ARCH_H1940 is not set
+# CONFIG_MACH_N30 is not set
+# CONFIG_ARCH_SMDK2410 is not set
+CONFIG_MACH_QT2410=y
+CONFIG_MACH_GTA01=y
+# CONFIG_ARCH_S3C2440 is not set
+# CONFIG_MACH_VR1000 is not set
+# CONFIG_MACH_RX3715 is not set
+# CONFIG_MACH_OTOM is not set
+# CONFIG_MACH_NEXCODER_2440 is not set
+CONFIG_CPU_S3C2410=y
+
+#
+# S3C2410 Boot
+#
+CONFIG_S3C2410_BOOT_ERROR_RESET=y
+
+#
+# S3C2410 Setup
+#
+CONFIG_S3C2410_DMA=y
+# CONFIG_S3C2410_DMA_DEBUG is not set
+CONFIG_S3C2410_PM_DEBUG=y
+CONFIG_S3C2410_PM_CHECK=y
+CONFIG_S3C2410_PM_CHECK_CHUNKSIZE=64
+CONFIG_S3C2410_LOWLEVEL_UART_PORT=0
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_ARM920T=y
+CONFIG_CPU_32v4=y
+CONFIG_CPU_ABRT_EV4T=y
+CONFIG_CPU_CACHE_V4WT=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_COPY_V4WB=y
+CONFIG_CPU_TLB_V4WBI=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
+
+#
+# Bus support
+#
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+# CONFIG_PREEMPT is not set
+# CONFIG_NO_IDLE_HZ is not set
+CONFIG_HZ=200
+# CONFIG_AEABI 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_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="console=ttySAC0,115200n8 ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off debug"
+# CONFIG_XIP_KERNEL is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+# CONFIG_FPE_NWFPE is not set
+CONFIG_FPE_FASTFPE=y
+
+#
+# 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=y
+CONFIG_PM_LEGACY=y
+CONFIG_PM_DEBUG=y
+CONFIG_APM=y
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+# CONFIG_NETDEBUG is not set
+CONFIG_PACKET=m
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+CONFIG_NET_KEY=m
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# 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 is not set
+# CONFIG_IP_PNP_RARP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE=m
+# CONFIG_NET_IPGRE_BROADCAST is not set
+# CONFIG_IP_MROUTE is not set
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=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_IPV6_ROUTER_PREF is not set
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_IPV6_TUNNEL=m
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+CONFIG_IP_NF_CT_ACCT=y
+# CONFIG_IP_NF_CONNTRACK_MARK is not set
+CONFIG_IP_NF_CONNTRACK_EVENTS=y
+CONFIG_IP_NF_CONNTRACK_NETLINK=m
+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 is not set
+# CONFIG_IP_NF_AMANDA is not set
+CONFIG_IP_NF_PPTP=m
+CONFIG_IP_NF_H323=m
+# CONFIG_IP_NF_QUEUE is not set
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_IPRANGE=m
+CONFIG_IP_NF_MATCH_TOS=m
+# CONFIG_IP_NF_MATCH_RECENT is not set
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_DSCP=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_MATCH_OWNER=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+# CONFIG_IP_NF_MATCH_HASHLIMIT is not set
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_NF_TARGET_TCPMSS=m
+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 is not set
+CONFIG_IP_NF_NAT_SNMP_BASIC=m
+CONFIG_IP_NF_NAT_IRC=m
+CONFIG_IP_NF_NAT_FTP=m
+CONFIG_IP_NF_NAT_PPTP=m
+CONFIG_IP_NF_NAT_H323=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_TTL=m
+# 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=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_OWNER=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_TARGET_HL=m
+# CONFIG_IP6_NF_RAW 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_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+CONFIG_NET_SCHED=y
+# CONFIG_NET_SCH_CLK_JIFFIES is not set
+CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y
+# CONFIG_NET_SCH_CLK_CPU is not set
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_INGRESS=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+# CONFIG_CLS_U32_MARK is not set
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+# CONFIG_NET_EMATCH is not set
+# CONFIG_NET_CLS_ACT is not set
+# CONFIG_NET_CLS_POLICE is not set
+# CONFIG_NET_CLS_IND is not set
+CONFIG_NET_ESTIMATOR=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# 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=m
+
+#
+# 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
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=m
+# CONFIG_DEBUG_DRIVER is not set
+
+#
+# Connector - unified userspace <-> kernelspace linker
+#
+CONFIG_CONNECTOR=m
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_CONCAT is not set
+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=y
+CONFIG_NFTL_RW=y
+CONFIG_INFTL=m
+# CONFIG_RFD_FTL is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE 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_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+# CONFIG_MTD_OBSOLETE_CHIPS is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# 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=y
+CONFIG_MTD_NAND_VERIFY_WRITE=y
+CONFIG_MTD_NAND_IDS=y
+CONFIG_MTD_NAND_S3C2410=y
+CONFIG_MTD_NAND_S3C2410_BBT=y
+# CONFIG_MTD_NAND_S3C2410_DEBUG is not set
+# CONFIG_MTD_NAND_S3C2410_HWECC is not set
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_NANDSIM 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_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_UB=y
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+CONFIG_IDE=y
+CONFIG_BLK_DEV_IDE=y
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=y
+# CONFIG_IDEDISK_MULTI_MODE is not set
+CONFIG_BLK_DEV_IDECD=y
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+# CONFIG_BLK_DEV_IDESCSI is not set
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=y
+# CONFIG_IDE_ARM is not set
+# CONFIG_BLK_DEV_IDEDMA is not set
+# CONFIG_IDEDMA_AUTO is not set
+# CONFIG_BLK_DEV_HD 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 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
+
+#
+# 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_SCSI_SATA is not set
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+CONFIG_MD=y
+# CONFIG_BLK_DEV_MD is not set
+CONFIG_BLK_DEV_DM=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+# 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
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# I2O device support
+#
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+
+#
+# PHY device support
+#
+# CONFIG_PHYLIB is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=m
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+CONFIG_NET_PCI=y
+CONFIG_CS89x0=y
+
+#
+# Ethernet (1000 Mbit)
+#
+
+#
+# Ethernet (10000 Mbit)
+#
+
+#
+# Token Ring devices
+#
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+CONFIG_PPP=m
+CONFIG_PPP_MULTILINK=y
+# CONFIG_PPP_FILTER is not set
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_MPPE=m
+# CONFIG_PPPOE is not set
+# CONFIG_SLIP is not set
+# 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
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=480
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=640
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_EVBUG=m
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+CONFIG_KEYBOARD_GTA01=m
+CONFIG_INPUT_MOUSE=y
+# CONFIG_MOUSE_PS2 is not set
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_INPUT_JOYSTICK is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+CONFIG_TOUCHSCREEN_S3C2410=y
+# CONFIG_TOUCHSCREEN_S3C2410_DEBUG is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+# CONFIG_SERIO_SERPORT 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_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_S3C2410=y
+CONFIG_SERIAL_S3C2410_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_S3C2410_RTC=y
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+# CONFIG_TELCLOCK is not set
+# CONFIG_TS0710_MUX is not set
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+
+#
+# I2C Algorithms
+#
+# CONFIG_I2C_ALGOBIT is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+# CONFIG_I2C_PARPORT_LIGHT is not set
+CONFIG_I2C_S3C2410=y
+# CONFIG_I2C_STUB 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 is not set
+CONFIG_SENSORS_PCF50606=y
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_SENSORS_PCA9539 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_MAX6875 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
+
+#
+# SPI support
+#
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+CONFIG_SPI_BITBANG=y
+CONFIG_SPI_S3C24XX_GPIO=y
+CONFIG_SPI_S3C24XX=y
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SLAVE_JBT6K74=y
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 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_F71805F 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_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47B397 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
+#
+
+#
+# LED devices
+#
+# CONFIG_NEW_LEDS is not set
+
+#
+# LED drivers
+#
+
+#
+# LED Triggers
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+CONFIG_VIDEO_V4L2=y
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+# CONFIG_USB_DABUSB is not set
+
+#
+# Graphics support
+#
+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_FIRMWARE_EDID=y
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_S3C2410=y
+# CONFIG_FB_S3C2410_DEBUG is not set
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+# CONFIG_FONT_8x16 is not set
+CONFIG_FONT_6x11=y
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+
+#
+# Logo configuration
+#
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_DEVICE=y
+CONFIG_LCD_CLASS_DEVICE=y
+CONFIG_LCD_DEVICE=y
+CONFIG_BACKLIGHT_GTA01=y
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+
+#
+# Advanced Linux Sound Architecture
+#
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+# CONFIG_SND_SEQUENCER is not set
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=y
+CONFIG_SND_PCM_OSS=y
+CONFIG_SND_PCM_OSS_PLUGINS=y
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# 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
+
+#
+# ALSA ARM devices
+#
+
+#
+# USB devices
+#
+# CONFIG_SND_USB_AUDIO is not set
+
+#
+# SoC audio support
+#
+CONFIG_SND_SOC=y
+
+#
+# Soc Platforms
+#
+
+#
+# SoC Audio for the Intel PXA2xx
+#
+
+#
+# SoC Audio for the Atmel AT91
+#
+
+#
+# SoC Audio for the Freescale i.MX
+#
+
+#
+# SoC Audio for the Samsung S3C24XX
+#
+CONFIG_SND_S3C24XX_SOC=m
+CONFIG_SND_S3C24XX_SOC_I2S=m
+CONFIG_SND_S3C24XX_SOC_NEO1973_WM8753=m
+
+#
+# Soc Codecs
+#
+# CONFIG_SND_SOC_AC97_CODEC is not set
+# CONFIG_SND_SOC_WM8711 is not set
+# CONFIG_SND_SOC_WM8510 is not set
+# CONFIG_SND_SOC_WM8731 is not set
+# CONFIG_SND_SOC_WM8750 is not set
+CONFIG_SND_SOC_WM8753=m
+# CONFIG_SND_SOC_WM8772 is not set
+# CONFIG_SND_SOC_WM8971 is not set
+# CONFIG_SND_SOC_WM8956 is not set
+# CONFIG_SND_SOC_WM8960 is not set
+CONFIG_SND_SOC_WM8976=m
+# CONFIG_SND_SOC_WM8974 is not set
+# CONFIG_SND_SOC_WM8980 is not set
+# CONFIG_SND_SOC_WM9713 is not set
+# CONFIG_SND_SOC_WM9712 is not set
+# CONFIG_SND_SOC_UDA1380 is not set
+# CONFIG_SND_SOC_AK4535 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=y
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+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_SUSPEND is not set
+# CONFIG_USB_OTG is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_ISP116X_HCD is not set
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_OHCI_BIG_ENDIAN is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_SL811_HCD is not set
+
+#
+# USB Device Class drivers
+#
+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=y
+CONFIG_USB_STORAGE_FREECOM=y
+CONFIG_USB_STORAGE_ISD200=y
+CONFIG_USB_STORAGE_DPCM=y
+CONFIG_USB_STORAGE_USBAT=y
+CONFIG_USB_STORAGE_SDDR09=y
+CONFIG_USB_STORAGE_SDDR55=y
+CONFIG_USB_STORAGE_JUMPSHOT=y
+CONFIG_USB_STORAGE_ALAUDA=y
+CONFIG_USB_LIBUSUAL=y
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=m
+CONFIG_USB_HIDINPUT=y
+# CONFIG_USB_HIDINPUT_POWERBOOK is not set
+# CONFIG_HID_FF is not set
+# CONFIG_USB_HIDDEV is not set
+
+#
+# USB HID Boot Protocol drivers
+#
+# CONFIG_USB_KBD is not set
+# 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_TOUCHSCREEN is not set
+# CONFIG_USB_YEALINK is not set
+# CONFIG_USB_XPAD is not set
+# CONFIG_USB_ATI_REMOTE is not set
+# CONFIG_USB_ATI_REMOTE2 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 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=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_MON=y
+
+#
+# USB port drivers
+#
+
+#
+# USB Serial Converter support
+#
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRPRIME=m
+CONFIG_USB_SERIAL_ANYDATA=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP2101=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=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=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SAFE_PADDED=y
+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_LD is not set
+# CONFIG_USB_TEST is not set
+
+#
+# USB DSL modem support
+#
+
+#
+# USB Gadget Support
+#
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_NET2280 is not set
+# CONFIG_USB_GADGET_PXA2XX is not set
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+CONFIG_USB_GADGET_S3C2410=y
+CONFIG_USB_S3C2410=y
+# CONFIG_USB_S3C2410_DEBUG is not set
+# CONFIG_USB_GADGET_AT91 is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+# CONFIG_USB_GADGET_DUALSPEED is not set
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_ETH=y
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FILE_STORAGE is not set
+# CONFIG_USB_G_SERIAL is not set
+
+#
+# MMC/SD Card support
+#
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_S3C=y
+
+#
+# Real Time Clock
+#
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+
+#
+# RTC drivers
+#
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# 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=y
+CONFIG_INOTIFY=y
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+CONFIG_FUSE_FS=m
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+# CONFIG_ZISOFS 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_TMPFS=y
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+CONFIG_CONFIGFS_FS=m
+
+#
+# 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_WRITEBUFFER=y
+CONFIG_JFFS2_SUMMARY=y
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_CRAMFS=y
+# 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=y
+# CONFIG_NFS_DIRECTIO is not set
+CONFIG_NFSD=m
+CONFIG_NFSD_V3=y
+# CONFIG_NFSD_V3_ACL is not set
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_TCP=y
+CONFIG_ROOT_NFS=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_EXPORTFS=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_RPCSEC_GSS_KRB5=y
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+# CONFIG_SMB_FS 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=m
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+CONFIG_NLS_CODEPAGE_850=m
+# 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=m
+CONFIG_NLS_CODEPAGE_950=m
+# 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=m
+# 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 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=m
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_MAGIC_SYSRQ=y
+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_MUTEXES is not set
+# 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=y
+# CONFIG_DEBUG_FS is not set
+# CONFIG_DEBUG_VM is not set
+CONFIG_FRAME_POINTER=y
+CONFIG_UNWIND_INFO=y
+CONFIG_FORCED_INLINING=y
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_DEBUG_USER is not set
+# CONFIG_DEBUG_WAITQ is not set
+# CONFIG_DEBUG_ERRORS is not set
+CONFIG_DEBUG_LL=y
+# CONFIG_DEBUG_ICEDCC is not set
+CONFIG_DEBUG_S3C2410_PORT=y
+CONFIG_DEBUG_S3C2410_UART=0
+
+#
+# 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 is not set
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=m
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_WP512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+CONFIG_CRYPTO_DES=y
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_TEA is not set
+CONFIG_CRYPTO_ARC4=m
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+CONFIG_CRYPTO_DEFLATE=m
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
diff --git a/packages/linux/linux-gta01/udc-nomodule-misccr.patch b/packages/linux/linux-gta01/udc-nomodule-misccr.patch
new file mode 100644
index 0000000000..0f84b56c2a
--- /dev/null
+++ b/packages/linux/linux-gta01/udc-nomodule-misccr.patch
@@ -0,0 +1,22 @@
+Index: linux-2.6.17.14-fic1/drivers/usb/gadget/s3c2410_udc.c
+===================================================================
+--- linux-2.6.17.14-fic1.orig/drivers/usb/gadget/s3c2410_udc.c 2006-11-03 01:22:14.000000000 +0100
++++ linux-2.6.17.14-fic1/drivers/usb/gadget/s3c2410_udc.c 2006-11-03 12:41:52.000000000 +0100
+@@ -1492,7 +1492,7 @@
+ return -ENODEV;
+ if (udc->driver)
+ return -EBUSY;
+- if (!driver->bind || !driver->unbind || !driver->setup
++ if (!driver->bind || !driver->setup
+ || driver->speed == USB_SPEED_UNKNOWN)
+ return -EINVAL;
+
+@@ -1700,6 +1700,8 @@
+ }
+ dprintk(DEBUG_VERBOSE, "%s: got irq %i\n", gadget_name, IRQ_USBD);
+
++ s3c2410_modify_misccr(S3C2410_MISCCR_USBHOST|S3C2410_MISCCR_USBSUSPND0|S3C2410_MISCCR_USBSUSPND1, 0);
++
+ #ifdef ENABLE_SYSFS
+ /* create device files */
+ device_create_file(&pdev->dev, &dev_attr_regs);
diff --git a/packages/linux/linux-gta01_2.6.17.14.bb b/packages/linux/linux-gta01_2.6.17.14.bb
new file mode 100644
index 0000000000..8f3c37753a
--- /dev/null
+++ b/packages/linux/linux-gta01_2.6.17.14.bb
@@ -0,0 +1,101 @@
+DESCRIPTION = "2.6 Linux Development Kernel for FIC Neo1973 (GTA01)"
+SECTION = "kernel"
+AUTHOR = "Harald Welte <laforge@openmoko.org>"
+HOMEPAGE = "N/A"
+LICENSE = "GPL"
+DEPENDS += "uboot-gta01"
+MOKOR = "moko7"
+PR = "${MOKOR}-r1"
+
+inherit kernel
+
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-gta01"
+#HWSRC = "http://people.gta01.openmoko.org/laforge/src/kernel/20060806"
+
+##############################################################
+# source and patches
+#
+SRC_URI = "http://ftp.de.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.14.tar.bz2 \
+ svn://svn.openmoko.org/trunk/src/target/kernel;module=patches;proto=https \
+ file://defconfig-${MACHINE}"
+S = "${WORKDIR}/linux-2.6.17.14"
+
+##############################################################
+# kernel image resides on a seperate flash partition (for now)
+#
+FILES_kernel-image = ""
+ALLOW_EMPTY = "1"
+
+COMPATIBLE_MACHINE = 'fic-gta01'
+
+CMDLINE_CON = "console=ttySAC0,115200n8"
+#CMDLINE_ROOT = "root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5"
+# uncomment if you want to boot over NFS
+#CMDLINE_ROOT = "root=/dev/nfs nfsroot=192.168.1.10:/export/opie-image rootdelay=5 3"
+# uncomment to enable dyntick
+#CMDLINE_OTHER = "dyntick=enable"
+CMDLINE_DEBUG = '${@base_conditional("DISTRO_TYPE", "release", "quiet", "debug",d)}'
+CMDLINE_IP = "ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off"
+CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_IP} ${CMDLINE_ROTATE} ${CMDLINE_OTHER} ${CMDLINE_DEBUG}"
+
+###############################################################
+# module configs specific to this kernel
+#
+module_autoload_ohci-hcd = "ohci-hcd"
+module_autoload_g_ether = "g_ether"
+#module_autoload_snd-pcm-oss = "snd-pcm-oss"
+#module_autoload_snd-soc-corgi_c7x0 = "snd-soc-s3c24xx"
+
+do_prepatch() {
+ mv ${WORKDIR}/patches ${S}/patches && cd ${S} && quilt push -av
+ rm -Rf patches .pc
+}
+
+do_configure() {
+ #install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm
+
+ if [ ! -e ${WORKDIR}/defconfig-${MACHINE} ]; then
+ die "No default configuration for ${MACHINE} available."
+ fi
+
+ echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config
+
+ if [ "${TARGET_OS}" == "linux-gnueabi" ]; then
+ echo "CONFIG_AEABI=y" >> ${S}/.config
+ echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config
+ else
+ echo "# CONFIG_AEABI is not set" >> ${S}/.config
+ echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config
+ fi
+
+ sed -e '/CONFIG_AEABI/d' \
+ -e '/CONFIG_OABI_COMPAT=/d' \
+ -e '/CONFIG_CMDLINE=/d' \
+ -e '/CONFIG_MTD_MTDRAM_SA1100=/d' \
+ -e '/CONFIG_MTDRAM_TOTAL_SIZE=/d' \
+ -e '/CONFIG_MTDRAM_ERASE_SIZE=/d' \
+ -e '/CONFIG_MTDRAM_ABS_POS=/d' \
+ '${WORKDIR}/defconfig-${MACHINE}' >>'${S}/.config'
+
+ yes '' | oe_runmake oldconfig
+}
+
+###############################################################
+# put into deploy directory and append u-boot header
+#
+do_deploy() {
+ install -d ${DEPLOY_DIR_IMAGE}
+ install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${PR}-${MACHINE}-${DATETIME}.bin
+ tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_RELEASE}-${PR}-${MACHINE}.tgz -C ${D} lib
+ arm-linux-objcopy -O binary -R .note -R .comment -S vmlinux linux.bin
+ rm -f linux.bin.gz
+ gzip -9 linux.bin
+ uboot-mkimage -A arm -O linux -T kernel -C gzip -a 30008000 -e 30008000 -n "OpenMoko Kernel Image Neo1973(GTA01)" -d linux.bin.gz ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE}-${DATETIME}.bin
+ rm -f linux.bin.gz
+}
+
+do_deploy[dirs] = "${S}"
+
+addtask prepatch before do_patch after do_unpack
+addtask deploy before do_package after do_install
+
diff --git a/packages/linux/linux-gta01_2.6.17.7.bb b/packages/linux/linux-gta01_2.6.17.7.bb
new file mode 100644
index 0000000000..cf4bfeb8ea
--- /dev/null
+++ b/packages/linux/linux-gta01_2.6.17.7.bb
@@ -0,0 +1,97 @@
+DESCRIPTION = "2.6 Linux Development Kernel for FIC GTA01"
+SECTION = "kernel"
+AUTHOR = "Harald Welte <hwelte@hmw-consulting.de>"
+HOMEPAGE = "N/A"
+LICENSE = "GPL"
+DEPENDS += "uboot-gta01"
+PR = "r4"
+
+inherit kernel
+
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-gta01"
+HWSRC = "http://people.gta01.hmw-consulting.de/laforge/src/kernel/20060806"
+
+##############################################################
+# source and patches
+#
+SRC_URI = "http://people.gta01.hmw-consulting.de/laforge/tmp/linux-2.6.17.7-gta01-lcm.tar.bz2 \
+ file://defconfig-${MACHINE}"
+S = "${WORKDIR}/linux-2.6.17.7-new"
+
+##############################################################
+# kernel image resides on a seperate flash partition (for now)
+#
+FILES_kernel-image = ""
+ALLOW_EMPTY = "1"
+
+COMPATIBLE_MACHINE = 'fic-gta01'
+
+CMDLINE_CON = "console=ttySAC0,115200n8"
+#CMDLINE_ROOT = "root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5"
+# uncomment if you want to boot over NFS
+#CMDLINE_ROOT = "root=/dev/nfs nfsroot=192.168.1.10:/export/opie-image rootdelay=5 3"
+# uncomment to enable dyntick
+#CMDLINE_OTHER = "dyntick=enable"
+CMDLINE_DEBUG = '${@base_conditional("DISTRO_TYPE", "release", "quiet", "debug",d)}'
+CMDLINE_IP = "ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off"
+CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_IP} ${CMDLINE_ROTATE} ${CMDLINE_OTHER} ${CMDLINE_DEBUG}"
+
+###############################################################
+# module configs specific to this kernel
+#
+#module_autoload_pxaficp_ir = "pxaficp_ir"
+#module_autoload_snd-pcm-oss = "snd-pcm-oss"
+
+do_prepatch() {
+ mv ${WORKDIR}/patches ${S}/patches && cd ${S} && quilt push -av
+ rm -Rf patches .pc
+}
+
+do_configure() {
+ #install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm
+
+ if [ ! -e ${WORKDIR}/defconfig-${MACHINE} ]; then
+ die "No default configuration for ${MACHINE} available."
+ fi
+
+ echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config
+
+ if [ "${TARGET_OS}" == "linux-gnueabi" ]; then
+ echo "CONFIG_AEABI=y" >> ${S}/.config
+ echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config
+ else
+ echo "# CONFIG_AEABI is not set" >> ${S}/.config
+ echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config
+ fi
+
+ sed -e '/CONFIG_AEABI/d' \
+ -e '/CONFIG_OABI_COMPAT=/d' \
+ -e '/CONFIG_CMDLINE=/d' \
+ -e '/CONFIG_MTD_MTDRAM_SA1100=/d' \
+ -e '/CONFIG_MTDRAM_TOTAL_SIZE=/d' \
+ -e '/CONFIG_MTDRAM_ERASE_SIZE=/d' \
+ -e '/CONFIG_MTDRAM_ABS_POS=/d' \
+ '${WORKDIR}/defconfig-${MACHINE}' >>'${S}/.config'
+
+ yes '' | oe_runmake oldconfig
+}
+
+###############################################################
+# put into deploy directory and append u-boot header
+#
+do_deploy() {
+ install -d ${DEPLOY_DIR_IMAGE}
+ install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.bin
+ tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_RELEASE}-${MACHINE}.tgz -C ${D} lib
+ arm-linux-objcopy -O binary -R .note -R .comment -S vmlinux linux.bin
+ rm -f linux.bin.gz
+ gzip -9 linux.bin
+ uboot-mkimage -A arm -O linux -T kernel -C gzip -a 30008000 -e 30008000 -n "Kernel Image QT2410" -d linux.bin.gz ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${MACHINE}-${DATETIME}.bin
+ rm -f linux.bin.gz
+}
+
+do_deploy[dirs] = "${S}"
+
+addtask prepatch before do_patch after do_unpack
+addtask deploy before do_package after do_install
+
diff --git a/packages/linux/linux-gta01_2.6.20.bb b/packages/linux/linux-gta01_2.6.20.bb
new file mode 100644
index 0000000000..a922abd701
--- /dev/null
+++ b/packages/linux/linux-gta01_2.6.20.bb
@@ -0,0 +1,102 @@
+DESCRIPTION = "2.6 Linux Development Kernel for FIC Neo1973 (GTA01)"
+SECTION = "kernel"
+AUTHOR = "Harald Welte <laforge@openmoko.org>"
+HOMEPAGE = "N/A"
+LICENSE = "GPL"
+DEPENDS += "uboot-gta01"
+MOKOR = "moko7"
+PR = "${MOKOR}-r1"
+
+VANILLA_VERSION = "2.6.20"
+
+inherit kernel
+
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-gta01"
+
+##############################################################
+# source and patches
+#
+SRC_URI = "http://ftp.de.kernel.org/pub/linux/kernel/v2.6/linux-${VANILLA_VERSION}.tar.bz2 \
+ svn://svn.openmoko.org/trunk/src/target/kernel;module=patches;proto=http \
+ file://defconfig-${VANILLA_VERSION}-${MACHINE}"
+S = "${WORKDIR}/linux-${VANILLA_VERSION}"
+
+##############################################################
+# kernel image resides on a seperate flash partition (for now)
+#
+FILES_kernel-image = ""
+ALLOW_EMPTY = "1"
+
+COMPATIBLE_MACHINE = 'fic-gta01'
+
+CMDLINE_CON = "console=ttySAC0,115200n8"
+#CMDLINE_ROOT = "root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5"
+# uncomment if you want to boot over NFS
+#CMDLINE_ROOT = "root=/dev/nfs nfsroot=192.168.1.10:/export/opie-image rootdelay=5 3"
+# uncomment to enable dyntick
+#CMDLINE_OTHER = "dyntick=enable"
+CMDLINE_DEBUG = '${@base_conditional("DISTRO_TYPE", "release", "quiet", "debug",d)}'
+CMDLINE_IP = "ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off"
+CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_IP} ${CMDLINE_ROTATE} ${CMDLINE_OTHER} ${CMDLINE_DEBUG}"
+
+###############################################################
+# module configs specific to this kernel
+#
+module_autoload_ohci-hcd = "ohci-hcd"
+module_autoload_g_ether = "g_ether"
+#module_autoload_snd-pcm-oss = "snd-pcm-oss"
+#module_autoload_snd-soc-corgi_c7x0 = "snd-soc-s3c24xx"
+
+do_prepatch() {
+ mv ${WORKDIR}/patches ${S}/patches && cd ${S} && quilt push -av
+ rm -Rf patches .pc
+}
+
+do_configure() {
+ #install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm
+
+ if [ ! -e ${WORKDIR}/defconfig-${VANILLA_VERSION}-${MACHINE} ]; then
+ die "No default configuration for ${MACHINE} available."
+ fi
+
+ echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config
+
+ if [ "${TARGET_OS}" == "linux-gnueabi" ]; then
+ echo "CONFIG_AEABI=y" >> ${S}/.config
+ echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config
+ else
+ echo "# CONFIG_AEABI is not set" >> ${S}/.config
+ echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config
+ fi
+
+ sed -e '/CONFIG_AEABI/d' \
+ -e '/CONFIG_OABI_COMPAT=/d' \
+ -e '/CONFIG_CMDLINE=/d' \
+ -e '/CONFIG_MTD_MTDRAM_SA1100=/d' \
+ -e '/CONFIG_MTDRAM_TOTAL_SIZE=/d' \
+ -e '/CONFIG_MTDRAM_ERASE_SIZE=/d' \
+ -e '/CONFIG_MTDRAM_ABS_POS=/d' \
+ '${WORKDIR}/defconfig-${VANILLA_VERSION}-${MACHINE}' >>'${S}/.config'
+
+ yes '' | oe_runmake oldconfig
+}
+
+###############################################################
+# put into deploy directory and append u-boot header
+#
+do_deploy() {
+ install -d ${DEPLOY_DIR_IMAGE}
+ install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${PR}-${MACHINE}-${DATETIME}.bin
+ tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_RELEASE}-${PR}-${MACHINE}.tgz -C ${D} lib
+ ${OBJCOPY} -O binary -R .note -R .comment -S vmlinux linux.bin
+ rm -f linux.bin.gz
+ gzip -9 linux.bin
+ uboot-mkimage -A arm -O linux -T kernel -C gzip -a 30008000 -e 30008000 -n "OpenMoko Kernel Image Neo1973(GTA01)" -d linux.bin.gz ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE}-${DATETIME}.bin
+ rm -f linux.bin.gz
+}
+
+do_deploy[dirs] = "${S}"
+
+addtask prepatch before do_patch after do_unpack
+addtask deploy before do_package after do_install
+
diff --git a/packages/linux/linux-handhelds-2.6_2.6.19-hh11.bb b/packages/linux/linux-handhelds-2.6_2.6.19-hh11.bb
new file mode 100644
index 0000000000..ec5844bfb5
--- /dev/null
+++ b/packages/linux/linux-handhelds-2.6_2.6.19-hh11.bb
@@ -0,0 +1,11 @@
+SECTION = "kernel"
+DESCRIPTION = "handhelds.org Linux kernel 2.6 for PocketPCs and other consumer handheld devices."
+LICENSE = "GPL"
+PR = "r1"
+
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI = "${HANDHELDS_CVS};module=linux/kernel26;tag=${@'K' + bb.data.getVar('PV',d,1).replace('.', '-')} \
+ file://defconfig"
+
+require linux-handhelds-2.6.inc
diff --git a/packages/linux/linux-handhelds-2.6_2.6.19-hh12.bb b/packages/linux/linux-handhelds-2.6_2.6.19-hh12.bb
new file mode 100644
index 0000000000..ec5844bfb5
--- /dev/null
+++ b/packages/linux/linux-handhelds-2.6_2.6.19-hh12.bb
@@ -0,0 +1,11 @@
+SECTION = "kernel"
+DESCRIPTION = "handhelds.org Linux kernel 2.6 for PocketPCs and other consumer handheld devices."
+LICENSE = "GPL"
+PR = "r1"
+
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI = "${HANDHELDS_CVS};module=linux/kernel26;tag=${@'K' + bb.data.getVar('PV',d,1).replace('.', '-')} \
+ file://defconfig"
+
+require linux-handhelds-2.6.inc
diff --git a/packages/sqlite/sqlite3-3.3.9/.mtn2git_empty b/packages/linux/linux-z/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/sqlite/sqlite3-3.3.9/.mtn2git_empty
+++ b/packages/linux/linux-z/.mtn2git_empty
diff --git a/packages/linux/linux-z/shark/.mtn2git_empty b/packages/linux/linux-z/shark/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux/linux-z/shark/.mtn2git_empty
diff --git a/packages/linux/linux-z/shark/defconfig b/packages/linux/linux-z/shark/defconfig
new file mode 100644
index 0000000000..c9b11665db
--- /dev/null
+++ b/packages/linux/linux-z/shark/defconfig
@@ -0,0 +1,1126 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.18-rc3
+# Tue Jan 16 00:41:41 2007
+#
+CONFIG_ARM=y
+CONFIG_MMU=y
+CONFIG_GENERIC_HARDIRQS=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_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=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_TASKSTATS is not set
+CONFIG_SYSCTL=y
+# CONFIG_AUDIT is not set
+# CONFIG_IKCONFIG is not set
+# CONFIG_RELAY is not set
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_UID16=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_EMBEDDED is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_RT_MUTEXES=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SHMEM=y
+CONFIG_SLAB=y
+CONFIG_VM_EVENT_COUNTERS=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=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_KMOD=y
+
+#
+# Block layer
+#
+# 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_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_IOP3XX 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 is not set
+# CONFIG_ARCH_S3C2410 is not set
+CONFIG_ARCH_SHARK=y
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_OMAP is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_SA110=y
+CONFIG_CPU_32v4=y
+CONFIG_CPU_ABRT_EV4=y
+CONFIG_CPU_CACHE_V4WB=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_COPY_V4WB=y
+CONFIG_CPU_TLB_V4WB=y
+
+#
+# Processor Features
+#
+# CONFIG_KEXEC is not set
+
+#
+# Bus support
+#
+CONFIG_ISA=y
+CONFIG_ISA_DMA=y
+CONFIG_ISA_DMA_API=y
+CONFIG_PCI=y
+CONFIG_PCI_HOST_VIA82C505=y
+# CONFIG_PCI_DEBUG 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_HZ=100
+# CONFIG_AEABI 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_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=""
+# 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
+# CONFIG_APM is not set
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+# CONFIG_NETDEBUG is not set
+CONFIG_PACKET=y
+# CONFIG_PACKET_MMAP is not set
+CONFIG_UNIX=y
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+# 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_IP_MROUTE=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_ARPD is not set
+CONFIG_SYN_COOKIES=y
+# 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 is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_BIC=y
+# 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_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
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_IEEE80211 is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+# CONFIG_STANDALONE is not set
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+# CONFIG_FW_LOADER is not set
+# 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 is not set
+
+#
+# Parallel port support
+#
+CONFIG_PARPORT=m
+CONFIG_PARPORT_PC=m
+# CONFIG_PARPORT_SERIAL is not set
+# CONFIG_PARPORT_PC_FIFO is not set
+# CONFIG_PARPORT_PC_SUPERIO is not set
+# CONFIG_PARPORT_GSC is not set
+# CONFIG_PARPORT_AX88796 is not set
+# CONFIG_PARPORT_1284 is not set
+
+#
+# Plug and Play support
+#
+# CONFIG_PNP is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_PARIDE 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=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_SX8 is not set
+CONFIG_BLK_DEV_RAM=m
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+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=m
+CONFIG_BLK_DEV_IDE=m
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=m
+# CONFIG_IDEDISK_MULTI_MODE is not set
+CONFIG_BLK_DEV_IDECD=m
+# CONFIG_BLK_DEV_IDETAPE is not set
+CONFIG_BLK_DEV_IDEFLOPPY=m
+# CONFIG_BLK_DEV_IDESCSI is not set
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+CONFIG_IDE_GENERIC=m
+# CONFIG_BLK_DEV_IDEPCI is not set
+CONFIG_IDE_ARM=y
+# CONFIG_IDE_CHIPSETS is not set
+# CONFIG_BLK_DEV_IDEDMA is not set
+# CONFIG_IDEDMA_AUTO is not set
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=m
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=m
+CONFIG_CHR_DEV_ST=m
+# 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 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
+# 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_7000FASST is not set
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_AHA152X is not set
+# CONFIG_SCSI_AHA1542 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_SCSI_IN2000 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_HPTIOP is not set
+# CONFIG_SCSI_BUSLOGIC is not set
+# CONFIG_SCSI_DMX3191D is not set
+# CONFIG_SCSI_DTC3280 is not set
+# CONFIG_SCSI_EATA is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_GDTH is not set
+# CONFIG_SCSI_GENERIC_NCR5380 is not set
+# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_INITIO is not set
+# CONFIG_SCSI_INIA100 is not set
+# CONFIG_SCSI_PPA is not set
+# CONFIG_SCSI_IMM is not set
+# CONFIG_SCSI_NCR53C406A is not set
+# CONFIG_SCSI_SYM53C8XX_2 is not set
+# CONFIG_SCSI_IPR is not set
+# CONFIG_SCSI_PAS16 is not set
+# CONFIG_SCSI_PSI240I is not set
+# CONFIG_SCSI_QLOGIC_FAS is not set
+# CONFIG_SCSI_QLOGIC_1280 is not set
+# CONFIG_SCSI_QLA_FC is not set
+# CONFIG_SCSI_LPFC is not set
+# CONFIG_SCSI_SYM53C416 is not set
+# CONFIG_SCSI_DC395x is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_T128 is not set
+# CONFIG_SCSI_U14_34F 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
+# 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 is not set
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_CASSINI is not set
+# 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
+
+#
+# Tulip family network device support
+#
+# CONFIG_NET_TULIP 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_PCNET32 is not set
+# CONFIG_AMD8111_ETH is not set
+# CONFIG_ADAPTEC_STARFIRE is not set
+# CONFIG_AC3200 is not set
+# CONFIG_APRICOT is not set
+# CONFIG_B44 is not set
+# CONFIG_FORCEDETH is not set
+CONFIG_CS89x0=y
+# 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
+# CONFIG_NET_POCKET 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
+# CONFIG_MYRI10GE is not set
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+# CONFIG_NET_RADIO is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PLIP 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_NET_FC is not set
+# 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
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_TSDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_INPORT is not set
+# CONFIG_MOUSE_LOGIBM is not set
+# CONFIG_MOUSE_PC110PAD is not set
+# CONFIG_MOUSE_VSXXXAA 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=y
+CONFIG_SERIO_I8042=y
+# CONFIG_SERIO_SERPORT is not set
+# CONFIG_SERIO_PARKBD is not set
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+# 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=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# 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 is not set
+CONFIG_PRINTER=m
+# CONFIG_LP_CONSOLE is not set
+# CONFIG_PPDEV is not set
+# CONFIG_TIPAR is not set
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_NVRAM 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 is not set
+
+#
+# SPI support
+#
+# CONFIG_SPI is not set
+# CONFIG_SPI_MASTER is not set
+
+#
+# Dallas's 1-wire bus
+#
+
+#
+# Hardware Monitoring support
+#
+# CONFIG_HWMON is not set
+# CONFIG_HWMON_VID is not set
+
+#
+# Misc devices
+#
+
+#
+# LED devices
+#
+# CONFIG_NEW_LEDS is not set
+
+#
+# LED drivers
+#
+
+#
+# LED Triggers
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+CONFIG_VIDEO_V4L2=y
+
+#
+# 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_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+CONFIG_FB_CYBER2000=y
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_TRIDENT 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_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 is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+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=y
+# CONFIG_SOUND_BT878 is not set
+# CONFIG_SOUND_EMU10K1 is not set
+# CONFIG_SOUND_FUSION is not set
+# CONFIG_SOUND_ES1371 is not set
+# CONFIG_SOUND_ICH is not set
+# CONFIG_SOUND_TRIDENT is not set
+# CONFIG_SOUND_MSNDCLAS is not set
+# CONFIG_SOUND_MSNDPIN is not set
+# CONFIG_SOUND_VIA82CXXX is not set
+CONFIG_SOUND_OSS=y
+# CONFIG_SOUND_TRACEINIT is not set
+# CONFIG_SOUND_DMAP is not set
+# CONFIG_SOUND_AD1816 is not set
+# CONFIG_SOUND_AD1889 is not set
+# CONFIG_SOUND_ADLIB is not set
+# CONFIG_SOUND_ACI_MIXER is not set
+# CONFIG_SOUND_CS4232 is not set
+# CONFIG_SOUND_SSCAPE is not set
+# CONFIG_SOUND_VMIDI is not set
+# CONFIG_SOUND_TRIX is not set
+# CONFIG_SOUND_MSS is not set
+# CONFIG_SOUND_MPU401 is not set
+# CONFIG_SOUND_NM256 is not set
+# CONFIG_SOUND_PAS is not set
+# CONFIG_SOUND_PSS is not set
+CONFIG_SOUND_SB=m
+# CONFIG_SOUND_YM3812 is not set
+# CONFIG_SOUND_OPL3SA2 is not set
+# CONFIG_SOUND_UART6850 is not set
+# CONFIG_SOUND_AEDSP16 is not set
+# CONFIG_SOUND_KAHLUA is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+# 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_JBD=m
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# 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_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
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+# CONFIG_ZISOFS 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_TMPFS=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_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=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=y
+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 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=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_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+
+#
+# Native Language Support
+#
+CONFIG_NLS=m
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=m
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+CONFIG_NLS_CODEPAGE_850=m
+# 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=m
+# 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 is not set
+# 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_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_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_FRAME_POINTER=y
+# CONFIG_UNWIND_INFO is not set
+CONFIG_FORCED_INLINING=y
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_DEBUG_USER=y
+# CONFIG_DEBUG_WAITQ is not set
+# CONFIG_DEBUG_ERRORS is not set
+# CONFIG_DEBUG_LL 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_CRC16 is not set
+CONFIG_CRC32=y
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_PLIST=y
diff --git a/packages/linux/linux-z_2.6.20.bb b/packages/linux/linux-z_2.6.20.bb
new file mode 100644
index 0000000000..b707a2649b
--- /dev/null
+++ b/packages/linux/linux-z_2.6.20.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "2.6 Linux Development Kernel for the DNARD/Shark, SIMpad."
+SECTION = "kernel"
+LICENSE = "GPL"
+
+inherit kernel
+
+S = "${WORKDIR}/git"
+SRC_URI = "git://www.openembedded.org/~zecke/git/linux/linux-2.6/.git;protocol=http \
+ file://defconfig"
+
+
+RPROVIDES_kernel-image += "hostap-modules"
+
+COMPATIBLE_HOST = "(arm).*-linux"
+COMPATIBLE_MACHINE = '(shark)'
+
+
+KERNEL_IMAGETYPE = "zImage"
+
+
+do_configure_prepend() {
+ install -m 0644 ${WORKDIR}/defconfig ${S}/.config
+}
diff --git a/packages/linux/linux/progear/progear_bl-r6.patch b/packages/linux/linux/progear/progear_bl-r6.patch
index 5ef7469ff3..6ac01714b7 100644
--- a/packages/linux/linux/progear/progear_bl-r6.patch
+++ b/packages/linux/linux/progear/progear_bl-r6.patch
@@ -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/.mtn2git_empty b/packages/linux/linux/simpad/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux/linux/simpad/.mtn2git_empty
diff --git a/packages/linux/linux/simpad/defconfig b/packages/linux/linux/simpad/defconfig
new file mode 100644
index 0000000000..a718a46989
--- /dev/null
+++ b/packages/linux/linux/simpad/defconfig
@@ -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
index 0000000000..6b315de79d
--- /dev/null
+++ b/packages/linux/linux/simpad/linux-2.6.20.SIMpad.mq200.patch
@@ -0,0 +1,1776 @@
+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/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
index 0000000000..cbc2272eb2
--- /dev/null
+++ b/packages/linux/linux/simpad/linux-2.6.20.SIMpad.ucb1x00-switches.patch
@@ -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");
diff --git a/packages/linux/linux_2.6.20.bb b/packages/linux/linux_2.6.20.bb
index ebf520d3d6..f4372186e6 100644
--- a/packages/linux/linux_2.6.20.bb
+++ b/packages/linux/linux_2.6.20.bb
@@ -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
diff --git a/packages/lm_sensors/lmsensors-apps_2.10.1.bb b/packages/lm_sensors/lmsensors-apps_2.10.1.bb
index 5902c95195..8013f67f6a 100644
--- a/packages/lm_sensors/lmsensors-apps_2.10.1.bb
+++ b/packages/lm_sensors/lmsensors-apps_2.10.1.bb
@@ -4,7 +4,7 @@
DESCRIPTION = "Hardware health monitoring applications"
HOMEPAGE = "http://secure.netroedge.com/~lm78/"
-DEPENDS = "sysfsutils"
+DEPENDS = "libsysfs"
LICENSE = "GPL"
SRC_URI = "http://dl.lm-sensors.org/lm-sensors/releases/lm_sensors-${PV}.tar.gz \
diff --git a/packages/madwifi/files/10-xscale-be-elf-copts.patch b/packages/madwifi/files/10-xscale-be-elf-copts.patch
index 6349061c4c..1a08f3756e 100644
--- a/packages/madwifi/files/10-xscale-be-elf-copts.patch
+++ b/packages/madwifi/files/10-xscale-be-elf-copts.patch
@@ -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
diff --git a/packages/madwifi/files/10-xscale-le-elf-copts.patch b/packages/madwifi/files/10-xscale-le-elf-copts.patch
index 839bafa592..c4d9937220 100644
--- a/packages/madwifi/files/10-xscale-le-elf-copts.patch
+++ b/packages/madwifi/files/10-xscale-le-elf-copts.patch
@@ -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-VFP-wackelf.patch b/packages/madwifi/files/20-xscale-VFP-wackelf.patch
index a47eed79e7..a47eed79e7 100644
--- a/packages/madwifi/files/slugos-VFP-wackelf.patch
+++ b/packages/madwifi/files/20-xscale-VFP-wackelf.patch
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
index 1a08f3756e..0000000000
--- a/packages/madwifi/files/slugos-xscale-be-elf-copts.patch
+++ /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
index c4d9937220..0000000000
--- a/packages/madwifi/files/slugos-xscale-le-elf-copts.patch
+++ /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
index f285540d06..0000000000
--- a/packages/madwifi/madwifi-ng-r1844-20061208/10-xscale-be-elf-copts.patch
+++ /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
index 3224324699..0000000000
--- a/packages/madwifi/madwifi-ng-r1844-20061208/10-xscale-le-elf-copts.patch
+++ /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
diff --git a/packages/madwifi/madwifi-ng_r.inc b/packages/madwifi/madwifi-ng_r.inc
index 6e4483f6f3..01d0e1e0d3 100644
--- a/packages/madwifi/madwifi-ng_r.inc
+++ b/packages/madwifi/madwifi-ng_r.inc
@@ -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}"
diff --git a/packages/madwifi/madwifi-ng_r1527-20060425.bb b/packages/madwifi/madwifi-ng_r1527-20060425.bb
deleted file mode 100644
index 84af37257d..0000000000
--- a/packages/madwifi/madwifi-ng_r1527-20060425.bb
+++ /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
index 6268f2b78f..0000000000
--- a/packages/madwifi/madwifi-ng_r1692-20060723.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require madwifi-ng_r.inc
-PR="r1"
diff --git a/packages/madwifi/madwifi-ng_r1871-20061229.bb b/packages/madwifi/madwifi-ng_r2100-20070210.bb
index 42d8ccafe4..42d8ccafe4 100644
--- a/packages/madwifi/madwifi-ng_r1871-20061229.bb
+++ b/packages/madwifi/madwifi-ng_r2100-20070210.bb
diff --git a/packages/matchbox2/.mtn2git_empty b/packages/matchbox2/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/matchbox2/.mtn2git_empty
diff --git a/packages/matchbox2/files/.mtn2git_empty b/packages/matchbox2/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/matchbox2/files/.mtn2git_empty
diff --git a/packages/matchbox2/files/glib-2.8-backport.patch b/packages/matchbox2/files/glib-2.8-backport.patch
new file mode 100644
index 0000000000..339477de70
--- /dev/null
+++ b/packages/matchbox2/files/glib-2.8-backport.patch
@@ -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
index 0000000000..1a92be3e37
--- /dev/null
+++ b/packages/matchbox2/matchbox-panel-2_svn.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "matchbox-panel-2 is a lightweight dock (system tray) application based on Gtk+"
+LICENSE = "GPL"
+SECTION = "x11/panels"
+DEPENDS = "gtk+"
+
+RREPLACES = "matchbox-panel"
+
+PV = "0.1+svn${SRCDATE}"
+PR = "r2"
+
+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}/*"
+
diff --git a/packages/meta/slugos-packages.bb b/packages/meta/slugos-packages.bb
index 064adaf03e..ecb296324c 100644
--- a/packages/meta/slugos-packages.bb
+++ b/packages/meta/slugos-packages.bb
@@ -5,7 +5,7 @@
DESCRIPTION = "Packages that are compatible with the SlugOS firmware"
HOMEPAGE = "http://www.nslu2-linux.org"
LICENSE = "MIT"
-PR = "r18"
+PR = "r19"
CONFLICTS = "db3"
COMPATIBLE_MACHINE = "nslu2"
@@ -44,6 +44,7 @@ SLUGOS_PACKAGES = "\
cron \
ctorrent \
cvs \
+ cyrus-imapd \
cyrus-sasl \
db \
devlabel \
@@ -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 \
diff --git a/packages/mozilla/files/arm/.mtn2git_empty b/packages/mozilla/files/arm/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/mozilla/files/arm/.mtn2git_empty
diff --git a/packages/mozilla/firefox-1.0.7/jsautocfg.h b/packages/mozilla/files/arm/jsautocfg.h
index 05f3dad50a..7e8171fc23 100644
--- a/packages/mozilla/firefox-1.0.7/jsautocfg.h
+++ b/packages/mozilla/files/arm/jsautocfg.h
@@ -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
@@ -37,15 +37,15 @@
#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/files/powerpc/.mtn2git_empty b/packages/mozilla/files/powerpc/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/mozilla/files/powerpc/.mtn2git_empty
diff --git a/packages/mozilla/firefox-2.0/powerpc/jsautocfg.h b/packages/mozilla/files/powerpc/jsautocfg.h
index 93d03744f2..93d03744f2 100644
--- a/packages/mozilla/firefox-2.0/powerpc/jsautocfg.h
+++ b/packages/mozilla/files/powerpc/jsautocfg.h
diff --git a/packages/mozilla/firefox-1.5.0.6/jsautocfg.h b/packages/mozilla/firefox-1.5.0.6/jsautocfg.h
deleted file mode 100644
index 05f3dad50a..0000000000
--- a/packages/mozilla/firefox-1.5.0.6/jsautocfg.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef js_cpucfg___
-#define js_cpucfg___
-
-/* Lovingly crafted by hand avoiding Mozilla stupidity */
-
-#define IS_LITTLE_ENDIAN 1
-#undef IS_BIG_ENDIAN
-
-#define JS_BYTES_PER_BYTE 1L
-#define JS_BYTES_PER_SHORT 2L
-#define JS_BYTES_PER_INT 4L
-#define JS_BYTES_PER_INT64 8L
-#define JS_BYTES_PER_LONG 4L
-#define JS_BYTES_PER_FLOAT 4L
-#define JS_BYTES_PER_DOUBLE 8L
-#define JS_BYTES_PER_WORD 4L
-#define JS_BYTES_PER_DWORD 8L
-
-#define JS_BITS_PER_BYTE 8L
-#define JS_BITS_PER_SHORT 16L
-#define JS_BITS_PER_INT 32L
-#define JS_BITS_PER_INT64 64L
-#define JS_BITS_PER_LONG 32L
-#define JS_BITS_PER_FLOAT 32L
-#define JS_BITS_PER_DOUBLE 64L
-#define JS_BITS_PER_WORD 32L
-
-#define JS_BITS_PER_BYTE_LOG2 3L
-#define JS_BITS_PER_SHORT_LOG2 4L
-#define JS_BITS_PER_INT_LOG2 5L
-#define JS_BITS_PER_INT64_LOG2 6L
-#define JS_BITS_PER_LONG_LOG2 5L
-#define JS_BITS_PER_FLOAT_LOG2 5L
-#define JS_BITS_PER_DOUBLE_LOG2 6L
-#define JS_BITS_PER_WORD_LOG2 5L
-
-#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_FLOAT 4L
-#define JS_ALIGN_OF_DOUBLE 4L
-#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_STACK_GROWTH_DIRECTION (-1)
-
-#endif /* js_cpucfg___ */
diff --git a/packages/mozilla/firefox-2.0/arm/jsautocfg.h b/packages/mozilla/firefox-2.0/arm/jsautocfg.h
deleted file mode 100644
index 05f3dad50a..0000000000
--- a/packages/mozilla/firefox-2.0/arm/jsautocfg.h
+++ /dev/null
@@ -1,52 +0,0 @@
-#ifndef js_cpucfg___
-#define js_cpucfg___
-
-/* Lovingly crafted by hand avoiding Mozilla stupidity */
-
-#define IS_LITTLE_ENDIAN 1
-#undef IS_BIG_ENDIAN
-
-#define JS_BYTES_PER_BYTE 1L
-#define JS_BYTES_PER_SHORT 2L
-#define JS_BYTES_PER_INT 4L
-#define JS_BYTES_PER_INT64 8L
-#define JS_BYTES_PER_LONG 4L
-#define JS_BYTES_PER_FLOAT 4L
-#define JS_BYTES_PER_DOUBLE 8L
-#define JS_BYTES_PER_WORD 4L
-#define JS_BYTES_PER_DWORD 8L
-
-#define JS_BITS_PER_BYTE 8L
-#define JS_BITS_PER_SHORT 16L
-#define JS_BITS_PER_INT 32L
-#define JS_BITS_PER_INT64 64L
-#define JS_BITS_PER_LONG 32L
-#define JS_BITS_PER_FLOAT 32L
-#define JS_BITS_PER_DOUBLE 64L
-#define JS_BITS_PER_WORD 32L
-
-#define JS_BITS_PER_BYTE_LOG2 3L
-#define JS_BITS_PER_SHORT_LOG2 4L
-#define JS_BITS_PER_INT_LOG2 5L
-#define JS_BITS_PER_INT64_LOG2 6L
-#define JS_BITS_PER_LONG_LOG2 5L
-#define JS_BITS_PER_FLOAT_LOG2 5L
-#define JS_BITS_PER_DOUBLE_LOG2 6L
-#define JS_BITS_PER_WORD_LOG2 5L
-
-#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_FLOAT 4L
-#define JS_ALIGN_OF_DOUBLE 4L
-#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_STACK_GROWTH_DIRECTION (-1)
-
-#endif /* js_cpucfg___ */
diff --git a/packages/mtpaint/.mtn2git_empty b/packages/mtpaint/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/mtpaint/.mtn2git_empty
diff --git a/packages/mtpaint/mtpaint_3.02.bb b/packages/mtpaint/mtpaint_3.02.bb
new file mode 100644
index 0000000000..5add7e437f
--- /dev/null
+++ b/packages/mtpaint/mtpaint_3.02.bb
@@ -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}
+}
+
diff --git a/packages/netbase/netbase/fic-gta01/.mtn2git_empty b/packages/netbase/netbase/fic-gta01/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/netbase/netbase/fic-gta01/.mtn2git_empty
diff --git a/packages/netbase/netbase/fic-gta01/interfaces b/packages/netbase/netbase/fic-gta01/interfaces
new file mode 100644
index 0000000000..090c18aa07
--- /dev/null
+++ b/packages/netbase/netbase/fic-gta01/interfaces
@@ -0,0 +1,28 @@
+# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
+
+# The loopback interface
+auto lo
+iface lo inet loopback
+
+# Wireless interfaces
+iface wlan0 inet dhcp
+wireless_mode managed
+wireless_essid any
+iface atml0 inet dhcp
+
+# Wired or wireless interfaces
+iface eth0 inet dhcp
+iface eth1 inet dhcp
+
+# Ethernet/RNDIS gadget (g_ether)
+# ... or on host side, usbnet and random hwaddr
+auto usb0
+iface usb0 inet static
+ address 192.168.0.202
+ netmask 255.255.255.0
+ network 192.168.0.0
+ gateway 192.168.0.200
+
+# Bluetooth networking
+iface bnep0 inet dhcp
+
diff --git a/packages/netbase/netbase_4.21.bb b/packages/netbase/netbase_4.21.bb
index 8c0652daec..4590cf7649 100644
--- a/packages/netbase/netbase_4.21.bb
+++ b/packages/netbase/netbase_4.21.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "This package provides the necessary \
infrastructure for basic TCP/IP based networking."
SECTION = "base"
LICENSE = "GPL"
-PR = "r12"
+PR = "r13"
inherit update-rc.d
diff --git a/packages/nonworking/bluez-bluefw/bluez-bluefw_0.9.bb b/packages/nonworking/bluez-bluefw/bluez-bluefw_0.9.bb
index 5983b05935..0d6cfb020f 100644
--- a/packages/nonworking/bluez-bluefw/bluez-bluefw_0.9.bb
+++ b/packages/nonworking/bluez-bluefw/bluez-bluefw_0.9.bb
@@ -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
diff --git a/packages/nonworking/lufs/lufs_0.9.7.bb b/packages/nonworking/lufs/lufs_0.9.7.bb
index a7494318c9..58c1aa135e 100644
--- a/packages/nonworking/lufs/lufs_0.9.7.bb
+++ b/packages/nonworking/lufs/lufs_0.9.7.bb
@@ -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"
diff --git a/packages/nonworking/pixdev/pixdev-stable_0.1.bb b/packages/nonworking/pixdev/pixdev-stable_0.1.bb
index 4c7eccf659..9542c668b9 100644
--- a/packages/nonworking/pixdev/pixdev-stable_0.1.bb
+++ b/packages/nonworking/pixdev/pixdev-stable_0.1.bb
@@ -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
diff --git a/packages/nonworking/python/python-gsl_0.2.0.bb b/packages/nonworking/python/python-gsl_0.2.0.bb
index f607a29acb..ddb901532d 100644
--- a/packages/nonworking/python/python-gsl_0.2.0.bb
+++ b/packages/nonworking/python/python-gsl_0.2.0.bb
@@ -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
diff --git a/packages/nonworking/qualendar/qualendar_0.8.0.bb b/packages/nonworking/qualendar/qualendar_0.8.0.bb
index 0d6a5cbb99..67d6f9cae9 100644
--- a/packages/nonworking/qualendar/qualendar_0.8.0.bb
+++ b/packages/nonworking/qualendar/qualendar_0.8.0.bb
@@ -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
diff --git a/packages/nonworking/snmpz/snmpz_1.1.bb b/packages/nonworking/snmpz/snmpz_1.1.bb
index b49989f89c..0e3cd74c69 100644
--- a/packages/nonworking/snmpz/snmpz_1.1.bb
+++ b/packages/nonworking/snmpz/snmpz_1.1.bb
@@ -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}"
diff --git a/packages/nonworking/unison/unison_2.9.1.bb b/packages/nonworking/unison/unison_2.9.1.bb
index 8405019317..326fb39b08 100644
--- a/packages/nonworking/unison/unison_2.9.1.bb
+++ b/packages/nonworking/unison/unison_2.9.1.bb
@@ -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"
diff --git a/packages/nonworking/xfree86/xfree86_4.3.0.bb b/packages/nonworking/xfree86/xfree86_4.3.0.bb
index 8fc7a0868b..02ef88f326 100644
--- a/packages/nonworking/xfree86/xfree86_4.3.0.bb
+++ b/packages/nonworking/xfree86/xfree86_4.3.0.bb
@@ -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() {
diff --git a/packages/notification-daemon/notification-daemon_0.3.5.bb b/packages/notification-daemon/notification-daemon_0.3.5.bb
index 8acabfae73..791c285aed 100644
--- a/packages/notification-daemon/notification-daemon_0.3.5.bb
+++ b/packages/notification-daemon/notification-daemon_0.3.5.bb
@@ -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
diff --git a/packages/notification-daemon/notification-daemon_0.3.6.bb b/packages/notification-daemon/notification-daemon_0.3.6.bb
index 1fdf6f2762..8ee89ea847 100644
--- a/packages/notification-daemon/notification-daemon_0.3.6.bb
+++ b/packages/notification-daemon/notification-daemon_0.3.6.bb
@@ -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/openmoko-apps/.mtn2git_empty b/packages/openmoko-apps/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/openmoko-apps/.mtn2git_empty
diff --git a/packages/openmoko-apps/openmoko-appmanager_svn.bb b/packages/openmoko-apps/openmoko-appmanager_svn.bb
new file mode 100644
index 0000000000..d7a708b85c
--- /dev/null
+++ b/packages/openmoko-apps/openmoko-appmanager_svn.bb
@@ -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
index 0000000000..75abce2274
--- /dev/null
+++ b/packages/openmoko-apps/openmoko-dialer_svn.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "The OpenMoko Dialer"
+SECTION = "openmoko/applications"
+PV = "0.0.1+svn${SRCDATE}"
+
+inherit openmoko
+
+DEPENDS += " eds-dbus libgsmd"
+
+
diff --git a/packages/openmoko-apps/openmoko-footer_svn.bb b/packages/openmoko-apps/openmoko-footer_svn.bb
new file mode 100644
index 0000000000..fed6f99455
--- /dev/null
+++ b/packages/openmoko-apps/openmoko-footer_svn.bb
@@ -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
index 0000000000..d819e60d23
--- /dev/null
+++ b/packages/openmoko-apps/openmoko-mainmenu_svn.bb
@@ -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-messages_svn.bb b/packages/openmoko-apps/openmoko-messages_svn.bb
new file mode 100644
index 0000000000..d7a708b85c
--- /dev/null
+++ b/packages/openmoko-apps/openmoko-messages_svn.bb
@@ -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-simplemediaplayer_svn.bb b/packages/openmoko-apps/openmoko-simplemediaplayer_svn.bb
new file mode 100644
index 0000000000..0d1456541d
--- /dev/null
+++ b/packages/openmoko-apps/openmoko-simplemediaplayer_svn.bb
@@ -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
index 0000000000..5f313f170e
--- /dev/null
+++ b/packages/openmoko-apps/openmoko-taskmanager_svn.bb
@@ -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
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/openmoko-base/.mtn2git_empty
diff --git a/packages/openmoko-base/files/.mtn2git_empty b/packages/openmoko-base/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/openmoko-base/files/.mtn2git_empty
diff --git a/packages/openmoko-base/files/session b/packages/openmoko-base/files/session
new file mode 100644
index 0000000000..e6aeaa6c9d
--- /dev/null
+++ b/packages/openmoko-base/files/session
@@ -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
index 0000000000..15cc97d39f
--- /dev/null
+++ b/packages/openmoko-base/openmoko-common_svn.bb
@@ -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
index 0000000000..3ac18438b1
--- /dev/null
+++ b/packages/openmoko-base/openmoko-libs_svn.bb
@@ -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
index 0000000000..6cf588d9dc
--- /dev/null
+++ b/packages/openmoko-base/openmoko-session_svn.bb
@@ -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
index 0000000000..d8a9ba5fa2
--- /dev/null
+++ b/packages/openmoko-base/openmoko-theme-standard_svn.bb
@@ -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
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/openmoko-examples/.mtn2git_empty
diff --git a/packages/openmoko-examples/openmoko-finger-demo_svn.bb b/packages/openmoko-examples/openmoko-finger-demo_svn.bb
new file mode 100644
index 0000000000..e54f8c06bc
--- /dev/null
+++ b/packages/openmoko-examples/openmoko-finger-demo_svn.bb
@@ -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
index 0000000000..40d0f1aa8e
--- /dev/null
+++ b/packages/openmoko-examples/openmoko-panel-demo-simple_svn.bb
@@ -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
index 0000000000..ea40dd608d
--- /dev/null
+++ b/packages/openmoko-examples/openmoko-panel-demo_svn.bb
@@ -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
index 0000000000..1ba2f95072
--- /dev/null
+++ b/packages/openmoko-examples/openmoko-stylus-demo-simple_svn.bb
@@ -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
index 0000000000..a0ec4721c2
--- /dev/null
+++ b/packages/openmoko-examples/openmoko-stylus-demo_svn.bb
@@ -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
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/openmoko-panel-plugins/.mtn2git_empty
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
index 0000000000..46065127f5
--- /dev/null
+++ b/packages/openmoko-panel-plugins/openmoko-panel-battery_svn.bb
@@ -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
index 0000000000..389a6f2691
--- /dev/null
+++ b/packages/openmoko-panel-plugins/openmoko-panel-clock_svn.bb
@@ -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-panel-plugins/openmoko-panel-gsm_svn.bb b/packages/openmoko-panel-plugins/openmoko-panel-gsm_svn.bb
new file mode 100644
index 0000000000..798e94e0c4
--- /dev/null
+++ b/packages/openmoko-panel-plugins/openmoko-panel-gsm_svn.bb
@@ -0,0 +1,7 @@
+DESCRIPTION = "Shows the current time in the OpenMoko panel"
+PV = "0.0.1+svn${SRCDATE}"
+
+inherit openmoko-panel-plugin
+
+FILES_${PN} += "${bindir}/${PN}"
+
diff --git a/packages/openmoko-panel-plugins/openmoko-panel-mainmenu_svn.bb b/packages/openmoko-panel-plugins/openmoko-panel-mainmenu_svn.bb
new file mode 100644
index 0000000000..389a6f2691
--- /dev/null
+++ b/packages/openmoko-panel-plugins/openmoko-panel-mainmenu_svn.bb
@@ -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
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/openmoko-pim/.mtn2git_empty
diff --git a/packages/openmoko-pim/openmoko-contacts/.mtn2git_empty b/packages/openmoko-pim/openmoko-contacts/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/openmoko-pim/openmoko-contacts/.mtn2git_empty
diff --git a/packages/openmoko-pim/openmoko-contacts/index.theme b/packages/openmoko-pim/openmoko-contacts/index.theme
new file mode 100644
index 0000000000..4e9cf67820
--- /dev/null
+++ b/packages/openmoko-pim/openmoko-contacts/index.theme
@@ -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
index 0000000000..0342a2740c
--- /dev/null
+++ b/packages/openmoko-pim/openmoko-contacts/intltool-update.in
@@ -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
index 0000000000..123b4485ac
--- /dev/null
+++ b/packages/openmoko-pim/openmoko-contacts/stock_contact.png
Binary files 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
index 0000000000..2b1328b4e2
--- /dev/null
+++ b/packages/openmoko-pim/openmoko-contacts/stock_person.png
Binary files differ
diff --git a/packages/openmoko-pim/openmoko-contacts_svn.bb b/packages/openmoko-pim/openmoko-contacts_svn.bb
new file mode 100644
index 0000000000..b1b7815a5a
--- /dev/null
+++ b/packages/openmoko-pim/openmoko-contacts_svn.bb
@@ -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 = "r2"
+
+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
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/openmoko-pim/openmoko-dates/.mtn2git_empty
diff --git a/packages/openmoko-pim/openmoko-dates/compile-fix.patch b/packages/openmoko-pim/openmoko-dates/compile-fix.patch
new file mode 100644
index 0000000000..41b1f173c2
--- /dev/null
+++ b/packages/openmoko-pim/openmoko-dates/compile-fix.patch
@@ -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/intltool-update.in b/packages/openmoko-pim/openmoko-dates/intltool-update.in
new file mode 100644
index 0000000000..661d8fe6ac
--- /dev/null
+++ b/packages/openmoko-pim/openmoko-dates/intltool-update.in
@@ -0,0 +1,1089 @@
+#!@INTLTOOL_PERL@ -w
+# -*- 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-dates/remove-bogus-include.patch b/packages/openmoko-pim/openmoko-dates/remove-bogus-include.patch
new file mode 100644
index 0000000000..4740612a8b
--- /dev/null
+++ b/packages/openmoko-pim/openmoko-dates/remove-bogus-include.patch
@@ -0,0 +1,10 @@
+--- /tmp/dates_navigator.c 2007-02-15 13:36:27.000000000 +0100
++++ omoko/src/dates_navigator.c 2007-02-15 13:36:35.435251000 +0100
+@@ -21,7 +21,6 @@
+ #include <libecal/e-cal.h>
+ #include <libecal/e-cal-time-util.h>
+ #include <libical/ical.h>
+-#include <libedataserver/e-data-server-util.h>
+
+ #include <gtk/gtk.h>
+ #include <glib/gi18n.h>
diff --git a/packages/openmoko-pim/openmoko-dates_svn.bb b/packages/openmoko-pim/openmoko-dates_svn.bb
new file mode 100644
index 0000000000..6f3a41602b
--- /dev/null
+++ b/packages/openmoko-pim/openmoko-dates_svn.bb
@@ -0,0 +1,24 @@
+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 = "r4"
+
+inherit gnome autotools pkgconfig gtk-icon-cache
+
+SRC_URI = "svn://svn.o-hand.com/repos/dates/branches/private;module=omoko;proto=http \
+ "
+
+S = "${WORKDIR}/omoko"
+
+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 \
+ ${datadir}/dates/"
+
diff --git a/packages/openmoko-tools/.mtn2git_empty b/packages/openmoko-tools/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/openmoko-tools/.mtn2git_empty
diff --git a/packages/openmoko-tools/openmoko-chordmaster_svn.bb b/packages/openmoko-tools/openmoko-chordmaster_svn.bb
new file mode 100644
index 0000000000..5dd6056239
--- /dev/null
+++ b/packages/openmoko-tools/openmoko-chordmaster_svn.bb
@@ -0,0 +1,6 @@
+DESCRIPTION = "A guitar chord database for OpenMoko"
+SECTION = "openmoko/tools"
+PV = "0.0.1+svn${SRCDATE}"
+
+inherit openmoko
+
diff --git a/packages/openobex/openobex_1.2.bb b/packages/openobex/openobex_1.2.bb
index 81f9ff68ed..e6ec335978 100644
--- a/packages/openobex/openobex_1.2.bb
+++ b/packages/openobex/openobex_1.2.bb
@@ -5,7 +5,7 @@ SECTION = "libs"
PROVIDES = "openobex-apps"
DEPENDS = "libusb bluez-libs"
LICENSE = "GPL"
-PR = "r4"
+PR = "r5"
SRC_URI = "${SOURCEFORGE_MIRROR}/openobex/openobex-${PV}.tar.gz \
file://disable-cable-test.patch;patch=1" \
@@ -30,5 +30,4 @@ PACKAGES += "openobex-apps"
FILES_${PN} = "${libdir}/lib*.so.*"
FILES_${PN}-dev += "${bindir}/openobex-config"
FILES_${PN}-apps = "${bindir}/*"
-DEBIAN_NOAUTONAME_${PN} = "1"
DEBIAN_NOAUTONAME_${PN}-apps = "1"
diff --git a/packages/openocd/openocd-native_svn.bb b/packages/openocd/openocd-native_svn.bb
new file mode 100644
index 0000000000..a1953dbac2
--- /dev/null
+++ b/packages/openocd/openocd-native_svn.bb
@@ -0,0 +1,11 @@
+require openocd_${PV}.bb
+
+inherit native
+
+DEPENDS = "libftdi-native"
+EXTRA_OECONF = "--enable-ft2232_libftdi --enable-parport-ppdev"
+
+do_stage() {
+ install -m 0755 src/openocd ${STAGING_BINDIR}
+}
+
diff --git a/packages/openocd/openocd_svn.bb b/packages/openocd/openocd_svn.bb
index 3523cfce33..7df20d2b6b 100644
--- a/packages/openocd/openocd_svn.bb
+++ b/packages/openocd/openocd_svn.bb
@@ -1,14 +1,12 @@
-HOMEPAGE = "http://openocd.berlios.de/"
DESCRIPTION = "Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing"
+HOMEPAGE = "http://openocd.berlios.de/"
LICENSE = "GPL"
-
PV = "0.0+svn${SRCDATE}"
-inherit autotools
-
-SRC_URI = "svn://svn.berlios.de/;module=${PN}"
+SRC_URI = "svn://svn.berlios.de/;module=openocd"
-S = "${WORKDIR}/${PN}/trunk"
-EXTRA_OECONF = " --disable-ftdi2232 --disable-ftd2xx"
+S = "${WORKDIR}/openocd/trunk"
+inherit autotools
+EXTRA_OECONF = " --disable-ftdi2232 --disable-ftd2xx"
diff --git a/packages/ossie/ossie-channeldemo_svn.bb b/packages/ossie/ossie-channeldemo_svn.bb
index ddfab221de..c7b6ffebff 100644
--- a/packages/ossie/ossie-channeldemo_svn.bb
+++ b/packages/ossie/ossie-channeldemo_svn.bb
@@ -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"
diff --git a/packages/ossie/ossie-demo_svn.bb b/packages/ossie/ossie-demo_svn.bb
index c83ec256e8..cef94f40a2 100644
--- a/packages/ossie/ossie-demo_svn.bb
+++ b/packages/ossie/ossie-demo_svn.bb
@@ -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"
diff --git a/packages/ossie/ossie-gpp-device_svn.bb b/packages/ossie/ossie-gpp-device_svn.bb
index f2a563624c..24099746b0 100644
--- a/packages/ossie/ossie-gpp-device_svn.bb
+++ b/packages/ossie/ossie-gpp-device_svn.bb
@@ -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"
diff --git a/packages/ossie/ossie-interpolator_svn.bb b/packages/ossie/ossie-interpolator_svn.bb
index 5efca0b229..24d641d0a2 100644
--- a/packages/ossie/ossie-interpolator_svn.bb
+++ b/packages/ossie/ossie-interpolator_svn.bb
@@ -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"
diff --git a/packages/ossie/ossie-modulator_svn.bb b/packages/ossie/ossie-modulator_svn.bb
index 4090b671d6..bead988782 100644
--- a/packages/ossie/ossie-modulator_svn.bb
+++ b/packages/ossie/ossie-modulator_svn.bb
@@ -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"
diff --git a/packages/ossie/ossie-nodebooter_svn.bb b/packages/ossie/ossie-nodebooter_svn.bb
index 0e4a4611d2..f37df3da74 100644
--- a/packages/ossie/ossie-nodebooter_svn.bb
+++ b/packages/ossie/ossie-nodebooter_svn.bb
@@ -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"
diff --git a/packages/ossie/ossie-randombits_svn.bb b/packages/ossie/ossie-randombits_svn.bb
index 7e9854641a..6f9185910a 100644
--- a/packages/ossie/ossie-randombits_svn.bb
+++ b/packages/ossie/ossie-randombits_svn.bb
@@ -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"
diff --git a/packages/ossie/ossie-rxdemo_svn.bb b/packages/ossie/ossie-rxdemo_svn.bb
index 8a0d4355d9..2260cb9956 100644
--- a/packages/ossie/ossie-rxdemo_svn.bb
+++ b/packages/ossie/ossie-rxdemo_svn.bb
@@ -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"
diff --git a/packages/ossie/ossie-sigproc_svn.bb b/packages/ossie/ossie-sigproc_svn.bb
index a8fa03052f..20fe0b6460 100644
--- a/packages/ossie/ossie-sigproc_svn.bb
+++ b/packages/ossie/ossie-sigproc_svn.bb
@@ -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"
diff --git a/packages/ossie/ossie-soundout-device_svn.bb b/packages/ossie/ossie-soundout-device_svn.bb
index 111a96f493..83daa5b013 100644
--- a/packages/ossie/ossie-soundout-device_svn.bb
+++ b/packages/ossie/ossie-soundout-device_svn.bb
@@ -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"
diff --git a/packages/ossie/ossie-standardinterfaces_svn.bb b/packages/ossie/ossie-standardinterfaces_svn.bb
index c00bcd5c6b..44e2f3899e 100644
--- a/packages/ossie/ossie-standardinterfaces_svn.bb
+++ b/packages/ossie/ossie-standardinterfaces_svn.bb
@@ -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"
diff --git a/packages/ossie/ossie-tx-random-data_svn.bb b/packages/ossie/ossie-tx-random-data_svn.bb
index 89ffe27a84..744e505679 100644
--- a/packages/ossie/ossie-tx-random-data_svn.bb
+++ b/packages/ossie/ossie-tx-random-data_svn.bb
@@ -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"
diff --git a/packages/ossie/ossie-usrp-device_svn.bb b/packages/ossie/ossie-usrp-device_svn.bb
index 3f29c2c4f2..e28996ce15 100644
--- a/packages/ossie/ossie-usrp-device_svn.bb
+++ b/packages/ossie/ossie-usrp-device_svn.bb
@@ -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"
diff --git a/packages/ossie/ossie-usrp-tx-control_svn.bb b/packages/ossie/ossie-usrp-tx-control_svn.bb
index c3af96c2a3..0171b2d9f2 100644
--- a/packages/ossie/ossie-usrp-tx-control_svn.bb
+++ b/packages/ossie/ossie-usrp-tx-control_svn.bb
@@ -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"
diff --git a/packages/ossie/ossiecf_svn.bb b/packages/ossie/ossiecf_svn.bb
index 2c7b27ef7c..35bf7523f0 100644
--- a/packages/ossie/ossiecf_svn.bb
+++ b/packages/ossie/ossiecf_svn.bb
@@ -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"
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
index 0000000000..0e6e774f91
--- /dev/null
+++ b/packages/pciutils/pciutils-2.2.4/configure-uclibc.patch
@@ -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'`"
diff --git a/packages/pciutils/pciutils_2.2.4.bb b/packages/pciutils/pciutils_2.2.4.bb
index 57d9e2089f..0cd335eb32 100644
--- a/packages/pciutils/pciutils_2.2.4.bb
+++ b/packages/pciutils/pciutils_2.2.4.bb
@@ -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})
}
diff --git a/packages/poptop/poptop_1.3.0.bb b/packages/poptop/poptop_1.3.0.bb
index 0ad4588ac4..da7ebe6a24 100644
--- a/packages/poptop/poptop_1.3.0.bb
+++ b/packages/poptop/poptop_1.3.0.bb
@@ -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"
diff --git a/packages/pptp-linux/pptp-linux_1.5.0.bb b/packages/pptp-linux/pptp-linux_1.5.0.bb
index 7fdcd4d316..68551443fa 100644
--- a/packages/pptp-linux/pptp-linux_1.5.0.bb
+++ b/packages/pptp-linux/pptp-linux_1.5.0.bb
@@ -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 "
diff --git a/packages/qpe-games/hexatrolic_1.0beta3.bb b/packages/qpe-games/hexatrolic_1.0beta3.bb
index 123810cfef..241693504e 100644
--- a/packages/qpe-games/hexatrolic_1.0beta3.bb
+++ b/packages/qpe-games/hexatrolic_1.0beta3.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "Hexatrolic a Ball Game"
-SECTION = "opie/games"
+SECTION = "opie/games"
PRIORITY = "optional"
LICENSE = "GPL"
AUTHOR = "Helge Plehn"
diff --git a/packages/qpe-games/labyrinth_0.7.bb b/packages/qpe-games/labyrinth_0.7.bb
index 9075b010eb..f6e9299b3d 100644
--- a/packages/qpe-games/labyrinth_0.7.bb
+++ b/packages/qpe-games/labyrinth_0.7.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "A traditional (german?) boardgame"
-SECTION = "opie/games"
+SECTION = "opie/games"
PRIORITY = "optional"
LICENSE = "GPL"
AUTHOR = "Helge Plehn"
diff --git a/packages/qpf-fonts/terminus.bb b/packages/qpf-fonts/terminus.bb
index 23c00e1ac2..6d2e4ab85f 100644
--- a/packages/qpf-fonts/terminus.bb
+++ b/packages/qpf-fonts/terminus.bb
@@ -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() {
diff --git a/packages/radlib/radlib-common.inc b/packages/radlib/radlib-common.inc
index bb289bf74a..1eb9bc0d5f 100644
--- a/packages/radlib/radlib-common.inc
+++ b/packages/radlib/radlib-common.inc
@@ -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
diff --git a/packages/s3c2410-utils/.mtn2git_empty b/packages/s3c2410-utils/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/s3c2410-utils/.mtn2git_empty
diff --git a/packages/s3c2410-utils/files/.mtn2git_empty b/packages/s3c2410-utils/files/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/s3c2410-utils/files/.mtn2git_empty
diff --git a/packages/s3c2410-utils/files/s3c2410_boot_usb-20060807.tar.bz2 b/packages/s3c2410-utils/files/s3c2410_boot_usb-20060807.tar.bz2
new file mode 100644
index 0000000000..8ddb3cc83d
--- /dev/null
+++ b/packages/s3c2410-utils/files/s3c2410_boot_usb-20060807.tar.bz2
Binary files differ
diff --git a/packages/s3c2410-utils/files/sjf2410-linux-20060807.tar.bz2 b/packages/s3c2410-utils/files/sjf2410-linux-20060807.tar.bz2
new file mode 100644
index 0000000000..3458364699
--- /dev/null
+++ b/packages/s3c2410-utils/files/sjf2410-linux-20060807.tar.bz2
Binary files differ
diff --git a/packages/s3c2410-utils/s3c2410-boot-usb-native_20060807.bb b/packages/s3c2410-utils/s3c2410-boot-usb-native_20060807.bb
new file mode 100644
index 0000000000..ee8534dc01
--- /dev/null
+++ b/packages/s3c2410-utils/s3c2410-boot-usb-native_20060807.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "Boots a S3C2410 device with a user supplied kernel zImage"
+DEPENDS = "libusb-native"
+SECTION = "devel"
+AUTHOR = "Harald Welte"
+MAINTAINER = "Michael 'Mickey' Lauer <mickey@Vanille.de>"
+LICENSE = "GPL"
+PR = "r0"
+
+SRC_URI = "file://s3c2410_boot_usb-20060807.tar.bz2"
+S = "${WORKDIR}/s3c2410_boot_usb"
+
+inherit native
+
+do_compile() {
+ ${CC} ${CFLAGS} ${LDFLAGS} -lusb -o s3c2410-boot-usb boot_usb.c
+}
+
+do_deploy() {
+ install -d ${DEPLOY_DIR_IMAGE}
+ install -m 0755 s3c2410-boot-usb ${DEPLOY_DIR_IMAGE}
+}
+
+do_stage() {
+ :
+}
+
+do_install() {
+ :
+}
+
+addtask deploy before do_build after do_compile
diff --git a/packages/s3c2410-utils/s3c2410-boot-usb-native_svn.bb b/packages/s3c2410-utils/s3c2410-boot-usb-native_svn.bb
new file mode 100644
index 0000000000..c7b89647f5
--- /dev/null
+++ b/packages/s3c2410-utils/s3c2410-boot-usb-native_svn.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "Boots a S3C2410 device with a user supplied kernel zImage"
+DEPENDS = "libusb-native"
+SECTION = "devel"
+AUTHOR = "Harald Welte"
+LICENSE = "GPL"
+PV = "0.1.0+svn${SRCDATE}"
+PR = "r0"
+
+SRC_URI = "svn://svn.openmoko.org/trunk/src/host/;module=s3c2410_boot_usb;proto=https"
+S = "${WORKDIR}/s3c2410_boot_usb"
+
+inherit native
+
+do_compile() {
+ ${CC} ${CFLAGS} ${LDFLAGS} -lusb -o s3c2410-boot-usb boot_usb.c
+}
+
+do_deploy() {
+ install -d ${DEPLOY_DIR_IMAGE}
+ install -m 0755 s3c2410-boot-usb ${DEPLOY_DIR_IMAGE}
+}
+
+do_stage() {
+ :
+}
+
+do_install() {
+ :
+}
+
+addtask deploy before do_build after do_compile
diff --git a/packages/s3c2410-utils/sjf2410-linux-native_20060807.bb b/packages/s3c2410-utils/sjf2410-linux-native_20060807.bb
new file mode 100644
index 0000000000..70cc6c7424
--- /dev/null
+++ b/packages/s3c2410-utils/sjf2410-linux-native_20060807.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = "Jtag utility to interface w/ a S3C2410 device"
+SECTION = "devel"
+AUTHOR = "Harald Welte"
+MAINTAINER = "Michael 'Mickey' Lauer <mickey@Vanille.de>"
+LICENSE = "GPL"
+PR = "r1"
+
+SRC_URI = "file://sjf2410-linux-20060807.tar.bz2"
+S = "${WORKDIR}/sjf2410-linux"
+
+inherit native
+
+CFLAGS += "-DLINUX_PPDEV"
+
+do_compile() {
+ oe_runmake
+}
+
+do_deploy() {
+ install -d ${DEPLOY_DIR_IMAGE}
+ install -m 0755 sjf2410 ${DEPLOY_DIR_IMAGE}/sjf2410
+}
+
+do_stage() {
+ :
+}
+
+do_install() {
+ :
+}
+
+addtask deploy before do_build after do_compile
diff --git a/packages/s3c2410-utils/sjf2410-linux-native_svn.bb b/packages/s3c2410-utils/sjf2410-linux-native_svn.bb
new file mode 100644
index 0000000000..55176029ab
--- /dev/null
+++ b/packages/s3c2410-utils/sjf2410-linux-native_svn.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = "JTAG utility to interface w/ a S3C2410 device"
+SECTION = "devel"
+AUTHOR = "Harald Welte"
+LICENSE = "GPL"
+PV = "0.1+svn${SRCDATE}"
+PR = "r0"
+
+SRC_URI = "svn://svn.openmoko.org/trunk/src/host/;module=sjf2410-linux;proto=https"
+S = "${WORKDIR}/sjf2410-linux"
+
+inherit native
+
+CFLAGS += "-DLINUX_PPDEV"
+
+do_compile() {
+ oe_runmake
+}
+
+do_deploy() {
+ install -d ${DEPLOY_DIR_IMAGE}
+ install -m 0755 sjf2410 ${DEPLOY_DIR_IMAGE}/sjf2410
+}
+
+do_stage() {
+ :
+}
+
+do_install() {
+ :
+}
+
+addtask deploy before do_build after do_compile
diff --git a/packages/samba/samba-essential.inc b/packages/samba/samba-essential.inc
index fca08d1735..d718fc8a96 100644
--- a/packages/samba/samba-essential.inc
+++ b/packages/samba/samba-essential.inc
@@ -1,10 +1,15 @@
SECTION = "console/network"
-DEPENDS = "readline"
LICENSE = "GPL"
+DEPENDS = "readline"
+SRC_URI = "http://samba.org/samba/ftp/stable/samba-${PV}.tar.gz \
+ file://configure.patch;patch=1 \
+ file://cifs.patch;patch=1"
+S = "${WORKDIR}/samba-${PV}/source"
+
inherit autotools
-EXTRA_OECONF='--disable-cups --with-readline=${STAGING_LIBDIR}/.. \
+EXTRA_OECONF = '--disable-cups --with-readline=${STAGING_LIBDIR}/.. \
--without-ads --without-automount --without-smbmount --without-syslog \
--without-ldapsam --without-quotas --without-nisplus-home \
--without-sys-quotas --without-libsmbclient --without-winbind \
diff --git a/packages/samba/samba-essential_3.0.20.bb b/packages/samba/samba-essential_3.0.20.bb
index 365d208028..75febf4ab1 100644
--- a/packages/samba/samba-essential_3.0.20.bb
+++ b/packages/samba/samba-essential_3.0.20.bb
@@ -1,22 +1,17 @@
+require samba-essential.inc
+inherit update-rc.d
+
PR = "r5"
-SRC_URI = "http://us2.samba.org/samba/ftp/stable/samba-${PV}.tar.gz \
- file://configure.patch;patch=1 \
- file://cifs.patch;patch=1 \
- file://config-lfs.patch;patch=1 \
+SRC_URI = "file://config-lfs.patch;patch=1 \
file://init-essential \
file://quota.patch;patch=1;pnum=0 \
file://smb-essential.conf \
file://smb-essential-inactive.conf \
file://Managing-Samba.txt"
-S := "${WORKDIR}/samba-${PV}/source"
-
RCONFLICTS = "samba"
-require samba-essential.inc
-inherit update-rc.d
-
INITSCRIPT_NAME = "samba"
# No dependencies, goes in at level 20 (NOTE: take care with the
# level, later levels put the shutdown later too - see the links
diff --git a/packages/samba/samba.inc b/packages/samba/samba.inc
index f9dce44072..aa3083d1f6 100644
--- a/packages/samba/samba.inc
+++ b/packages/samba/samba.inc
@@ -1,6 +1,16 @@
SECTION = "console/network"
-DEPENDS = "readline"
LICENSE = "GPL"
+DEPENDS = "readline"
+
+SRC_URI = "http://samba.org/samba/ftp/stable/samba-${PV}.tar.gz \
+ file://configure.patch;patch=1 \
+ file://cifs.patch;patch=1"
+S = "${WORKDIR}/samba-${PV}/source"
+
+inherit autotools
+
+EXTRA_OECONF='--disable-cups --with-readline=${STAGING_LIBDIR}/.. \
+ --without-ads --without-automount --with-smbmount'
PACKAGES =+ "libsmbclient libsmbclient-dev cifs cifs-doc"
FILES_cifs = "${bindir}/mount.cifs"
@@ -8,10 +18,6 @@ FILES_cifs-doc = "${docdir}/mount.cifs.8"
FILES_libsmbclient = "${libdir}/libsmbclient.so.*"
FILES_libsmbclient-dev = "${libdir}/libsmbclient.so ${includedir}"
-inherit autotools
-
-EXTRA_OECONF='--disable-cups --with-readline=${STAGING_LIBDIR}/.. \
- --without-ads --without-automount --with-smbmount'
do_configure_prepend () {
./script/mkversion.sh
if [ ! -e acinclude.m4 ]; then
diff --git a/packages/samba/samba_3.0.10.bb b/packages/samba/samba_3.0.10.bb
index 4aa262920c..895ce6b337 100644
--- a/packages/samba/samba_3.0.10.bb
+++ b/packages/samba/samba_3.0.10.bb
@@ -1,6 +1 @@
-SRC_URI := "http://us2.samba.org/samba/ftp/stable/samba-${PV}.tar.gz \
- file://${FILESDIR}/configure.patch;patch=1 \
- file://${FILESDIR}/cifs.patch;patch=1"
-S := "${WORKDIR}/${P}/source"
-
require samba.inc
diff --git a/packages/samba/samba_3.0.14a.bb b/packages/samba/samba_3.0.14a.bb
index 08d3c390e7..d191363cd6 100644
--- a/packages/samba/samba_3.0.14a.bb
+++ b/packages/samba/samba_3.0.14a.bb
@@ -1,16 +1,12 @@
+require samba.inc
+inherit update-rc.d
+
PR = "r15"
-SRC_URI = "http://us2.samba.org/samba/ftp/stable/samba-${PV}.tar.gz \
- file://configure.patch;patch=1 \
- file://cifs.patch;patch=1 \
- file://config-lfs.patch;patch=1 \
+SRC_URI += "file://config-lfs.patch;patch=1 \
file://init \
file://quota.patch;patch=1;pnum=0 \
"
-S = "${WORKDIR}/${P}/source"
-
-require samba.inc
-inherit update-rc.d
INITSCRIPT_NAME = "samba"
# No dependencies, goes in at level 20 (NOTE: take care with the
diff --git a/packages/samba/samba_3.0.20.bb b/packages/samba/samba_3.0.20.bb
index 7aa3d53626..fb2407c74f 100644
--- a/packages/samba/samba_3.0.20.bb
+++ b/packages/samba/samba_3.0.20.bb
@@ -1,16 +1,12 @@
+require samba.inc
+inherit update-rc.d
+
PR = "r5"
-SRC_URI = "http://us2.samba.org/samba/ftp/stable/samba-${PV}.tar.gz \
- file://configure.patch;patch=1 \
- file://cifs.patch;patch=1 \
- file://config-lfs.patch;patch=1 \
+SRC_URI += "file://config-lfs.patch;patch=1 \
file://init \
file://quota.patch;patch=1;pnum=0 \
"
-S = "${WORKDIR}/${P}/source"
-
-require samba.inc
-inherit update-rc.d
INITSCRIPT_NAME = "samba"
# No dependencies, goes in at level 20 (NOTE: take care with the
diff --git a/packages/samba/samba_3.0.23c.bb b/packages/samba/samba_3.0.23c.bb
index acec5afdd8..5317bcc62a 100644
--- a/packages/samba/samba_3.0.23c.bb
+++ b/packages/samba/samba_3.0.23c.bb
@@ -1,16 +1,10 @@
-PR = "r0"
+require samba.inc
+inherit update-rc.d
-SRC_URI = "http://us2.samba.org/samba/ftp/stable/samba-${PV}.tar.gz \
- file://configure.patch;patch=1 \
- file://cifs.patch;patch=1 \
- file://config-lfs.patch;patch=1 \
+SRC_URI += "file://config-lfs.patch;patch=1 \
file://init \
file://quota.patch;patch=1;pnum=0 \
"
-S = "${WORKDIR}/${P}/source"
-
-include samba.inc
-inherit update-rc.d
INITSCRIPT_NAME = "samba"
# No dependencies, goes in at level 20 (NOTE: take care with the
diff --git a/packages/samba/samba_3.0.5.bb b/packages/samba/samba_3.0.5.bb
index 4aa262920c..895ce6b337 100644
--- a/packages/samba/samba_3.0.5.bb
+++ b/packages/samba/samba_3.0.5.bb
@@ -1,6 +1 @@
-SRC_URI := "http://us2.samba.org/samba/ftp/stable/samba-${PV}.tar.gz \
- file://${FILESDIR}/configure.patch;patch=1 \
- file://${FILESDIR}/cifs.patch;patch=1"
-S := "${WORKDIR}/${P}/source"
-
require samba.inc
diff --git a/packages/samba/samba_3.0.9.bb b/packages/samba/samba_3.0.9.bb
index 4aa262920c..895ce6b337 100644
--- a/packages/samba/samba_3.0.9.bb
+++ b/packages/samba/samba_3.0.9.bb
@@ -1,6 +1 @@
-SRC_URI := "http://us2.samba.org/samba/ftp/stable/samba-${PV}.tar.gz \
- file://${FILESDIR}/configure.patch;patch=1 \
- file://${FILESDIR}/cifs.patch;patch=1"
-S := "${WORKDIR}/${P}/source"
-
require samba.inc
diff --git a/packages/shared-mime-info/shared-mime-info_0.16.bb b/packages/shared-mime-info/shared-mime-info_0.20.bb
index fe68d3167d..60993adcc2 100644
--- a/packages/shared-mime-info/shared-mime-info_0.16.bb
+++ b/packages/shared-mime-info/shared-mime-info_0.20.bb
@@ -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
diff --git a/packages/slugos-init/slugos-init_0.10.bb b/packages/slugos-init/slugos-init_0.10.bb
index b75511ec67..0e32c06b34 100644
--- a/packages/slugos-init/slugos-init_0.10.bb
+++ b/packages/slugos-init/slugos-init_0.10.bb
@@ -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 = ""
@@ -97,10 +96,6 @@ do_install() {
done
#
- # Udev configuration files
- install -m 0644 links.conf ${D}${sysconfdir}/udev
-
- #
# Boot scripts
for p in ${BOOTSCRIPTS}
do
diff --git a/packages/sqlite/sqlite3-3.3.12/.mtn2git_empty b/packages/sqlite/sqlite3-3.3.12/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/sqlite/sqlite3-3.3.12/.mtn2git_empty
diff --git a/packages/sqlite/sqlite3-3.3.7/cross-compile.patch b/packages/sqlite/sqlite3-3.3.12/cross-compile.patch
index 31d4f0d162..31d4f0d162 100644
--- a/packages/sqlite/sqlite3-3.3.7/cross-compile.patch
+++ b/packages/sqlite/sqlite3-3.3.12/cross-compile.patch
diff --git a/packages/sqlite/sqlite3-3.3.9/ldflags.patch b/packages/sqlite/sqlite3-3.3.12/ldflags.patch
index fb78ab9d87..fb78ab9d87 100644
--- a/packages/sqlite/sqlite3-3.3.9/ldflags.patch
+++ b/packages/sqlite/sqlite3-3.3.12/ldflags.patch
diff --git a/packages/sqlite/sqlite3-3.3.7/libtool.patch b/packages/sqlite/sqlite3-3.3.12/libtool.patch
index ccf9993ed2..ccf9993ed2 100644
--- a/packages/sqlite/sqlite3-3.3.7/libtool.patch
+++ b/packages/sqlite/sqlite3-3.3.12/libtool.patch
diff --git a/packages/sqlite/sqlite3-3.3.7/ldflags.patch b/packages/sqlite/sqlite3-3.3.7/ldflags.patch
deleted file mode 100644
index ee5105ffff..0000000000
--- a/packages/sqlite/sqlite3-3.3.7/ldflags.patch
+++ /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
index 31d4f0d162..0000000000
--- a/packages/sqlite/sqlite3-3.3.9/cross-compile.patch
+++ /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
index ccf9993ed2..0000000000
--- a/packages/sqlite/sqlite3-3.3.9/libtool.patch
+++ /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
diff --git a/packages/sqlite/sqlite3_3.3.7.bb b/packages/sqlite/sqlite3_3.3.12.bb
index d21fb6ad3e..59c13ee01f 100644
--- a/packages/sqlite/sqlite3_3.3.7.bb
+++ b/packages/sqlite/sqlite3_3.3.12.bb
@@ -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
index d21fb6ad3e..0000000000
--- a/packages/sqlite/sqlite3_3.3.9.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require sqlite3.inc
-PR = "r2"
diff --git a/packages/suspend-desktop/suspend-desktop_1.0.bb b/packages/suspend-desktop/suspend-desktop_1.0.bb
index ba74337116..fa9efba84b 100644
--- a/packages/suspend-desktop/suspend-desktop_1.0.bb
+++ b/packages/suspend-desktop/suspend-desktop_1.0.bb
@@ -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-base.bb b/packages/tasks/task-base.bb
index b4266a0940..fdbf9f75d2 100644
--- a/packages/tasks/task-base.bb
+++ b/packages/tasks/task-base.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "Merge machine and distro options to create a basic machine task/package"
-PR = "r16"
+PR = "r17"
PACKAGES = "task-base \
task-base-minimal \
@@ -62,10 +62,10 @@ RDEPENDS_task-base = "\
${@base_contains("COMBINED_FEATURES", "pcmcia", "${task-base-pcmcia-rdepends}", "",d)} \
${@base_contains("COMBINED_FEATURES", "usbhost", "${task-base-usbhost-rdepends}", "",d)} \
${@base_contains("COMBINED_FEATURES", "bluetooth", "${task-base-bluetooth-rdepends}", "",d)} \
+ ${@base_contains("COMBINED_FEATURES", "wifi", "${task-distro-wifi-rdepends}", "",d)} \
${@base_contains("DISTRO_FEATURES", "nfs", "${task-distro-nfs-rdepends}", "",d)} \
${@base_contains("DISTRO_FEATURES", "ipsec", "${task-distro-ipsec-rdepends}", "",d)} \
${@base_contains("DISTRO_FEATURES", "ppp", "${task-distro-ppp-rdepends}", "",d)} \
- ${@base_contains("DISTRO_FEATURES", "wifi", "${task-distro-wifi-rdepends}", "",d)} \
${MACHINE_ESSENTIAL_EXTRA_RDEPENDS} \
${MACHINE_EXTRA_RDEPENDS} \
${DISTRO_EXTRA_RDEPENDS}"
diff --git a/packages/tasks/task-openmoko.bb b/packages/tasks/task-openmoko.bb
new file mode 100644
index 0000000000..57a0d045c1
--- /dev/null
+++ b/packages/tasks/task-openmoko.bb
@@ -0,0 +1,248 @@
+DESCRIPTION = "OpenMoko: Tasks for the OpenMoko Linux Distribution"
+SECTION = "openmoko/base"
+ALLOW_EMPTY = "1"
+PACKAGE_ARCH = "all"
+LICENSE = "MIT"
+PROVIDES = "task-openmoko-everything"
+
+PR = "r27"
+
+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 \
+ openmoko-footer \
+ openmoko-taskmanager \
+ openmoko-panel-mainmenu \
+"
+
+#
+# task-openmoko-phone
+#
+DESCRIPTION_task-openmoko-phone = "OpenMoko: GSM and GPRS Phone Services"
+RDEPENDS_task-openmoko-phone = "\
+ gsmd \
+ libgsmd-tools \
+ openmoko-dialer \
+ openmoko-panel-gsm \
+# 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
index c25dcd973f..04ac07de0d 100644
--- a/packages/tasks/task-slugos.bb
+++ b/packages/tasks/task-slugos.bb
@@ -10,13 +10,14 @@ 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.
+#----------------------------------------------------------------------------------
+# FIRMWARE CONFIGURATION
+#----------------------------------------------------------------------------------
+# EXTRA PACKAGES
+# --------------
+# The standard firmware contents and additional packages built as requirements
+# of the firmware are defined here in SLUGOS_STANDARD_RDEPENDS.
+SLUGOS_STANDARD_RDEPENDS = ""
# diff, cpio and find are required for reflash and turnup ram.
# Removing these probably leaves the system bootable, but standard
@@ -26,13 +27,71 @@ ALLOW_EMPTY = "1"
# 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_STANDARD_RDEPENDS += "diffutils cpio findutils udev"
+
+# 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 += "e2fsprogs-mke2fs e2fsprogs-fsck e2fsprogs-e2fsck e2fsprogs-badblocks"
+
+# 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 \
+"
-SLUGOS_KERNEL ?= ""
+# Add daemon required for HW RNG support
+SLUGOS_STANDARD_RDEPENDS += "\
+rng-tools \
+"
-SLUGOS_EXTRA_RDEPENDS ?= ""
+# Add modules required for usb support
+SLUGOS_STANDARD_RDEPENDS += "\
+kernel-module-ohci-hcd \
+kernel-module-uhci-hcd \
+"
-RDEPENDS = "kernel ixp4xx-npe \
+# 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 \
+"
+
+DEPENDS += "${DISTRO_EXTRA_DEPENDS}"
+
+RDEPENDS += "kernel ixp4xx-npe \
base-files base-passwd netbase \
busybox initscripts-slugos slugos-init \
update-modules sysvinit tinylogin \
@@ -46,6 +105,7 @@ RDEPENDS = "kernel ixp4xx-npe \
util-linux-umount \
util-linux-swaponoff \
util-linux-losetup \
- ${SLUGOS_SUPPORT} \
- ${SLUGOS_KERNEL} \
- ${SLUGOS_EXTRA_RDEPENDS}"
+ ${SLUGOS_STANDARD_RDEPENDS} \
+ ${DISTRO_EXTRA_RDEPENDS}"
+
+RRECOMMENDS = "${DISTRO_EXTRA_RRECOMMENDS}"
diff --git a/packages/tinymail/tinymail_svn.bb b/packages/tinymail/tinymail_svn.bb
index 9019ffc1a9..f48c84bbaa 100644
--- a/packages/tinymail/tinymail_svn.bb
+++ b/packages/tinymail/tinymail_svn.bb
@@ -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"
diff --git a/packages/tslib/tslib-1.0/.mtn2git_empty b/packages/tslib/tslib-1.0/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/tslib/tslib-1.0/.mtn2git_empty
diff --git a/packages/tslib/tslib-1.0/ts.conf b/packages/tslib/tslib-1.0/ts.conf
new file mode 100644
index 0000000000..82f712ef41
--- /dev/null
+++ b/packages/tslib/tslib-1.0/ts.conf
@@ -0,0 +1,25 @@
+# Uncomment if you wish to use the linux input layer event interface
+module_raw input grab_events=1
+
+# Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d
+# module_raw collie
+
+# Uncomment if you're using a Sharp Zaurus SL-C700/C750/C760/C860
+# module_raw corgi
+
+# Uncomment if you're using a device with a UCB1200/1300/1400 TS interface
+# module_raw ucb1x00
+
+# Uncomment if you're using an HP iPaq h3600 or similar
+# module_raw h3600
+
+# Uncomment if you're using a Hitachi Webpad
+# module_raw mk712
+
+# Uncomment if you're using an IBM Arctic II
+# module_raw arctic2
+
+module pthres pmin=1
+module variance delta=30
+module dejitter delta=100
+module linear
diff --git a/packages/tslib/tslib-1.0/tslib-input_raw-grab_events.patch b/packages/tslib/tslib-1.0/tslib-input_raw-grab_events.patch
new file mode 100644
index 0000000000..4bd0a05531
--- /dev/null
+++ b/packages/tslib/tslib-1.0/tslib-input_raw-grab_events.patch
@@ -0,0 +1,120 @@
+This patch adds support for "EVIOCGRAB" on the input device, which
+tells the kernel _not_ to deliver events of the touchscreen to
+/dev/input/mice.
+
+This is probably what most people want, since unprocessed raw touchscreen
+events should not be converted to emulated PS/2 mouse movements.
+
+Signed-off-by: Harald Welte <laforge@openmoko.org>
+
+Index: a/plugins/input-raw.c
+===================================================================
+--- a/plugins/input-raw.c (revision 49)
++++ b/plugins/input-raw.c (working copy)
+@@ -18,6 +18,7 @@
+
+ #include <errno.h>
+ #include <stdio.h>
++#include <limits.h>
+
+ #include <stdlib.h>
+ #ifdef HAVE_UNISTD_H
+@@ -33,6 +34,9 @@
+
+ #include "tslib-private.h"
+
++#define GRAB_EVENTS_WANTED 1
++#define GRAB_EVENTS_ACTIVE 2
++
+ struct tslib_input {
+ struct tslib_module_info module;
+
+@@ -42,6 +46,7 @@
+
+ int sane_fd;
+ int using_syn;
++ int grab_events;
+ };
+
+ static int check_fd(struct tslib_input *i)
+@@ -64,6 +69,14 @@
+
+ if (bit & (1 << EV_SYN))
+ i->using_syn = 1;
++
++ if (i->grab_events == GRAB_EVENTS_WANTED) {
++ if (ioctl(ts->fd, EVIOCGRAB, (void *)1)) {
++ fprintf(stderr, "Unable to grab selected input device\n");
++ return -1;
++ }
++ i->grab_events = GRAB_EVENTS_ACTIVE;
++ }
+
+ return 0;
+ }
+@@ -222,6 +235,15 @@
+
+ static int ts_input_fini(struct tslib_module_info *inf)
+ {
++ struct tslib_input *i = (struct tslib_input *)inf;
++ struct tsdev *ts = inf->dev;
++
++ if (i->grab_events == GRAB_EVENTS_ACTIVE) {
++ if (ioctl(ts->fd, EVIOCGRAB, (void *)0)) {
++ fprintf(stderr, "Unable to un-grab selected input device\n");
++ }
++ }
++
+ free(inf);
+ return 0;
+ }
+@@ -231,6 +253,36 @@
+ .fini = ts_input_fini,
+ };
+
++static int parse_raw_grab(struct tslib_module_info *inf, char *str, void *data)
++{
++ struct tslib_input *i = (struct tslib_input *)inf;
++ unsigned long v;
++ int err = errno;
++
++ v = strtoul(str, NULL, 0);
++
++ if (v == ULONG_MAX && errno == ERANGE)
++ return -1;
++
++ errno = err;
++ switch ((int)data) {
++ case 1:
++ if (v)
++ i->grab_events = GRAB_EVENTS_WANTED;
++ break;
++ default:
++ return -1;
++ }
++ return 0;
++}
++
++static const struct tslib_vars raw_vars[] =
++{
++ { "grab_events", (void *)1, parse_raw_grab },
++};
++
++#define NR_VARS (sizeof(raw_vars) / sizeof(raw_vars[0]))
++
+ TSAPI struct tslib_module_info *mod_init(struct tsdev *dev, const char *params)
+ {
+ struct tslib_input *i;
+@@ -245,5 +297,12 @@
+ i->current_p = 0;
+ i->sane_fd = 0;
+ i->using_syn = 0;
++ i->grab_events = 0;
++
++ if (tslib_parse_vars(&i->module, raw_vars, NR_VARS, params)) {
++ free(i);
++ return NULL;
++ }
++
+ return &(i->module);
+ }
diff --git a/packages/tslib/tslib_1.0.bb b/packages/tslib/tslib_1.0.bb
index 0ece5b0331..4ba53f0631 100644
--- a/packages/tslib/tslib_1.0.bb
+++ b/packages/tslib/tslib_1.0.bb
@@ -4,9 +4,10 @@ AUTHOR = "Russell King w/ plugins by Chris Larson et. al."
SECTION = "base"
LICENSE = "LGPL"
-PR = "r7"
+PR = "r8"
SRC_URI = "http://download.berlios.de/tslib/tslib-1.0.tar.bz2 \
+ file://tslib-input_raw-grab_events.patch;patch=1 \
file://ts.conf \
file://ts.conf-simpad-2.4 \
file://ts.conf-collie-2.4 \
diff --git a/packages/uboot/files/fix-arm920t-eabi.patch b/packages/uboot/files/fix-arm920t-eabi.patch
new file mode 100644
index 0000000000..9896388c8f
--- /dev/null
+++ b/packages/uboot/files/fix-arm920t-eabi.patch
@@ -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
index 0000000000..04cb743158
--- /dev/null
+++ b/packages/uboot/files/gta01_nand.h
@@ -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
index 0000000000..627f365f86
--- /dev/null
+++ b/packages/uboot/files/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/packages/uboot/files/qt2410_nand.h b/packages/uboot/files/qt2410_nand.h
new file mode 100644
index 0000000000..627f365f86
--- /dev/null
+++ b/packages/uboot/files/qt2410_nand.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/packages/uboot/files/qt2410_ram.h b/packages/uboot/files/qt2410_ram.h
new file mode 100644
index 0000000000..62cc88eaf0
--- /dev/null
+++ b/packages/uboot/files/qt2410_ram.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 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
index 0000000000..ed9f987c81
--- /dev/null
+++ b/packages/uboot/files/u-boot-20060807-qt2410.patch
@@ -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
index 0000000000..7b35fcfdd1
--- /dev/null
+++ b/packages/uboot/files/u-boot-20060807.tar.bz2
Binary files 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
index 0000000000..6aa54fa208
--- /dev/null
+++ b/packages/uboot/files/u-boot-20060907-gta01.patch
@@ -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
index 0000000000..66b562cafe
--- /dev/null
+++ b/packages/uboot/files/u-boot-20060907.tar.bz2
Binary files 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
index 0000000000..3cecb7485d
--- /dev/null
+++ b/packages/uboot/files/u-boot-20061030-ext2load_hex.patch
@@ -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
index 0000000000..9e2d19338e
--- /dev/null
+++ b/packages/uboot/files/u-boot-20061030-gta01bv2.patch
@@ -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
index 0000000000..8910dcf831
--- /dev/null
+++ b/packages/uboot/files/u-boot-20061030-gta01v4.patch
@@ -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
index 0000000000..91f85479bc
--- /dev/null
+++ b/packages/uboot/files/u-boot-20061030-qt2410-gta01.patch
@@ -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/uboot-gta01_svn.bb b/packages/uboot/uboot-gta01_svn.bb
new file mode 100644
index 0000000000..b78b81dd17
--- /dev/null
+++ b/packages/uboot/uboot-gta01_svn.bb
@@ -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
index 0000000000..102030f147
--- /dev/null
+++ b/packages/uboot/uboot-qt2410_0.0+cvs20061030.bb
@@ -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
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/uclibc/uclibc-0.9.28/powerpc/.mtn2git_empty
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
index 0000000000..8a12c10961
--- /dev/null
+++ b/packages/uclibc/uclibc-0.9.28/powerpc/uClibc.config
@@ -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
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/uclibc/uclibc-cvs/powerpc/.mtn2git_empty
diff --git a/packages/uclibc/uclibc-cvs/powerpc/uClibc.config b/packages/uclibc/uclibc-cvs/powerpc/uClibc.config
new file mode 100644
index 0000000000..8a12c10961
--- /dev/null
+++ b/packages/uclibc/uclibc-cvs/powerpc/uClibc.config
@@ -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/xerces-c/xerces-c_2.6.0.bb b/packages/xerces-c/xerces-c_2.6.0.bb
index c76e3fc9b6..fe0677f54f 100644
--- a/packages/xerces-c/xerces-c_2.6.0.bb
+++ b/packages/xerces-c/xerces-c_2.6.0.bb
@@ -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"
diff --git a/packages/xerces-c/xerces-c_2.7.0.bb b/packages/xerces-c/xerces-c_2.7.0.bb
index 86f88450cd..8fdab80180 100644
--- a/packages/xerces-c/xerces-c_2.7.0.bb
+++ b/packages/xerces-c/xerces-c_2.7.0.bb
@@ -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
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/xoo/files/.mtn2git_empty
diff --git a/packages/xoo/files/gta01.png b/packages/xoo/files/gta01.png
new file mode 100644
index 0000000000..e0aae82051
--- /dev/null
+++ b/packages/xoo/files/gta01.png
Binary files differ
diff --git a/packages/xoo/files/gta01.xml b/packages/xoo/files/gta01.xml
new file mode 100644
index 0000000000..877a91f180
--- /dev/null
+++ b/packages/xoo/files/gta01.xml
@@ -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>
diff --git a/packages/xoo/xoo_svn.bb b/packages/xoo/xoo_svn.bb
index 992d918316..71a39b057d 100644
--- a/packages/xoo/xoo_svn.bb
+++ b/packages/xoo/xoo_svn.bb
@@ -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
+}
+
diff --git a/packages/xscreensaver/xscreensaver_4.16.bb b/packages/xscreensaver/xscreensaver_4.16.bb
index 9b424461ba..7696c4733c 100644
--- a/packages/xscreensaver/xscreensaver_4.16.bb
+++ b/packages/xscreensaver/xscreensaver_4.16.bb
@@ -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"
diff --git a/packages/xscreensaver/xscreensaver_4.22.bb b/packages/xscreensaver/xscreensaver_4.22.bb
index 3b951fdeeb..6c2776d6aa 100644
--- a/packages/xscreensaver/xscreensaver_4.22.bb
+++ b/packages/xscreensaver/xscreensaver_4.22.bb
@@ -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-common/xserver-common_1.14.bb b/packages/xserver-common/xserver-common_1.14.bb
index d1e0a7e121..d608231348 100644
--- a/packages/xserver-common/xserver-common_1.14.bb
+++ b/packages/xserver-common/xserver-common_1.14.bb
@@ -6,8 +6,6 @@ PR = "r1"
PACKAGE_ARCH = "all"
-DEFAULT_PREFERENCE = "-1"
-
# we are using a gpe-style Makefile
inherit gpe
diff --git a/packages/xserver-kdrive-common/.mtn2git_empty b/packages/xserver-kdrive-common/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/xserver-kdrive-common/.mtn2git_empty
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
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/xserver-kdrive-common/xserver-kdrive-common/.mtn2git_empty
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
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/.mtn2git_empty
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
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/.mtn2git_empty
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
index 0000000000..f5b69dd516
--- /dev/null
+++ b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xdefaults
@@ -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
index 0000000000..f566ffe5be
--- /dev/null
+++ b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xinit
@@ -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
index 0000000000..983b875830
--- /dev/null
+++ b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xserver
@@ -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
index 0000000000..a438e13050
--- /dev/null
+++ b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession
@@ -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
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession.d/.mtn2git_empty
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
index 0000000000..8e6a8b22cb
--- /dev/null
+++ b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession.d/30xTs_Calibrate
@@ -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
index 0000000000..d3a284d8da
--- /dev/null
+++ b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession.d/60xXDefaults
@@ -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
index 0000000000..b2b65a0993
--- /dev/null
+++ b/packages/xserver-kdrive-common/xserver-kdrive-common/etc/X11/Xsession.d/90xXWindowManager
@@ -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
index 0000000000..c076a3435a
--- /dev/null
+++ b/packages/xserver-kdrive-common/xserver-kdrive-common_0.1.bb
@@ -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
index 0000000000..cea9f0cb28
--- /dev/null
+++ b/packages/xserver-kdrive-common/xserver-nodm-init.bb
@@ -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
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/xserver-kdrive-common/xserver-nodm-init/.mtn2git_empty
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
index 0000000000..a56edaa15b
--- /dev/null
+++ b/packages/xserver-kdrive-common/xserver-nodm-init/xserver-nodm
@@ -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
diff --git a/packages/zsafe/zsafe_2.1.3.bb b/packages/zsafe/zsafe_2.1.3.bb
index 80d0392b76..3f6fa7c2b1 100644
--- a/packages/zsafe/zsafe_2.1.3.bb
+++ b/packages/zsafe/zsafe_2.1.3.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "Password manager"
-SECTION = "opie/applications"
+SECTION = "opie/applications"
PRIORITY = "optional"
LICENSE = "GPL"
RCONFLICTS = "opie-zsafe"
diff --git a/removal.txt b/removal.txt
index 17b7639586..fb5b8e4298 100644
--- a/removal.txt
+++ b/removal.txt
@@ -26,3 +26,8 @@ Reason: Obsoleted by task-base
Proposed by: Koen Kooi
Note: Moved to packages/obsolete/tasks on 2006-12-22
+Package Name: libmpeg2 (not mpeg2dec!)
+Removal Date: 2007-03-15
+Maintainer: unknown, checked in from BK repo, no updates after that
+Reason: mpeg2dec provides libmpeg2, see bug 375
+Proposed by: Laibsch
diff --git a/site/common-glibc b/site/common-glibc
index e69de29bb2..9358856856 100644
--- a/site/common-glibc
+++ b/site/common-glibc
@@ -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}
+
diff --git a/site/powerpc-linux b/site/powerpc-linux
index 0f302ec9af..f7f987ea6c 100644
--- a/site/powerpc-linux
+++ b/site/powerpc-linux
@@ -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}