diff options
75 files changed, 4093 insertions, 211 deletions
diff --git a/conf/distro/include/fso-autorev.inc b/conf/distro/include/fso-autorev.inc index da6dafd6bc..33380b6dd4 100644 --- a/conf/distro/include/fso-autorev.inc +++ b/conf/distro/include/fso-autorev.inc @@ -2,6 +2,7 @@ SRCREV_pn-frameworkd = "${AUTOREV}" SRCREV_pn-gsm0710muxd = "${AUTOREV}" SRCREV_pn-gsmd2 = "${AUTOREV}" SRCREV_pn-pygsm = "${AUTOREV}" +SRCREV_pn-mickeydbus = "${AUTOREV}" SRCREV_pn-mickeyterm = "${AUTOREV}" SRCREV_pn-pyneod = "${AUTOREV}" SRCREV_pn-pynoeg = "${AUTOREV}" diff --git a/conf/distro/include/sane-srcrevs.inc b/conf/distro/include/sane-srcrevs.inc index 6e5ca31d8b..f646ee55cb 100644 --- a/conf/distro/include/sane-srcrevs.inc +++ b/conf/distro/include/sane-srcrevs.inc @@ -38,7 +38,6 @@ SRCREV_pn-ezxd ?= "2074" SRCREV_pn-elf2flt ?= "1786" SRCREV_pn-epiphany ?= "7837" SRCREV_pn-fbgrab-viewer-native ?= "1943" -SRCREV_pn-ffmpeg ?= "12186" SRCREV_pn-frameworkd ?= "0c2b55d857ac1e62c1c8538b86c0d8d62a80ccd6" SRCREV_pn-fstests ?= "204" SRCREV_pn-gconf-dbus ?= "641" @@ -81,6 +80,7 @@ SRCREV_pn-matchbox-keyboard ?= "1910" SRCREV_pn-matchbox-keyboard-inputmethod ?= "1910" SRCREV_pn-matchbox-panel-2 ?= "1626" SRCREV_pn-matchbox-stroke ?= "1820" +SRCREV_pn-mickeydbus ?= "5cf2a90d86601b2666b4634784853fb51d0d5896" SRCREV_pn-mickeyterm ?= "af7c48d424f9c03f7aa8979f1c06e3b2c70acdff" SRCREV_pn-moko-gtk-engine ?= "3612" SRCREV_pn-mpd-alsa ?= "6952" @@ -154,7 +154,7 @@ SRCREV_pn-openmoko-theme-standard2-qvga ?= "3425" SRCREV_pn-openmoko-today ?= "3056" SRCREV_pn-openmoko-today2 ?= "4168" SRCREV_pn-openmoko-today2-folders ?= "3704" -SRCREV_pn-openmoko-toolchain-scripts ?= "3767" +SRCREV_pn-openmoko-toolchain-scripts ?= "4430" SRCREV_pn-openmoko-worldclock2 ?= "3365" SRCREV_pn-openocd ?= "517" SRCREV_pn-openocd-native ?= "517" @@ -187,7 +187,7 @@ SRCREV_pn-tmut ?= "60" SRCREV_pn-u-boot-openmoko ?= "4297" SRCREV_pn-usbpath ?= "3172" SRCREV_pn-usbpath-native ?= "3172" -SRCREV_pn-webkit-gtk ?= "32839" +SRCREV_pn-webkit-gtk ?= "35062" SRCREV_pn-webkit-qt ?= "28656" SRCREV_pn-webkit-qtopia ?= "28656" SRCREV_pn-wesnoth ?= "22021" diff --git a/conf/machine/include/neuros.inc b/conf/machine/include/neuros.inc new file mode 100644 index 0000000000..d744bf9082 --- /dev/null +++ b/conf/machine/include/neuros.inc @@ -0,0 +1,29 @@ +MACHINE_POSTPROCESS_COMMAND = "neuros_make_installkit" +EXTRA_IMAGECMD_yaffs2 = "0" + +EXTRA_IMAGEDEPENDS += "u-boot u-boot-env virtual/kernel neuros-pkggen-native" + +neuros_make_installkit () { + cd ${DEPLOY_DIR_IMAGE} + rm -rf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-installkit/ + mkdir -p ${IMAGE_NAME}-installkit/temp + + # Get the latest kernel and u-boot using the foo-<machine>.bin symlinks + cp uImage-${MACHINE}.bin ${IMAGE_NAME}-installkit/temp/uImage + [ -f u-boot-${MACHINE}.bin ] && cp u-boot-${MACHINE}.bin ${IMAGE_NAME}-installkit/u-boot.bin + [ -f default_env.img ] && cp default_env.img ${IMAGE_NAME}-installkit/ + + cp ${IMAGE_NAME}.rootfs.yaffs2 ${IMAGE_NAME}-installkit/rootfs.yaffs2 + + cd ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-installkit/ + mkfs.jffs2 -d ./temp -o uImage.jffs2 -e 0x20000 -s 0x800 -n + echo "${MACHINE}" > rootfs.version + echo "${MACHINE}" > u-boot.version + echo "${MACHINE}" > uImage.version + packet_osd2 osd20.pkg '${DISTRO} Developer UPK' default_env.img u-boot.bin uImage.jffs2 rootfs.yaffs2 + cd ${DEPLOY_DIR_IMAGE} + + cp ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-installkit/osd20.pkg ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-osd20.pkg + rm -rf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-installkit/ +} + diff --git a/conf/machine/neuros-osd2.conf b/conf/machine/neuros-osd2.conf index 4a540270f4..89e14ce363 100644 --- a/conf/machine/neuros-osd2.conf +++ b/conf/machine/neuros-osd2.conf @@ -15,14 +15,17 @@ UBOOT_ENTRYPOINT = "0x80008000" UBOOT_LOADADDRESS = "0x80008000" PREFERRED_VERSION_u-boot = "git" -#UBOOT_MACHINE = "davinci_dvevm_config" +UBOOT_MACHINE = "davinci_ntosd_644xA_config" SERIAL_CONSOLE ?= "115200 ttyS0" EXTRA_IMAGECMD_jffs2 = "--pad --little-endian --eraseblock=0x20000 -n" +IMAGE_FSTYPES += "jffs2 yaffs2" + ROOT_FLASH_SIZE = "29" MACHINE_FEATURES = "kernel26 pcmcia usbhost screen" require conf/machine/include/tune-arm926ejs.inc +require conf/machine/include/neuros.inc diff --git a/packages/dsplink/codec-engine_2.10.bb b/packages/dsplink/codec-engine_2.10.bb index 8968a0ce02..b783a5ef32 100644 --- a/packages/dsplink/codec-engine_2.10.bb +++ b/packages/dsplink/codec-engine_2.10.bb @@ -5,7 +5,7 @@ RDEPENDS = "update-modules" inherit module -PR = "r1" +PR = "r2" PV = "2.10" # Get CE tarball from TI website, place in sources and calculate diff --git a/packages/dsplink/dsplink.inc b/packages/dsplink/dsplink.inc index 2fa4aae8e0..5fdbd1de90 100644 --- a/packages/dsplink/dsplink.inc +++ b/packages/dsplink/dsplink.inc @@ -1,7 +1,8 @@ DESCRIPTION = "DSP Link for TI ARM/DSP processors" DEPENDS = "virtual/kernel perl-native" -RDEPENDS = "update-modules" +RDEPENDS_${PN}-module = "update-modules" +RRECOMMENDS_${PN} = "${PN}-module" inherit module diff --git a/packages/dsplink/dsplink_1.50.bb b/packages/dsplink/dsplink_1.50.bb index c1b6f15694..f222fd2861 100644 --- a/packages/dsplink/dsplink_1.50.bb +++ b/packages/dsplink/dsplink_1.50.bb @@ -1,6 +1,6 @@ require dsplink.inc -PR = "r4" +PR = "r6" PE = "1" PV = "1.50" diff --git a/packages/dsplink/dsplink_1.51.00.08.bb b/packages/dsplink/dsplink_1.51.00.08.bb index 02c04aa054..41e3721a05 100644 --- a/packages/dsplink/dsplink_1.51.00.08.bb +++ b/packages/dsplink/dsplink_1.51.00.08.bb @@ -1,6 +1,6 @@ require dsplink.inc -PR = "r1" +PR = "r4" PE = "1" PV = "1.51" diff --git a/packages/ffmpeg/ffmpeg_git.bb b/packages/ffmpeg/ffmpeg_git.bb new file mode 100644 index 0000000000..c287b86623 --- /dev/null +++ b/packages/ffmpeg/ffmpeg_git.bb @@ -0,0 +1,132 @@ +require ffmpeg.inc + +DEPENDS += "libgsm" + +PV = "0.4.9+${PR}+gitr${SRCREV}" +PR = "r9" + +DEFAULT_PREFERENCE = "-1" +DEFAULT_PREFERENCE_armv7a = "1" + +FFBRANCH_arm = "arm-neon" +FFBRANCH ?= "master" + +SRCREV = "1e8300e71f79963eacdad6b180d9a12c4f56318d" +SRCREV_arm = "4cc48b756abd09baa7b31909ebbc0c09be2c8e5a" +SRC_URI = "git://git.mansr.com/ffmpeg.mru;protocol=git;branch=${FFBRANCH} \ +" + +S = "${WORKDIR}/git" +B = "${S}/build.${HOST_SYS}.${TARGET_SYS}" + +FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -ftree-vectorize -fomit-frame-pointer -O4 -ffast-math" +BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}" + +EXTRA_FFCONF_armv7a = "--cpu=cortex-a8" +EXTRA_FFCONF ?= "" + +EXTRA_OECONF = " \ + --enable-shared \ + --enable-pthreads \ + --disable-stripping \ + --enable-gpl \ + --enable-nonfree \ + --enable-postproc \ + \ + --cross-prefix=${TARGET_PREFIX} \ + --prefix=${prefix} \ + \ + --enable-x11grab \ + --enable-libfaac \ + --enable-libfaad \ + --enable-libfaadbin \ + --enable-libgsm \ + --enable-libmp3lame \ + --enable-swscale \ + --arch=${TARGET_ARCH} \ + --enable-cross-compile \ + --extra-cflags="${TARGET_CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \ + --extra-ldflags="${TARGET_LDFLAGS}" \ + --enable-hardcoded-tables \ + ${EXTRA_FFCONF} \ +" + +do_configure() { + cd ${S} ; git clone git://git.mplayerhq.hu/libswscale || true + mkdir -p ${B} + cd ${B} + ${S}/configure ${EXTRA_OECONF} + sed -i -e s:Os:O4:g ${B}/config.h +} + +do_stage() { + for lib in libavcodec libavdevice libavformat \ + libavutil libpostproc libswscale + do + oe_libinstall -a -so -C $lib $lib ${STAGING_LIBDIR} + install -d ${STAGING_INCDIR}/$lib + done + + install -d ${STAGING_INCDIR}/ffmpeg + + install -m 0644 ${S}/libavcodec/avcodec.h ${STAGING_INCDIR}/ffmpeg/avcodec.h + install -m 0644 ${S}/libavcodec/opt.h ${STAGING_INCDIR}/ffmpeg/opt.h + install -m 0644 ${S}/libavcodec/avcodec.h ${STAGING_INCDIR}/libavcodec/avcodec.h + install -m 0644 ${S}/libavcodec/opt.h ${STAGING_INCDIR}/libavcodec/opt.h + + install -m 0644 ${S}/libavdevice/avdevice.h ${STAGING_INCDIR}/ffmpeg/avdevice.h + + for h in avformat.h avio.h rtp.h rtsp.h rtspcodes.h + do + install -m 0644 ${S}/libavformat/$h ${STAGING_INCDIR}/ffmpeg/$h + done + + for h in adler32.h avstring.h avutil.h base64.h bswap.h \ + common.h crc.h fifo.h integer.h intfloat_readwrite.h \ + log.h lzo.h mathematics.h md5.h mem.h random.h \ + rational.h sha1.h + do + install -m 0644 ${S}/libavutil/$h ${STAGING_INCDIR}/ffmpeg/$h + install -m 0644 ${S}/libavutil/$h ${STAGING_INCDIR}/libavutil/$h + done + + install -m 0644 ${S}/libswscale/swscale.h ${STAGING_INCDIR}/ffmpeg/swscale.h + install -m 0644 ${S}/libswscale/rgb2rgb.h ${STAGING_INCDIR}/ffmpeg/rgb2rgb.h + + install -d ${STAGING_INCDIR}/libpostproc + install -d ${STAGING_INCDIR}/postproc + install -m 0644 ${S}/libpostproc/postprocess.h ${STAGING_INCDIR}/libpostproc/postprocess.h + install -m 0644 ${S}/libpostproc/postprocess.h ${STAGING_INCDIR}/postproc/postprocess.h +} + +PACKAGES += "libavcodec libavcodec-dev libavcodec-dbg \ + libavdevice libavdevice-dev libavdevice-dbg \ + libavformat libavformat-dev libavformat-dbg \ + libavutil libavutil-dev libavutil-dbg \ + libpostproc libpostproc-dev libpostproc-dbg \ + libswscale libswscale-dev libswscale-dbg" + +FILES_${PN}-dev = "${includedir}" +FILES_libavcodec = "${libdir}/libavcodec*.so.*" +FILES_libavcodec-dev = "${libdir}/libavcodec*.so ${libdir}/pkgconfig/libavcodec.pc ${libdir}/libavcodec*.a" +FILES_libavcodec-dbg += "${libdir}/.debug/libavcodec*" + +FILES_libavdevice = "${libdir}/libavdevice*.so.*" +FILES_libavdevice-dev = "${libdir}/libavdevice*.so ${libdir}/pkgconfig/libavdevice.pc ${libdir}/libavdevice*.a" +FILES_libavdevice-dbg += "${libdir}/.debug/libavdevice*" + +FILES_libavformat = "${libdir}/libavformat*.so.*" +FILES_libavformat-dev = "${libdir}/libavformat*.so ${libdir}/pkgconfig/libavformat.pc ${libdir}/libavformat*.a" +FILES_libavformat-dbg += "${libdir}/.debug/libavformat*" + +FILES_libavutil = "${libdir}/libavutil*.so.*" +FILES_libavutil-dev = "${libdir}/libavutil*.so ${libdir}/pkgconfig/libavutil.pc ${libdir}/libavutil*.a" +FILES_libavutil-dbg += "${libdir}/.debug/libavutil*" + +FILES_libpostproc = "${libdir}/libpostproc*.so.*" +FILES_libpostproc-dev = "${libdir}/libpostproc*.so ${libdir}/pkgconfig/libpostproc.pc ${libdir}/libpostproc*.a ${includedir}/postproc" +FILES_libpostproc-dbg += "${libdir}/.debug/libpostproc*" + +FILES_libswscale = "${libdir}/libswscale*.so.*" +FILES_libswscale-dev = "${libdir}/libswscale*.so ${libdir}/pkgconfig/libswscale.pc ${libdir}/libswscale*.a" +FILES_libswscale-dbg += "${libdir}/.debug/libswscale*" diff --git a/packages/ffmpeg/ffmpeg_svn.bb b/packages/ffmpeg/ffmpeg_svn.bb index cbf9cf3980..3fef6129a7 100644 --- a/packages/ffmpeg/ffmpeg_svn.bb +++ b/packages/ffmpeg/ffmpeg_svn.bb @@ -2,6 +2,8 @@ require ffmpeg.inc DEPENDS += "libgsm" +SRCREV ?= "12186" + PV = "0.4.9+svnr${SRCREV}" PR = "r0" diff --git a/packages/freesmartphone/mickeydbus_git.bb b/packages/freesmartphone/mickeydbus_git.bb new file mode 100644 index 0000000000..cbd90e5030 --- /dev/null +++ b/packages/freesmartphone/mickeydbus_git.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "Mickey's DBus introspection and calling Program" +AUTHOR = "Michael 'Mickey' Lauer <mlauer@vanille-media.de>" +SECTION = "console/network" +LICENSE = "GPLv2" +PV = "0.9.0+gitr${SRCREV}" +PR = "r0" + +SRC_URI = "${FREESMARTPHONE_GIT}/python-helpers.git;protocol=git;branch=master" +S = "${WORKDIR}/git" + +do_install() { + install -d ${D}${bindir} + install -m 0755 mickeydbus/mdbus ${D}${bindir} +} + +RDEPENDS_${PN} = "\ + python-dbus \ +" diff --git a/packages/gtk-doc/gtk-doc.bb b/packages/gtk-doc/gtk-doc.bb index 8609138bac..f0dbdd0bae 100644 --- a/packages/gtk-doc/gtk-doc.bb +++ b/packages/gtk-doc/gtk-doc.bb @@ -1,7 +1,14 @@ SECTION = "x11/base" SRC_URI = "file://gtk-doc.m4" LICENSE = "LGPL" -PR="r1" +PR = "r2" + +ALLOW_EMPTY_${PN} = "1" + +do_install() { + install -d ${D}/${datadir}/aclocal + install -m 0644 ${WORKDIR}/gtk-doc.m4 ${D}/${datadir}/aclocal +} do_stage() { install -d ${STAGING_DATADIR}/aclocal diff --git a/packages/images/dsplink-test-image.bb b/packages/images/dsplink-test-image.bb new file mode 100644 index 0000000000..10c3401e1f --- /dev/null +++ b/packages/images/dsplink-test-image.bb @@ -0,0 +1,7 @@ +# This image is a bare-bones image to test the TI dsplink modules + +require minimal-image.bb +IMAGE_INSTALL += "dsplink" + +export IMAGE_BASENAME = "dsplink-testing-image" + diff --git a/packages/images/fso-image.bb b/packages/images/fso-image.bb index 7333b32131..c257158a12 100644 --- a/packages/images/fso-image.bb +++ b/packages/images/fso-image.bb @@ -39,6 +39,7 @@ X_INSTALL = "\ TOOLS_INSTALL = "\ # bash \ htop \ + mickeydbus \ mickeyterm \ nano \ powertop \ diff --git a/packages/images/neuros-osd-base-image.bb b/packages/images/neuros-osd-base-image.bb index ddf524574a..d2e39760c8 100644 --- a/packages/images/neuros-osd-base-image.bb +++ b/packages/images/neuros-osd-base-image.bb @@ -1,7 +1,15 @@ # This image is intended to be the base for further neuros images +inherit image + +export IMAGE_BASENAME = "Neuros-OSD2-base-image" + +PR = "r1" + # Select which Secure Shell Daemon gets included into the rootfs DISTRO_SSH_DAEMON ?= "dropbear" +DISTRO_DEV_MANAGER = "mdev" +PREFERRED_PROVIDER_hotplug = "mdev" # Include a timestamp that initscripts can use to set the time to a # more sane value after a reboot @@ -9,10 +17,10 @@ IMAGE_PREPROCESS_COMMAND = "create_etc_timestamp" IMAGE_INSTALL = "task-boot \ util-linux-mount util-linux-umount \ + e2fsprogs dosfstools \ + wireless-tools zd1211-firmware \ ${DISTRO_SSH_DAEMON} \ - " + qt-embedded dbus \ + " IMAGE_LINGUAS = "" - -inherit image - diff --git a/packages/linux/linux-neuros/neuros-osd2/defconfig b/packages/linux/linux-neuros/neuros-osd2/defconfig index b729767e3e..d68f2d069f 100644 --- a/packages/linux/linux-neuros/neuros-osd2/defconfig +++ b/packages/linux/linux-neuros/neuros-osd2/defconfig @@ -848,6 +848,8 @@ CONFIG_VIDEO_V4L2=y CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +CONFIG_VIDEO_DAVINCI=y +CONFIG_VIDEO_TVP5150=y # CONFIG_VIDEO_TVP5146 is not set # CONFIG_VIDEO_CPIA is not set # CONFIG_VIDEO_CPIA2 is not set @@ -1167,7 +1169,7 @@ CONFIG_INOTIFY_USER=y CONFIG_DNOTIFY=y # CONFIG_AUTOFS_FS is not set CONFIG_AUTOFS4_FS=m -# CONFIG_FUSE_FS is not set +CONFIG_FUSE_FS=y # # CD-ROM/DVD Filesystems diff --git a/packages/linux/linux-neuros_git.bb b/packages/linux/linux-neuros_git.bb index db04361de6..5450fe75f8 100644 --- a/packages/linux/linux-neuros_git.bb +++ b/packages/linux/linux-neuros_git.bb @@ -2,10 +2,10 @@ require linux.inc DESCRIPTION = "Linux kernel for Neuros OSD devices" -SRCREV = "730beeee197cef4ff1e92ee322481380996a0390" +SRCREV = "723849a80153f079a653d06a660f63fec67f6d1e" PV = "2.6.23-${PR}+git${SRCREV}" -PR = "r3" +PR = "r4" COMPATIBLE_MACHINE = "(neuros-osd|neuros-osd2)" diff --git a/packages/linux/linux-omap2-git/beagleboard/defconfig b/packages/linux/linux-omap2-git/beagleboard/defconfig index fa11eefc3c..0b4af695d8 100644 --- a/packages/linux/linux-omap2-git/beagleboard/defconfig +++ b/packages/linux/linux-omap2-git/beagleboard/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.26-rc8-omap1 -# Sun Jul 6 15:22:47 2008 +# Linux kernel version: 2.6.26-rc9-omap1 +# Tue Jul 8 15:36:02 2008 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -1037,6 +1037,7 @@ CONFIG_MEDIA_TUNER=m # CONFIG_MEDIA_TUNER_CUSTOMIZE is not set CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m @@ -1048,9 +1049,17 @@ CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_V4L1=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_CX25840=m +CONFIG_VIDEO_CX2341X=m # CONFIG_VIDEO_VIVI is not set # CONFIG_VIDEO_CPIA is not set # CONFIG_VIDEO_CPIA2 is not set @@ -1059,23 +1068,29 @@ CONFIG_VIDEO_HELPER_CHIPS_AUTO=y # CONFIG_TUNER_3036 is not set # CONFIG_VIDEO_AU0828 is not set CONFIG_V4L_USB_DRIVERS=y -# CONFIG_VIDEO_PVRUSB2 is not set +CONFIG_USB_VIDEO_CLASS=m +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set # CONFIG_VIDEO_EM28XX is not set -# CONFIG_VIDEO_USBVISION is not set -# CONFIG_USB_VICAM is not set -# CONFIG_USB_IBMCAM is not set -# CONFIG_USB_KONICAWC is not set -# CONFIG_USB_QUICKCAM_MESSENGER is not set +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_USB_VICAM=m +CONFIG_USB_IBMCAM=m +CONFIG_USB_KONICAWC=m +CONFIG_USB_QUICKCAM_MESSENGER=m # CONFIG_USB_ET61X251 is not set -# CONFIG_VIDEO_OVCAMCHIP is not set -# CONFIG_USB_W9968CF is not set -# CONFIG_USB_OV511 is not set -# CONFIG_USB_SE401 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_STV680 is not set +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_USB_W9968CF=m +CONFIG_USB_OV511=m +CONFIG_USB_SE401=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m # CONFIG_USB_ZC0301 is not set -# CONFIG_USB_PWC is not set -# CONFIG_USB_ZR364XX is not set +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_ZR364XX=m # CONFIG_USB_STKWEBCAM is not set # CONFIG_SOC_CAMERA is not set CONFIG_RADIO_ADAPTERS=y diff --git a/packages/linux/linux-omap2-git/omap3evm/defconfig b/packages/linux/linux-omap2-git/omap3evm/defconfig index f74cef90ee..e61fad48d9 100644 --- a/packages/linux/linux-omap2-git/omap3evm/defconfig +++ b/packages/linux/linux-omap2-git/omap3evm/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.26-rc3-omap1 -# Wed May 21 07:38:41 2008 +# Linux kernel version: 2.6.26-rc5-omap1 +# Sun Jun 15 21:58:01 2008 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -42,7 +42,8 @@ CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT_V3 is not set # CONFIG_TASKSTATS is not set # CONFIG_AUDIT is not set -# CONFIG_IKCONFIG is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=14 # CONFIG_CGROUPS is not set CONFIG_GROUP_SCHED=y @@ -170,9 +171,9 @@ CONFIG_ARCH_OMAP3=y # # OMAP Feature Selections # -CONFIG_OMAP_DEBUG_SRAM_PATCH=y # CONFIG_OMAP_DEBUG_POWERDOMAIN is not set # CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set +# CONFIG_OMAP_SMARTREFLEX is not set # CONFIG_OMAP_RESET_CLOCKS is not set CONFIG_OMAP_BOOT_TAG=y CONFIG_OMAP_BOOT_REASON=y @@ -186,9 +187,9 @@ CONFIG_OMAP_MCBSP=y CONFIG_OMAP_32K_TIMER=y CONFIG_OMAP_32K_TIMER_HZ=128 CONFIG_OMAP_DM_TIMER=y -# CONFIG_OMAP_LL_DEBUG_UART1 is not set +CONFIG_OMAP_LL_DEBUG_UART1=y # CONFIG_OMAP_LL_DEBUG_UART2 is not set -CONFIG_OMAP_LL_DEBUG_UART3=y +# CONFIG_OMAP_LL_DEBUG_UART3 is not set CONFIG_ARCH_OMAP34XX=y CONFIG_ARCH_OMAP3430=y @@ -232,10 +233,6 @@ CONFIG_ARM_THUMB=y # CONFIG_ARM_THUMBEE is not set # CONFIG_CPU_ICACHE_DISABLE is not set # CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_CPU_LOCKDOWN_TO_64K_L2 is not set -# CONFIG_CPU_LOCKDOWN_TO_128K_L2 is not set -CONFIG_CPU_LOCKDOWN_TO_256K_L2=y -# CONFIG_CPU_L2CACHE_DISABLE is not set # CONFIG_CPU_BPREDICT_DISABLE is not set CONFIG_HAS_TLS_REG=y # CONFIG_OUTER_CACHE is not set @@ -257,7 +254,7 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y # CONFIG_PREEMPT is not set CONFIG_HZ=128 CONFIG_AEABI=y -CONFIG_OABI_COMPAT=y +# CONFIG_OABI_COMPAT is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -286,6 +283,15 @@ CONFIG_CMDLINE=" quiet " # CONFIG_KEXEC is not set # +# CPUIdle +# + +# +# CPU idle PM support +# +# CONFIG_CPU_IDLE is not set + +# # CPU Frequency scaling # # CONFIG_CPU_FREQ is not set @@ -297,9 +303,6 @@ CONFIG_CMDLINE=" quiet " # # At least one emulation must be selected # -CONFIG_FPE_NWFPE=y -# CONFIG_FPE_NWFPE_XP is not set -# CONFIG_FPE_FASTFPE is not set CONFIG_VFP=y CONFIG_VFPv3=y # CONFIG_NEON is not set @@ -593,9 +596,42 @@ CONFIG_HAVE_IDE=y # SCSI device support # # CONFIG_RAID_ATTRS is not set -# CONFIG_SCSI is not set -# CONFIG_SCSI_DMA is not set +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +# 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=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +# CONFIG_BLK_DEV_SR is not set +# CONFIG_CHR_DEV_SG is not set +# CONFIG_CHR_DEV_SCH is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +# CONFIG_SCSI_MULTI_LUN is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m + +# +# 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_LIBSAS is not set +# CONFIG_SCSI_SRP_ATTRS is not set +CONFIG_SCSI_LOWLEVEL=y +# CONFIG_ISCSI_TCP is not set +# CONFIG_SCSI_DEBUG is not set # CONFIG_ATA is not set # CONFIG_MD is not set CONFIG_NETDEVICES=y @@ -697,7 +733,10 @@ CONFIG_INPUT=y # # Userland interfaces # -# CONFIG_INPUT_MOUSEDEV is not set +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_EVDEV=y CONFIG_INPUT_EVBUG=y @@ -714,7 +753,18 @@ CONFIG_INPUT_KEYBOARD=y # CONFIG_KEYBOARD_STOWAWAY is not set # CONFIG_KEYBOARD_LM8323 is not set # CONFIG_KEYBOARD_GPIO is not set -# CONFIG_INPUT_MOUSE is not set +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=y +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_APPLETOUCH is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_MOUSE_GPIO is not set # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TABLET is not set CONFIG_INPUT_TOUCHSCREEN=y @@ -737,7 +787,10 @@ CONFIG_TOUCHSCREEN_ADS7846=y # # Hardware I/O ports # -# CONFIG_SERIO is not set +CONFIG_SERIO=y +CONFIG_SERIO_SERPORT=y +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set # CONFIG_GAMEPORT is not set # @@ -950,9 +1003,17 @@ CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y -# CONFIG_FONTS is not set -CONFIG_FONT_8x8=y +CONFIG_FONTS=y +# CONFIG_FONT_8x8 is not set CONFIG_FONT_8x16=y +# CONFIG_FONT_6x11 is not set +# 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 # CONFIG_LOGO is not set # @@ -966,9 +1027,11 @@ CONFIG_SOUND=y CONFIG_SND=y CONFIG_SND_TIMER=y CONFIG_SND_PCM=y +CONFIG_SND_HWDEP=y +CONFIG_SND_RAWMIDI=y # CONFIG_SND_SEQUENCER is not set CONFIG_SND_OSSEMUL=y -# CONFIG_SND_MIXER_OSS is not set +CONFIG_SND_MIXER_OSS=y CONFIG_SND_PCM_OSS=y CONFIG_SND_PCM_OSS_PLUGINS=y # CONFIG_SND_DYNAMIC_MINORS is not set @@ -1003,7 +1066,7 @@ CONFIG_SND_PCM_XRUN_DEBUG=y # # USB devices # -# CONFIG_SND_USB_AUDIO is not set +CONFIG_SND_USB_AUDIO=y # CONFIG_SND_USB_CAIAQ is not set # @@ -1027,8 +1090,6 @@ CONFIG_SND_SOC_TWL4030=y # Open Sound System # CONFIG_SOUND_PRIME=y -# CONFIG_SOUND_MSNDCLAS is not set -# CONFIG_SOUND_MSNDPIN is not set CONFIG_HID_SUPPORT=y CONFIG_HID=y # CONFIG_HID_DEBUG is not set @@ -1077,7 +1138,7 @@ CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_SL811_HCD=y CONFIG_USB_R8A66597_HCD=y -CONFIG_USB_MUSB_HDRC=m +CONFIG_USB_MUSB_HDRC=y CONFIG_USB_MUSB_SOC=y # @@ -1086,7 +1147,6 @@ CONFIG_USB_MUSB_SOC=y CONFIG_USB_MUSB_HOST=y # CONFIG_USB_MUSB_PERIPHERAL is not set # CONFIG_USB_MUSB_OTG is not set -# CONFIG_USB_GADGET_MUSB_HDRC is not set CONFIG_USB_MUSB_HDRC_HCD=y # CONFIG_MUSB_PIO_ONLY is not set CONFIG_USB_INVENTRA_DMA=y @@ -1098,6 +1158,7 @@ CONFIG_USB_MUSB_LOGLEVEL=0 # # CONFIG_USB_ACM is not set # CONFIG_USB_PRINTER is not set +# CONFIG_USB_WDM is not set # # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' @@ -1106,12 +1167,27 @@ CONFIG_USB_MUSB_LOGLEVEL=0 # # may also be needed; see USB_STORAGE Help for more information # -# CONFIG_USB_LIBUSUAL is not set +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_ONETOUCH is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set +CONFIG_USB_LIBUSUAL=y # # USB Imaging devices # # CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set CONFIG_USB_MON=y # @@ -1142,34 +1218,8 @@ CONFIG_USB_MON=y # CONFIG_USB_TRANCEVIBRATOR is not set # CONFIG_USB_IOWARRIOR is not set # CONFIG_USB_TEST is not set -CONFIG_USB_GADGET=m -# CONFIG_USB_GADGET_DEBUG is not set -# CONFIG_USB_GADGET_DEBUG_FILES is not set -CONFIG_USB_GADGET_SELECTED=y -# CONFIG_USB_GADGET_AMD5536UDC is not set -# CONFIG_USB_GADGET_ATMEL_USBA is not set -# CONFIG_USB_GADGET_FSL_USB2 is not set -# CONFIG_USB_GADGET_NET2280 is not set -# CONFIG_USB_GADGET_PXA2XX is not set -# CONFIG_USB_GADGET_M66592 is not set -# CONFIG_USB_GADGET_PXA27X is not set -# CONFIG_USB_GADGET_GOKU is not set -# CONFIG_USB_GADGET_LH7A40X is not set -CONFIG_USB_GADGET_OMAP=y -CONFIG_USB_OMAP=m -# CONFIG_USB_GADGET_S3C2410 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=m -CONFIG_USB_ETH_RNDIS=y -CONFIG_USB_GADGETFS=m -CONFIG_USB_FILE_STORAGE=m -# CONFIG_USB_FILE_STORAGE_TEST is not set -CONFIG_USB_G_SERIAL=m -# CONFIG_USB_MIDI_GADGET is not set -CONFIG_USB_G_PRINTER=m +# CONFIG_USB_ISIGHTFW is not set +# CONFIG_USB_GADGET is not set CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set CONFIG_MMC_UNSAFE_RESUME=y @@ -1180,6 +1230,7 @@ CONFIG_MMC_UNSAFE_RESUME=y CONFIG_MMC_BLOCK=y CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_SDIO_UART=m +# CONFIG_MMC_TEST is not set # # MMC/SD Host Controller Drivers @@ -1259,7 +1310,7 @@ CONFIG_EXT3_FS=y CONFIG_JBD=y # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set -# CONFIG_FS_POSIX_ACL is not set +CONFIG_FS_POSIX_ACL=y CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y # CONFIG_XFS_POSIX_ACL is not set @@ -1327,12 +1378,14 @@ CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y # CONFIG_JFFS2_FS_WBUF_VERIFY is not set CONFIG_JFFS2_SUMMARY=y -# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_FS_XATTR=y +CONFIG_JFFS2_FS_POSIX_ACL=y +CONFIG_JFFS2_FS_SECURITY=y CONFIG_JFFS2_COMPRESSION_OPTIONS=y CONFIG_JFFS2_ZLIB=y -# CONFIG_JFFS2_LZO is not set +CONFIG_JFFS2_LZO=y CONFIG_JFFS2_RTIME=y -# CONFIG_JFFS2_RUBIN is not set +CONFIG_JFFS2_RUBIN=y # CONFIG_JFFS2_CMODE_NONE is not set CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_JFFS2_CMODE_SIZE is not set @@ -1461,7 +1514,7 @@ CONFIG_FRAME_POINTER=y # CONFIG_DEBUG_USER is not set # CONFIG_DEBUG_ERRORS is not set # CONFIG_DEBUG_STACK_USAGE is not set -CONFIG_DEBUG_LL=y +# CONFIG_DEBUG_LL is not set # CONFIG_DEBUG_ICEDCC is not set # @@ -1561,6 +1614,8 @@ CONFIG_CRC32=y CONFIG_LIBCRC32C=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y CONFIG_PLIST=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y diff --git a/packages/linux/linux-omap2-git/omap3evm/soc.patch b/packages/linux/linux-omap2-git/omap3evm/soc.patch new file mode 100644 index 0000000000..bb97403f29 --- /dev/null +++ b/packages/linux/linux-omap2-git/omap3evm/soc.patch @@ -0,0 +1,1173 @@ +diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig +index 3903ab7..468536d 100644 +--- a/sound/soc/codecs/Kconfig ++++ b/sound/soc/codecs/Kconfig +@@ -44,3 +44,7 @@ config SND_SOC_CS4270_VD33_ERRATA + config SND_SOC_TLV320AIC3X + tristate + depends on SND_SOC && I2C ++ ++config SND_SOC_TWL4030 ++ tristate ++ depends on SND_SOC && I2C +diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile +index 4e1314c..d2c0b12 100644 +--- a/sound/soc/codecs/Makefile ++++ b/sound/soc/codecs/Makefile +@@ -6,6 +6,7 @@ snd-soc-wm9712-objs := wm9712.o + snd-soc-wm9713-objs := wm9713.o + snd-soc-cs4270-objs := cs4270.o + snd-soc-tlv320aic3x-objs := tlv320aic3x.o ++snd-soc-twl4030-objs := twl4030.o + + obj-$(CONFIG_SND_SOC_AC97_CODEC) += snd-soc-ac97.o + obj-$(CONFIG_SND_SOC_WM8731) += snd-soc-wm8731.o +@@ -15,3 +16,4 @@ obj-$(CONFIG_SND_SOC_WM9712) += snd-soc-wm9712.o + obj-$(CONFIG_SND_SOC_WM9713) += snd-soc-wm9713.o + obj-$(CONFIG_SND_SOC_CS4270) += snd-soc-cs4270.o + obj-$(CONFIG_SND_SOC_TLV320AIC3X) += snd-soc-tlv320aic3x.o ++obj-$(CONFIG_SND_SOC_TWL4030) += snd-soc-twl4030.o +diff --git a/sound/soc/codecs/twl4030.c b/sound/soc/codecs/twl4030.c +new file mode 100644 +index 0000000..c9eee19 +--- /dev/null ++++ b/sound/soc/codecs/twl4030.c +@@ -0,0 +1,595 @@ ++/* ++ * ALSA SoC TWL4030 codec driver ++ * ++ * Author: Steve Sakoman, <steve@sakoman.com> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++ ++#include <linux/module.h> ++#include <linux/moduleparam.h> ++#include <linux/init.h> ++#include <linux/delay.h> ++#include <linux/pm.h> ++#include <linux/i2c.h> ++#include <linux/platform_device.h> ++#include <linux/i2c/twl4030.h> ++#include <sound/core.h> ++#include <sound/pcm.h> ++#include <sound/pcm_params.h> ++#include <sound/soc.h> ++#include <sound/soc-dapm.h> ++#include <sound/initval.h> ++ ++#include "twl4030.h" ++ ++/* ++ * twl4030 register cache & default register settings ++ */ ++static const u8 twl4030_reg[TWL4030_CACHEREGNUM] = { ++ 0x00, // this register not used ++ 0x93, // REG_CODEC_MODE (0x1) ++ 0xc3, // REG_OPTION (0x2) ++ 0x00, // REG_UNKNOWN (0x3) ++ 0x00, // REG_MICBIAS_CTL (0x4) ++ 0x34, // REG_ANAMICL (0x5) ++ 0x14, // REG_ANAMICR (0x6) ++ 0x0a, // REG_AVADC_CTL (0x7) ++ 0x00, // REG_ADCMICSEL (0x8) ++ 0x00, // REG_DIGMIXING (0x9) ++ 0x0c, // REG_ATXL1PGA (0xA) ++ 0x0c, // REG_ATXR1PGA (0xB) ++ 0x00, // REG_AVTXL2PGA (0xC) ++ 0x00, // REG_AVTXR2PGA (0xD) ++ 0x01, // REG_AUDIO_IF (0xE) ++ 0x00, // REG_VOICE_IF (0xF) ++ 0x00, // REG_ARXR1PGA (0x10) ++ 0x00, // REG_ARXL1PGA (0x11) ++ 0x6c, // REG_ARXR2PGA (0x12) ++ 0x6c, // REG_ARXL2PGA (0x13) ++ 0x00, // REG_VRXPGA (0x14) ++ 0x00, // REG_VSTPGA (0x15) ++ 0x00, // REG_VRX2ARXPGA (0x16) ++ 0x0c, // REG_AVDAC_CTL (0x17) ++ 0x00, // REG_ARX2VTXPGA (0x18) ++ 0x00, // REG_ARXL1_APGA_CTL (0x19) ++ 0x00, // REG_ARXR1_APGA_CTL (0x1A) ++ 0x4b, // REG_ARXL2_APGA_CTL (0x1B) ++ 0x4b, // REG_ARXR2_APGA_CTL (0x1C) ++ 0x00, // REG_ATX2ARXPGA (0x1D) ++ 0x00, // REG_BT_IF (0x1E) ++ 0x00, // REG_BTPGA (0x1F) ++ 0x00, // REG_BTSTPGA (0x20) ++ 0x00, // REG_EAR_CTL (0x21) ++ 0x24, // REG_HS_SEL (0x22) ++ 0x0a, // REG_HS_GAIN_SET (0x23) ++ 0x00, // REG_HS_POPN_SET (0x24) ++ 0x00, // REG_PREDL_CTL (0x25) ++ 0x00, // REG_PREDR_CTL (0x26) ++ 0x00, // REG_PRECKL_CTL (0x27) ++ 0x00, // REG_PRECKR_CTL (0x28) ++ 0x00, // REG_HFL_CTL (0x29) ++ 0x00, // REG_HFR_CTL (0x2A) ++ 0x00, // REG_ALC_CTL (0x2B) ++ 0x00, // REG_ALC_SET1 (0x2C) ++ 0x00, // REG_ALC_SET2 (0x2D) ++ 0x00, // REG_BOOST_CTL (0x2E) ++ 0x01, // REG_SOFTVOL_CTL (0x2F) ++ 0x00, // REG_DTMF_FREQSEL (0x30) ++ 0x00, // REG_DTMF_TONEXT1H (0x31) ++ 0x00, // REG_DTMF_TONEXT1L (0x32) ++ 0x00, // REG_DTMF_TONEXT2H (0x33) ++ 0x00, // REG_DTMF_TONEXT2L (0x34) ++ 0x00, // REG_DTMF_TONOFF (0x35) ++ 0x00, // REG_DTMF_WANONOFF (0x36) ++ 0x00, // REG_I2S_RX_SCRAMBLE_H (0x37) ++ 0x00, // REG_I2S_RX_SCRAMBLE_M (0x38) ++ 0x00, // REG_I2S_RX_SCRAMBLE_L (0x39) ++ 0x16, // REG_APLL_CTL (0x3A) ++ 0x00, // REG_DTMF_CTL (0x3B) ++ 0x00, // REG_DTMF_PGA_CTL2 (0x3C) ++ 0x00, // REG_DTMF_PGA_CTL1 (0x3D) ++ 0x00, // REG_MISC_SET_1 (0x3E) ++ 0x00, // REG_PCMBTMUX (0x3F) ++ 0x00, // REG_RX_PATH_SEL (0x43) ++ 0x00, // REG_VDL_APGA_CTL (0x44) ++ 0x00, // REG_VIBRA_CTL (0x45) ++ 0x00, // REG_VIBRA_SET (0x46) ++ 0x00, // REG_VIBRA_PWM_SET (0x47) ++ 0x00, // REG_ANAMIC_GAIN (0x48) ++ 0x00, // REG_MISC_SET_2 (0x49) ++}; ++ ++static void twl4030_dump_registers(void) ++{ ++ int i = 0; ++ u8 data; ++ ++ printk(KERN_INFO "TWL 4030 Register dump for Audio Module\n"); ++ ++ for (i = REG_CODEC_MODE; i <= REG_MISC_SET_2; i++) { ++ twl4030_i2c_read_u8(TWL4030_MODULE_AUDIO_VOICE, &data, i); ++ printk(KERN_INFO "Register[0x%02x]=0x%02x\n", i, data); ++ } ++} ++ ++struct twl4030_priv { ++ unsigned int dummy; ++}; ++ ++/* ++ * read twl4030 register cache ++ */ ++static inline unsigned int twl4030_read_reg_cache(struct snd_soc_codec *codec, ++ unsigned int reg) ++{ ++ u8 *cache = codec->reg_cache; ++ ++ return cache[reg]; ++} ++ ++/* ++ * write twl4030 register cache ++ */ ++static inline void twl4030_write_reg_cache(struct snd_soc_codec *codec, ++ u8 reg, u8 value) ++{ ++ u8 *cache = codec->reg_cache; ++ ++ if (reg >= TWL4030_CACHEREGNUM) ++ return; ++ cache[reg] = value; ++} ++ ++/* ++ * write to the twl4030 register space ++ */ ++static int twl4030_write(struct snd_soc_codec *codec, ++ unsigned int reg, unsigned int value) ++{ ++ twl4030_write_reg_cache(codec, reg, value); ++ return twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE, value, reg); ++} ++ ++static void twl4030_init_chip(void) ++{ ++ unsigned char byte; ++ int i; ++ ++ twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE, ++ twl4030_reg[REG_CODEC_MODE] & 0xfd, REG_CODEC_MODE); ++ ++ udelay(10); /* 10 ms delay for power settling */ ++ ++ for (i = REG_OPTION; i <= REG_MISC_SET_2; i++) { ++ twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE, twl4030_reg[i], i); ++ } ++ ++ twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE, ++ twl4030_reg[REG_CODEC_MODE], REG_CODEC_MODE); ++ ++ udelay(10); /* 10 ms delay for power settling */ ++ ++ /* initiate offset cancellation */ ++ twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE, ++ twl4030_reg[REG_ANAMICL] | 0x80, REG_ANAMICL); ++ ++ /* wait for offset cancellation to complete */ ++ twl4030_i2c_read_u8(TWL4030_MODULE_AUDIO_VOICE, &byte, REG_ANAMICL); ++ while ((byte & 0x80) == 0x80) ++ twl4030_i2c_read_u8(TWL4030_MODULE_AUDIO_VOICE, &byte, REG_ANAMICL); ++ ++ twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE, ++ twl4030_reg[REG_MISC_SET_1] | 0x02, REG_MISC_SET_1); ++ ++ twl4030_dump_registers(); ++} ++ ++static const struct snd_kcontrol_new twl4030_snd_controls[] = { ++ SOC_DOUBLE_R("Master Playback Volume", ++ REG_ARXL2PGA, REG_ARXR2PGA, ++ 0, 127, 0), ++ SOC_DOUBLE_R("Capture Volume", ++ REG_ATXL1PGA, REG_ATXR1PGA, ++ 0, 127, 0), ++}; ++ ++/* add non dapm controls */ ++static int twl4030_add_controls(struct snd_soc_codec *codec) ++{ ++ int err, i; ++ ++ for (i = 0; i < ARRAY_SIZE(twl4030_snd_controls); i++) { ++ err = snd_ctl_add(codec->card, ++ snd_soc_cnew(&twl4030_snd_controls[i], ++ codec, NULL)); ++ if (err < 0) ++ return err; ++ } ++ ++ return 0; ++} ++ ++#define TWL4030_PWR 0 ++ ++static const struct snd_soc_dapm_widget twl4030_dapm_widgets[] = { ++ SND_SOC_DAPM_INPUT("INL"), ++ SND_SOC_DAPM_INPUT("INR"), ++ ++ SND_SOC_DAPM_OUTPUT("OUTL"), ++ SND_SOC_DAPM_OUTPUT("OUTR"), ++ ++ SND_SOC_DAPM_DAC("DACL", "Left Playback", SND_SOC_NOPM, 0, 0), ++ SND_SOC_DAPM_DAC("DACR", "Right Playback", SND_SOC_NOPM, 0, 0), ++ ++ SND_SOC_DAPM_ADC("ADCL", "Left Capture", SND_SOC_NOPM, 0, 0), ++ SND_SOC_DAPM_ADC("ADCR", "Right Capture", SND_SOC_NOPM, 0, 0), ++}; ++ ++static const char *intercon[][3] = { ++ /* outputs */ ++ {"OUTL", NULL, "DACL"}, ++ {"OUTR", NULL, "DACR"}, ++ ++ /* inputs */ ++ {"ADCL", NULL, "INL"}, ++ {"ADCR", NULL, "INR"}, ++ ++ /* terminator */ ++ {NULL, NULL, NULL}, ++}; ++ ++static int twl4030_add_widgets(struct snd_soc_codec *codec) ++{ ++ int i; ++ ++ for (i = 0; i < ARRAY_SIZE(twl4030_dapm_widgets); i++) ++ snd_soc_dapm_new_control(codec, &twl4030_dapm_widgets[i]); ++ ++ /* set up audio path interconnects */ ++ for (i = 0; intercon[i][0] != NULL; i++) ++ snd_soc_dapm_connect_input(codec, intercon[i][0], ++ intercon[i][1], intercon[i][2]); ++ ++ snd_soc_dapm_new_widgets(codec); ++ return 0; ++} ++ ++static int twl4030_dapm_event(struct snd_soc_codec *codec, int event) ++{ ++ ++ printk(KERN_INFO "TWL4030 Audio Codec dapm event\n"); ++ switch (event) { ++ case SNDRV_CTL_POWER_D0: /* full On */ ++ break; ++ case SNDRV_CTL_POWER_D1: /* partial On */ ++ case SNDRV_CTL_POWER_D2: /* partial On */ ++ break; ++ case SNDRV_CTL_POWER_D3hot: /* off, with power */ ++ break; ++ case SNDRV_CTL_POWER_D3cold: /* off, without power */ ++ break; ++ } ++ codec->dapm_state = event; ++ ++ return 0; ++} ++ ++static void twl4030_power_up (struct snd_soc_codec *codec, u8 mode) ++{ ++ twl4030_write(codec, REG_CODEC_MODE, mode & ~CODECPDZ); ++ twl4030_write(codec, REG_CODEC_MODE, mode | CODECPDZ); ++ udelay(10); ++ ++ u8 popn = twl4030_read_reg_cache(codec, REG_HS_POPN_SET) | (0x40); ++ twl4030_write(codec, REG_HS_POPN_SET, popn); ++ ++ u8 hsgain = twl4030_read_reg_cache(codec, REG_HS_GAIN_SET) | (0x0a); ++ twl4030_write(codec, REG_HS_GAIN_SET, hsgain); ++ ++ popn = twl4030_read_reg_cache(codec, REG_HS_POPN_SET) | (0x02); ++ twl4030_write(codec, REG_HS_POPN_SET, popn); ++} ++ ++static void twl4030_power_down (struct snd_soc_codec *codec) ++{ ++ u8 popn = twl4030_read_reg_cache(codec, REG_HS_POPN_SET) & ~(0x02); ++ twl4030_write(codec, REG_HS_POPN_SET, popn); ++ ++ u8 hsgain = twl4030_read_reg_cache(codec, REG_HS_GAIN_SET) & ~(0x0f); ++ twl4030_write(codec, REG_HS_GAIN_SET, hsgain); ++ ++ popn = twl4030_read_reg_cache(codec, REG_HS_POPN_SET) & ~(0x40); ++ twl4030_write(codec, REG_HS_POPN_SET, popn); ++ ++ u8 mode = twl4030_read_reg_cache(codec, REG_CODEC_MODE) & ~CODECPDZ; ++ twl4030_write(codec, REG_CODEC_MODE, mode); ++ udelay(10); ++} ++ ++ ++static int twl4030_hw_params(struct snd_pcm_substream *substream, ++ struct snd_pcm_hw_params *params) ++{ ++ struct snd_soc_pcm_runtime *rtd = substream->private_data; ++ struct snd_soc_device *socdev = rtd->socdev; ++ struct snd_soc_codec *codec = socdev->codec; ++ struct twl4030_priv *twl4030 = codec->private_data; ++ ++ twl4030_power_down(codec); ++ ++ u8 mode = twl4030_read_reg_cache(codec, REG_CODEC_MODE) & ~CODECPDZ; ++ ++ mode &= ~APLL_RATE; ++ switch (params_rate(params)) { ++ case 44100: ++ printk(KERN_INFO "TWL4030 hw params: set rate to 44.1khz\n"); ++ mode |= APLL_RATE_44100; ++ break; ++ case 48000: ++ printk(KERN_INFO "TWL4030 hw params: set rate to 48khz\n"); ++ mode |= APLL_RATE_48000; ++ break; ++ default: ++ printk(KERN_INFO "TWL4030 hw params: unknown rate %d\n", params_rate(params)); ++ return -EINVAL; ++ } ++ ++ /* bit size */ ++ switch (params_format(params)) { ++ case SNDRV_PCM_FORMAT_S16_LE: ++ printk(KERN_INFO "TWL4030 hw params: set format to S16_LE\n"); ++ break; ++ case SNDRV_PCM_FORMAT_S24_LE: ++ printk(KERN_INFO "TWL4030 hw params: set format to S24_LE\n"); ++ break; ++ default: ++ printk(KERN_INFO "TWL4030 hw params: unknown format %d\n", params_format(params)); ++ return -EINVAL; ++ } ++ ++ /* change rate and turn codec back on */ ++ twl4030_power_up(codec, mode); ++ ++ return 0; ++} ++ ++static int twl4030_mute(struct snd_soc_codec_dai *dai, int mute) ++{ ++ struct snd_soc_codec *codec = dai->codec; ++ ++ u8 ldac_reg = twl4030_read_reg_cache(codec, REG_ARXL2PGA); ++ u8 rdac_reg = twl4030_read_reg_cache(codec, REG_ARXR2PGA); ++ ++ if (mute) { ++ printk(KERN_INFO "TWL4030 Audio Codec mute\n"); ++ twl4030_write(codec, REG_ARXL2PGA, 0x00); ++ twl4030_write(codec, REG_ARXR2PGA, 0x00); ++ twl4030_write_reg_cache(codec, REG_ARXL2PGA, ldac_reg); ++ twl4030_write_reg_cache(codec, REG_ARXR2PGA, rdac_reg); ++ } ++ else { ++ printk(KERN_INFO "TWL4030 Audio Codec unmute: %02x/%02x\n", ldac_reg, rdac_reg); ++ twl4030_write(codec, REG_ARXL2PGA, ldac_reg); ++ twl4030_write(codec, REG_ARXR2PGA, rdac_reg); ++ } ++ ++ return 0; ++} ++ ++static int twl4030_set_dai_fmt(struct snd_soc_codec_dai *codec_dai, ++ unsigned int fmt) ++{ ++ struct snd_soc_codec *codec = codec_dai->codec; ++ struct twl4030_priv *twl4030 = codec->private_data; ++ ++ /* get current format */ ++ u8 format = twl4030_read_reg_cache(codec, REG_AUDIO_IF); ++ ++ /* set master/slave audio interface */ ++ switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) { ++ case SND_SOC_DAIFMT_CBM_CFM: ++ printk(KERN_INFO "TWL4030 set dai fmt: master\n"); ++ format &= ~(AIF_SLAVE_EN); ++ format |= CLK256FS_EN; ++ break; ++ case SND_SOC_DAIFMT_CBS_CFS: ++ printk(KERN_INFO "TWL4030 set dai fmt: slave\n"); ++ format &= ~(CLK256FS_EN); ++ format |= AIF_SLAVE_EN; ++ break; ++ default: ++ return -EINVAL; ++ } ++ ++ /* interface format */ ++ format &= ~AIF_FORMAT; ++ switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) { ++ case SND_SOC_DAIFMT_I2S: ++ printk(KERN_INFO "TWL4030 set dai fmt: i2s\n"); ++ format |= AIF_FORMAT_CODEC; ++ break; ++ default: ++ return -EINVAL; ++ } ++ ++ /* turn off codec before changing format */ ++ twl4030_power_down(codec); ++ ++ /* change format */ ++ twl4030_write(codec, REG_AUDIO_IF, format); ++ ++ u8 mode = twl4030_read_reg_cache(codec, REG_CODEC_MODE); ++ twl4030_power_up(codec, mode); ++ ++ return 0; ++} ++ ++#define TWL4030_RATES SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 ++#define TWL4030_FORMATS SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FORMAT_S24_LE ++ ++struct snd_soc_codec_dai twl4030_dai = { ++ .name = "twl4030", ++ .playback = { ++ .stream_name = "Playback", ++ .channels_min = 2, ++ .channels_max = 2, ++ .rates = TWL4030_RATES, ++ .formats = TWL4030_FORMATS,}, ++ .capture = { ++ .stream_name = "Capture", ++ .channels_min = 2, ++ .channels_max = 2, ++ .rates = TWL4030_RATES, ++ .formats = TWL4030_FORMATS,}, ++ .ops = { ++ .hw_params = twl4030_hw_params, ++ }, ++ .dai_ops = { ++ .digital_mute = twl4030_mute, ++ .set_fmt = twl4030_set_dai_fmt, ++ } ++}; ++ ++EXPORT_SYMBOL_GPL(twl4030_dai); ++ ++static int twl4030_suspend(struct platform_device *pdev, pm_message_t state) ++{ ++ struct snd_soc_device *socdev = platform_get_drvdata(pdev); ++ struct snd_soc_codec *codec = socdev->codec; ++ ++ printk(KERN_INFO "TWL4030 Audio Codec suspend\n"); ++ twl4030_dapm_event(codec, SNDRV_CTL_POWER_D3cold); ++ ++ return 0; ++} ++ ++static int twl4030_resume(struct platform_device *pdev) ++{ ++ struct snd_soc_device *socdev = platform_get_drvdata(pdev); ++ struct snd_soc_codec *codec = socdev->codec; ++ int i; ++ u16 *cache = codec->reg_cache; ++ ++ printk(KERN_INFO "TWL4030 Audio Codec resume\n"); ++ /* Sync reg_cache with the hardware */ ++ for (i = REG_CODEC_MODE; i <= REG_MISC_SET_2; i++) { ++ twl4030_i2c_write_u8(TWL4030_MODULE_AUDIO_VOICE, cache[i], i); ++ } ++ twl4030_dapm_event(codec, SNDRV_CTL_POWER_D3hot); ++ twl4030_dapm_event(codec, codec->suspend_dapm_state); ++ return 0; ++} ++ ++/* ++ * initialize the driver ++ * register the mixer and dsp interfaces with the kernel ++ */ ++ ++static int twl4030_init(struct snd_soc_device *socdev) ++{ ++ struct snd_soc_codec *codec = socdev->codec; ++ int ret = 0; ++ ++ printk(KERN_INFO "TWL4030 Audio Codec init \n"); ++ ++ twl4030_init_chip(); ++ ++ codec->name = "twl4030"; ++ codec->owner = THIS_MODULE; ++ codec->read = twl4030_read_reg_cache; ++ codec->write = twl4030_write; ++ codec->dapm_event = twl4030_dapm_event; ++ codec->dai = &twl4030_dai; ++ codec->num_dai = 1; ++ codec->reg_cache_size = sizeof(twl4030_reg); ++ codec->reg_cache = kmemdup(twl4030_reg, sizeof(twl4030_reg), GFP_KERNEL); ++ if (codec->reg_cache == NULL) ++ return -ENOMEM; ++ ++ /* register pcms */ ++ ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1); ++ if (ret < 0) { ++ printk(KERN_ERR "twl4030: failed to create pcms\n"); ++ goto pcm_err; ++ } ++ ++ twl4030_add_controls(codec); ++ twl4030_add_widgets(codec); ++ ++ ret = snd_soc_register_card(socdev); ++ if (ret < 0) { ++ printk(KERN_ERR "twl4030: failed to register card\n"); ++ goto card_err; ++ } ++ ++ return ret; ++ ++card_err: ++ printk(KERN_INFO "TWL4030 Audio Codec init card error\n"); ++ snd_soc_free_pcms(socdev); ++ snd_soc_dapm_free(socdev); ++pcm_err: ++ printk(KERN_INFO "TWL4030 Audio Codec init pcm error\n"); ++ kfree(codec->reg_cache); ++ return ret; ++} ++ ++static struct snd_soc_device *twl4030_socdev; ++ ++static int twl4030_probe(struct platform_device *pdev) ++{ ++ struct snd_soc_device *socdev = platform_get_drvdata(pdev); ++ struct snd_soc_codec *codec; ++ struct twl4030_priv *twl4030; ++ ++ printk(KERN_INFO "TWL4030 Audio Codec probe\n"); ++ ++ codec = kzalloc(sizeof(struct snd_soc_codec), GFP_KERNEL); ++ if (codec == NULL) ++ return -ENOMEM; ++ ++ twl4030 = kzalloc(sizeof(struct twl4030_priv), GFP_KERNEL); ++ if (twl4030 == NULL) { ++ kfree(codec); ++ return -ENOMEM; ++ } ++ ++ codec->private_data = twl4030; ++ socdev->codec = codec; ++ mutex_init(&codec->mutex); ++ INIT_LIST_HEAD(&codec->dapm_widgets); ++ INIT_LIST_HEAD(&codec->dapm_paths); ++ ++ twl4030_socdev = socdev; ++ twl4030_init(socdev); ++ ++ printk(KERN_INFO "TWL4030 Audio Codec probe exit\n"); ++ return 0; ++} ++ ++static int twl4030_remove(struct platform_device *pdev) ++{ ++ struct snd_soc_device *socdev = platform_get_drvdata(pdev); ++ struct snd_soc_codec *codec = socdev->codec; ++ ++ printk(KERN_INFO "TWL4030 Audio Codec remove\n"); ++ kfree(codec->private_data); ++ kfree(codec); ++ ++ return 0; ++} ++ ++struct snd_soc_codec_device soc_codec_dev_twl4030 = { ++ .probe = twl4030_probe, ++ .remove = twl4030_remove, ++ .suspend = twl4030_suspend, ++ .resume = twl4030_resume, ++}; ++EXPORT_SYMBOL_GPL(soc_codec_dev_twl4030); ++ ++MODULE_DESCRIPTION("ASoC TWL4030 codec driver"); ++MODULE_AUTHOR("Steve Sakoman"); ++MODULE_LICENSE("GPL"); +diff --git a/sound/soc/codecs/twl4030.h b/sound/soc/codecs/twl4030.h +new file mode 100644 +index 0000000..af8eb43 +--- /dev/null ++++ b/sound/soc/codecs/twl4030.h +@@ -0,0 +1,125 @@ ++/* ++ * ALSA SoC TWL4030 codec driver ++ * ++ * Author: Steve Sakoman, <steve@sakoman.com> ++ * ++ * 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 __TWL4030_AUDIO_H__ ++#define __TWL4030_AUDIO_H__ ++ ++#define REG_CODEC_MODE 0x1 ++#define REG_OPTION 0x2 ++#define REG_UNKNOWN 0x3 ++#define REG_MICBIAS_CTL 0x4 ++#define REG_ANAMICL 0x5 ++#define REG_ANAMICR 0x6 ++#define REG_AVADC_CTL 0x7 ++#define REG_ADCMICSEL 0x8 ++#define REG_DIGMIXING 0x9 ++#define REG_ATXL1PGA 0xA ++#define REG_ATXR1PGA 0xB ++#define REG_AVTXL2PGA 0xC ++#define REG_AVTXR2PGA 0xD ++#define REG_AUDIO_IF 0xE ++#define REG_VOICE_IF 0xF ++#define REG_ARXR1PGA 0x10 ++#define REG_ARXL1PGA 0x11 ++#define REG_ARXR2PGA 0x12 ++#define REG_ARXL2PGA 0x13 ++#define REG_VRXPGA 0x14 ++#define REG_VSTPGA 0x15 ++#define REG_VRX2ARXPGA 0x16 ++#define REG_AVDAC_CTL 0x17 ++#define REG_ARX2VTXPGA 0x18 ++#define REG_ARXL1_APGA_CTL 0x19 ++#define REG_ARXR1_APGA_CTL 0x1A ++#define REG_ARXL2_APGA_CTL 0x1B ++#define REG_ARXR2_APGA_CTL 0x1C ++#define REG_ATX2ARXPGA 0x1D ++#define REG_BT_IF 0x1E ++#define REG_BTPGA 0x1F ++#define REG_BTSTPGA 0x20 ++#define REG_EAR_CTL 0x21 ++#define REG_HS_SEL 0x22 ++#define REG_HS_GAIN_SET 0x23 ++#define REG_HS_POPN_SET 0x24 ++#define REG_PREDL_CTL 0x25 ++#define REG_PREDR_CTL 0x26 ++#define REG_PRECKL_CTL 0x27 ++#define REG_PRECKR_CTL 0x28 ++#define REG_HFL_CTL 0x29 ++#define REG_HFR_CTL 0x2A ++#define REG_ALC_CTL 0x2B ++#define REG_ALC_SET1 0x2C ++#define REG_ALC_SET2 0x2D ++#define REG_BOOST_CTL 0x2E ++#define REG_SOFTVOL_CTL 0x2F ++#define REG_DTMF_FREQSEL 0x30 ++#define REG_DTMF_TONEXT1H 0x31 ++#define REG_DTMF_TONEXT1L 0x32 ++#define REG_DTMF_TONEXT2H 0x33 ++#define REG_DTMF_TONEXT2L 0x34 ++#define REG_DTMF_TONOFF 0x35 ++#define REG_DTMF_WANONOFF 0x36 ++#define REG_I2S_RX_SCRAMBLE_H 0x37 ++#define REG_I2S_RX_SCRAMBLE_M 0x38 ++#define REG_I2S_RX_SCRAMBLE_L 0x39 ++#define REG_APLL_CTL 0x3A ++#define REG_DTMF_CTL 0x3B ++#define REG_DTMF_PGA_CTL2 0x3C ++#define REG_DTMF_PGA_CTL1 0x3D ++#define REG_MISC_SET_1 0x3E ++#define REG_PCMBTMUX 0x3F ++#define REG_RX_PATH_SEL 0x43 ++#define REG_VDL_APGA_CTL 0x44 ++#define REG_VIBRA_CTL 0x45 ++#define REG_VIBRA_SET 0x46 ++#define REG_VIBRA_PWM_SET 0x47 ++#define REG_ANAMIC_GAIN 0x48 ++#define REG_MISC_SET_2 0x49 ++ ++#define TWL4030_CACHEREGNUM REG_MISC_SET_2 + 1 ++ ++/* Bitfield Definitions */ ++ ++/* CODEC_MODE Fields */ ++ ++#define APLL_RATE 0xF0 ++#define APLL_RATE_8000 0x00 ++#define APLL_RATE_11025 0x10 ++#define APLL_RATE_12000 0x20 ++#define APLL_RATE_16000 0x40 ++#define APLL_RATE_22050 0x50 ++#define APLL_RATE_24000 0x60 ++#define APLL_RATE_32000 0x80 ++#define APLL_RATE_44100 0x90 ++#define APLL_RATE_48000 0xa0 ++#define SEL_16K 0x04 ++#define CODECPDZ 0x02 ++#define OPT_MODE 0x01 ++ ++/* AUDIO_IF Fields */ ++ ++#define AIF_SLAVE_EN 0x80 ++#define DATA_WIDTH 0x60 ++#define DATA_WIDTH_16S_16W 0x00 ++#define DATA_WIDTH_32S_16W 0x40 ++#define DATA_WIDTH_32S_24W 0x60 ++#define AIF_FORMAT 0x18 ++#define AIF_FORMAT_CODEC 0x00 ++#define AIF_FORMAT_LEFT 0x08 ++#define AIF_FORMAT_RIGHT 0x10 ++#define AIF_FORMAT_TDM 0x18 ++#define AIF_TRI_EN 0x04 ++#define CLK256FS_EN 0x02 ++#define AIF_EN 0x01 ++ ++ ++extern struct snd_soc_codec_dai twl4030_dai; ++extern struct snd_soc_codec_device soc_codec_dev_twl4030; ++ ++#endif /* End of __TWL4030_AUDIO_H__ */ +diff --git a/sound/soc/omap/Kconfig b/sound/soc/omap/Kconfig +index 0230d83..8703cea 100644 +--- a/sound/soc/omap/Kconfig ++++ b/sound/soc/omap/Kconfig +@@ -16,4 +16,20 @@ config SND_OMAP_SOC_N810 + help + Say Y if you want to add support for SoC audio on Nokia N810. + ++config SND_OMAP_SOC_OMAP3EVM ++ tristate "SoC Audio support for OMAP3 EVM" ++ depends on SND_OMAP_SOC && MACH_OMAP3EVM ++ select SND_OMAP_SOC_MCBSP ++ select SND_SOC_TWL4030 ++ help ++ Say Y if you want to add support for SoC audio on the OMAP3 EVM. ++ ++config SND_OMAP_SOC_OMAP3BEAGLE ++ tristate "SoC Audio support for OMAP3 Beagle" ++ depends on SND_OMAP_SOC && MACH_OMAP3_BEAGLE ++ select SND_OMAP_SOC_MCBSP ++ select SND_SOC_TWL4030 ++ help ++ Say Y if you want to add support for SoC audio on the OMAP3 Beagle. ++ + endmenu +diff --git a/sound/soc/omap/Makefile b/sound/soc/omap/Makefile +index d8d8d58..638a240 100644 +--- a/sound/soc/omap/Makefile ++++ b/sound/soc/omap/Makefile +@@ -7,5 +7,10 @@ obj-$(CONFIG_SND_OMAP_SOC_MCBSP) += snd-soc-omap-mcbsp.o + + # OMAP Machine Support + snd-soc-n810-objs := n810.o ++snd-soc-omap3evm-objs := omap3evm.o ++snd-soc-omap3beagle-objs := omap3beagle.o + + obj-$(CONFIG_SND_OMAP_SOC_N810) += snd-soc-n810.o ++obj-$(CONFIG_SND_OMAP_SOC_OMAP3EVM) += snd-soc-omap3evm.o ++obj-$(CONFIG_SND_OMAP_SOC_OMAP3BEAGLE) += snd-soc-omap3beagle.o ++ +diff --git a/sound/soc/omap/omap3beagle.c b/sound/soc/omap/omap3beagle.c +new file mode 100644 +index 0000000..fb79938 +--- /dev/null ++++ b/sound/soc/omap/omap3beagle.c +@@ -0,0 +1,180 @@ ++/* ++ * omap3beagle.c -- SoC audio for OMAP3 Beagle ++ * ++ * Author: Steve Sakoman <steve@sakoman.com> ++ * ++ * 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. ++ * ++ * 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., 51 Franklin St, Fifth Floor, Boston, MA ++ * 02110-1301 USA ++ * ++ */ ++ ++#include <linux/clk.h> ++#include <linux/platform_device.h> ++#include <sound/core.h> ++#include <sound/pcm.h> ++#include <sound/soc.h> ++#include <sound/soc-dapm.h> ++ ++#include <asm/mach-types.h> ++#include <asm/arch/hardware.h> ++#include <asm/arch/gpio.h> ++#include <asm/arch/mcbsp.h> ++ ++#include "omap-mcbsp.h" ++#include "omap-pcm.h" ++#include "../codecs/twl4030.h" ++ ++static int omap3beagle_hw_params(struct snd_pcm_substream *substream, ++ struct snd_pcm_hw_params *params) ++{ ++ struct snd_soc_pcm_runtime *rtd = substream->private_data; ++ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai; ++ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai; ++ int ret; ++ ++ /* Set codec DAI configuration */ ++ ret = codec_dai->dai_ops.set_fmt(codec_dai, ++ SND_SOC_DAIFMT_I2S | ++ SND_SOC_DAIFMT_NB_NF | ++ SND_SOC_DAIFMT_CBM_CFM); ++ if (ret < 0) { ++ printk(KERN_INFO "can't set codec DAI configuration\n"); ++ return ret; ++ } ++ ++ /* Set cpu DAI configuration */ ++ ret = cpu_dai->dai_ops.set_fmt(cpu_dai, ++ SND_SOC_DAIFMT_I2S | ++ SND_SOC_DAIFMT_NB_NF | ++ SND_SOC_DAIFMT_CBM_CFM); ++ if (ret < 0) { ++ printk(KERN_INFO "can't set cpu DAI configuration\n"); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static struct snd_soc_ops omap3beagle_ops = { ++ .hw_params = omap3beagle_hw_params, ++}; ++ ++static const struct snd_soc_dapm_widget twl4030_dapm_widgets[] = { ++ SND_SOC_DAPM_HP("Headphone Jack", NULL), ++ SND_SOC_DAPM_LINE("Line In", NULL), ++}; ++ ++static const char *audio_map[][3] = { ++ {"Headphone Jack", NULL, "HPLOUT"}, ++ {"Headphone Jack", NULL, "HPROUT"}, ++ ++ {"Line In", NULL, "Line In"}, ++ {"Line In", NULL, "Line In"}, ++}; ++ ++static int omap3beagle_twl4030_init(struct snd_soc_codec *codec) ++{ ++ int i; ++ ++ printk(KERN_INFO "OMAP3 Beagle TWL4030 SoC init\n"); ++ ++ /* Add omap3beagle specific widgets */ ++ for (i = 0; i < ARRAY_SIZE(twl4030_dapm_widgets); i++) ++ snd_soc_dapm_new_control(codec, &twl4030_dapm_widgets[i]); ++ ++ /* Set up omap3beagle specific audio path audio_map */ ++ for (i = 0; i < ARRAY_SIZE(audio_map); i++) ++ snd_soc_dapm_connect_input(codec, audio_map[i][0], ++ audio_map[i][1], audio_map[i][2]); ++ ++ /* always connected */ ++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1); ++ snd_soc_dapm_set_endpoint(codec, "Line In", 1); ++ ++ snd_soc_dapm_sync_endpoints(codec); ++ ++ return 0; ++} ++ ++/* Digital audio interface glue - connects codec <--> CPU */ ++static struct snd_soc_dai_link omap3beagle_dai = { ++ .name = "TWL4030", ++ .stream_name = "TWL4030", ++ .cpu_dai = &omap_mcbsp_dai[0], ++ .codec_dai = &twl4030_dai, ++ .init = omap3beagle_twl4030_init, ++ .ops = &omap3beagle_ops, ++}; ++ ++/* Audio machine driver */ ++static struct snd_soc_machine snd_soc_machine_omap3beagle = { ++ .name = "omap3beagle", ++ .dai_link = &omap3beagle_dai, ++ .num_links = 1, ++}; ++ ++/* Audio subsystem */ ++static struct snd_soc_device omap3beagle_snd_devdata = { ++ .machine = &snd_soc_machine_omap3beagle, ++ .platform = &omap_soc_platform, ++ .codec_dev = &soc_codec_dev_twl4030, ++}; ++ ++static struct platform_device *omap3beagle_snd_device; ++ ++static int __init omap3beagle_soc_init(void) ++{ ++ int ret; ++ ++ printk(KERN_INFO "OMAP3 Beagle SoC init\n"); ++ if (!machine_is_omap3_beagle()) { ++ printk(KERN_INFO "Not OMAP3 Beagle!\n"); ++ return -ENODEV; ++ } ++ ++ omap3beagle_snd_device = platform_device_alloc("soc-audio", -1); ++ if (!omap3beagle_snd_device) { ++ printk(KERN_INFO "Platform device allocation failed\n"); ++ return -ENOMEM; ++ } ++ ++ platform_set_drvdata(omap3beagle_snd_device, &omap3beagle_snd_devdata); ++ omap3beagle_snd_devdata.dev = &omap3beagle_snd_device->dev; ++ *(unsigned int *)omap3beagle_dai.cpu_dai->private_data = 1; /* McBSP2 */ ++ ++ ret = platform_device_add(omap3beagle_snd_device); ++ if (ret) ++ goto err1; ++ ++ return 0; ++ ++err1: ++ printk(KERN_INFO "Unable to add platform device\n"); ++ platform_device_put(omap3beagle_snd_device); ++ ++ return ret; ++} ++ ++static void __exit omap3beagle_soc_exit(void) ++{ ++ printk(KERN_INFO "OMAP3 Beagle SoC exit\n"); ++ platform_device_unregister(omap3beagle_snd_device); ++} ++ ++module_init(omap3beagle_soc_init); ++module_exit(omap3beagle_soc_exit); ++ ++MODULE_AUTHOR("Steve Sakoman <steve@sakoman.com>"); ++MODULE_DESCRIPTION("ALSA SoC OMAP3 Beagle"); ++MODULE_LICENSE("GPL"); +diff --git a/sound/soc/omap/omap3evm.c b/sound/soc/omap/omap3evm.c +new file mode 100644 +index 0000000..32d4f5d +--- /dev/null ++++ b/sound/soc/omap/omap3evm.c +@@ -0,0 +1,180 @@ ++/* ++ * omap3evm.c -- SoC audio for OMAP3 EVM ++ * ++ * Author: Steve Sakoman <steve@sakoman.com> ++ * ++ * 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. ++ * ++ * 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., 51 Franklin St, Fifth Floor, Boston, MA ++ * 02110-1301 USA ++ * ++ */ ++ ++#include <linux/clk.h> ++#include <linux/platform_device.h> ++#include <sound/core.h> ++#include <sound/pcm.h> ++#include <sound/soc.h> ++#include <sound/soc-dapm.h> ++ ++#include <asm/mach-types.h> ++#include <asm/arch/hardware.h> ++#include <asm/arch/gpio.h> ++#include <asm/arch/mcbsp.h> ++ ++#include "omap-mcbsp.h" ++#include "omap-pcm.h" ++#include "../codecs/twl4030.h" ++ ++static int omap3evm_hw_params(struct snd_pcm_substream *substream, ++ struct snd_pcm_hw_params *params) ++{ ++ struct snd_soc_pcm_runtime *rtd = substream->private_data; ++ struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai; ++ struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai; ++ int ret; ++ ++ /* Set codec DAI configuration */ ++ ret = codec_dai->dai_ops.set_fmt(codec_dai, ++ SND_SOC_DAIFMT_I2S | ++ SND_SOC_DAIFMT_NB_NF | ++ SND_SOC_DAIFMT_CBM_CFM); ++ if (ret < 0) { ++ printk(KERN_INFO "can't set codec DAI configuration\n"); ++ return ret; ++ } ++ ++ /* Set cpu DAI configuration */ ++ ret = cpu_dai->dai_ops.set_fmt(cpu_dai, ++ SND_SOC_DAIFMT_I2S | ++ SND_SOC_DAIFMT_NB_NF | ++ SND_SOC_DAIFMT_CBM_CFM); ++ if (ret < 0) { ++ printk(KERN_INFO "can't set cpu DAI configuration\n"); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static struct snd_soc_ops omap3evm_ops = { ++ .hw_params = omap3evm_hw_params, ++}; ++ ++static const struct snd_soc_dapm_widget twl4030_dapm_widgets[] = { ++ SND_SOC_DAPM_HP("Headphone Jack", NULL), ++ SND_SOC_DAPM_LINE("Line In", NULL), ++}; ++ ++static const char *audio_map[][3] = { ++ {"Headphone Jack", NULL, "HPLOUT"}, ++ {"Headphone Jack", NULL, "HPROUT"}, ++ ++ {"Line In", NULL, "Line In"}, ++ {"Line In", NULL, "Line In"}, ++}; ++ ++static int omap3evm_twl4030_init(struct snd_soc_codec *codec) ++{ ++ int i; ++ ++ printk(KERN_INFO "OMAP3 EVM TWL4030 SoC init\n"); ++ ++ /* Add omap3evm specific widgets */ ++ for (i = 0; i < ARRAY_SIZE(twl4030_dapm_widgets); i++) ++ snd_soc_dapm_new_control(codec, &twl4030_dapm_widgets[i]); ++ ++ /* Set up omap3evm specific audio path audio_map */ ++ for (i = 0; i < ARRAY_SIZE(audio_map); i++) ++ snd_soc_dapm_connect_input(codec, audio_map[i][0], ++ audio_map[i][1], audio_map[i][2]); ++ ++ /* always connected */ ++ snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1); ++ snd_soc_dapm_set_endpoint(codec, "Line In", 1); ++ ++ snd_soc_dapm_sync_endpoints(codec); ++ ++ return 0; ++} ++ ++/* Digital audio interface glue - connects codec <--> CPU */ ++static struct snd_soc_dai_link omap3evm_dai = { ++ .name = "TWL4030", ++ .stream_name = "TWL4030", ++ .cpu_dai = &omap_mcbsp_dai[0], ++ .codec_dai = &twl4030_dai, ++ .init = omap3evm_twl4030_init, ++ .ops = &omap3evm_ops, ++}; ++ ++/* Audio machine driver */ ++static struct snd_soc_machine snd_soc_machine_omap3evm = { ++ .name = "omap3evm", ++ .dai_link = &omap3evm_dai, ++ .num_links = 1, ++}; ++ ++/* Audio subsystem */ ++static struct snd_soc_device omap3evm_snd_devdata = { ++ .machine = &snd_soc_machine_omap3evm, ++ .platform = &omap_soc_platform, ++ .codec_dev = &soc_codec_dev_twl4030, ++}; ++ ++static struct platform_device *omap3evm_snd_device; ++ ++static int __init omap3evm_soc_init(void) ++{ ++ int ret; ++ ++ printk(KERN_INFO "OMAP3 EVM SoC init\n"); ++ if (!machine_is_omap3evm()) { ++ printk(KERN_INFO "Not OMAP3 EVM!\n"); ++ return -ENODEV; ++ } ++ ++ omap3evm_snd_device = platform_device_alloc("soc-audio", -1); ++ if (!omap3evm_snd_device) { ++ printk(KERN_INFO "Platform device allocation failed\n"); ++ return -ENOMEM; ++ } ++ ++ platform_set_drvdata(omap3evm_snd_device, &omap3evm_snd_devdata); ++ omap3evm_snd_devdata.dev = &omap3evm_snd_device->dev; ++ *(unsigned int *)omap3evm_dai.cpu_dai->private_data = 1; /* McBSP2 */ ++ ++ ret = platform_device_add(omap3evm_snd_device); ++ if (ret) ++ goto err1; ++ ++ return 0; ++ ++err1: ++ printk(KERN_INFO "Unable to add platform device\n"); ++ platform_device_put(omap3evm_snd_device); ++ ++ return ret; ++} ++ ++static void __exit omap3evm_soc_exit(void) ++{ ++ printk(KERN_INFO "OMAP3 EVM SoC exit\n"); ++ platform_device_unregister(omap3evm_snd_device); ++} ++ ++module_init(omap3evm_soc_init); ++module_exit(omap3evm_soc_exit); ++ ++MODULE_AUTHOR("Steve Sakoman <steve@sakoman.com>"); ++MODULE_DESCRIPTION("ALSA SoC OMAP3 EVM"); ++MODULE_LICENSE("GPL"); diff --git a/packages/linux/linux-omap2-git/omap3evm/timer-suppression.patch b/packages/linux/linux-omap2-git/omap3evm/timer-suppression.patch new file mode 100644 index 0000000000..04362c96e3 --- /dev/null +++ b/packages/linux/linux-omap2-git/omap3evm/timer-suppression.patch @@ -0,0 +1,43 @@ +diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c +index b854a89..26f5569 100644 +--- a/kernel/time/tick-sched.c ++++ b/kernel/time/tick-sched.c +@@ -253,6 +253,16 @@ void tick_nohz_stop_sched_tick(void) + + /* Schedule the tick, if we are at least one jiffie off */ + if ((long)delta_jiffies >= 1) { ++ /* ++ * calculate the expiry time for the next timer wheel ++ * timer ++ */ ++ expires = ktime_add_ns(last_update, tick_period.tv64 * ++ delta_jiffies); ++ ++ /* Skip reprogram of event if its not changed */ ++ if(ts->tick_stopped && ktime_equal(expires, dev->next_event)) ++ goto out2; + + if (delta_jiffies > 1) + cpu_set(cpu, nohz_cpu_mask); +@@ -304,12 +314,7 @@ void tick_nohz_stop_sched_tick(void) + goto out; + } + +- /* +- * calculate the expiry time for the next timer wheel +- * timer +- */ +- expires = ktime_add_ns(last_update, tick_period.tv64 * +- delta_jiffies); ++ /* Mark expiries */ + ts->idle_expires = expires; + + if (ts->nohz_mode == NOHZ_MODE_HIGHRES) { +@@ -328,6 +333,7 @@ void tick_nohz_stop_sched_tick(void) + tick_do_update_jiffies64(ktime_get()); + cpu_clear(cpu, nohz_cpu_mask); + } ++out2: + raise_softirq_irqoff(TIMER_SOFTIRQ); + out: + ts->next_jiffies = next_jiffies; diff --git a/packages/linux/linux-omap2-git/omap3evm/touchscreen.patch b/packages/linux/linux-omap2-git/omap3evm/touchscreen.patch new file mode 100644 index 0000000000..2325c401e4 --- /dev/null +++ b/packages/linux/linux-omap2-git/omap3evm/touchscreen.patch @@ -0,0 +1,22 @@ +diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c +index d8109ae..f8ce669 100644 +--- a/arch/arm/mach-omap2/board-omap3evm.c ++++ b/arch/arm/mach-omap2/board-omap3evm.c +@@ -128,8 +128,16 @@ static int ads7846_get_pendown_state(void) + } + + struct ads7846_platform_data ads7846_config = { ++ .x_max = 0x0fff, ++ .y_max = 0x0fff, ++ .x_plate_ohms = 180, ++ .pressure_max = 255, ++ .debounce_max = 10, ++ .debounce_tol = 3, ++ .debounce_rep = 1, + .get_pendown_state = ads7846_get_pendown_state, + .keep_vref_on = 1, ++ .settle_delay_usecs = 150, + }; + + static struct omap2_mcspi_device_config ads7846_mcspi_config = { + diff --git a/packages/linux/linux-omap2_git.bb b/packages/linux/linux-omap2_git.bb index 0fcda6d6ad..8392ff7308 100644 --- a/packages/linux/linux-omap2_git.bb +++ b/packages/linux/linux-omap2_git.bb @@ -2,10 +2,10 @@ require linux-omap.inc FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-omap2-git/${MACHINE}" -SRCREV = "c32c81d59d2d8a66e63f82c9732db256d302068e" +SRCREV = "7786cd7a00ae0b18923185789380a88052f4eee7" -PV = "2.6.25+2.6.26-rc8+${PR}+git${SRCREV}" -PR = "r39" +PV = "2.6.25+2.6.26-rc9+${PR}+git${SRCREV}" +PR = "r40" SRC_URI = "git://source.mvista.com/git/linux-omap-2.6.git;protocol=git \ file://defconfig" diff --git a/packages/meta/meta-toolchain-neuros.bb b/packages/meta/meta-toolchain-neuros.bb new file mode 100644 index 0000000000..5905eceec1 --- /dev/null +++ b/packages/meta/meta-toolchain-neuros.bb @@ -0,0 +1,14 @@ +# Toolchain for neuros-osd devices + +PR = "r1" + +TOOLCHAIN_HOST_TASK = "task-sdk-host" + +require meta-toolchain.bb + +TOOLCHAIN_TARGET_TASK += " \ + dbus dbus-dev \ + qt-embedded qt-embedded-dev \ + " + +SDK_SUFFIX = "toolchain-neuros" diff --git a/packages/neuros-pkggen/.mtn2git_empty b/packages/neuros-pkggen/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/neuros-pkggen/.mtn2git_empty diff --git a/packages/neuros-pkggen/files/.mtn2git_empty b/packages/neuros-pkggen/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/neuros-pkggen/files/.mtn2git_empty diff --git a/packages/neuros-pkggen/files/Makefile b/packages/neuros-pkggen/files/Makefile new file mode 100644 index 0000000000..fed6835d06 --- /dev/null +++ b/packages/neuros-pkggen/files/Makefile @@ -0,0 +1,68 @@ +# * Copyright(C) 2007 Neuros Technology International LLC. +# * <www.neurostechnology.com> +# * +# * ubootcmd application make file..............TQ 2007-02-05 + + +# include system config +include config + + +# executable name +NT_PACKET := packet_osd2 + + +# project directories +PACKET_DIR_ROOT := . + +# compiler flags +CFLAGS += $(DEFINES) -Wall -Werror + +# object files +OBJS := package.o crc32.o + +# build all +.PHONY: all +all: $(NT_PACKET) + +$(NT_PACKET): $(OBJS) + $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) + +# install +install: $(NT_PACKET) + @echo + @echo "Installing $(NT_PACKET) ... " + @cp $(NT_PACKET) $(BSP_ROOT)/images/ + @echo + +# clean up project +.PHONY: clean + +clean: + @echo + @rm -f $(NT_PACKET) + @for dir in $(PACKET_DIR_ROOT); do \ + echo "Entering $$dir ..."; \ + for file in $$dir/*~ $$dir/*.o $$dir/*.d; do \ + if [ -f $$file ]; then \ + echo "removing $$file"; \ + rm $$file; \ + fi; \ + done; \ + done + @echo + +# include the C include dependencies +-include $(OBJS:.o=.d) + + +# calculate C inlcude dependencies +%.d: %.c + @set -e; rm -f $@; \ + $(CC) -MM $(CFLAGS) $< > $@.$$$$; \ + sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ + rm -f $@.$$$$ + + +# include make rules. +include Makefile.rules diff --git a/packages/neuros-pkggen/files/Makefile.rules b/packages/neuros-pkggen/files/Makefile.rules new file mode 100644 index 0000000000..17550c5e39 --- /dev/null +++ b/packages/neuros-pkggen/files/Makefile.rules @@ -0,0 +1,18 @@ +# * Copyright(C) 2007 Neuros Technology International LLC. +# * <www.neurostechnology.com> +# * +# * Terminal application make rules..........TQ 2007-02-05 + +## build target config. +ifeq ($(BUILD_TARGET), ARM) +DEFINES += -DBUILD_TARGET_ARM=1 +else +DEFINES += -DBUILD_TARGET_ARM=0 +endif + +## global test code switch. +ifeq ($(INCLUDE_TEST_CODE), YES) +DEFINES += -DTERMINAL_TEST_CODE=1 +else +DEFINES += -DTERMINAL_TEST_CODE=0 +endif diff --git a/packages/neuros-pkggen/files/config b/packages/neuros-pkggen/files/config new file mode 100644 index 0000000000..d323978b6d --- /dev/null +++ b/packages/neuros-pkggen/files/config @@ -0,0 +1,40 @@ +# * Copyright(C) 2007 Neuros Technology International LLC. +# * <www.neurostechnology.com> +# * +# * Terminal application config file.........TQ 2007-02-05 + +# build target +# ARM -- Neuros hardware. +# HOST -- Host PC +BUILD_TARGET := HOST + +# global test code switch +# YES -- include test code +# NO -- exclude all test code +INCLUDE_TEST_CODE:= NO + +# BSP root directory +BSP_ROOT := $(PRJROOT) + + +# setting up tools etc. +ifeq ($(BUILD_TARGET), ARM) + TOOLS_PREFIX :=arm-linux- + PROJ_TERMINAL_ENV :="--ARM--" + TOOLS_PATH :=${PATH}:${BSP_ROOT}/toolchain/bin +endif +ifeq ($(BUILD_TARGET), HOST) + TOOLS_PREFIX:= + PROJ_TERMINAL_ENV="--HOST--" + TOOLS_PATH :=${PATH} +endif +PATH:=${TOOLS_PATH} + + +# tools definition +CC := $(TOOLS_PREFIX)gcc +CXX := $(TOOLS_PREFIX)g++ +AR := $(TOOLS_PREFIX)ar +LD := $(TOOLS_PREFIX)ld +NM := $(TOOLS_PREFIX)nm +STRIP := $(TOOLS_PREFIX)strip diff --git a/packages/neuros-pkggen/files/crc32.c b/packages/neuros-pkggen/files/crc32.c new file mode 100644 index 0000000000..995a11413d --- /dev/null +++ b/packages/neuros-pkggen/files/crc32.c @@ -0,0 +1,198 @@ +/* + * This file is derived from crc32.c from the zlib-1.1.3 distribution + * by Jean-loup Gailly and Mark Adler. + */ + +/* crc32.c -- compute the CRC-32 of a data stream + * Copyright (C) 1995-1998 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ +#if 0 +#ifndef USE_HOSTCC /* Shut down "ANSI does not permit..." warnings */ +#include <common.h> /* to get command definitions like CFG_CMD_JFFS2 */ +#endif +#endif + +#include "zlib.h" + +#define local static +#define ZEXPORT /* empty */ +unsigned long crc32 (unsigned long, const unsigned char *, unsigned int); + +#ifdef DYNAMIC_CRC_TABLE + +local int crc_table_empty = 1; +local uLongf crc_table[256]; +local void make_crc_table OF((void)); + +/* + Generate a table for a byte-wise 32-bit CRC calculation on the polynomial: + x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1. + + Polynomials over GF(2) are represented in binary, one bit per coefficient, + with the lowest powers in the most significant bit. Then adding polynomials + is just exclusive-or, and multiplying a polynomial by x is a right shift by + one. If we call the above polynomial p, and represent a byte as the + polynomial q, also with the lowest power in the most significant bit (so the + byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, + where a mod b means the remainder after dividing a by b. + + This calculation is done using the shift-register method of multiplying and + taking the remainder. The register is initialized to zero, and for each + incoming bit, x^32 is added mod p to the register if the bit is a one (where + x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by + x (which is shifting right by one and adding x^32 mod p if the bit shifted + out is a one). We start with the highest power (least significant bit) of + q and repeat for all eight bits of q. + + The table is simply the CRC of all possible eight bit values. This is all + the information needed to generate CRC's on data a byte at a time for all + combinations of CRC register values and incoming bytes. +*/ +local void make_crc_table() +{ + uLong c; + int n, k; + uLong poly; /* polynomial exclusive-or pattern */ + /* terms of polynomial defining this crc (except x^32): */ + static const Byte p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26}; + + /* make exclusive-or pattern from polynomial (0xedb88320L) */ + poly = 0L; + for (n = 0; n < sizeof(p)/sizeof(Byte); n++) + poly |= 1L << (31 - p[n]); + + for (n = 0; n < 256; n++) + { + c = (uLong)n; + for (k = 0; k < 8; k++) + c = c & 1 ? poly ^ (c >> 1) : c >> 1; + crc_table[n] = c; + } + crc_table_empty = 0; +} +#else +/* ======================================================================== + * Table of CRC-32's of all single-byte values (made by make_crc_table) + */ +local const uLongf crc_table[256] = { + 0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L, + 0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L, + 0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L, + 0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL, + 0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L, + 0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L, + 0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L, + 0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL, + 0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L, + 0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL, + 0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L, + 0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L, + 0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L, + 0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL, + 0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL, + 0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L, + 0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL, + 0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L, + 0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L, + 0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L, + 0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL, + 0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L, + 0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L, + 0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL, + 0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L, + 0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L, + 0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L, + 0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L, + 0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L, + 0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL, + 0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL, + 0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L, + 0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L, + 0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL, + 0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL, + 0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L, + 0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL, + 0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L, + 0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL, + 0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L, + 0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL, + 0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L, + 0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L, + 0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL, + 0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L, + 0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L, + 0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L, + 0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L, + 0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L, + 0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L, + 0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL, + 0x2d02ef8dL +}; +#endif + +#if 0 +/* ========================================================================= + * This function can be used by asm versions of crc32() + */ +const uLongf * ZEXPORT get_crc_table() +{ +#ifdef DYNAMIC_CRC_TABLE + if (crc_table_empty) make_crc_table(); +#endif + return (const uLongf *)crc_table; +} +#endif + +/* ========================================================================= */ +#define DO1(buf) crc = crc_table[((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8); +#define DO2(buf) DO1(buf); DO1(buf); +#define DO4(buf) DO2(buf); DO2(buf); +#define DO8(buf) DO4(buf); DO4(buf); + +/* ========================================================================= */ +uLong ZEXPORT crc32(crc, buf, len) + uLong crc; + const Bytef *buf; + uInt len; +{ +#ifdef DYNAMIC_CRC_TABLE + if (crc_table_empty) + make_crc_table(); +#endif + crc = crc ^ 0xffffffffL; + while (len >= 8) + { + DO8(buf); + len -= 8; + } + if (len) do { + DO1(buf); + } while (--len); + return crc ^ 0xffffffffL; +} + +#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) + +/* No ones complement version. JFFS2 (and other things ?) + * don't use ones compliment in their CRC calculations. + */ +uLong ZEXPORT crc32_no_comp(uLong crc, const Bytef *buf, uInt len) +{ +#ifdef DYNAMIC_CRC_TABLE + if (crc_table_empty) + make_crc_table(); +#endif + while (len >= 8) + { + DO8(buf); + len -= 8; + } + if (len) do { + DO1(buf); + } while (--len); + + return crc; +} + +#endif /* CFG_CMD_JFFS2 */ diff --git a/packages/neuros-pkggen/files/package.c b/packages/neuros-pkggen/files/package.c new file mode 100644 index 0000000000..853d4384db --- /dev/null +++ b/packages/neuros-pkggen/files/package.c @@ -0,0 +1,410 @@ +/* + * Copyright(C) 2005 Neuros Technology International LLC. + * <www.neurostechnology.com> + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that, in addition to its + * original purpose to support Neuros hardware, it will be useful + * otherwise, 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. + * + *****************************************************************************/ +/** package.c + * + * This file for packaging some images to one package. + * The package is named r3.upk. + * + * 02/22/2005 T.Qiu + * Initial creation. + * 11/07/2007 T.Qiu + * change follow the new UPK structure + * 05/15/2008 JWU + * change for osd2.0 + */ + +#include <stdio.h> +#include <string.h> +#include <sys/stat.h> +#include "package.h" + +#define RETRYTIMES 15 +#define VER_LIMIT_LEN 14 +#define VER_HW2_LEN 4 +#define SAFE_SIZE (250*1024*1024) //250MB + +static package_header_t p_head; +static image_info_t i_info[10]; + +static void print_image_info(image_info_t *iif) +{ + printf("iif->i_type: %x\n", iif->i_type); + printf("iif->i_imagesize: %d\n", iif->i_imagesize); + printf("iif->i_startaddr_p: %d\n", iif->i_startaddr_p); + printf("iif->i_startaddr_f: %x\n", iif->i_startaddr_f); + printf("iif->i_endaddr_f: %x\n", iif->i_endaddr_f); + printf("iif->i_name: %s\n", iif->i_name); + printf("iif->i_version: %s\n", iif->i_version); +} + +static void print_head_info(void) +{ + package_header_t *phd = &p_head; + + printf("phd->p_headsize: %x\n", phd->p_headsize); + printf("phd->p_reserve: %x\n", phd->p_reserve); + printf("phd->p_headcrc: %x\n", phd->p_headcrc); + printf("phd->p_datasize: %d\n", phd->p_datasize); + printf("phd->p_datacrc: %x\n", phd->p_datacrc); + printf("phd->p_name: %s\n", phd->p_name); + printf("phd->p_vuboot: %s\n", phd->p_vuboot); + printf("phd->p_vkernel: %s\n", phd->p_vkernel); + printf("phd->p_vrootfs: %s\n", phd->p_vrootfs); + printf("phd->p_imagenum: %x\n", phd->p_imagenum); +} + +static void print_version_info(version_info *ver_t) +{ + printf("ver_t->upk_desc: %s\n", ver_t->upk_desc); + printf("ver_t->pack_id: %s\n", ver_t->pack_id); + printf("ver_t->os_ver : %s\n", ver_t->os_ver); + printf("ver_t->app_ver: %s\n", ver_t->app_ver); +} + +static int pack_firmware(FILE *fp_w, uint32 offst, int num, char *name[]) +{ + FILE *fp_r; + int i, j; + uint32 curptr, extcrc; + char ch; + package_header_t *phd = &p_head; + image_info_t *iif; + + /* read version file */ + if ((fp_r = fopen(UBOOT_VER_FILE, "rb")) == NULL) + { + printf("Can't open uboot version file: %s\n", UBOOT_VER_FILE); + return(-1); + } + j=0; + while (1) + { + if (feof(fp_r)) break; + if (j > VER_LIMIT_LEN+1) + { + printf("uboot version can't be longer than 14\n"); + goto bail; + } + phd->p_vuboot[j] = fgetc(fp_r); + if ((phd->p_vuboot[j]==0x0d) || (phd->p_vuboot[j]==0x0a)) + phd->p_vuboot[j] = '\0'; + j++; + } + fclose(fp_r); + + if ((fp_r = fopen(KERNEL_VER_FILE, "rb")) == NULL) + { + printf("Can't open kernel version file: %s\n", KERNEL_VER_FILE); + return(-1); + } + j=0; + while (1) + { + if (feof(fp_r)) break; + if (j > VER_LIMIT_LEN+1) + { + printf("kernel version can't be longer than 14\n"); + goto bail; + } + phd->p_vkernel[j]=fgetc(fp_r); + if ((phd->p_vkernel[j]==0x0d) || (phd->p_vkernel[j]==0x0a)) + phd->p_vkernel[j] = '\0'; + j++; + } + fclose(fp_r); + + if ((fp_r = fopen(ROOTFS_VER_FILE, "rb")) == NULL) + { + printf("Can't open rootfs version file: %s\n", ROOTFS_VER_FILE); + return(-1); + } + j=0; + while (1) + { + if (feof(fp_r)) break; + if (j > VER_LIMIT_LEN+1) + { + printf("rootfs version can't be longer than 14\n"); + goto bail; + } + phd->p_vrootfs[j] = fgetc(fp_r); + if ((phd->p_vrootfs[j]==0x0d) ||(phd->p_vrootfs[j]==0x0a)) + phd->p_vrootfs[j] = '\0'; + j++; + } + fclose(fp_r); + + phd->p_imagenum = (uint8)num; + phd->p_headsize = sizeof(package_header_t) + phd->p_imagenum * sizeof(image_info_t); + + /* Bit[3] use to indicate osd2.0 package */ + phd->p_reserve = 0x08; + + phd->p_datasize = 0; + phd->p_datacrc = 0; + phd->p_headcrc = 0; + + curptr = phd->p_headsize + sizeof(version_info); + + for (i=0; i < phd->p_imagenum; i++) + { + /* image info */ + iif = &i_info[i]; + if (strncmp(name[i], ROOTFS_FILE_NAME, strlen(ROOTFS_FILE_NAME)) == 0) + { + iif->i_type = IH_TYPE_ROOTFS; + strncpy((char *)iif->i_name, ROOTFS_FILE_NAME, NAMELEN-1); + + if ((fp_r = fopen(ROOTFS_VER_FILE, "rb")) == NULL) + { + printf("Can't open kernel version file: %s\n", ROOTFS_VER_FILE); + break; + } + for (j = 0; j < sizeof(iif->i_version); j++) + { + if (feof(fp_r)) break; + iif->i_version[j] = fgetc(fp_r); + if ((iif->i_version[j]==0x0d) || (iif->i_version[j]==0x0a)) + iif->i_version[j] = '\0'; + } + fclose(fp_r); + } + else if (strncmp(name[i], KERNEL_FILE_NAME, strlen(KERNEL_FILE_NAME)) == 0) + { + iif->i_type = IH_TYPE_KERNEL; + strncpy((char *)iif->i_name, KERNEL_FILE_NAME, NAMELEN-1); + + if ((fp_r = fopen(KERNEL_VER_FILE, "rb")) == NULL) + { + printf("Can't open kernel version file: %s\n", KERNEL_VER_FILE); + break; + } + for (j = 0; j < sizeof(iif->i_version); j++) + { + if (feof(fp_r)) break; + iif->i_version[j] = fgetc(fp_r); + if ((iif->i_version[j]==0x0d) ||(iif->i_version[j]==0x0a)) + iif->i_version[j] = '\0'; + } + fclose(fp_r); + } + else if (strncmp(name[i], UBOOT_FILE_NAME, strlen(UBOOT_FILE_NAME)) == 0) + { + iif->i_type = IH_TYPE_UBOOT; + strncpy((char *)iif->i_name, UBOOT_FILE_NAME, NAMELEN-1); + + if ((fp_r = fopen(UBOOT_VER_FILE, "rb")) == NULL) + { + printf("Can't open uboot version file: %s\n", UBOOT_VER_FILE); + break; + } + for (j = 0; j < sizeof(iif->i_version); j++) + { + if (feof(fp_r)) break; + iif->i_version[j] = fgetc(fp_r); + if ((iif->i_version[j]==0x0d)|| (iif->i_version[j]==0x0a)) + iif->i_version[j] = '\0'; + } + fclose(fp_r); + } + else if (strncmp(name[i], SCRIPT_FILE_NAME, strlen(SCRIPT_FILE_NAME)) == 0) + { + iif->i_type = IH_TYPE_SCRIPT; + strncpy((char *)iif->i_name, SCRIPT_FILE_NAME, NAMELEN-1); + } + + /* address in flash*/ + switch (iif->i_type) + { + case IH_TYPE_ROOTFS: + iif->i_startaddr_f = ROOTFS_ADDR_START; + iif->i_endaddr_f = ROOTFS_ADDR_END; + break; + case IH_TYPE_KERNEL: + iif->i_startaddr_f = KERNEL_ADDR_START; + iif->i_endaddr_f = KERNEL_ADDR_END; + break; + case IH_TYPE_UBOOT: + iif->i_startaddr_f = UBOOT_ADDR_START; + iif->i_endaddr_f = UBOOT_ADDR_END; + break; + case IH_TYPE_SCRIPT: + break; + default: + printf("un-handle image type\n"); + break; + } + + /* write whole image to package and calculate the imagesize*/ + iif->i_imagesize = 0; + /* images file */ + if ((fp_r = fopen(name[i], "rb")) == NULL) + { + printf("can't open file: %s\n", name[i]); + break; + } + + fseek(fp_w, offst+curptr,SEEK_SET); + extcrc = 0; + while (!feof(fp_r)) + { + ch = fgetc(fp_r); + fputc(ch, fp_w); + phd->p_datacrc = crc32(phd->p_datacrc,(uint8 *)&ch, 1); + iif->i_imagesize ++; + } + fclose(fp_r); + + iif->i_startaddr_p = curptr-sizeof(version_info); + curptr += iif->i_imagesize; + phd->p_datasize += iif->i_imagesize; + + print_image_info(iif); /* print iff*/ + + /*write image info */ + fseek(fp_w, offst+sizeof(version_info)+sizeof(package_header_t)+i*sizeof(image_info_t), SEEK_SET); + if (fwrite(iif, sizeof(image_info_t), 1, fp_w) != 1) + { + printf("can not write iif into package\n"); + break; + } + } + + /* write package head*/ + phd->p_headcrc = crc32(phd->p_headcrc, (uint8 *)phd, sizeof(package_header_t)); + phd->p_headcrc = crc32(phd->p_headcrc, (uint8 *)i_info, phd->p_imagenum*sizeof(image_info_t)); + + print_head_info(); /* print phd */ + + fseek(fp_w, offst+sizeof(version_info), SEEK_SET); + if (fwrite((uint8 *)phd, sizeof(package_header_t), 1, fp_w) != 1) + { + printf("can not write head into package"); + return(-1); + } + return 0; + + bail: + fclose(fp_r); + + return -1; +} + +static int pack_ver_info(FILE *fp_w, uint32 offset, char *desc) +{ + version_info ver_t; + FILE *fp_r; + int i; + + memset((char *)&ver_t, 0, sizeof(version_info)); + + if (strlen(desc) >= DESCLEN) + { + printf("The upk_desc is too long\n"); + return(-1); + } + strncpy((char *)ver_t.upk_desc, desc, DESCLEN-1); + strncpy((char *)ver_t.pack_id, (char *)PACKAGE_ID, NAMELEN-1); + strncpy((char *)ver_t.os_ver, "0.00", VERLEN-1); + strncpy((char *)ver_t.app_ver, "0.00", VERLEN-1); + + if ((fp_r = fopen(KERNEL_VER_FILE, "rb")) == NULL) + { + printf("Can't open OS version file: %s\n", KERNEL_VER_FILE); + return(-1); + } + for (i = 0; i < sizeof(ver_t.os_ver); i++) + { + if (feof(fp_r)) break; + ver_t.os_ver[i] = fgetc(fp_r); + if ((ver_t.os_ver[i]==0x0d) || (ver_t.os_ver[i]==0x0a)) + ver_t.os_ver[i] = '\0'; + } + fclose(fp_r); + + if ((fp_r = fopen(ROOTFS_VER_FILE, "rb")) == NULL) + { + printf("Can't open App version file: %s\n", ROOTFS_VER_FILE); + return(-1); + } + for (i = 0; i < sizeof(ver_t.app_ver); i++) + { + if (feof(fp_r)) break; + ver_t.app_ver[i] = fgetc(fp_r); + if ((ver_t.app_ver[i]==0x0d) || (ver_t.app_ver[i]==0x0a)) + ver_t.app_ver[i] = '\0'; + } + fclose(fp_r); + + fseek(fp_w, 0, SEEK_SET); + if (fwrite((uint8 *)&ver_t, sizeof(version_info), 1, fp_w) != 1) + { + printf("can not write the version struct into package\n"); + return(-1); + } + + print_version_info(&ver_t); + + return(0); +} + +/* argv[1] packet name + argv[2] upk descpription + argv[3] u-env image + argv[4] u-boot image + argv[5] kernel image + argv[5] rootfs image*/ +int main(int argc, char *argv[]) +{ + FILE *fp_w; + uint32 hw_len = 0; + package_header_t *phd = &p_head; + struct stat buf; + + printf("\npackage tool version %s ", VERSION); + + strncpy((char *)phd->p_name, argv[1], NAMELEN-1); + if ((fp_w = fopen((char *)phd->p_name, "wb+")) == NULL) + { + printf("Can't open %s\n",phd->p_name); + return(-1); + } + + /* packet firmware to package */ + if (pack_firmware(fp_w, hw_len, 4, &argv[3]) != 0) + return(-1); + /* packet upk_desc and version info */ + if (pack_ver_info(fp_w, hw_len+phd->p_headsize, argv[2]) != 0) + return(-1); + + fclose(fp_w); + + stat((char *)phd->p_name, &buf); + if (buf.st_size > SAFE_SIZE) + { + printf("Warning!!!!! The upk size is larger than the safe size\n"); + } + + return 0; +} + + diff --git a/packages/neuros-pkggen/files/package.h b/packages/neuros-pkggen/files/package.h new file mode 100644 index 0000000000..225c53d129 --- /dev/null +++ b/packages/neuros-pkggen/files/package.h @@ -0,0 +1,145 @@ +/* + * Copyright(C) 2005 Neuros Technology International LLC. + * <www.neurostechnology.com> + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that, in addition to its + * original purpose to support Neuros hardware, it will be useful + * otherwise, 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. + * + *****************************************************************************/ +/** package.h + * + * Some structure for package.c + * + * 02/22/2002 T.Qiu + * Initial creation. + * 05/15/2008 JWU + * change for osd2.0 + */ + +#ifndef PACKAGE_H +#define PACKAGE_H + +#define VERSION "3.01" +#define NAMELEN 32 +#define VERLEN 20 /* should same as the uboot */ +#define DESCLEN 256 + +/* image type*/ +#define IH_TYPE_INVALID 0 /* Invalid Image */ +#define IH_TYPE_STANDALONE 1 /* Standalone Program */ +#define IH_TYPE_KERNEL 2 /* OS Kernel Image */ +#define IH_TYPE_RAMDISK 3 /* RAMDisk Image */ +#define IH_TYPE_MULTI 4 /* Multi-File Image */ +#define IH_TYPE_FIRMWARE 5 /* Firmware Image */ +#define IH_TYPE_SCRIPT 6 /* Script file */ +#define IH_TYPE_FILESYSTEM 7 /* Filesystem Image (any type) */ +#define IH_TYPE_FLATDT 8 /* Binary Flat Device Tree Blob */ +#define IH_TYPE_UBOOT 9 +#define IH_TYPE_ROOTFS 10 + +/* addr in flash */ +#define UBOOT_ADDR_START 0x00018000 +#define UBOOT_SIZE (1*1024*1024) +#define UBOOT_ADDR_END (UBOOT_ADDR_START+UBOOT_SIZE-1) +#define KERNEL_ADDR_START (UBOOT_ADDR_END+1) +#define KERNEL_SIZE (5*1024*1024) +#define KERNEL_ADDR_END (KERNEL_ADDR_START+KERNEL_SIZE-1) +#define ROOTFS_ADDR_START (KERNEL_ADDR_END+1) +#define ROOTFS_ADDR_END (256*1024*1024 - 1) + +#define UBOOT_FILE_NAME "u-boot.bin" +#define KERNEL_FILE_NAME "kernel.img" +#define ROOTFS_FILE_NAME "rootfs.img" +#define SCRIPT_FILE_NAME "env.img" + +#define UBOOT_VER_FILE "u-boot.version" +#define KERNEL_VER_FILE "uImage.version" +#define ROOTFS_VER_FILE "rootfs.version" + +typedef unsigned char uint8; +typedef unsigned short uint16; +typedef unsigned int uint32; +typedef unsigned long uint64; + +#define SWAP_LONG(x) \ + ((uint32)( \ + (((uint32)(x) & (uint32)0x000000ffUL) << 24) | \ + (((uint32)(x) & (uint32)0x0000ff00UL) << 8) | \ + (((uint32)(x) & (uint32)0x00ff0000UL) >> 8) | \ + (((uint32)(x) & (uint32)0xff000000UL) >> 24) )) + +#define SWAP_SHORT(x) \ + ((uint16)( \ + (((uint16)(x) & (uint16)0x00ff) << 8) | \ + (((uint16)(x) & (uint16)0xff00) >> 8)) + +#define ntohl(a) SWAP_LONG(a) +#define htonl(a) SWAP_LONG(a) +#define ntohs(a) SWAP_SHORT(a) +#define htons(a) SWAP_SHORT(a) + +typedef struct packet_header{ + uint32 p_headsize; /* package header size */ + uint32 p_reserve; /* Bit[3]:1 OSD2.0 upk */ + uint32 p_headcrc; /* package header crc checksum */ + uint32 p_datasize; /* package data size */ + uint32 p_datacrc; /* package data crc checksum */ + uint8 p_name[NAMELEN]; /* package name */ + uint8 p_vuboot[VERLEN]; /* version of uboot which depend on */ + uint8 p_vkernel[VERLEN];/* version of kernel which depend on*/ + uint8 p_vrootfs[VERLEN];/* version of rootfs which depend on*/ + uint32 p_imagenum; /* num of the images in package*/ + /* follow is image info */ +}package_header_t; + +typedef struct image_info{ + uint32 i_type; /* image type */ + uint32 i_imagesize; /* size of image */ + uint32 i_startaddr_p; /* start address in packeage */ + uint32 i_startaddr_f; /* start address in flash */ + uint32 i_endaddr_f; /* end address in flash */ + uint8 i_name[NAMELEN]; /* image name */ + uint8 i_version[VERLEN];/* image version */ +}image_info_t; + +typedef struct image_header { + uint32 ih_magic; /* Image Header Magic Number */ + uint32 ih_hcrc; /* Image Header CRC Checksum */ + uint32 ih_time; /* Image Creation Timestamp */ + uint32 ih_size; /* Image Data Size */ + uint32 ih_load; /* Data Load Address */ + uint32 ih_ep; /* Entry Point Address */ + uint32 ih_dcrc; /* Image Data CRC Checksum */ + uint8 ih_os; /* Operating System */ + uint8 ih_arch; /* CPU architecture */ + uint8 ih_type; /* Image Type */ + uint8 ih_comp; /* Compression Type */ + uint8 ih_name[NAMELEN]; /* Image Name */ +} image_header_t; + +#define PACKAGE_ID "neuros-osd2.0" +typedef struct version_struct{ + uint8 upk_desc[DESCLEN]; + uint8 pack_id[NAMELEN]; + uint8 os_ver [VERLEN]; + uint8 app_ver[VERLEN]; +}version_info; + + +extern unsigned long crc32 (unsigned long, const unsigned char *, unsigned int); + +#endif + diff --git a/packages/neuros-pkggen/files/readme b/packages/neuros-pkggen/files/readme new file mode 100644 index 0000000000..fd9c31b545 --- /dev/null +++ b/packages/neuros-pkggen/files/readme @@ -0,0 +1,20 @@ +This is the tool to generate the OSD upgrading package. + +1. Compile the tool + gcc crc32.c package.c -o osdpkg + +2. Copy tool to neuros-bsp/images + +3. Create upk + ./osdpkg nh [upk_desc] [upk_name] [bins ...] + +You can choose to either generate a full package that includes each +binary or a package just for that part that has been changed. + +Example: +<1> To create a upk by including everything + ./osdpkg nh "upk by yada_yada on 2006-10-18" r3.upk env.img +u-boot.bin uImage root.cramfs + +<2> To create a upk by just including the rootfs + ./osdpkg nh "upk by blah_blah on 2006-10-18" r3.upk root.cramfs diff --git a/packages/neuros-pkggen/files/zlib.h b/packages/neuros-pkggen/files/zlib.h new file mode 100644 index 0000000000..e441494d0d --- /dev/null +++ b/packages/neuros-pkggen/files/zlib.h @@ -0,0 +1,434 @@ +/* + * This file is derived from zlib.h and zconf.h from the zlib-0.95 + * distribution by Jean-loup Gailly and Mark Adler, with some additions + * by Paul Mackerras to aid in implementing Deflate compression and + * decompression for PPP packets. + */ + +/* + * ==FILEVERSION 960122== + * + * This marker is used by the Linux installation script to determine + * whether an up-to-date version of this file is already installed. + */ + +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 0.95, Aug 16th, 1995. + + Copyright (C) 1995 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + gzip@prep.ai.mit.edu madler@alumni.caltech.edu + */ + +#ifndef _ZLIB_H +#define _ZLIB_H + +/* #include "zconf.h" */ /* included directly here */ + +/* zconf.h -- configuration of the zlib compression library + * Copyright (C) 1995 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* From: zconf.h,v 1.12 1995/05/03 17:27:12 jloup Exp */ + +/* + The library does not install any signal handler. It is recommended to + add at least a handler for SIGSEGV when decompressing; the library checks + the consistency of the input data whenever possible but may go nuts + for some forms of corrupted input. + */ + +/* + * Compile with -DMAXSEG_64K if the alloc function cannot allocate more + * than 64k bytes at a time (needed on systems with 16-bit int). + * Compile with -DUNALIGNED_OK if it is OK to access shorts or ints + * at addresses which are not a multiple of their size. + * Under DOS, -DFAR=far or -DFAR=__far may be needed. + */ + +#ifndef STDC +# if defined(MSDOS) || defined(__STDC__) || defined(__cplusplus) +# define STDC +# endif +#endif + +#ifdef __MWERKS__ /* Metrowerks CodeWarrior declares fileno() in unix.h */ +# include <unix.h> +#endif + +/* Maximum value for memLevel in deflateInit2 */ +#ifndef MAX_MEM_LEVEL +# ifdef MAXSEG_64K +# define MAX_MEM_LEVEL 8 +# else +# define MAX_MEM_LEVEL 9 +# endif +#endif + +#ifndef FAR +# define FAR +#endif + +/* Maximum value for windowBits in deflateInit2 and inflateInit2 */ +#ifndef MAX_WBITS +# define MAX_WBITS 15 /* 32K LZ77 window */ +#endif + +/* The memory requirements for deflate are (in bytes): + 1 << (windowBits+2) + 1 << (memLevel+9) + that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) + plus a few kilobytes for small objects. For example, if you want to reduce + the default memory requirements from 256K to 128K, compile with + make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" + Of course this will generally degrade compression (there's no free lunch). + + The memory requirements for inflate are (in bytes) 1 << windowBits + that is, 32K for windowBits=15 (default value) plus a few kilobytes + for small objects. +*/ + + /* Type declarations */ + +#ifndef OF /* function prototypes */ +# ifdef STDC +# define OF(args) args +# else +# define OF(args) () +# endif +#endif + +typedef unsigned char Byte; /* 8 bits */ +typedef unsigned int uInt; /* 16 bits or more */ +typedef unsigned long uLong; /* 32 bits or more */ + +typedef Byte FAR Bytef; +typedef char FAR charf; +typedef int FAR intf; +typedef uInt FAR uIntf; +typedef uLong FAR uLongf; + +#ifdef STDC + typedef void FAR *voidpf; + typedef void *voidp; +#else + typedef Byte FAR *voidpf; + typedef Byte *voidp; +#endif + +/* end of original zconf.h */ + +#define ZLIB_VERSION "0.95P" + +/* + The 'zlib' compression library provides in-memory compression and + decompression functions, including integrity checks of the uncompressed + data. This version of the library supports only one compression method + (deflation) but other algorithms may be added later and will have the same + stream interface. + + For compression the application must provide the output buffer and + may optionally provide the input buffer for optimization. For decompression, + the application must provide the input buffer and may optionally provide + the output buffer for optimization. + + Compression can be done in a single step if the buffers are large + enough (for example if an input file is mmap'ed), or can be done by + repeated calls of the compression function. In the latter case, the + application must provide more input and/or consume the output + (providing more output space) before each call. +*/ + +typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); +typedef void (*free_func) OF((voidpf opaque, voidpf address, uInt nbytes)); + +typedef void (*cb_func) OF((Bytef *buf, uInt len)); + +struct internal_state; + +typedef struct z_stream_s { + Bytef *next_in; /* next input byte */ + uInt avail_in; /* number of bytes available at next_in */ + uLong total_in; /* total nb of input bytes read so far */ + + Bytef *next_out; /* next output byte should be put there */ + uInt avail_out; /* remaining free space at next_out */ + uLong total_out; /* total nb of bytes output so far */ + + char *msg; /* last error message, NULL if no error */ + struct internal_state FAR *state; /* not visible by applications */ + + alloc_func zalloc; /* used to allocate the internal state */ + free_func zfree; /* used to free the internal state */ + voidp opaque; /* private data object passed to zalloc and zfree */ + + Byte data_type; /* best guess about the data type: ascii or binary */ + + cb_func outcb; /* called regularly just before blocks of output */ + +} z_stream; + +/* + The application must update next_in and avail_in when avail_in has + dropped to zero. It must update next_out and avail_out when avail_out + has dropped to zero. The application must initialize zalloc, zfree and + opaque before calling the init function. All other fields are set by the + compression library and must not be updated by the application. + + The opaque value provided by the application will be passed as the first + parameter for calls of zalloc and zfree. This can be useful for custom + memory management. The compression library attaches no meaning to the + opaque value. + + zalloc must return Z_NULL if there is not enough memory for the object. + On 16-bit systems, the functions zalloc and zfree must be able to allocate + exactly 65536 bytes, but will not be required to allocate more than this + if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, + pointers returned by zalloc for objects of exactly 65536 bytes *must* + have their offset normalized to zero. The default allocation function + provided by this library ensures this (see zutil.c). To reduce memory + requirements and avoid any allocation of 64K objects, at the expense of + compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h). + + The fields total_in and total_out can be used for statistics or + progress reports. After compression, total_in holds the total size of + the uncompressed data and may be saved for use in the decompressor + (particularly if the decompressor wants to decompress everything in + a single step). +*/ + + /* constants */ + +#define Z_NO_FLUSH 0 +#define Z_PARTIAL_FLUSH 1 +#define Z_FULL_FLUSH 2 +#define Z_SYNC_FLUSH 3 /* experimental: partial_flush + byte align */ +#define Z_FINISH 4 +#define Z_PACKET_FLUSH 5 +/* See deflate() below for the usage of these constants */ + +#define Z_OK 0 +#define Z_STREAM_END 1 +#define Z_ERRNO (-1) +#define Z_STREAM_ERROR (-2) +#define Z_DATA_ERROR (-3) +#define Z_MEM_ERROR (-4) +#define Z_BUF_ERROR (-5) +/* error codes for the compression/decompression functions */ + +#define Z_BEST_SPEED 1 +#define Z_BEST_COMPRESSION 9 +#define Z_DEFAULT_COMPRESSION (-1) +/* compression levels */ + +#define Z_FILTERED 1 +#define Z_HUFFMAN_ONLY 2 +#define Z_DEFAULT_STRATEGY 0 + +#define Z_BINARY 0 +#define Z_ASCII 1 +#define Z_UNKNOWN 2 +/* Used to set the data_type field */ + +#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ + +extern char *zlib_version; +/* The application can compare zlib_version and ZLIB_VERSION for consistency. + If the first character differs, the library code actually used is + not compatible with the zlib.h header file used by the application. + */ + + /* basic functions */ + +extern int inflateInit OF((z_stream *strm)); +/* + Initializes the internal stream state for decompression. The fields + zalloc and zfree must be initialized before by the caller. If zalloc and + zfree are set to Z_NULL, inflateInit updates them to use default allocation + functions. + + inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory. msg is set to null if there is no error message. + inflateInit does not perform any decompression: this will be done by + inflate(). +*/ + + +extern int inflate OF((z_stream *strm, int flush)); +/* + Performs one or both of the following actions: + + - Decompress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in is updated and processing + will resume at this point for the next call of inflate(). + + - Provide more output starting at next_out and update next_out and avail_out + accordingly. inflate() always provides as much output as possible + (until there is no more input data or no more space in the output buffer). + + Before the call of inflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming + more output, and updating the next_* and avail_* values accordingly. + The application can consume the uncompressed output when it wants, for + example when the output buffer is full (avail_out == 0), or after each + call of inflate(). + + If the parameter flush is set to Z_PARTIAL_FLUSH or Z_PACKET_FLUSH, + inflate flushes as much output as possible to the output buffer. The + flushing behavior of inflate is not specified for values of the flush + parameter other than Z_PARTIAL_FLUSH, Z_PACKET_FLUSH or Z_FINISH, but the + current implementation actually flushes as much output as possible + anyway. For Z_PACKET_FLUSH, inflate checks that once all the input data + has been consumed, it is expecting to see the length field of a stored + block; if not, it returns Z_DATA_ERROR. + + inflate() should normally be called until it returns Z_STREAM_END or an + error. However if all decompression is to be performed in a single step + (a single call of inflate), the parameter flush should be set to + Z_FINISH. In this case all pending input is processed and all pending + output is flushed; avail_out must be large enough to hold all the + uncompressed data. (The size of the uncompressed data may have been saved + by the compressor for this purpose.) The next operation on this stream must + be inflateEnd to deallocate the decompression state. The use of Z_FINISH + is never required, but can be used to inform inflate that a faster routine + may be used for the single inflate() call. + + inflate() returns Z_OK if some progress has been made (more input + processed or more output produced), Z_STREAM_END if the end of the + compressed data has been reached and all uncompressed output has been + produced, Z_DATA_ERROR if the input data was corrupted, Z_STREAM_ERROR if + the stream structure was inconsistent (for example if next_in or next_out + was NULL), Z_MEM_ERROR if there was not enough memory, Z_BUF_ERROR if no + progress is possible or if there was not enough room in the output buffer + when Z_FINISH is used. In the Z_DATA_ERROR case, the application may then + call inflateSync to look for a good compression block. */ + + +extern int inflateEnd OF((z_stream *strm)); +/* + All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any + pending output. + + inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state + was inconsistent. In the error case, msg may be set but then points to a + static string (which must not be deallocated). +*/ + + /* advanced functions */ + +extern int inflateInit2 OF((z_stream *strm, + int windowBits)); +/* + This is another version of inflateInit with more compression options. The + fields next_out, zalloc and zfree must be initialized before by the caller. + + The windowBits parameter is the base two logarithm of the maximum window + size (the size of the history buffer). It should be in the range 8..15 for + this version of the library (the value 16 will be allowed soon). The + default value is 15 if inflateInit is used instead. If a compressed stream + with a larger window size is given as input, inflate() will return with + the error code Z_DATA_ERROR instead of trying to allocate a larger window. + + If next_out is not null, the library will use this buffer for the history + buffer; the buffer must either be large enough to hold the entire output + data, or have at least 1<<windowBits bytes. If next_out is null, the + library will allocate its own buffer (and leave next_out null). next_in + need not be provided here but must be provided by the application for the + next call of inflate(). + + If the history buffer is provided by the application, next_out must + never be changed by the application since the decompressor maintains + history information inside this buffer from call to call; the application + can only reset next_out to the beginning of the history buffer when + avail_out is zero and all output has been consumed. + + inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was + not enough memory, Z_STREAM_ERROR if a parameter is invalid (such as + windowBits < 8). msg is set to null if there is no error message. + inflateInit2 does not perform any decompression: this will be done by + inflate(). +*/ + +extern int inflateSync OF((z_stream *strm)); +/* + Skips invalid compressed data until the special marker (see deflate() + above) can be found, or until all available input is skipped. No output + is provided. + + inflateSync returns Z_OK if the special marker has been found, Z_BUF_ERROR + if no more input was provided, Z_DATA_ERROR if no marker has been found, + or Z_STREAM_ERROR if the stream structure was inconsistent. In the success + case, the application may save the current current value of total_in which + indicates where valid compressed data was found. In the error case, the + application may repeatedly call inflateSync, providing more input each time, + until success or end of the input data. +*/ + +extern int inflateReset OF((z_stream *strm)); +/* + This function is equivalent to inflateEnd followed by inflateInit, + but does not free and reallocate all the internal decompression state. + The stream will keep attributes that may have been set by inflateInit2. + + inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being NULL). +*/ + +extern int inflateIncomp OF((z_stream *strm)); +/* + This function adds the data at next_in (avail_in bytes) to the output + history without performing any output. There must be no pending output, + and the decompressor must be expecting to see the start of a block. + Calling this function is equivalent to decompressing a stored block + containing the data at next_in (except that the data is not output). +*/ + + /* checksum functions */ + +/* + This function is not related to compression but is exported + anyway because it might be useful in applications using the + compression library. +*/ + +extern uLong adler32 OF((uLong adler, Bytef *buf, uInt len)); + +/* + Update a running Adler-32 checksum with the bytes buf[0..len-1] and + return the updated checksum. If buf is NULL, this function returns + the required initial value for the checksum. + An Adler-32 checksum is almost as reliable as a CRC32 but can be computed + much faster. Usage example: + + uLong adler = adler32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + adler = adler32(adler, buffer, length); + } + if (adler != original_adler) error(); +*/ + +#ifndef _Z_UTIL_H + struct internal_state {int dummy;}; /* hack for buggy compilers */ +#endif + +#endif /* _ZLIB_H */ diff --git a/packages/neuros-pkggen/neuros-pkggen-native.bb b/packages/neuros-pkggen/neuros-pkggen-native.bb new file mode 100644 index 0000000000..001b3a863a --- /dev/null +++ b/packages/neuros-pkggen/neuros-pkggen-native.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "Tool to generate ready to flash .pkg files for neuros machines" +LICENSE = "GPLv2" +PR = "r1" + +inherit native + +SRC_URI = "file://Makefile \ + file://Makefile.rules \ + file://config \ + file://crc32.c \ + file://package.c \ + file://package.h \ + file://readme \ + file://zlib.h \ +" + +do_compile_prepend() { + ( cd ${WORKDIR} ; cp Makefile Makefile.rules config crc32.c package.c package.h readme zlib.h ${S} ) +} + +do_stage() { + install -m 0755 packet_osd2 ${STAGING_BINDIR_NATIVE} +} + + diff --git a/packages/openmoko-spaces/openmoko-toolchain-scripts_svn.bb b/packages/openmoko-spaces/openmoko-toolchain-scripts_svn.bb index 7533f81958..60dab56569 100644 --- a/packages/openmoko-spaces/openmoko-toolchain-scripts_svn.bb +++ b/packages/openmoko-spaces/openmoko-toolchain-scripts_svn.bb @@ -1,14 +1,19 @@ DESCRIPTION = "Convenient scripts to be used with openmoko toolchain." -PR = "r1" -SRC_URI = "svn://svn.openmoko.org/developers/john_lee;module=toolkit;proto=http" +PV = "0.0+svnr${SRCREV}" +PE = "1" -S = "${WORKDIR}/toolkit" +SRC_URI = "svn://svn.openmoko.org/trunk/src/host;module=toolchain-scripts;proto=http" -FILES_${PN} = "/" +S = "${WORKDIR}/toolchain-scripts" + +FILES_${PN} = "/bin /scripts /* \ +" do_install () { + install -d ${D}/doc cp -dr ${S}/* ${D} find ${D} -name ".svn" | xargs rm -rf rm -r ${D}/patches + cd ${D} ; mv COPYING COPYING.MIT LICENSE README doc ; mv setup-env bin } diff --git a/packages/python/python-cython-native_0.9.6.9.bb b/packages/python/python-cython-native_0.9.6.14.bb index cb7743e1bf..cb7743e1bf 100644 --- a/packages/python/python-cython-native_0.9.6.9.bb +++ b/packages/python/python-cython-native_0.9.6.14.bb diff --git a/packages/python/python-cython-native_0.9.8.bb b/packages/python/python-cython-native_0.9.8.bb new file mode 100644 index 0000000000..cb7743e1bf --- /dev/null +++ b/packages/python/python-cython-native_0.9.8.bb @@ -0,0 +1,9 @@ +require python-cython_${PV}.bb +inherit native +DEPENDS = "python-native" +RDEPENDS = "" + +do_stage() { + BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ + ${STAGING_BINDIR}/python setup.py install --prefix=${STAGING_BINDIR}/.. --install-data=${STAGING_DATADIR} +} diff --git a/packages/python/python-cython_0.9.6.9.bb b/packages/python/python-cython_0.9.6.14.bb index a513104108..6077089bf2 100644 --- a/packages/python/python-cython_0.9.6.9.bb +++ b/packages/python/python-cython_0.9.6.14.bb @@ -4,10 +4,10 @@ and the messy, low-level world of C." SECTION = "devel/python" PRIORITY = "optional" LICENSE = "GPL" -SRCNAME = "cython" +SRCNAME = "Cython" PR = "ml0" -SRC_URI = "http://www.cython.org/${SRCNAME}-${PV}.zip" +SRC_URI = "http://pypi.python.org/packages/source/C/Cython/${SRCNAME}-${PV}.tar.gz" S = "${WORKDIR}/${SRCNAME}-${PV}" inherit distutils diff --git a/packages/python/python-cython_0.9.8.bb b/packages/python/python-cython_0.9.8.bb new file mode 100644 index 0000000000..9243aa61f0 --- /dev/null +++ b/packages/python/python-cython_0.9.8.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "Cython is a language specially designed for writing Python extension modules. \ +It's designed to bridge the gap between the nice, high-level, easy-to-use world of Python \ +and the messy, low-level world of C." +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "GPL" +SRCNAME = "Cython" +PR = "ml0" + +SRC_URI = "http://www.cython.org/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +DEFAULT_PREFERENCE = "-1" + diff --git a/packages/python/python-opendir/.mtn2git_empty b/packages/python/python-opendir/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/python/python-opendir/.mtn2git_empty diff --git a/packages/python/python-opendir/opendir.pyx b/packages/python/python-opendir/opendir.pyx new file mode 100644 index 0000000000..1ee81f7382 --- /dev/null +++ b/packages/python/python-opendir/opendir.pyx @@ -0,0 +1,149 @@ +############################################################## +# +# opendir.pyx - A class exposing the functionality of +# =========== the opendir() family of C libary functions. +# +# By Gregory Ewing +# greg.ewing@canterbury.ac.nz +# +# This software and derivative works created from it +# may be used and redistributed without restriction. +# +############################################################## + +cdef extern from "sys/errno.h": + int errno + +cdef extern from "stdio.h": + char *strerror(int) + +cdef extern from "dirent.h": + ctypedef struct DIR + struct dirent: + int d_namlen + char d_name[1] + DIR *c_opendir "opendir" (char *) + int readdir_r(DIR *, dirent *, dirent **) + long telldir(DIR *) + void seekdir(DIR *, long) + void rewinddir(DIR *) + int closedir(DIR *) + int dirfd(DIR *) + +#------------------------------------------------------------------ + +cdef class opendir: + """opendir(pathname) --> an open directory object + + Opens a directory and provides incremental access to + the filenames it contains. May be used as a file-like + object or as an iterator. + + When used as a file-like object, each call to read() + returns one filename, or an empty string when the end + of the directory is reached. The close() method should + be called when finished with the directory. + + The close() method should also be called when used as + an iterator and iteration is stopped prematurely. If + iteration proceeds to completion, the directory is + closed automatically.""" + + cdef DIR *dir + + def __cinit__(self, char *path): + self.dir = c_opendir(path) + if not self.dir: + raise IOError(errno, "%s: '%s'" % (strerror(errno), path)) + + def __dealloc__(self): + if self.dir: + closedir(self.dir) + + def read(self): + """read() --> filename or empty string + + Returns the next filename from the directory, or an empty + string if the end of the directory has been reached.""" + + cdef dirent entry, *result + check_open(self) + if readdir_r(self.dir, &entry, &result) < 0: + raise IOError(errno) + if result: + return entry.d_name + else: + return "" + + def tell(self): + """tell() --> position + + Returns a value representing the current position in the + directory, suitable for passing to tell(). Only valid for + this directory object as long as it remains open.""" + + check_open(self) + return telldir(self.dir) + + def seek(self, long pos): + """seek(position) + + Returns the directory to the specified position, which + should be a value previously returned by tell().""" + + check_open(self) + seekdir(self.dir, pos) + + def rewind(self): + """rewind() + + Resets the position to the beginning of the directory.""" + + check_open(self) + rewinddir(self.dir) + + def close(self): + """close() + + Closes the directory and frees the underlying file descriptor.""" + + if self.dir: + if closedir(self.dir) < 0: + raise IOError(errno) + self.dir = NULL + +# MaxOSX doesn't seem to have dirfd, despite what the +# man page says. :-( +# +# def fileno(self): +# """fileno() --> file descriptor +# +# Returns the file descriptor associated with the open directory.""" +# +# check_open(self) +# return dirfd(self.dir) + + def __iter__(self): + return self + + def __next__(self): + """next() --> filename + + Returns the next filename from the directory. If the end of the + directory has been reached, closes the directory and raises + StopIteration.""" + + if self.dir: + result = self.read() + if result: + return result + self.close() + raise StopIteration + +#------------------------------------------------------------------ + +cdef int check_open(opendir d) except -1: + if not d.dir: + raise ValueError("Directory is closed") + return 0 + diff --git a/packages/python/python-opendir/setup.py b/packages/python/python-opendir/setup.py new file mode 100644 index 0000000000..d76b22c95a --- /dev/null +++ b/packages/python/python-opendir/setup.py @@ -0,0 +1,25 @@ +from distutils.core import setup +from distutils.extension import Extension +from Cython.Distutils import build_ext + +setup( + name = 'opendir', + version = '0.0.1', + author = 'Gregory Ewing', + author_email = 'greg ewing at canterbury ac nz', + maintainer = 'Johannes "josch" Schauer', + maintainer_email = 'j schauer at email de', + description = 'Implements POSIX opendir', + classifiers = [ + 'Development Status :: 4 - Beta', + 'Intended Audience :: Developers', + 'Operating System :: POSIX', + 'Programming Language :: Pyrex', + 'Topic :: Software Development :: Libraries :: Python Modules', + 'Topic :: System :: Filesystems' + ], + ext_modules=[ + Extension("opendir", ["opendir.pyx"]), + ], + cmdclass = {'build_ext': build_ext} +) diff --git a/packages/python/python-opendir_1.0.bb b/packages/python/python-opendir_1.0.bb new file mode 100644 index 0000000000..88f22a1d9a --- /dev/null +++ b/packages/python/python-opendir_1.0.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "POSIX opendir support for Python" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "PD" +HOMEPAGE = "http://rabenfrost.net/mokopedia/opendir/" +DEPENDS = "python-pyrex-native python-cython-native" +PR = "ml0" + +SRC_URI = "\ + file://opendir.pyx \ + file://setup.py \ +" +S = "${WORKDIR}" + +inherit distutils diff --git a/packages/python/python-pyrex-native_0.9.5.1a.bb b/packages/python/python-pyrex-native_0.9.8.4.bb index d7ec81fd8e..d7ec81fd8e 100644 --- a/packages/python/python-pyrex-native_0.9.5.1a.bb +++ b/packages/python/python-pyrex-native_0.9.8.4.bb diff --git a/packages/python/python-pyrex_0.9.5.1a.bb b/packages/python/python-pyrex_0.9.8.4.bb index d0a5f826e0..d0a5f826e0 100644 --- a/packages/python/python-pyrex_0.9.5.1a.bb +++ b/packages/python/python-pyrex_0.9.8.4.bb diff --git a/packages/qt4/qt-embedded-4.4.0/.mtn2git_empty b/packages/qt4/qt-embedded-4.4.0/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/qt4/qt-embedded-4.4.0/.mtn2git_empty diff --git a/packages/qt4/qt-embedded-4.4.0/0001-cross-compile.patch b/packages/qt4/qt-embedded-4.4.0/0001-cross-compile.patch new file mode 100644 index 0000000000..310f1931bc --- /dev/null +++ b/packages/qt4/qt-embedded-4.4.0/0001-cross-compile.patch @@ -0,0 +1,32 @@ +--- /tmp/configure 2008-07-08 10:01:36.000000000 +0200 ++++ qt-embedded-linux-opensource-src-4.4.0/configure 2008-07-08 10:23:04.000000000 +0200 +@@ -762,7 +762,7 @@ + UNKNOWN_ARG=yes + fi + ;; +- -prefix|-docdir|-headerdir|-plugindir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-demosdir|-depths|-make|-nomake|-platform|-xplatform|-buildkey|-sdk|-arch|-host-arch|-mysql_config) ++ -prefix|-docdir|-headerdir|-plugindir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-demosdir|-depths|-make|-nomake|-platform|-xplatform|-buildkey|-sdk|-arch|-host-arch|-mysql_config|-crossarch) + VAR=`echo $1 | sed "s,^-\(.*\),\1,"` + shift + VAL="$1" +@@ -1179,7 +1179,10 @@ + xplatform) + XPLATFORM="$VAL" + ;; +- debug-and-release) ++ crossarch) ++ CROSSARCH="$VAL" ++ ;; ++ debug-and-release) + if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then + CFG_DEBUG_RELEASE="$VAL" + else +@@ -2417,6 +2420,8 @@ + ARCH=$HOST_ARCH + fi + ++ARCH="$CROSSARCH" ++ + if [ -d "$relpath/src/corelib/arch/$ARCH" ]; then + if [ "$OPT_VERBOSE" = "yes" ]; then + echo " '$ARCH' is supported" diff --git a/packages/qt4/qt-embedded-4.4.0/0003-no-tools.patch b/packages/qt4/qt-embedded-4.4.0/0003-no-tools.patch new file mode 100644 index 0000000000..bb36444f80 --- /dev/null +++ b/packages/qt4/qt-embedded-4.4.0/0003-no-tools.patch @@ -0,0 +1,16 @@ +--- /tmp/src.pro 2008-07-08 10:43:30.000000000 +0200 ++++ qt-embedded-linux-opensource-src-4.4.0/src/src.pro 2008-07-08 11:28:24.000000000 +0200 +@@ -6,12 +6,9 @@ + wince*:{ + SRC_SUBDIRS += src_corelib src_xml src_gui src_sql src_network src_script src_testlib + } else { +- SRC_SUBDIRS += src_tools_moc src_tools_rcc src_tools_uic src_corelib src_xml src_network src_gui src_sql src_script src_testlib ++ SRC_SUBDIRS += src_corelib src_xml src_network src_gui src_sql src_script src_testlib + contains(QT_CONFIG, qt3support): SRC_SUBDIRS += src_qt3support + contains(QT_CONFIG, dbus):SRC_SUBDIRS += src_dbus +- !cross_compile { +- contains(QT_CONFIG, qt3support): SRC_SUBDIRS += src_tools_uic3 +- } + } + win32:!contains(QT_EDITION, OpenSource|Console): { + SRC_SUBDIRS += src_activeqt diff --git a/packages/qt4/qt-embedded-4.4.0/0004-no-qmake.patch b/packages/qt4/qt-embedded-4.4.0/0004-no-qmake.patch new file mode 100644 index 0000000000..28f8d3ad9d --- /dev/null +++ b/packages/qt4/qt-embedded-4.4.0/0004-no-qmake.patch @@ -0,0 +1,25 @@ +From f5a73ce944240de9013cc23288c115e8213add5e Mon Sep 17 00:00:00 2001 +From: Michael Krelin <hacker@klever.net> +Date: Sat, 2 Jun 2007 16:06:59 +0200 +Subject: [PATCH] no qmake + +--- + configure | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/configure b/configure +index b3c2a52..1901e57 100755 +--- a/configure ++++ b/configure +@@ -3517,7 +3517,7 @@ END { + } + + # build qmake +-if true; then ###[ '!' -f "$outpath/bin/qmake" ]; ++if false; then ###[ '!' -f "$outpath/bin/qmake" ]; + echo "Creating qmake. Please wait..." + + OLD_QCONFIG_H= +-- +1.5.0.7 + diff --git a/packages/qt4/qt-embedded-4.4.0/0005-fix-mkspecs.patch b/packages/qt4/qt-embedded-4.4.0/0005-fix-mkspecs.patch new file mode 100644 index 0000000000..c6f55906bc --- /dev/null +++ b/packages/qt4/qt-embedded-4.4.0/0005-fix-mkspecs.patch @@ -0,0 +1,101 @@ +--- /tmp/g++.conf 2008-07-08 10:32:18.000000000 +0200 ++++ qt-embedded-linux-opensource-src-4.4.0/mkspecs/common/g++.conf 2008-07-08 10:34:15.000000000 +0200 +@@ -2,12 +2,12 @@ + # qmake configuration for common gcc + # + +-QMAKE_CC = gcc +-QMAKE_CFLAGS += -pipe ++QMAKE_CC = $(OE_QMAKE_CC) ++QMAKE_CFLAGS += -pipe $(OE_QMAKE_CFLAGS) + QMAKE_CFLAGS_DEPS += -M + QMAKE_CFLAGS_WARN_ON += -Wall -W + QMAKE_CFLAGS_WARN_OFF += -w +-QMAKE_CFLAGS_RELEASE += -O2 ++QMAKE_CFLAGS_RELEASE += + QMAKE_CFLAGS_DEBUG += -g + QMAKE_CFLAGS_SHLIB += -fPIC + QMAKE_CFLAGS_STATIC_LIB += -fPIC +@@ -16,8 +16,8 @@ + QMAKE_CFLAGS_PRECOMPILE += -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} + QMAKE_CFLAGS_USE_PRECOMPILE += -include ${QMAKE_PCH_OUTPUT_BASE} + +-QMAKE_CXX = g++ +-QMAKE_CXXFLAGS += $$QMAKE_CFLAGS ++QMAKE_CXX = $(OE_QMAKE_CXX) ++QMAKE_CXXFLAGS += $$QMAKE_CFLAGS $(OE_QMAKE_CXXFLAGS) + QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS + QMAKE_CXXFLAGS_WARN_ON += $$QMAKE_CFLAGS_WARN_ON + QMAKE_CXXFLAGS_WARN_OFF += $$QMAKE_CFLAGS_WARN_OFF +@@ -30,9 +30,9 @@ + QMAKE_CXXFLAGS_PRECOMPILE += -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} + QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE + +-QMAKE_LINK = g++ +-QMAKE_LINK_SHLIB = g++ +-QMAKE_LFLAGS += ++QMAKE_LINK = $(OE_QMAKE_LINK) ++QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK) ++QMAKE_LFLAGS += $(OE_QMAKE_LDFLAGS) + QMAKE_LFLAGS_RELEASE += + QMAKE_LFLAGS_DEBUG += + QMAKE_LFLAGS_APP += +@@ -41,7 +41,7 @@ + QMAKE_LFLAGS_SONAME += -Wl,-soname, + QMAKE_LFLAGS_THREAD += + QMAKE_LFLAGS_NOUNDEF += -Wl,--no-undefined +-QMAKE_RPATH = -Wl,-rpath, ++QMAKE_RPATH = -Wl,-rpath-link, + + QMAKE_PCH_OUTPUT_EXT = .gch + +--- /tmp/linux.conf 2008-07-08 10:32:18.000000000 +0200 ++++ qt-embedded-linux-opensource-src-4.4.0/mkspecs/common/linux.conf 2008-07-08 10:38:37.000000000 +0200 +@@ -7,26 +7,27 @@ + + QMAKE_INCDIR = + QMAKE_LIBDIR = +-QMAKE_INCDIR_X11 = /usr/X11R6/include +-QMAKE_LIBDIR_X11 = /usr/X11R6/lib +-QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS] +-QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS] +-QMAKE_INCDIR_OPENGL = /usr/X11R6/include +-QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib ++QMAKE_INCDIR_X11 = ++QMAKE_LIBDIR_X11 = ++QMAKE_INCDIR_QT = $(OE_QMAKE_INCDIR_QT) ++QMAKE_LIBDIR_QT = $(OE_QMAKE_LIBDIR_QT) ++QMAKE_INCDIR_OPENGL = ++QMAKE_LIBDIR_OPENGL = ++ + + QMAKE_LIBS = + QMAKE_LIBS_DYNLOAD = -ldl +-QMAKE_LIBS_X11 = -lXext -lX11 -lm +-QMAKE_LIBS_X11SM = -lSM -lICE ++QMAKE_LIBS_X11 = $(OE_QMAKE_LIBS_X11) ++QMAKE_LIBS_X11SM = $(OE_QMAKE_LIBS_X11SM) + QMAKE_LIBS_NIS = -lnsl + QMAKE_LIBS_OPENGL = -lGLU -lGL + QMAKE_LIBS_OPENGL_QT = -lGL + QMAKE_LIBS_THREAD = -lpthread + +-QMAKE_MOC = $$[QT_INSTALL_BINS]/moc +-QMAKE_UIC = $$[QT_INSTALL_BINS]/uic ++QMAKE_MOC = $(OE_QMAKE_MOC) ++QMAKE_UIC = $(OE_QMAKE_UIC) + +-QMAKE_AR = ar cqs ++QMAKE_AR = $(OE_QMAKE_AR) cqs + QMAKE_OBJCOPY = objcopy + QMAKE_RANLIB = + +@@ -39,7 +40,7 @@ + QMAKE_MOVE = mv -f + QMAKE_DEL_FILE = rm -f + QMAKE_DEL_DIR = rmdir +-QMAKE_STRIP = strip ++QMAKE_STRIP = $(OE_QMAKE_STRIP) + QMAKE_STRIPFLAGS_LIB += --strip-unneeded + QMAKE_CHK_DIR_EXISTS = test -d + QMAKE_MKDIR = mkdir -p diff --git a/packages/qt4/qt-embedded-4.4.0/0006-freetype-host-includes.patch b/packages/qt4/qt-embedded-4.4.0/0006-freetype-host-includes.patch new file mode 100644 index 0000000000..cc8e115fee --- /dev/null +++ b/packages/qt4/qt-embedded-4.4.0/0006-freetype-host-includes.patch @@ -0,0 +1,23 @@ +From c9ab62bd9a56643574b3ae6e59e0ca776d4860d2 Mon Sep 17 00:00:00 2001 +From: Michael Krelin <hacker@klever.net> +Date: Mon, 4 Jun 2007 14:48:50 +0200 +Subject: [PATCH] freetype host includes + +--- + config.tests/unix/freetype/freetype.pri | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/config.tests/unix/freetype/freetype.pri b/config.tests/unix/freetype/freetype.pri +index 84974bf..ab9a6f2 100644 +--- a/config.tests/unix/freetype/freetype.pri ++++ b/config.tests/unix/freetype/freetype.pri +@@ -1,5 +1,5 @@ + !cross_compile { +- TRY_INCLUDEPATHS = /include /usr/include $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH ++ TRY_INCLUDEPATHS = $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH + for(p, TRY_INCLUDEPATHS) { + p = $$join(p, "", "", "/freetype2") + exists($$p):INCLUDEPATH *= $$p +-- +1.5.0.7 + diff --git a/packages/qt4/qt-embedded-4.4.0/0007-openssl-host-includes.patch b/packages/qt4/qt-embedded-4.4.0/0007-openssl-host-includes.patch new file mode 100644 index 0000000000..35b71d9694 --- /dev/null +++ b/packages/qt4/qt-embedded-4.4.0/0007-openssl-host-includes.patch @@ -0,0 +1,23 @@ +From d45943adb443ad4b85ca4504952dee743c675e1e Mon Sep 17 00:00:00 2001 +From: Michael Krelin <hacker@klever.net> +Date: Mon, 4 Jun 2007 14:58:34 +0200 +Subject: [PATCH] openssl host includes + +--- + config.tests/unix/openssl/openssl.pri | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/config.tests/unix/openssl/openssl.pri b/config.tests/unix/openssl/openssl.pri +index 756e5fe..19b4061 100644 +--- a/config.tests/unix/openssl/openssl.pri ++++ b/config.tests/unix/openssl/openssl.pri +@@ -1,5 +1,5 @@ + !cross_compile { +- TRY_INCLUDEPATHS = /include /usr/include /usr/local/include $$QMAKE_INCDIR $$INCLUDEPATH ++ TRY_INCLUDEPATHS = $$QMAKE_INCDIR $$INCLUDEPATH + for(p, TRY_INCLUDEPATHS) { + pp = $$join(p, "", "", "/openssl") + exists($$pp):INCLUDEPATH *= $$p +-- +1.5.0.7 + diff --git a/packages/qt4/qt-embedded-4.4.0/allow-configure-plugins.patch b/packages/qt4/qt-embedded-4.4.0/allow-configure-plugins.patch new file mode 100644 index 0000000000..601f2fc369 --- /dev/null +++ b/packages/qt4/qt-embedded-4.4.0/allow-configure-plugins.patch @@ -0,0 +1,62 @@ +Index: qtopia-core-opensource-src-4.3.3/configure +=================================================================== +--- qtopia-core-opensource-src-4.3.3.orig/configure 2008-01-20 11:42:07.000000000 +0100 ++++ qtopia-core-opensource-src-4.3.3/configure 2008-01-20 22:31:37.000000000 +0100 +@@ -639,10 +639,10 @@ + + CFG_SQL_AVAILABLE= + if [ -d "$relpath/src/plugins/sqldrivers" ]; then +- for a in "$relpath/src/plugins/sqldrivers/"*; do +- if [ -d "$a" ]; then +- base_a=`basename $a` +- CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}" ++ for a in `ls $relpath/src/plugins/sqldrivers/`; do ++ dir="$relpath/src/plugins/sqldrivers/$a" ++ if [ -d "$dir" ]; then ++ CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${a}" + eval "CFG_SQL_${base_a}=auto" + fi + done +@@ -650,30 +650,30 @@ + + CFG_DECORATION_PLUGIN_AVAILABLE= + if [ -d "$relpath/src/plugins/decorations" ]; then +- for a in "$relpath/src/plugins/decorations/"*; do +- if [ -d "$a" ]; then +- base_a=`basename $a` +- CFG_DECORATION_PLUGIN_AVAILABLE="${CFG_DECORATION_PLUGIN_AVAILABLE} ${base_a}" ++ for a in `ls $relpath/src/plugins/decorations/`; do ++ dir="$relpath/src/plugins/decorations/$a" ++ if [ -d "$dir" ]; then ++ CFG_DECORATION_PLUGIN_AVAILABLE="${CFG_DECORATION_PLUGIN_AVAILABLE} ${a}" + fi + done + fi + + CFG_MOUSE_PLUGIN_AVAILABLE= + if [ -d "$relpath/src/plugins/mousedrivers" ]; then +- for a in "$relpath/src/plugins/mousedrivers/"*; do +- if [ -d "$a" ]; then +- base_a=`basename $a` +- CFG_MOUSE_PLUGIN_AVAILABLE="${CFG_MOUSE_PLUGIN_AVAILABLE} ${base_a}" ++ for a in `ls $relpath/src/plugins/mousedrivers/`; do ++ dir="$relpath/src/plugins/mousedrivers/$a" ++ if [ -d "$dir" ]; then ++ CFG_MOUSE_PLUGIN_AVAILABLE="${CFG_MOUSE_PLUGIN_AVAILABLE} ${a}" + fi + done + fi + + CFG_GFX_PLUGIN_AVAILABLE= + if [ -d "$relpath/src/plugins/gfxdrivers" ]; then +- for a in "$relpath/src/plugins/gfxdrivers/"*; do +- if [ -d "$a" ]; then +- base_a=`basename $a` +- CFG_GFX_PLUGIN_AVAILABLE="${CFG_GFX_PLUGIN_AVAILABLE} ${base_a}" ++ for a in `ls $relpath/src/plugins/gfxdrivers/`; do ++ dir="$relpath/src/plugins/gfxdrivers/$a" ++ if [ -d "$dir" ]; then ++ CFG_GFX_PLUGIN_AVAILABLE="${CFG_GFX_PLUGIN_AVAILABLE} ${a}" + fi + done + CFG_GFX_OFF="$CFG_GFX_AVAILABLE" # assume all off diff --git a/packages/qt4/qt-embedded-4.4.0/build-tools.patch b/packages/qt4/qt-embedded-4.4.0/build-tools.patch new file mode 100644 index 0000000000..54ad666374 --- /dev/null +++ b/packages/qt4/qt-embedded-4.4.0/build-tools.patch @@ -0,0 +1,28 @@ +Do not disable tools, examples and demos for the QWS build. Use brute-force +to do this. + +Index: qtopia-core-opensource-src-4.3.3/configure +=================================================================== +--- qtopia-core-opensource-src-4.3.3.orig/configure 2007-12-27 16:30:36.000000000 +0100 ++++ qtopia-core-opensource-src-4.3.3/configure 2007-12-27 16:30:52.000000000 +0100 +@@ -2265,13 +2265,13 @@ + CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS" + + # don't build tools by default when cross-compiling +- if [ "$PLATFORM" != "$XPLATFORM" ]; then +- CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"` +- fi +-fi +-for nobuild in $CFG_NOBUILD_PARTS; do +- CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"` +-done ++ #if [ "$PLATFORM" != "$XPLATFORM" ]; then ++ # CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"` ++ #fi ++fi ++#for nobuild in $CFG_NOBUILD_PARTS; do ++# CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"` ++#done + if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then + # echo + # echo "WARNING: libs is a required part of the build." diff --git a/packages/qt4/qt-embedded-4.4.0/linux-oe-qmake.conf b/packages/qt4/qt-embedded-4.4.0/linux-oe-qmake.conf new file mode 100644 index 0000000000..fc5ac6dc5c --- /dev/null +++ b/packages/qt4/qt-embedded-4.4.0/linux-oe-qmake.conf @@ -0,0 +1,95 @@ +# +# qmake configuration for linux-oe-g++ / OpenEmbedded Build System / http://openembedded.org +# + +MAKEFILE_GENERATOR = UNIX +TEMPLATE = app +CONFIG += qt warn_on release link_prl +QT += core gui network +QMAKE_INCREMENTAL_STYLE = sublib + +QMAKE_CC = $(OE_QMAKE_CC) +QMAKE_LEX = flex +QMAKE_LEXFLAGS = +QMAKE_YACC = yacc +QMAKE_YACCFLAGS = -d +QMAKE_YACCFLAGS_MANGLE = -p $base -b $base +QMAKE_YACC_HEADER = $base.tab.h +QMAKE_YACC_SOURCE = $base.tab.c +QMAKE_CFLAGS = -pipe $(OE_QMAKE_CFLAGS) $(CFLAGS_EXTRA) +QMAKE_CFLAGS_DEPS = -M +QMAKE_CFLAGS_WARN_ON = -Wall -W +QMAKE_CFLAGS_WARN_OFF = +QMAKE_CFLAGS_RELEASE = $(if $(CFLAGS_RELEASE),$(CFLAGS_RELEASE), -O2) +QMAKE_CFLAGS_DEBUG = -g +QMAKE_CFLAGS_SHLIB = -fPIC +QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses +QMAKE_CFLAGS_THREAD = -D_REENTRANT +QMAKE_CFLAGS_HIDESYMS = -fvisibility=hidden + +QMAKE_CXX = $(OE_QMAKE_CXX) +QMAKE_CXXFLAGS = $$QMAKE_CFLAGS $(OE_QMAKE_CXXFLAGS) $(CXXFLAGS_EXTRA) +QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS +QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON +QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF +QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE +QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG +QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB +QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC +QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD +QMAKE_CXXFLAGS_HIDESYMS = $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden + +QMAKE_INCDIR = +QMAKE_LIBDIR = +QMAKE_INCDIR_X11 = +QMAKE_LIBDIR_X11 = +QMAKE_INCDIR_QT = $(OE_QMAKE_INCDIR_QT) +QMAKE_LIBDIR_QT = $(OE_QMAKE_LIBDIR_QT) +QMAKE_INCDIR_OPENGL = +QMAKE_LIBDIR_OPENGL = +QMAKE_INCDIR_QTOPIA = $(OE_QMAKE_INCDIR_QTOPIA) +QMAKE_LIBDIR_QTOPIA = $(OE_QMAKE_LIBDIR_QTOPIA) + + +QMAKE_LINK = $(OE_QMAKE_LINK) +QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK) +QMAKE_LFLAGS = $(OE_QMAKE_LDFLAGS) $(LFLAGS_EXTRA) +QMAKE_LFLAGS_RELEASE = +QMAKE_LFLAGS_DEBUG = +QMAKE_LFLAGS_SHLIB = -shared +QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB +QMAKE_LFLAGS_SONAME = -Wl,-soname, +QMAKE_LFLAGS_THREAD = +QMAKE_RPATH = -Wl,-rpath-link, + +QMAKE_LIBS = $(LIBS_EXTRA) +QMAKE_LIBS_DYNLOAD = -ldl +QMAKE_LIBS_X11 = +QMAKE_LIBS_X11SM = +QMAKE_LIBS_QT = -lqte +QMAKE_LIBS_QT_THREAD = -lqte-mt +QMAKE_LIBS_QT_OPENGL = -lqgl +QMAKE_LIBS_THREAD = -lpthread +QMAKE_LIBS_QTOPIA = -lqpe -lqtopia +QMAKE_LIBS_THREAD = -lpthread + +QMAKE_MOC = $$[QT_INSTALL_BINS]/moc +QMAKE_UIC = $$[QT_INSTALL_BINS]/uic + +QMAKE_AR = $(OE_QMAKE_AR) cqs +QMAKE_RANLIB = $(OE_QMAKE_RANLIB) + +QMAKE_TAR = tar -cf +QMAKE_GZIP = gzip -9f + +QMAKE_COPY = cp -f +QMAKE_COPY_FILE = $(COPY) +QMAKE_COPY_DIR = $(COPY) -r +QMAKE_MOVE = mv -f +QMAKE_DEL_FILE = rm -f +QMAKE_DEL_DIR = rmdir +QMAKE_STRIP = $(OE_QMAKE_STRIP) +QMAKE_STRIPFLAGS_LIB += --strip-unneeded +QMAKE_CHK_DIR_EXISTS = test -d +QMAKE_MKDIR = mkdir -p +load(qt_config) diff --git a/packages/qt4/qt-embedded-4.4.0/qconfig-oe.h b/packages/qt4/qt-embedded-4.4.0/qconfig-oe.h new file mode 100644 index 0000000000..f820c01da8 --- /dev/null +++ b/packages/qt4/qt-embedded-4.4.0/qconfig-oe.h @@ -0,0 +1,45 @@ +/**************************************************************************** +** +** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved. +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** This file may be used under the terms of the GNU General Public +** License version 2.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of +** this file. Please review the following information to ensure GNU +** General Public Licensing requirements will be met: +** http://trolltech.com/products/qt/licenses/licensing/opensource/ +** +** If you are unsure which license is appropriate for your use, please +** review the following information: +** http://trolltech.com/products/qt/licenses/licensing/licensingoverview +** or contact the sales department at sales@trolltech.com. +** +** In addition, as a special exception, Trolltech gives you certain +** additional rights. These rights are described in the Trolltech GPL +** Exception version 1.0, which can be found at +** http://www.trolltech.com/products/qt/gplexception/ and in the file +** GPL_EXCEPTION.txt in this package. +** +** In addition, as a special exception, Trolltech, as the sole copyright +** holder for Qt Designer, grants users of the Qt/Eclipse Integration +** plug-in the right for the Qt/Eclipse Integration to link to +** functionality provided by Qt Designer and its related libraries. +** +** Trolltech reserves all rights not expressly granted herein. +** +** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** +****************************************************************************/ + + +/* + Empty leaves all features enabled. See doc/html/emb-features.html for choices. + + Note that disabling some features will produce a libqt that is not + compatible with other libqt builds. Such modifications are only + supported on Qtopia Core where reducing the library size is important + and where the application-suite is often a fixed set. +*/ diff --git a/packages/qt4/qt-embedded_4.4.0.bb b/packages/qt4/qt-embedded_4.4.0.bb new file mode 100644 index 0000000000..f83b2516d7 --- /dev/null +++ b/packages/qt4/qt-embedded_4.4.0.bb @@ -0,0 +1,32 @@ +require qtopia-core.inc + +PROVIDES += "qtopia-core" +RPROVIDES_${PN} = "qtopia-core" + +PR = "r4" + +SRC_URI = "ftp://ftp.trolltech.com/qt/source/qt-embedded-linux-opensource-src-${PV}.tar.bz2 \ + file://qconfig-oe.h \ + file://0001-cross-compile.patch;patch=1 \ + file://0003-no-tools.patch;patch=1 \ + file://0004-no-qmake.patch;patch=1 \ + file://0005-fix-mkspecs.patch;patch=1 \ + file://build-tools.patch;patch=1" +S = "${WORKDIR}/qt-embedded-linux-opensource-src-${PV}" + +SRC_URI += " \ + file://0006-freetype-host-includes.patch;patch=1 \ + file://0007-openssl-host-includes.patch;patch=1 \ +# file://0008-backport-qt-lib-infix.patch;patch=1 \ +# file://allow-configure-plugins.patch;patch=1 \ +" + +QT_CONFIG_FLAGS += " \ + -no-phonon -webkit \ + -DQT_KEYPAD_NAVIGATION \ + " + +QT_BASE_NAME = "qt-embedded" +QT_BASE_LIB = "libqt-embedded" + + diff --git a/packages/qt4/qt_packaging.inc b/packages/qt4/qt_packaging.inc index 1b4faf97d2..b291925982 100644 --- a/packages/qt4/qt_packaging.inc +++ b/packages/qt4/qt_packaging.inc @@ -3,6 +3,7 @@ NONDEV_PACKAGES += "${QT_BASE_LIB}core4 ${QT_BASE_LIB}gui4 ${QT_BASE_LIB}network ${QT_BASE_LIB}designer4 ${QT_BASE_LIB}designercomponents4 \ ${QT_BASE_LIB}3support4 ${QT_BASE_LIB}assistantclient4 ${QT_BASE_LIB}script4 \ ${QT_BASE_LIB}dbus4 ${QT_BASE_LIB}opengl4 \ + ${QT_BASE_LIB}help ${QT_BASE_LIB}clucene ${QT_BASE_LIB}webkit \ ${QT_BASE_NAME}-assistant ${QT_BASE_NAME}-common \ ${QT_BASE_NAME}-designer \ ${QT_BASE_NAME}-demos ${QT_BASE_NAME}-examples \ @@ -24,7 +25,11 @@ DEV_PACKAGES += "${QT_BASE_LIB}core4-dev \ ${QT_BASE_LIB}script4-dev \ ${QT_BASE_LIB}dbus4-dev \ ${QT_BASE_LIB}opengl4-dev \ - ${QT_BASE_LIB}uitools4-dev" + ${QT_BASE_LIB}uitools4-dev \ + ${QT_BASE_LIB}help-dev \ + ${QT_BASE_LIB}clucene-dev \ + ${QT_BASE_LIB}webkit-dev \ + " DBG_PACKAGES += "${QT_BASE_LIB}core4-dbg \ ${QT_BASE_LIB}gui4-dbg \ @@ -39,7 +44,11 @@ DBG_PACKAGES += "${QT_BASE_LIB}core4-dbg \ ${QT_BASE_LIB}assistantclient4-dbg \ ${QT_BASE_LIB}script4-dbg \ ${QT_BASE_LIB}dbus4-dbg \ - ${QT_BASE_LIB}opengl4-dbg" + ${QT_BASE_LIB}opengl4-dbg \ + ${QT_BASE_LIB}help-dbg \ + ${QT_BASE_LIB}clucene-dbg \ + ${QT_BASE_LIB}webkit-dbg \ + " PACKAGES += "${DEV_PACKAGES} ${NONDEV_PACKAGES} ${DBG_PACKAGES}" @@ -48,9 +57,9 @@ ALLOW_EMPTY_${PN} = "1" FILES_${PN} = "" FILES_${PN}-dev = " ${includedir}/${QT_DIR_NAME}/Qt/*" FILES_${PN}-dbg = "${bindir}/*/.debug " -RDEPENDS_${PN} = "${NONDEV_PACKAGES}" -RDEPENDS_${PN}-dev = "${DEV_PACKAGES}" -RDEPENDS_${PN}-dbg = "${DBG_PACKAGES}" +RRECOMMENDS_${PN} = "${NONDEV_PACKAGES}" +RRECOMMENDS_${PN}-dev = "${DEV_PACKAGES}" +RRECOMMENDS_${PN}-dbg = "${DBG_PACKAGES}" def qt_default_dev(name): return """${libdir}/libQt%(name)s${QT_LIBINFIX}.la @@ -103,7 +112,15 @@ FILES_${QT_BASE_LIB}opengl4 = "${libdir}/libQtOpenGL${QT_LIBINFI FILES_${QT_BASE_LIB}opengl4-dev = "${@qt_default_dev('OpenGL')}" FILES_${QT_BASE_LIB}opengl4-dbg = "${libdir}/.debug/libQtOpenGL*" FILES_${QT_BASE_LIB}uitools4-dev = "${libdir}/libQtUiTools* ${includedir}/${QT_DIR_NAME}/QtUiTools* ${libdir}/pkgconfig/QtUiTools${QT_LIBINFIX}.pc" - +FILES_${QT_BASE_LIB}help = "${libdir}/libQtHelp${QT_LIBINFIX}.so.*" +FILES_${QT_BASE_LIB}help-dev = "${@qt_default_dev('Help')}" +FILES_${QT_BASE_LIB}help-dbg = "${libdir}/.debug/libQtHelp*" +FILES_${QT_BASE_LIB}clucene = "${libdir}/libQtCLucene${QT_LIBINFIX}.so.*" +FILES_${QT_BASE_LIB}clucene-dev = "${@qt_default_dev('CLucene')}" +FILES_${QT_BASE_LIB}clucene-dbg = "${libdir}/.debug/libQtCLucene*" +FILES_${QT_BASE_LIB}webkit = "${libdir}/libQtWebKit${QT_LIBINFIX}.so.*" +FILES_${QT_BASE_LIB}webkit-dev = "${@qt_default_dev('WebKit')}" +FILES_${QT_BASE_LIB}webkit-dbg = "${libdir}/.debug/libQtWebKit*" FILES_${QT_BASE_NAME}-assistant = "${bindir}/*assistant*" FILES_${QT_BASE_NAME}-designer = "${bindir}/*designer*" @@ -120,11 +137,11 @@ FILES_${QT_BASE_NAME}-fonts = "${libdir}/fonts" python populate_packages_prepend() { translation_dir = bb.data.expand('${datadir}/${QT_DIR_NAME}/translations/', d) translation_name = bb.data.expand('${QT_BASE_NAME}-translation-%s', d) - do_split_packages(d, translation_dir, '^qt_(.*)\.qm$', translation_name, '{PN} translation for %s', extra_depends='' ) + do_split_packages(d, translation_dir, '^qt_(.*)\.qm$', translation_name, '${PN} translation for %s', extra_depends='' ) phrasebook_dir = bb.data.expand('${datadir}/${QT_DIR_NAME}/phrasebooks/', d) phrasebook_name = bb.data.expand('${QT_BASE_NAME}-phrasebook-%s', d) - do_split_packages(d, phrasebook_dir, '^(.*)\.qph$', phrasebook_name, '{PN} phrasebook for %s', extra_depends='' ) + do_split_packages(d, phrasebook_dir, '^(.*)\.qph$', phrasebook_name, '${PN} phrasebook for %s', extra_depends='' ) # Package all the plugins and their -dbg version and create a meta package import os @@ -141,7 +158,7 @@ python populate_packages_prepend() { plugin_name = bb.data.expand('${QT_BASE_NAME}-plugin-%s-%%s' % name, d) dev_packages = [] dev_hook = lambda file,pkg,b,c,d:dev_packages.append((file,pkg)) - do_split_packages(d, plugin_dir, glob, plugin_name, '{PN} %s for %%s' % name, extra_depends='', hook=dev_hook) + do_split_packages(d, plugin_dir, glob, plugin_name, '${PN} %s for %%s' % name, extra_depends='', hook=dev_hook) # Create a -dbg package as well plugin_dir_dbg = bb.data.expand('${libdir}/${QT_DIR_NAME}/plugins/%s/.debug' % path, d) packages = bb.data.getVar('PACKAGES',d) @@ -149,7 +166,7 @@ python populate_packages_prepend() { packages = "%s %s-dbg" % (packages, package) file_name = os.path.join(plugin_dir_dbg, os.path.basename(file)) bb.data.setVar("FILES_%s-dbg" % package, file_name, d) - bb.data.setVar("DESCRIPTION_%s-dbg" % package, "{PN} %s for %s" % (name, package), d) + bb.data.setVar("DESCRIPTION_%s-dbg" % package, "${PN} %s for %s" % (name, package), d) bb.data.setVar('PACKAGES', packages, d) diff --git a/packages/qt4/qt_staging.inc b/packages/qt4/qt_staging.inc index a49be4757e..705ae14f8d 100644 --- a/packages/qt4/qt_staging.inc +++ b/packages/qt4/qt_staging.inc @@ -6,6 +6,11 @@ do_stage_append() { sed -i s#"uic_location=${STAGING_BINDIR}/uic4$"## Qt*.pc sed -i s#"-L${STAGING_LIBDIR}"##g Qt*.pc sed -i s#'$(OE_QMAKE_LIBS_X11)'#"${OE_QMAKE_LIBS_X11}"#g Qt*.pc + sed -i s#"-L${S}/lib"##g phonon*.pc + sed -i s#"moc_location=${STAGING_BINDIR}/moc4$"## phonon*.pc + sed -i s#"uic_location=${STAGING_BINDIR}/uic4$"## phonon*.pc + sed -i s#"-L${STAGING_LIBDIR}"##g phonon*.pc + sed -i s#'$(OE_QMAKE_LIBS_X11)'#"${OE_QMAKE_LIBS_X11}"#g phonon*.pc cd ${STAGING_LIBDIR} sed -i s#"-L${S}/lib"##g libQt*.la diff --git a/packages/qt4/qtopia-core_4.4.0.bb b/packages/qt4/qtopia-core_4.4.0.bb new file mode 100644 index 0000000000..71a702b965 --- /dev/null +++ b/packages/qt4/qtopia-core_4.4.0.bb @@ -0,0 +1,6 @@ +#Empty recipe to break a recursive loop +DEFAULT_PREFERENCE = "-1" +DEFAULT_PREFERENCE_angstrom = "1" + +#keep in sync with qt-embedded_4.4.0.bb +PR = "r4" diff --git a/packages/tar/tar_1.20.bb b/packages/tar/tar_1.20.bb new file mode 100644 index 0000000000..701c0b77bf --- /dev/null +++ b/packages/tar/tar_1.20.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "GNU tar saves many files together into a single tape \ +or disk archive, and can restore individual files from the archive." +SECTION = "base" +LICENSE = "GPLv3" + +SRC_URI = "${GNU_MIRROR}/tar/tar-${PV}.tar.bz2" + +inherit autotools + +do_install () { + autotools_do_install + install -d ${D}${base_bindir} + mv ${D}${bindir}/tar ${D}${base_bindir}/tar.${PN} + mv ${D}${libexecdir}/rmt ${D}${libexecdir}/rmt.${PN} +} + +pkg_postinst_${PN} () { + update-alternatives --install ${base_bindir}/tar tar tar.${PN} 100 + update-alternatives --install ${libexecdir}/rmt rmt rmt.${PN} 100 +} + +pkg_prerm_${PN} () { + update-alternatives --remove tar tar.${PN} + update-alternatives --remove rmt rmt.${PN} +} diff --git a/packages/tasks/task-python-everything.bb b/packages/tasks/task-python-everything.bb index 669c94159b..623337455c 100644 --- a/packages/tasks/task-python-everything.bb +++ b/packages/tasks/task-python-everything.bb @@ -1,7 +1,7 @@ DESCRIPTION= "Everything Python" HOMEPAGE = "http://www.vanille.de/projects/python.spy" LICENSE = "MIT" -PR = "ml30" +PR = "ml31" RDEPENDS = "\ python-ao \ @@ -36,6 +36,7 @@ RDEPENDS = "\ python-numarray \ python-numeric \ python-ogg \ + python-opendir \ python-pexpect \ python-pyalsa \ python-pyalsaaudio \ diff --git a/packages/tasks/task-sdk-bare.bb b/packages/tasks/task-sdk-bare.bb new file mode 100644 index 0000000000..d2d40f64b3 --- /dev/null +++ b/packages/tasks/task-sdk-bare.bb @@ -0,0 +1,23 @@ +DESCRIPTION = "Packages for a standalone SDK or external toolchain" +LICENSE = "MIT" +ALLOW_EMPTY = "1" + + +PACKAGES = "${PN}" + +RDEPENDS_${PN} = "\ + glibc \ + glibc-dbg \ + glibc-dev \ + glibc-utils \ + libsegfault \ + glibc-thread-db \ + glibc-localedata-i18n \ + glibc-gconv-ibm850 \ + glibc-gconv-cp1252 \ + glibc-gconv-iso8859-1 \ + glibc-gconv-iso8859-15 \ + locale-base-en-gb \ + libgcc \ + libstdc++ \ +" diff --git a/packages/u-boot/files/Makefile-fix.patch b/packages/u-boot/files/Makefile-fix.patch new file mode 100644 index 0000000000..fccf19c63d --- /dev/null +++ b/packages/u-boot/files/Makefile-fix.patch @@ -0,0 +1,25 @@ +--- /tmp/Makefile 2008-07-07 20:48:41.000000000 +0200 ++++ git/Makefile 2008-07-07 20:49:22.000000000 +0200 +@@ -21,10 +21,6 @@ + # MA 02111-1307 USA + # + +-ifndef PRJROOT +-$(error You must first source the BSP environment: "source neuros-env") +-endif +- + VERSION = 1 + PATCHLEVEL = 3 + SUBLEVEL = 2 +@@ -417,11 +413,6 @@ + grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ + sort > $(obj)System.map + +-install: u-boot.bin u-boot +- @install -p u-boot.bin $(PRJROOT)/images/ > /dev/null +- @install -p u-boot $(PRJROOT)/images/ > /dev/null +- @install uboot_desc $(PRJROOT)/images/ > /dev/null +- + # + # Auto-generate the autoconf.mk file (which is included by all makefiles) + # diff --git a/packages/u-boot/files/neuros-osd2/.mtn2git_empty b/packages/u-boot/files/neuros-osd2/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/u-boot/files/neuros-osd2/.mtn2git_empty diff --git a/packages/u-boot/files/neuros-osd2/default-env.ascr b/packages/u-boot/files/neuros-osd2/default-env.ascr new file mode 100644 index 0000000000..965f778b44 --- /dev/null +++ b/packages/u-boot/files/neuros-osd2/default-env.ascr @@ -0,0 +1,55 @@ +setenv loadaddr 0x82000000 +setenv ubootaddr 0x82000800 +setenv tftp_root /images +setenv nfs_root /home/user/rootfs/fs +setenv bootfile uImage + +setenv defenv_fname default_env.img +setenv defenv_loc /images/default_env.img +setenv defenv_loc_cmd setenv defenv_loc \$(tftp_root)/\$(defenv_fname) + +setenv uboot_fname u-boot.bin +setenv uboot_loc /images/u-boot.bin +setenv uboot_loc_cmd setenv uboot_loc \$(tftp_root)/\$(uboot_fname)\;setenv uboot_desc \$(tftp_root)/uboot_desc + +setenv kernel_fname uImage +setenv kernel_loc /images/uImage +setenv kernel_loc_cmd setenv kernel_loc \$(tftp_root)/\$(kernel_fname) + +setenv jffs2_fname uImage.jffs2 +setenv jffs2_loc /images/uImage.jffs2 +setenv jffs2_loc_cmd setenv jffs2_loc \$(tftp_root)/\$(jffs2_fname) + +setenv rootfs_fname rootfs.yaffs2 +setenv rootfs_loc /images/rootfs.yaffs2 +setenv rootfs_loc_cmd setenv rootfs_loc \$(tftp_root)/\$(rootfs_fname) + +setenv rootfs_nfs_loc /rootfs/fs +setenv rootfs_nfs_loc_cmd setenv rootfs_nfs_loc \$(nfs_root) + +setenv console console=ttyS0,115200n8 + +setenv mem_reserve mem=200M + +setenv video_params video=davincifb:output=ntsc:format=composite + +setenv ip ip=\192.168.1.100:\192.168.1.1:\192.168.1.1:\255.255.255.0:\neuros::off + +setenv nfs_mount_params udp,v3,rsize=4096,wsize=4096 +setenv nfs_cmd setenv bootargs \$(console) root=/dev/nfs rw nfsroot=\$(serverip):\$(rootfs_nfs_loc),\$(nfs_mount_params) \$(ip) \$(mem_reserve) \$(video_params) +setenv yaffs_cmd setenv bootargs \$(console) root=/dev/mtdblock4 rw \$(ip) \$(mem_reserve) \$(video_params) + +setenv update-locs run uboot_loc_cmd\;run kernel_loc_cmd\;run jffs2_loc_cmd\;run defenv_loc_cmd\;run rootfs_nfs_loc_cmd\;saveenv +setenv update-defenv run defenv_loc_cmd\;tftp \$(loadaddr) \$(defenv_loc)\;setenv filesize\;autoscr \$(loadaddr)\;run update-locs +setenv update-uboot run uboot_loc_cmd\;tftp \$(loadaddr) \$(uboot_desc)\;tftp \$(ubootaddr) \$(uboot_loc)\;setenv filesize\;nand erase c0000 c0000\;nand write \$(loadaddr) c0000 c0000 +setenv update-kernel run jffs2_loc_cmd\;tftp \$(loadaddr) \$(jffs2_loc)\;setenv filesize\;nand erase 1c0000 500000\;nand write.jffs2 \$(loadaddr) 1c0000 500000 +setenv update-rootfs run rootfs_loc_cmd\;tftp \$(loadaddr) \$(rootfs_loc)\;nand erase 6c0000\;nand write.yaffs \$(loadaddr) 6c0000 \$(filesize)\;setenv filesize + +setenv update-ipdhcp setenv ip ip=::::\$(hostname)::dhcp\;saveenv +setenv update-ipstatic setenv ip ip=\$(ipaddr):\$(serverip):\$(gatewayip):\$(netmask):\$(hostname)::off\;saveenv + +setenv devboot tftp \$(loadaddr) \$(uboot_loc)\;setenv filesize\;go \$(loadaddr) +setenv devkernel run nfs_cmd\;tftp \$(loadaddr) \$(kernel_loc)\;setenv filesize\;bootm \$(loadaddr) +setenv yaffs_boot run yaffs_cmd\;fsload \$(loadaddr) \$(bootfile)\;bootm \$(loadaddr) + +setenv bootcmd run yaffs_boot diff --git a/packages/u-boot/u-boot-env.bb b/packages/u-boot/u-boot-env.bb new file mode 100644 index 0000000000..fc4d64ad78 --- /dev/null +++ b/packages/u-boot/u-boot-env.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "Dummy package to get uboot env image into deploy" + +inherit kernel-arch + +SRC_URI = "file://default-env.ascr" + + +do_compile() { + cp ${WORKDIR}/default-env.ascr ${S} + uboot-mkimage -A ${UBOOT_ARCH} -O linux -T script -C none -a 0 -e 0 -n "${DISTRO_NAME}/${MACHINE} env script" -d default-env.ascr default_env.img +} + +do_stage() { + install -d ${DEPLOY_DIR_IMAGE} + install -m 0644 ${S}/default_env.img ${DEPLOY_DIR_IMAGE}/ + package_stagefile_shell ${DEPLOY_DIR_IMAGE}/default_env.img + +} + + +PACKAGE_ARCH = "${MACHINE_ARCH}" diff --git a/packages/u-boot/u-boot_git.bb b/packages/u-boot/u-boot_git.bb index c201eced37..32634dfa00 100644 --- a/packages/u-boot/u-boot_git.bb +++ b/packages/u-boot/u-boot_git.bb @@ -1,12 +1,13 @@ require u-boot.inc -PR="r6" +PR="r7" SRCREV_davinci-sffsdr = "a524e112b424c6843800ea2f19d3a8cf01d0aa94" SRCREV_beagleboard = "a94f22f08f280905926219e568568964cb9eeb9d" +SRCREV_neuros-osd2 = "482dfe48845192c7f810bccfc93db93d0f1654f7" SRC_URI = "git://www.denx.de/git/u-boot.git;protocol=git " SRC_URI_sequoia = "git://www.denx.de/git/u-boot.git;protocol=git;tag=cf3b41e0c1111dbb865b6e34e9f3c3d3145a6093 " - +SRC_URI_neuros-osd2 = "git://git.neurostechnology.com/git/u-boot;protocol=git;branch=neuros" SRC_URI_append_davinci-sffsdr = " file://sffsdr-u-boot.patch;patch=1 " SRC_URI_append_beagleboard = "file://base.patch;patch=1 \ @@ -14,6 +15,8 @@ SRC_URI_append_beagleboard = "file://base.patch;patch=1 \ file://armv7-a.patch;patch=1 \ " +SRC_URI_neuros-osd2 += "file://Makefile-fix.patch;patch=1" + S = "${WORKDIR}/git" PACKAGE_ARCH = "${MACHINE_ARCH}" diff --git a/packages/uicmoc/uicmoc4-native_4.4.0.bb b/packages/uicmoc/uicmoc4-native_4.4.0.bb new file mode 100644 index 0000000000..6d9c83eb75 --- /dev/null +++ b/packages/uicmoc/uicmoc4-native_4.4.0.bb @@ -0,0 +1,7 @@ +require uicmoc4-native.inc + +SRC_URI = "ftp://ftp.trolltech.com/qt/source/qt-embedded-linux-opensource-src-${PV}.tar.bz2 \ + file://configure-fix.patch;patch=1" +S = "${WORKDIR}/qt-embedded-linux-opensource-src-${PV}" + + diff --git a/packages/webkit/webkit-gtk/GNUmakefile.am b/packages/webkit/webkit-gtk/GNUmakefile.am index 725c79d3c6..a6ae299039 100644 --- a/packages/webkit/webkit-gtk/GNUmakefile.am +++ b/packages/webkit/webkit-gtk/GNUmakefile.am @@ -14,8 +14,9 @@ # # Sources, headers, flags, etc... should be added to the respective variables # with the above suffix, e.g, webcore-specific sources should go to -# webcore_sources, gtk port-specific flags should go to webkitgtk_cppflags, -# etc... The only exceptions are the global variables. See Global Variables below. +# webcore_sources, gtk port API and WebCoreSupport parts to webkitgtk_sources, +# etc... The only exceptions are the global variables. See Global Variables +# below. # # Global Variables # @@ -37,6 +38,8 @@ GENPROGRAMS := $(top_builddir)/Programs CREATE_HASH_TABLE = $(srcdir)/JavaScriptCore/kjs/create_hash_table # Libraries and support components +bin_PROGRAMS := + noinst_PROGRAMS := lib_LIBRARIES := @@ -71,6 +74,12 @@ global_cxxflags += \ -fno-rtti endif +# -no-undefined required for building DLLs on Windows +# It breaks the build on other platforms, so we use it conditionally +if OS_WIN32 +no_undefined = -no-undefined +endif + # Shared libraries lib_LTLIBRARIES = \ libwebkit-1.0.la @@ -115,17 +124,19 @@ libJavaScriptCore_la_LIBADD = \ -lpthread libJavaScriptCore_la_CXXFLAGS = \ + -fstrict-aliasing \ + -O3 \ $(global_cxxflags) \ $(global_cflags) \ $(GLOBALDEPS_CFLAGS) \ - $(UNICODE_CFLAGS) \ - -fno-strict-aliasing + $(UNICODE_CFLAGS) libJavaScriptCore_la_CFLAGS = \ + -fstrict-aliasing \ + -O3 \ $(global_cflags) \ $(GLOBALDEPS_CFLAGS) \ - $(UNICODE_CFLAGS) \ - -fno-strict-aliasing + $(UNICODE_CFLAGS) libJavaScriptCore_la_CPPFLAGS = \ $(global_cppflags) \ @@ -139,16 +150,22 @@ webcore_headers := webcore_libadd := webcore_built_sources := webcore_built_nosources := +webcoregtk_cppflags := +webcoregtk_sources := +webcoregtk_headers := nodist_libWebCore_la_SOURCES = \ $(webcore_built_sources) libWebCore_la_SOURCES = \ $(webcore_headers) \ - $(webcore_sources) + $(webcore_sources) \ + $(webcoregtk_headers) \ + $(webcoregtk_sources) libWebCore_la_CXXFLAGS = \ -fno-strict-aliasing \ + -O2 \ $(global_cxxflags) \ $(global_cflags) \ $(GLOBALDEPS_CFLAGS) \ @@ -156,6 +173,7 @@ libWebCore_la_CXXFLAGS = \ $(WEBKITDEPS_CFLAGS) \ $(LIBCURL_CFLAGS) \ $(LIBSOUP_CFLAGS) \ + $(FREETYPE_CFLAGS) \ $(SQLITE3_CFLAGS) \ $(GSTREAMER_CFLAGS) \ $(LIBXSLT_CFLAGS) \ @@ -164,12 +182,14 @@ libWebCore_la_CXXFLAGS = \ libWebCore_la_CFLAGS = \ -fno-strict-aliasing \ + -O2 \ $(global_cflags) \ $(GLOBALDEPS_CFLAGS) \ $(UNICODE_CFLAGS) \ $(WEBKITDEPS_CFLAGS) \ $(LIBCURL_CFLAGS) \ $(LIBSOUP_CFLAGS) \ + $(FREETYPE_CFLAGS) \ $(SQLITE3_CFLAGS) \ $(GSTREAMER_CFLAGS) \ $(LIBXSLT_CFLAGS) \ @@ -180,7 +200,7 @@ libWebCore_la_CPPFLAGS = \ $(global_cppflags) \ $(webcore_cppflags) \ $(javascriptcore_cppflags) \ - $(webkitgtk_cppflags) \ + $(webcoregtk_cppflags) \ $(HILDON_CPPFLAGS) libWebCore_la_LIBADD = \ @@ -190,6 +210,7 @@ libWebCore_la_LIBADD = \ $(WEBKITDEPS_LIBS) \ $(LIBCURL_LIBS) \ $(LIBSOUP_LIBS) \ + $(FREETYPE_LIBS) \ $(UNICODE_LIBS) \ $(SQLITE3_LIBS) \ $(GSTREAMER_LIBS) \ @@ -211,7 +232,9 @@ nodist_libwebkit_1_0_la_SOURCES = \ $(webkitgtk_built_sources) libwebkit_1_0_ladir = $(prefix)/include/webkit-1.0/webkit -libwebkit_1_0_la_HEADERS = $(webkitgtk_h_api) +libwebkit_1_0_la_HEADERS = \ + $(webkitgtk_h_api) \ + WebKit/gtk/webkit/webkitenumtypes.h libwebkit_1_0_la_SOURCES = \ $(webkitgtk_headers) \ @@ -224,11 +247,13 @@ libwebkit_1_0_la_CFLAGS = \ $(libWebCore_la_CFLAGS) libwebkit_1_0_la_CPPFLAGS = \ - $(libWebCore_la_CPPFLAGS) + $(libWebCore_la_CPPFLAGS) \ + $(webkitgtk_cppflags) libwebkit_1_0_la_LDFLAGS = \ $(COVERAGE_LDFLAGS) \ - -version-info @LIBWEBKITGTK_VERSION@ + -version-info @LIBWEBKITGTK_VERSION@ \ + $(no_undefined) libwebkit_1_0_la_LIBADD = \ libWebCore.la @@ -236,6 +261,7 @@ libwebkit_1_0_la_LIBADD = \ # # Extra checks and flags global_cppflags += \ + -DBUILDING_CAIRO__=1 \ -DBUILDING_GTK__=1 \ -DWTF_CHANGES @@ -252,7 +278,7 @@ endif if !ENABLE_DEBUG global_cppflags += -DNDEBUG else -webkitgtk_cppflags += \ +webcoregtk_cppflags += \ -DG_DISABLE_DEPRECATED \ -DGDK_PIXBUF_DISABLE_DEPRECATED \ -DGDK_DISABLE_DEPRECATED \ @@ -282,15 +308,11 @@ if ENABLE_VIDEO webcore_libadd += -lgstinterfaces-0.10 -lgstvideo-0.10 endif -webkitgtk_cppflags += \ --I$(top_builddir)/WebKit/gtk/webkit \ --DBUILDING_CAIRO__=1 \ --DBUILD_WEBKIT - webkitgtk_h_api += \ WebKit/gtk/webkit/webkit.h \ WebKit/gtk/webkit/webkitdefines.h \ WebKit/gtk/webkit/webkitnetworkrequest.h \ + WebKit/gtk/webkit/webkitversion.h \ WebKit/gtk/webkit/webkitwebbackforwardlist.h \ WebKit/gtk/webkit/webkitwebframe.h \ WebKit/gtk/webkit/webkitwebhistoryitem.h \ @@ -299,7 +321,9 @@ webkitgtk_h_api += \ webkitgtk_built_sources += \ DerivedSources/webkit-marshal.h \ - DerivedSources/webkit-marshal.cpp + DerivedSources/webkit-marshal.cpp \ + DerivedSources/webkitenumtypes.cpp \ + WebKit/gtk/webkit/webkitenumtypes.h webkitgtk_headers += \ WebKit/gtk/webkit/webkitprivate.h \ @@ -314,6 +338,7 @@ webkitgtk_headers += \ webkitgtk_sources += \ WebKit/gtk/webkit/webkitnetworkrequest.cpp \ WebKit/gtk/webkit/webkitprivate.cpp \ + WebKit/gtk/webkit/webkitversion.cpp \ WebKit/gtk/webkit/webkitwebbackforwardlist.cpp \ WebKit/gtk/webkit/webkitwebframe.cpp \ WebKit/gtk/webkit/webkitwebhistoryitem.cpp \ @@ -327,6 +352,13 @@ webkitgtk_sources += \ WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp \ WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.cpp +webkitgtk_cppflags += \ + -DBUILDING_WEBKIT \ + -I$(srcdir)/WebKit/gtk \ + -I$(srcdir)/WebKit/gtk/WebCoreSupport \ + -I$(srcdir)/WebKit/gtk/webkit \ + -I$(top_builddir)/WebKit/gtk/webkit + webkitgtk_cleanfiles += \ $(top_builddir)/Programs/GtkLauncher \ $(top_builddir)/WebKit/gtk/webkit-1.0.pc @@ -334,12 +366,14 @@ webkitgtk_cleanfiles += \ pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = WebKit/gtk/webkit-1.0.pc -WEBKIT_MARSHAL = $(GENSOURCES)/webkit-marshal -WEBKIT_MARSHAL_LIST = $(srcdir)/WebKit/gtk/webkit/webkit-marshal.list - stamp_files := \ stamp-webkit-marshal.cpp \ - stamp-webkit-marshal.h + stamp-webkit-marshal.h \ + stamp-webkitenumtypes.cpp \ + stamp-webkitenumtypes.h + +WEBKIT_MARSHAL = $(GENSOURCES)/webkit-marshal +WEBKIT_MARSHAL_LIST = $(srcdir)/WebKit/gtk/webkit/webkit-marshal.list DerivedSources/webkit-marshal.cpp: stamp-webkit-marshal.cpp @true @@ -356,6 +390,53 @@ stamp-webkit-marshal.h: $(WEBKIT_MARSHAL_LIST) $(GLIB_GENMARSHAL) --prefix=webkit_marshal $(WEBKIT_MARSHAL_LIST) --header > $(WEBKIT_MARSHAL).h && \ echo timestamp > $(@F) +WebKit/gtk/webkit/webkitenumtypes.h: stamp-webkitenumtypes.h + @true +stamp-webkitenumtypes.h: $(webkitgtk_h_api) Makefile + (cd $(srcdir) \ + && glib-mkenums \ + --fhead "#ifndef WEBKIT_ENUM_TYPES_H\n" \ + --fhead "#define WEBKIT_ENUM_TYPES_H\n\n" \ + --fhead "#include <glib-object.h>\n\n" \ + --fhead "#include <webkit/webkitdefines.h>\n\n" \ + --fhead "G_BEGIN_DECLS\n\n" \ + --ftail "G_END_DECLS\n\n" \ + --ftail "#endif\n" \ + --fprod "#include <@filename@>\n\n" \ + --eprod "#define WEBKIT_TYPE_@ENUMSHORT@ @enum_name@_get_type()\n\n" \ + --eprod "WEBKIT_API GType\n@enum_name@_get_type(void);\n\n" \ + $(webkitgtk_h_api) | \ + sed 's,WebKit/gtk/,,' | \ + sed 's,web_kit,webkit,' | \ + sed 's,WEBKIT_TYPE_KIT,WEBKIT_TYPE,' \ + ) > xgen-gth \ + && (cmp -s xgen-gth WebKit/gtk/webkit/webkitenumtypes.h || cp xgen-gth WebKit/gtk/webkit/webkitenumtypes.h) \ + && rm -f xgen-gth \ + && echo timestamp > $(@F) + +DerivedSources/webkitenumtypes.cpp: $(webkitgtk_h_api) Makefile + (cd $(srcdir) \ + && glib-mkenums \ + --fhead "#include <config.h>\n" \ + --fhead "#include <glib-object.h>\n" \ + --fhead "#include \"$(top_builddir)/WebKit/gtk/webkit/webkitenumtypes.h\"\n\n" \ + --fhead "extern \"C\" {\n\n" \ + --fprod "\n/* enumerations from \"@filename@\" */" \ + --vhead "static const G@Type@Value _@enum_name@_values[] = {" \ + --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ + --vtail " { 0, NULL, NULL }\n};\n\n" \ + --vtail "GType @enum_name@_get_type(void)\n{\n" \ + --vtail " static GType type = 0;\n\n" \ + --vtail " if (!type)\n" \ + --vtail " type = g_@type@_register_static(\"@EnumName@\", _@enum_name@_values);\n\n" \ + --vtail " return type;\n}\n\n" \ + --ftail "}\n" \ + $(webkitgtk_h_api) | \ + sed 's,web_kit,webkit,' \ + ) > xgen-gtc \ + && cp xgen-gtc $@ \ + && rm -f xgen-gtc + # END WEBKIT GTK+ # Files that will be cleaned diff --git a/packages/webkit/webkit-gtk/Makefile b/packages/webkit/webkit-gtk/Makefile index fa7ea02426..217a035483 100644 --- a/packages/webkit/webkit-gtk/Makefile +++ b/packages/webkit/webkit-gtk/Makefile @@ -16,6 +16,10 @@ universal u: @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \ if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done +x86_64: + @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \ + if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done + 64: @for dir in $(MODULES); do ${MAKE} $@ -C $$dir; exit_status=$$?; \ if [ $$exit_status -ne 0 ]; then exit $$exit_status; fi; done diff --git a/packages/webkit/webkit-gtk/configure.ac b/packages/webkit/webkit-gtk/configure.ac index 24488ef6c4..d0aa7c84d1 100644 --- a/packages/webkit/webkit-gtk/configure.ac +++ b/packages/webkit/webkit-gtk/configure.ac @@ -1,11 +1,24 @@ -AC_INIT([WebKit],[0.1],[http://bugs.webkit.org/]) - AC_PREREQ(2.59) +m4_define([webkit_major_version], [1]) +m4_define([webkit_minor_version], [0]) +m4_define([webkit_micro_version], [2]) + +AC_INIT([WebKit],[webkit_major_version.webkit_minor_version.webkit_micro_version],[http://bugs.webkit.org/]) + AC_CONFIG_HEADERS([aconfig.h]) + +WEBKIT_MAJOR_VERSION=webkit_major_version +WEBKIT_MINOR_VERSION=webkit_minor_version +WEBKIT_MICRO_VERSION=webkit_micro_version +AC_SUBST(WEBKIT_MAJOR_VERSION) +AC_SUBST(WEBKIT_MINOR_VERSION) +AC_SUBST(WEBKIT_MICRO_VERSION) + AC_CONFIG_SRCDIR([WebCore/config.h]) -# see http://www.gnu.org/software/libtool/manual.html#Versioning +dnl # Libtool library version, not to confuse with API version +dnl # see http://www.gnu.org/software/libtool/manual.html#Versioning LIBWEBKITGTK_VERSION=1:0:0 AC_SUBST([LIBWEBKITGTK_VERSION]) @@ -38,23 +51,24 @@ case "$host" in ;; esac -# If CXXFLAGS and CFLAGS are unset, default to -O2 +# If CXXFLAGS and CFLAGS are unset, default to empty. # This is to tell automake not to include '-g' if CXXFLAGS is not set # For more info - http://www.gnu.org/software/automake/manual/autoconf.html#C_002b_002b-Compiler if test -z "$CXXFLAGS"; then - CXXFLAGS="-O2" + CXXFLAGS="" fi if test -z "$CFLAGS"; then - CFLAGS="-O2" + CFLAGS="" fi -# programs -AC_DISABLE_STATIC -AM_PROG_LIBTOOL -AC_PROG_INSTALL AM_PROG_CC_STDC -AC_PROG_CXX AM_PROG_CC_C_O +AC_PROG_CXX +AC_PROG_INSTALL +AC_DISABLE_STATIC +AC_LIBTOOL_WIN32_DLL +AC_PROG_LIBTOOL +DOLT # check for -fvisibility=hidden compiler support (GCC >= 4) saved_CFLAGS="$CFLAGS" @@ -147,10 +161,12 @@ esac AC_MSG_RESULT([$unicode_backend]) if test "$unicode_backend" = "icu"; then - # check for icu-config if test "$os_darwin" = "yes"; then UNICODE_CFLAGS="-I\$(srcdir)/JavaScriptCore/icu -I\$(srcdir)/WebCore/icu" UNICODE_LIBS="-licucore" + elif test "$os_win32" = "yes"; then + UNICODE_CFLAGS="" + UNICODE_LIBS="-licuin -licuuc" else AC_PATH_PROG(icu_config, icu-config, no) if test "$icu_config" = "no"; then @@ -243,9 +259,6 @@ PKG_CHECK_MODULES([WEBKITDEPS], [gtk+-2.0 >= $GTK_REQUIRED_VERSION pango >= $PANGO_REQUIRED_VERSION cairo >= $CAIRO_REQUIRED_VERSION - cairo-ft, - fontconfig >= $FONTCONFIG_REQUIRED_VERSION - freetype2 >= $FREETYPE2_REQUIRED_VERSION libxml-2.0 >= $LIBXML_REQUIRED_VERSION]) AC_SUBST([WEBKITDEPS_CFLAGS]) AC_SUBST([WEBKITDEPS_LIBS]) @@ -266,14 +279,6 @@ AC_ARG_ENABLE(dashboard_support, [],[enable_dashboard_support="yes"]) AC_MSG_RESULT([$enable_dashboard_support]) -# check whether to build with cross-document messaging support -AC_MSG_CHECKING([whether to enable HTML5 cross-document messaging support]) -AC_ARG_ENABLE(cross_document_messaging, - AC_HELP_STRING([--enable-cross-document-messaging], - [enable HTML5 cross-document messaging support [default=yes]]), - [],[enable_cross_document_messaging="yes"]) -AC_MSG_RESULT([$enable_cross_document_messaging]) - # check whether to enable HTML5 Offline Web Applications support AC_MSG_CHECKING([whether to enable HTML5 offline web applications support]) AC_ARG_ENABLE(offline_web_applications, @@ -286,8 +291,8 @@ AC_MSG_RESULT([$enable_offline_web_applications]) AC_MSG_CHECKING([whether to enable HTML5 client-side session and persistent storage support]) AC_ARG_ENABLE(dom_storage, AC_HELP_STRING([--enable-dom-storage], - [enable HTML5 client-side session and persistent storage support [default=no]]), - [],[enable_dom_storage="no"]) + [enable HTML5 client-side session and persistent storage support [default=yes]]), + [],[enable_dom_storage="yes"]) AC_MSG_RESULT([$enable_dom_storage]) # check whether to build with database support @@ -302,8 +307,8 @@ AC_MSG_RESULT([$enable_database]) AC_MSG_CHECKING([whether to enable icon database support]) AC_ARG_ENABLE(icon_database, AC_HELP_STRING([--enable-icon-database], - [enable icon database [default=no]]), - [],[enable_icon_database="no"]) + [enable icon database [default=yes]]), + [],[enable_icon_database="yes"]) AC_MSG_RESULT([$enable_icon_database]) # check whether to enable HTML5 audio/video support @@ -330,39 +335,30 @@ AC_ARG_ENABLE(xslt, [],[enable_xslt="yes"]) AC_MSG_RESULT([$enable_xslt]) -# check whether to enable SVG experimental features -# Enable all SVG if it is -AC_MSG_CHECKING([whether to enable SVG experimental features]) -AC_ARG_ENABLE(svg_experimental, - AC_HELP_STRING([--enable-svg-experimental], - [enable support for SVG experimental features [default=no]]), - [],[enable_svg_experimental="no"]) -AC_MSG_RESULT([$enable_svg_experimental]) - -if test "$enable_svg_experimental" = "yes"; then - enable_svg=yes - enable_svg_animation=yes -# enable_svg_filters=yes - enable_svg_fonts=yes - enable_svg_foreign_object=yes - enable_svg_as_image=yes - enable_svg_use_element=yes -fi - # check whether to enable SVG support AC_MSG_CHECKING([whether to enable SVG support]) AC_ARG_ENABLE(svg, AC_HELP_STRING([--enable-svg], - [enable support for SVG [default=no]]), - [],[enable_svg="no"]) + [enable support for SVG [default=yes]]), + [],[enable_svg="yes"]) AC_MSG_RESULT([$enable_svg]) +# turn off svg features if --disable-svg is requested +if test "$enable_svg" = "no"; then + enable_svg_animation=no + enable_svg_filters=no + enable_svg_fonts=no + enable_svg_foreign_object=no + enable_svg_as_image=no + enable_svg_use_element=no +fi + # check whether to enable support for SVG animation AC_MSG_CHECKING([whether to enable support for SVG animation]) AC_ARG_ENABLE(svg_animation, AC_HELP_STRING([--enable-svg-animation], - [enable support for SVG animation (experimental) [default=no]]), - [],[enable_svg_animation="no"]) + [enable support for SVG animation (experimental) [default=yes]]), + [],[enable_svg_animation="yes"]) AC_MSG_RESULT([$enable_svg_animation]) # check whether to enable support for SVG filters @@ -377,34 +373,48 @@ AC_MSG_RESULT([$enable_svg_filters]) AC_MSG_CHECKING([whether to enable support for SVG fonts]) AC_ARG_ENABLE(svg_fonts, AC_HELP_STRING([--enable-svg-fonts], - [enable support for SVG fonts (experimental) [default=no]]), - [],[enable_svg_fonts="no"]) + [enable support for SVG fonts (experimental) [default=yes]]), + [],[enable_svg_fonts="yes"]) AC_MSG_RESULT([$enable_svg_fonts]) # check whether to enable foreign objects support for SVG AC_MSG_CHECKING([whether to enable support for SVG foreign objects]) AC_ARG_ENABLE(svg_foreign_object, AC_HELP_STRING([--enable-svg-foreign-object], - [enable support for SVG foreign objects (experimental) [default=no]]), - [],[enable_svg_foreign_object="no"]) + [enable support for SVG foreign objects (experimental) [default=yes]]), + [],[enable_svg_foreign_object="yes"]) AC_MSG_RESULT([$enable_svg_foreign_object]) # check whether to enable SVG As Image support AC_MSG_CHECKING([whether to enable SVG as Image support]) AC_ARG_ENABLE(svg_as_image, AC_HELP_STRING([--enable-svg-as-image], - [enable SVG as Image support (experimental) [default=no]]), - [],[enable_svg_as_image="no"]) + [enable SVG as Image support (experimental) [default=yes]]), + [],[enable_svg_as_image="yes"]) AC_MSG_RESULT([$enable_svg_as_image]) # check whether to enable SVG USE element support AC_MSG_CHECKING([whether to enable support for SVG use element]) AC_ARG_ENABLE(svg_use_element, AC_HELP_STRING([--enable-svg-use-element], - [enable SVG use element support (experimental) [default=no]]), - [],[enable_svg_use_element="no"]) + [enable SVG use element support (experimental) [default=yes]]), + [],[enable_svg_use_element="yes"]) AC_MSG_RESULT([$enable_svg_use_element]) +# check for SVG features, enabling SVG if necessary +if test "$enable_svg_animation" = "yes" || \ + test "$enable_svg_filters" = "yes" || \ + test "$enable_svg_fonts" = "yes" || \ + test "$enable_svg_foreign_object" = "yes" || \ + test "$enable_svg_as_image" = "yes" || \ + test "$enable_svg_use_element" = "yes"; then + svg_flags=yes + if test "$enable_svg" = "no"; then + AC_MSG_WARN([SVG feature(s) requested but SVG is disabled.. Enabling SVG support]) + enable_svg=yes + fi +fi + # check whether to enable code coverage AC_MSG_CHECKING([whether to enable code coverage support]) AC_ARG_ENABLE(coverage, @@ -444,6 +454,9 @@ fi if test "$with_http_backend" = "curl"; then PKG_CHECK_MODULES([LIBCURL], [libcurl >= $LIBCURL_REQUIRED_VERSION]) + if test "$os_win32" = "yes"; then + LIBCURL_LIBS="$LIBCURL_LIBS -lWs2_32" + fi AC_SUBST([LIBCURL_CFLAGS]) AC_SUBST([LIBCURL_LIBS]) fi @@ -455,8 +468,21 @@ if test "$with_http_backend" = "soup"; then AC_SUBST([LIBSOUP_LIBS]) fi +# check if FreeType/FontConfig are available +if test "$with_font_backend" = "freetype"; then + PKG_CHECK_MODULES([FREETYPE], + [cairo-ft + fontconfig >= $FONTCONFIG_REQUIRED_VERSION + freetype2 >= $FREETYPE2_REQUIRED_VERSION]) + AC_SUBST([FREETYPE_CFLAGS]) + AC_SUBST([FREETYPE_LIBS]) +fi + # check if sqlite 3 is available -if test "$enable_icon_database" = "yes" || test "$enable_database" = "yes"; then +if test "$enable_icon_database" = "yes" || \ + test "$enable_database" = "yes" || \ + test "$enable_offline_web_applications" = "yes" || \ + test "$enable_dom_storage" = "yes"; then PKG_CHECK_MODULES([SQLITE3], [sqlite3 >= $SQLITE_REQUIRED_VERSION]) AC_SUBST([SQLITE3_CFLAGS]) AC_SUBST([SQLITE3_LIBS]) @@ -488,18 +514,9 @@ if test "$enable_coverage" = "yes"; then AC_SUBST([COVERAGE_LDFLAGS]) fi -# check for SVG features, enabling SVG if necessary -if test "$enable_svg_animation" = "yes" || \ - test "$enable_svg_filters" = "yes" || \ - test "$enable_svg_fonts" = "yes" || \ - test "$enable_svg_foreign_object" = "yes" || \ - test "$enable_svg_as_image" = "yes" || \ - test "$enable_svg_use_element" = "yes"; then - svg_flags=yes - if test "$enable_svg" = "no"; then - AC_MSG_WARN([SVG feature(s) requested but SVG is disabled.. Enabling SVG support]) - enable_svg=yes - fi +# check for HTML features +if test "$enable_video" = "yes"; then + html_flags=yes fi # OS conditionals @@ -525,7 +542,6 @@ AM_CONDITIONAL([USE_PANGO], [test "$with_font_backend" = "pango"]) # WebKit feature conditionals AM_CONDITIONAL([ENABLE_DEBUG],[test "$enable_debug" = "yes"]) AM_CONDITIONAL([ENABLE_DASHBOARD_SUPPORT],[test "$enable_dashboard_support" = "yes"]) -AM_CONDITIONAL([ENABLE_CROSS_DOCUMENT_MESSAGING],[test "$enable_cross_document_messaging" = "yes"]) AM_CONDITIONAL([ENABLE_OFFLINE_WEB_APPLICATIONS],[test "$enable_offline_web_applications" = "yes"]) AM_CONDITIONAL([ENABLE_DOM_STORAGE],[test "$enable_dom_storage" = "yes"]) AM_CONDITIONAL([ENABLE_DATABASE],[test "$enable_database" = "yes"]) @@ -543,10 +559,12 @@ AM_CONDITIONAL([ENABLE_SVG_USE],[test "$enable_svg_use_element" = "yes"]) AM_CONDITIONAL([ENABLE_COVERAGE],[test "$enable_coverage" = "yes"]) AM_CONDITIONAL([ENABLE_FAST_MALLOC],[test "$enable_fast_malloc" = "yes"]) AM_CONDITIONAL([SVG_FLAGS],[test "$svg_flags" = "yes"]) +AM_CONDITIONAL([HTML_FLAGS],[test "$html_flags" = "yes"]) AC_CONFIG_FILES([ GNUmakefile WebKit/gtk/webkit-1.0.pc:WebKit/gtk/webkit.pc.in +WebKit/gtk/webkit/webkitversion.h ] ) @@ -564,7 +582,6 @@ Build configuration: Optimized memory allocator : $enable_fast_malloc Features: Dashboard support : $enable_dashboard_support - HTML5 cross-document messaging : $enable_cross_document_messaging HTML5 offline web applications support : $enable_offline_web_applications HTML5 client-side session and persistent storage support : $enable_dom_storage HTML5 client-side database storage support : $enable_database diff --git a/packages/webkit/files/update-webkit.sh b/packages/webkit/webkit-gtk/update-webkit.sh index e4cc3ebefa..e4cc3ebefa 100644 --- a/packages/webkit/files/update-webkit.sh +++ b/packages/webkit/webkit-gtk/update-webkit.sh diff --git a/packages/webkit/webkit-gtk_svn.bb b/packages/webkit/webkit-gtk_svn.bb index 11e08ac6ac..06f869ef48 100644 --- a/packages/webkit/webkit-gtk_svn.bb +++ b/packages/webkit/webkit-gtk_svn.bb @@ -24,7 +24,7 @@ SRC_URI = "\ S = "${WORKDIR}/" -inherit autotools pkgconfig +inherit autotools pkgconfig lib_package EXTRA_OECONF = "\ --enable-debug=no \ |