summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Westerhof <mwester@dls.net>2008-10-07 14:10:11 +0000
committerMike Westerhof <mwester@dls.net>2008-10-07 14:10:11 +0000
commit7db59217ec8f6b541ffc22516e3dd4a14b8759d1 (patch)
tree2178ad9ea55fcd03971014e56439b0f7299280d4
parent62a0b7f1f964c66cd0077a67c7f174156f45e44b (diff)
parentf90cb79364f78616ba997206454f67655c54ae3e (diff)
merge of '06439bd12faeb366d7d703a017d5c609d41cb96e'
and '8334fa112d76dd1bff6086d9cbd2007755c42e05'
-rw-r--r--classes/cpan-base.bbclass2
-rw-r--r--classes/cpan.bbclass2
-rw-r--r--classes/cpan_build.bbclass2
-rw-r--r--classes/java.bbclass2
-rw-r--r--classes/sdk.bbclass9
-rwxr-xr-xcontrib/angstrom/sort.sh16
-rw-r--r--packages/linux/linux-omap/musb-fix-endpoints.diff197
-rw-r--r--packages/linux/linux-omap_git.bb3
-rw-r--r--packages/tasks/task-openmoko-feed.bb9
-rw-r--r--packages/u-boot/u-boot-git/beagleboard/beagle-600MHz.diff21
-rw-r--r--packages/u-boot/u-boot-git/beagleboard/mru-256.diff192
-rw-r--r--packages/u-boot/u-boot-omap3_git.bb19
-rw-r--r--packages/u-boot/u-boot_git.bb15
-rw-r--r--packages/xorg-driver/xf86-video-omapfb_git.bb5
14 files changed, 476 insertions, 18 deletions
diff --git a/classes/cpan-base.bbclass b/classes/cpan-base.bbclass
index cc0d11e515..19d431ce72 100644
--- a/classes/cpan-base.bbclass
+++ b/classes/cpan-base.bbclass
@@ -10,7 +10,7 @@ RDEPENDS += "${@["perl", ""][(bb.data.inherits_class('native', d))]}"
# Determine the staged version of perl from the perl configuration file
def get_perl_version(d):
import os, bb, re
- cfg = bb.data.expand('${STAGING_DIR}/${HOST_SYS}/perl/config.sh', d)
+ cfg = bb.data.expand('${STAGING_DIR_HOST}/perl/config.sh', d)
try:
f = open(cfg, 'r')
except IOError:
diff --git a/classes/cpan.bbclass b/classes/cpan.bbclass
index 005e7cc0e9..3ff3f3093d 100644
--- a/classes/cpan.bbclass
+++ b/classes/cpan.bbclass
@@ -15,7 +15,7 @@ export PERL_ARCHLIB = "${STAGING_LIBDIR_NATIVE}/perl/${@get_perl_version(d)}"
cpan_do_configure () {
yes '' | perl Makefile.PL ${EXTRA_CPANFLAGS}
if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then
- . ${STAGING_DIR}/${TARGET_SYS}/perl/config.sh
+ . ${STAGING_DIR_TARGET}/perl/config.sh
if [ "${IS_NEW_PERL}" = "yes" ]; then
sed -i -e "s:\(SITELIBEXP = \).*:\1${sitelibexp}:" \
-e "s:\(SITEARCHEXP = \).*:\1${sitearchexp}:" \
diff --git a/classes/cpan_build.bbclass b/classes/cpan_build.bbclass
index 63e716c099..c3804ff4cc 100644
--- a/classes/cpan_build.bbclass
+++ b/classes/cpan_build.bbclass
@@ -25,7 +25,7 @@ DEPENDS_prepend = "${@cpan_build_dep_prepend(d)}"
cpan_build_do_configure () {
if [ ${@is_target(d)} == "yes" ]; then
# build for target
- . ${STAGING_DIR}/${TARGET_SYS}/perl/config.sh
+ . ${STAGING_DIR_TARGET}/perl/config.sh
if [ "${IS_NEW_PERL}" = "yes" ]; then
perl Build.PL --installdirs vendor \
--destdir ${D} \
diff --git a/classes/java.bbclass b/classes/java.bbclass
index 9e51a0b7b2..11a2bf5c0c 100644
--- a/classes/java.bbclass
+++ b/classes/java.bbclass
@@ -99,7 +99,7 @@ oe_makeclasspath() {
oefatal "oe_makeclasspath: Jar file for '$1' not found at $file"
fi
- classpath=$classpath$file
+ classpath=$classpath$delimiter$file
delimiter=":"
;;
esac
diff --git a/classes/sdk.bbclass b/classes/sdk.bbclass
index a94332b92c..6c66eac7ad 100644
--- a/classes/sdk.bbclass
+++ b/classes/sdk.bbclass
@@ -2,15 +2,24 @@
# or indirectly via dependency. No need to be in 'world'.
EXCLUDE_FROM_WORLD = "1"
+# Save MULTIMACH_ARCH
+OLD_MULTIMACH_ARCH := "${MULTIMACH_ARCH}"
+# Save PACKAGE_ARCH
OLD_PACKAGE_ARCH := ${PACKAGE_ARCH}
PACKAGE_ARCH = "${BUILD_ARCH}-${OLD_PACKAGE_ARCH}-sdk"
+# Also save BASE_PACKAGE_ARCH since HOST_ARCH can influence it
+OLD_BASE_PACKAGE_ARCH := "${BASE_PACKAGE_ARCH}"
+BASE_PACKAGE_ARCH = "${OLD_BASE_PACKAGE_ARCH}"
+
STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_SYS}-sdk"
+STAGING_DIR_TARGET = "${STAGING_DIR}/${OLD_MULTIMACH_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
HOST_ARCH = "${BUILD_ARCH}"
HOST_VENDOR = "${BUILD_VENDOR}"
HOST_OS = "${BUILD_OS}"
HOST_PREFIX = "${BUILD_PREFIX}"
HOST_CC_ARCH = "${BUILD_CC_ARCH}"
+#HOST_SYS = "${HOST_ARCH}${TARGET_VENDOR}-${HOST_OS}"
CPPFLAGS = "${BUILD_CPPFLAGS}"
CFLAGS = "${BUILD_CFLAGS}"
diff --git a/contrib/angstrom/sort.sh b/contrib/angstrom/sort.sh
index 044b64ef07..8ede764894 100755
--- a/contrib/angstrom/sort.sh
+++ b/contrib/angstrom/sort.sh
@@ -3,6 +3,11 @@
# Angstrom feed sorting script
# This must be run in unstable/ directory
+if [ $(basename $PWD) != "unsorted" ] ; then
+ echo "Not in feed dir! Exiting"
+ exit 1
+fi
+
rm Packages* >& /dev/null
# Find ipkg files in unsorted/ and remove stale ones
@@ -64,6 +69,8 @@ case "$arch" in
machines="dht-walnut" ;;
"ppc603e")
machines="efika" ;;
+ "ppce300c3")
+ machines="mpc8313e-rdb mpc8315e-rdb" ;;
"sparc")
machines="" ;;
esac
@@ -73,7 +80,7 @@ for i in `find . -name "*.ipk"| grep $arch` ; do mkdir -p ../$archdir/base/ ||
for machine in $machines ; do
for i in `find . -name "*_$machine.ipk"| grep $machine` ; do mkdir -p ../$archdir/machine/$machine || true ;mv $i ../$archdir/machine/$machine ; done
done
-(cd ../$archdir && do_index )
+( mkdir -p ../$archdir ; cd ../$archdir && do_index )
}
@@ -83,6 +90,7 @@ echo "Processing $(basename $PWD) packages...."
BPWD=`pwd`
+mkdir -p base
cd base
mkdir -p ../debug ../perl ../python ../gstreamer ../locales/en || true
@@ -101,6 +109,7 @@ for i in ../* ; do
echo " DONE"
fi
done
+mkdir -p ${BPWD}/machine
cd ${BPWD}/machine
for i in ./* ; do
@@ -113,6 +122,7 @@ for i in ./* ; do
fi
done
+mkdir -p ${BPWD}/locales/en/
cd ${BPWD}/locales/en/
echo -n "building index for locales:"
for i in ../* ; do
@@ -132,7 +142,7 @@ echo " DONE"
echo "Processing 'all' feed"
for i in `find . -name "*.ipk"| grep _all` ; do mkdir -p ../all/ || true ;mv $i ../all/ ; done
- (cd ../all && ipkg-make-index -p Packages -m . >& /dev/null ; touch Packages.sig )
+ (mkdir -p ../all ; cd ../all && ipkg-make-index -p Packages -m . >& /dev/null ; touch Packages.sig )
for arch in arm-oabi armv4t armv5teb armv5te armv6 armv7a armv7 avr32 bfin geode i486 i586 i686 iwmmxt ppc405 ppc603e sparc ; do
do_sort
@@ -143,4 +153,4 @@ if [ "$1" != "--skip-sorted-list" ]; then
for i in $(find ../ -name "*.ipk"| grep -v unsorted) ; do basename $i ; done > files-sorted
fi
-(cd ~/website/repo ; php update.php)
+#(cd ~/website/repo ; php update.php)
diff --git a/packages/linux/linux-omap/musb-fix-endpoints.diff b/packages/linux/linux-omap/musb-fix-endpoints.diff
new file mode 100644
index 0000000000..5d1201f014
--- /dev/null
+++ b/packages/linux/linux-omap/musb-fix-endpoints.diff
@@ -0,0 +1,197 @@
+From: Ajay Kumar Gupta <ajay.gupta@ti.com>
+To: linux-usb@vger.kernel.org
+Cc: linux-omap@vger.kernel.org, david-b@pacbell.net, me@felipebalbi.com,
+ Ajay Kumar Gupta <ajay.gupta@ti.com>
+Subject: [PATCH] MUSB: BULK request on different available endpoints
+Date: Tue, 7 Oct 2008 11:12:24 +0530
+
+Fixes co-working issue of usb serial device with usb/net devices while
+oter endpoints are free and can be used.This patch implements the policy
+that if endpoint resources are available then different BULK request goes
+to different endpoint otherwise they are multiplexed to one reserved
+endpoint as currently done.
+
+NAK limit scheme has to be added for multiplexed BULK request scenario
+to avoid endpoint starvation due to usb/net devices.
+
+musb->periodic[] flag setting is also updated.It use to set this flag for
+an endpoint even when only rx or tx is used.Now flag setting is done on
+rx/tx basis of an endpoint.
+
+Signed-off-by: Ajay Kumar Gupta <ajay.gupta@ti.com>
+---
+ drivers/usb/musb/musb_host.c | 94 ++++++++++++++++++++++++------------------
+ drivers/usb/musb/musb_host.h | 1 +
+ 2 files changed, 55 insertions(+), 40 deletions(-)
+
+--- /tmp/musb_host.c 2008-10-07 10:10:49.000000000 +0200
++++ git/drivers/usb/musb/musb_host.c 2008-10-07 10:13:59.000000000 +0200
+@@ -378,27 +378,32 @@
+
+ switch (qh->type) {
+
++ case USB_ENDPOINT_XFER_CONTROL:
++ case USB_ENDPOINT_XFER_BULK:
++ /* fifo policy for these lists, except that NAKing
++ * should rotate a qh to the end (for fairness).
++ */
++ if (qh->mux == 1) {
++ head = qh->ring.prev;
++ list_del(&qh->ring);
++ kfree(qh);
++ qh = first_qh(head);
++ break;
++ }
+ case USB_ENDPOINT_XFER_ISOC:
+ case USB_ENDPOINT_XFER_INT:
+ /* this is where periodic bandwidth should be
+ * de-allocated if it's tracked and allocated;
+ * and where we'd update the schedule tree...
+ */
+- musb->periodic[ep->epnum] = NULL;
++ if (is_in)
++ musb->periodic[2 * ep->epnum - 2] = NULL;
++ else
++ musb->periodic[2 * ep->epnum - 1] = NULL;
+ kfree(qh);
+ qh = NULL;
+ break;
+
+- case USB_ENDPOINT_XFER_CONTROL:
+- case USB_ENDPOINT_XFER_BULK:
+- /* fifo policy for these lists, except that NAKing
+- * should rotate a qh to the end (for fairness).
+- */
+- head = qh->ring.prev;
+- list_del(&qh->ring);
+- kfree(qh);
+- qh = first_qh(head);
+- break;
+ }
+ }
+ return qh;
+@@ -1728,22 +1733,9 @@
+ u16 maxpacket;
+
+ /* use fixed hardware for control and bulk */
+- switch (qh->type) {
+- case USB_ENDPOINT_XFER_CONTROL:
++ if (qh->type == USB_ENDPOINT_XFER_CONTROL) {
+ head = &musb->control;
+ hw_ep = musb->control_ep;
+- break;
+- case USB_ENDPOINT_XFER_BULK:
+- hw_ep = musb->bulk_ep;
+- if (is_in)
+- head = &musb->in_bulk;
+- else
+- head = &musb->out_bulk;
+- break;
+- }
+- if (head) {
+- idle = list_empty(head);
+- list_add_tail(&qh->ring, head);
+ goto success;
+ }
+
+@@ -1778,7 +1770,8 @@
+ for (epnum = 1; epnum < musb->nr_endpoints; epnum++) {
+ int diff;
+
+- if (musb->periodic[epnum])
++ if ((is_in && musb->periodic[2 * epnum - 2]) ||
++ (!is_in && musb->periodic[2 * epnum - 1]))
+ continue;
+ hw_ep = &musb->endpoints[epnum];
+ if (hw_ep == musb->bulk_ep)
+@@ -1789,19 +1782,36 @@
+ else
+ diff = hw_ep->max_packet_sz_tx - maxpacket;
+
+- if (diff > 0 && best_diff > diff) {
++ if (diff >= 0 && best_diff > diff) {
+ best_diff = diff;
+ best_end = epnum;
+ }
+ }
+- if (best_end < 0)
++ /* use bulk reserved ep1 if no other ep is free*/
++ if (best_end < 0 && qh->type == USB_ENDPOINT_XFER_BULK) {
++ hw_ep = musb->bulk_ep;
++ if (is_in)
++ head = &musb->in_bulk;
++ else
++ head = &musb->out_bulk;
++ goto success;
++ } else if (best_end < 0)
+ return -ENOSPC;
+
+ idle = 1;
++ qh->mux = 0;
+ hw_ep = musb->endpoints + best_end;
+- musb->periodic[best_end] = qh;
+- DBG(4, "qh %p periodic slot %d\n", qh, best_end);
++ if (is_in)
++ musb->periodic[2 * best_end - 2] = qh;
++ else
++ musb->periodic[2 * best_end - 1] = qh;
++ DBG(4, "qh %p periodic slot %d%s\n", qh, best_end, is_in ? "Rx" : "Tx");
+ success:
++ if (head) {
++ idle = list_empty(head);
++ list_add_tail(&qh->ring, head);
++ qh->mux = 1;
++ }
+ qh->hw_ep = hw_ep;
+ qh->hep->hcpriv = qh;
+ if (idle)
+@@ -2065,11 +2075,13 @@
+ sched = &musb->control;
+ break;
+ case USB_ENDPOINT_XFER_BULK:
+- if (usb_pipein(urb->pipe))
+- sched = &musb->in_bulk;
+- else
+- sched = &musb->out_bulk;
+- break;
++ if (qh->mux == 1) {
++ if (usb_pipein(urb->pipe))
++ sched = &musb->in_bulk;
++ else
++ sched = &musb->out_bulk;
++ break;
++ }
+ default:
+ /* REVISIT when we get a schedule tree, periodic
+ * transfers won't always be at the head of a
+@@ -2131,11 +2143,13 @@
+ sched = &musb->control;
+ break;
+ case USB_ENDPOINT_XFER_BULK:
+- if (is_in)
+- sched = &musb->in_bulk;
+- else
+- sched = &musb->out_bulk;
+- break;
++ if (qh->mux == 1) {
++ if (is_in)
++ sched = &musb->in_bulk;
++ else
++ sched = &musb->out_bulk;
++ break;
++ }
+ case USB_ENDPOINT_XFER_ISOC:
+ case USB_ENDPOINT_XFER_INT:
+ for (i = 0; i < musb->nr_endpoints; i++) {
+--- /tmp/musb_host.h 2008-10-07 08:59:38.000000000 +0200
++++ git/drivers/usb/musb/musb_host.h 2008-10-07 10:10:54.000000000 +0200
+@@ -53,7 +53,8 @@
+
+ struct list_head ring; /* of musb_qh */
+ /* struct musb_qh *next; */ /* for periodic tree */
+-
++ u8 mux; /* qh multiplexed to hw_ep */
++
+ unsigned offset; /* in urb->transfer_buffer */
+ unsigned segsize; /* current xfer fragment */
+
diff --git a/packages/linux/linux-omap_git.bb b/packages/linux/linux-omap_git.bb
index b00572771c..290d90084b 100644
--- a/packages/linux/linux-omap_git.bb
+++ b/packages/linux/linux-omap_git.bb
@@ -9,7 +9,7 @@ COMPATIBLE_MACHINE = "omap5912osk|omap1710h3|omap2430sdp|omap2420h4|beagleboard|
SRCREV = "e1c49d7d22af768188e2a54c167ed79919361e55"
PV = "2.6.26+2.6.27-rc7+${PR}+git${SRCREV}"
-PR = "r11"
+PR = "r12"
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git;protocol=git \
file://defconfig"
@@ -33,6 +33,7 @@ SRC_URI_append = " \
file://musb-fix-ISO-in-unlink.diff;patch=1 \
file://musb-fix-multiple-bulk-transfers.diff;patch=1 \
file://mru-256MB.diff;patch=1 \
+ file://musb-fix-endpoints.diff;patch=1 \
"
diff --git a/packages/tasks/task-openmoko-feed.bb b/packages/tasks/task-openmoko-feed.bb
index ed885703c7..40e97585ea 100644
--- a/packages/tasks/task-openmoko-feed.bb
+++ b/packages/tasks/task-openmoko-feed.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Openmoko: Misc. Feed Items"
SECTION = "openmoko/base"
LICENSE = "MIT"
-PR = "r41"
+PR = "r42"
inherit task
@@ -42,12 +42,13 @@ RDEPENDS_task-openmoko-feed = "\
# cacao \
# jamvm \
# classpath \
- gpsdrive \
+# gpsdrive \
+ gpsd \
asterisk \
# gnash \
mono \
- diversity-daemon \
- diversity-maps-taipei \
+# diversity-daemon \
+# diversity-maps-taipei \
# om-maps-berlin \
# om-maps-buenos-aires \
# om-maps-london \
diff --git a/packages/u-boot/u-boot-git/beagleboard/beagle-600MHz.diff b/packages/u-boot/u-boot-git/beagleboard/beagle-600MHz.diff
new file mode 100644
index 0000000000..fe183ddb77
--- /dev/null
+++ b/packages/u-boot/u-boot-git/beagleboard/beagle-600MHz.diff
@@ -0,0 +1,21 @@
+From: Mans Rullgard <mans@mansr.com>
+Date: Mon, 29 Sep 2008 19:56:45 +0000 (+0100)
+Subject: OMAP3: Set MPU clock to 600 MHz
+X-Git-Url: http://git.mansr.com/?p=u-boot;a=commitdiff_plain;h=caccdb772c3028a3e3e801fb1554788150752ffc
+
+OMAP3: Set MPU clock to 600 MHz
+---
+
+diff --git a/cpu/omap3/lowlevel_init.S b/cpu/omap3/lowlevel_init.S
+index 1f9a0e9..f95a65f 100644
+--- a/cpu/omap3/lowlevel_init.S
++++ b/cpu/omap3/lowlevel_init.S
+@@ -208,7 +208,7 @@ mpu_dpll_param:
+ /* ES1 */
+ .word 0x17D,0x0C,0x03,0x01
+ /* ES2 */
+-.word 0x1F4,0x0C,0x03,0x01
++.word 0x258,0x0C,0x03,0x01
+ /* 3410 */
+ .word 0x10A,0x0C,0x03,0x01
+
diff --git a/packages/u-boot/u-boot-git/beagleboard/mru-256.diff b/packages/u-boot/u-boot-git/beagleboard/mru-256.diff
new file mode 100644
index 0000000000..6099fe6c9d
--- /dev/null
+++ b/packages/u-boot/u-boot-git/beagleboard/mru-256.diff
@@ -0,0 +1,192 @@
+From: Mans Rullgard <mans@mansr.com>
+Date: Thu, 2 Oct 2008 01:25:35 +0000 (+0100)
+Subject: OMAP3: Beagleboard can have dual-chip RAM
+X-Git-Url: http://git.mansr.com/?p=u-boot;a=commitdiff_plain;h=ef6ee5af8d584bddadb2d45ad4320cef96b8a934;hp=caccdb772c3028a3e3e801fb1554788150752ffc
+
+OMAP3: Beagleboard can have dual-chip RAM
+
+Some Beagleboards are fitted with dual-chip RAM. Returning DDR_STACKED
+from get_mem_type() causes the second chip (on CS1) to be enabled.
+
+FIXME: need a better way to configure this.
+
+Signed-off-by: Mans Rullgard <mans@mansr.com>
+---
+
+diff --git a/cpu/omap3/board.c b/cpu/omap3/board.c
+index 804021f..f7cf289 100644
+--- a/cpu/omap3/board.c
++++ b/cpu/omap3/board.c
+@@ -265,15 +265,17 @@ int dram_init(void)
+ * where it can be started. Early init code will init
+ * memory on CS0.
+ */
+- if ((mtype == DDR_COMBO) || (mtype == DDR_STACKED))
++ if ((mtype == DDR_COMBO) || (mtype == DDR_STACKED)) {
+ do_sdrc_init(SDRC_CS1_OSET, NOT_EARLY);
++ make_cs1_contiguous();
++ }
+
+ size0 = get_sdr_cs_size(SDRC_CS0_OSET);
+ size1 = get_sdr_cs_size(SDRC_CS1_OSET);
+
+ gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
+ gd->bd->bi_dram[0].size = size0;
+- gd->bd->bi_dram[1].start = PHYS_SDRAM_1 + size0;
++ gd->bd->bi_dram[1].start = PHYS_SDRAM_1 + get_sdr_cs_offset(1);
+ gd->bd->bi_dram[1].size = size1;
+
+ return 0;
+diff --git a/cpu/omap3/mem.c b/cpu/omap3/mem.c
+index 955fa70..53687a5 100644
+--- a/cpu/omap3/mem.c
++++ b/cpu/omap3/mem.c
+@@ -114,12 +114,12 @@ void make_cs1_contiguous(void)
+ * for a part. Helps in guessing which part
+ * we are currently using.
+ *******************************************************/
+-u32 mem_ok(void)
++u32 mem_ok(u32 cs)
+ {
+ u32 val1, val2, addr;
+ u32 pattern = 0x12345678;
+
+- addr = OMAP34XX_SDRC_CS0;
++ addr = OMAP34XX_SDRC_CS0 + get_sdr_cs_offset(cs);
+
+ __raw_writel(0x0, addr + 0x400); /* clear pos A */
+ __raw_writel(pattern, addr); /* pattern to pos B */
+@@ -156,43 +156,40 @@ void sdrc_init(void)
+
+ void do_sdrc_init(u32 offset, u32 early)
+ {
++ u32 actim_offs = offset? 0x28: 0;
+
+- /* reset sdrc controller */
+- __raw_writel(SOFTRESET, SDRC_SYSCONFIG);
+- wait_on_value(BIT0, BIT0, SDRC_STATUS, 12000000);
+- __raw_writel(0, SDRC_SYSCONFIG);
++ if (early) {
++ /* reset sdrc controller */
++ __raw_writel(SOFTRESET, SDRC_SYSCONFIG);
++ wait_on_value(BIT0, BIT0, SDRC_STATUS, 12000000);
++ __raw_writel(0, SDRC_SYSCONFIG);
+
+- /* setup sdrc to ball mux */
+- __raw_writel(SDP_SDRC_SHARING, SDRC_SHARING);
++ /* setup sdrc to ball mux */
++ __raw_writel(SDP_SDRC_SHARING, SDRC_SHARING);
+
+- /* SDRC_MCFG0 register */
+- (*(unsigned int *) 0x6D000080) = 0x02584099; /* from Micron */
++ /* Disble Power Down of CKE cuz of 1 CKE on combo part */
++ __raw_writel(0x00000081, SDRC_POWER);
+
+- /* SDRC_RFR_CTRL0 register */
+- (*(unsigned int *) 0x6D0000a4) = 0x54601; /* for 166M */
++ __raw_writel(0x0000A, SDRC_DLLA_CTRL);
++ sdelay(0x20000);
++ }
+
+- /* SDRC_ACTIM_CTRLA0 register */
+- (*(unsigned int *) 0x6D00009c) = 0xa29db4c6; /* for 166M */
++ __raw_writel(0x02584099, SDRC_MCFG_0 + offset);
++ __raw_writel(0x4e201, SDRC_RFR_CTRL + offset);
++ __raw_writel(0xaa9db4c6, SDRC_ACTIM_CTRLA_0 + actim_offs);
++ __raw_writel(0x11517, SDRC_ACTIM_CTRLB_0 + actim_offs);
+
+- /* SDRC_ACTIM_CTRLB0 register */
+- (*(unsigned int *) 0x6D0000a0) = 0x12214; /* for 166M */
++ __raw_writel(CMD_NOP, SDRC_MANUAL_0 + offset);
++ __raw_writel(CMD_PRECHARGE, SDRC_MANUAL_0 + offset);
++ __raw_writel(CMD_AUTOREFRESH, SDRC_MANUAL_0 + offset);
++ __raw_writel(CMD_AUTOREFRESH, SDRC_MANUAL_0 + offset);
+
+- /* Disble Power Down of CKE cuz of 1 CKE on combo part */
+- (*(unsigned int *) 0x6D000070) = 0x00000081;
++ /* CAS latency 3, Write Burst = Read Burst, Serial Mode,
++ Burst length = 4 */
++ __raw_writel(0x00000032, SDRC_MR_0 + offset);
+
+- /* SDRC_Manual command register */
+- (*(unsigned int *) 0x6D0000a8) = 0x00000000; /* NOP command */
+- (*(unsigned int *) 0x6D0000a8) = 0x00000001; /* Precharge command */
+- (*(unsigned int *) 0x6D0000a8) = 0x00000002; /* Auto-refresh command */
+- (*(unsigned int *) 0x6D0000a8) = 0x00000002; /* Auto-refresh command */
+-
+- /* SDRC MR0 register */
+- (*(int *) 0x6D000084) = 0x00000032; /* Burst length = 4 */
+- /* CAS latency = 3, Write Burst = Read Burst Serial Mode */
+-
+- /* SDRC DLLA control register */
+- (*(unsigned int *) 0x6D000060) = 0x0000A;
+- sdelay(0x20000);
++ if (!mem_ok(offset))
++ __raw_writel(0, SDRC_MCFG_0 + offset);
+ }
+
+ void enable_gpmc_config(u32 *gpmc_config, u32 gpmc_base, u32 base, u32 size)
+diff --git a/cpu/omap3/sys_info.c b/cpu/omap3/sys_info.c
+index 12cf5ba..64d9e7e 100644
+--- a/cpu/omap3/sys_info.c
++++ b/cpu/omap3/sys_info.c
+@@ -90,8 +90,11 @@ u32 is_mem_sdr(void)
+ ***********************************************************/
+ u32 get_mem_type(void)
+ {
+- /* Current SDP3430 uses 2x16 MDDR Infenion parts */
++#ifdef CONFIG_OMAP3_BEAGLE
++ return DDR_STACKED;
++#else
+ return DDR_DISCRETE;
++#endif
+ }
+
+ /***********************************************************************
+@@ -109,6 +112,22 @@ u32 get_sdr_cs_size(u32 offset)
+ }
+
+ /***********************************************************************
++ * get_sdr_cs_offset() - get offset of cs from cs0 start
++ ************************************************************************/
++u32 get_sdr_cs_offset(u32 cs)
++{
++ u32 offset;
++
++ if (!cs)
++ return 0;
++
++ offset = __raw_readl(SDRC_CS_CFG);
++ offset = (offset & 15) << 27 | (offset & 0x30) >> 17;
++
++ return offset;
++}
++
++/***********************************************************************
+ * get_board_type() - get board type based on current production stats.
+ * - NOTE-1-: 2 I2C EEPROMs will someday be populated with proper info.
+ * when they are available we can get info from there. This should
+diff --git a/include/asm-arm/arch-omap3/cpu.h b/include/asm-arm/arch-omap3/cpu.h
+index d47defb..df2d150 100644
+--- a/include/asm-arm/arch-omap3/cpu.h
++++ b/include/asm-arm/arch-omap3/cpu.h
+@@ -123,7 +123,6 @@
+ #define SDRC_ACTIM_CTRLA_1 (OMAP34XX_SDRC_BASE+0xC4)
+ #define SDRC_ACTIM_CTRLB_1 (OMAP34XX_SDRC_BASE+0xC8)
+ #define SDRC_RFR_CTRL (OMAP34XX_SDRC_BASE+0xA4)
+-#define SDRC_RFR_CTRL (OMAP34XX_SDRC_BASE+0xA4)
+ #define SDRC_MANUAL_0 (OMAP34XX_SDRC_BASE+0xA8)
+ #define OMAP34XX_SDRC_CS0 0x80000000
+ #define OMAP34XX_SDRC_CS1 0xA0000000
+diff --git a/include/asm-arm/arch-omap3/sys_proto.h b/include/asm-arm/arch-omap3/sys_proto.h
+index 279bdce..5b0bd9e 100644
+--- a/include/asm-arm/arch-omap3/sys_proto.h
++++ b/include/asm-arm/arch-omap3/sys_proto.h
+@@ -50,6 +50,7 @@ u32 get_gpmc0_width(void);
+ u32 get_board_type(void);
+ void display_board_info(u32);
+ u32 get_sdr_cs_size(u32 offset);
++u32 get_sdr_cs_offset(u32 cs);
+ u32 running_in_sdram(void);
+ u32 running_in_sram(void);
+ u32 running_in_flash(void);
diff --git a/packages/u-boot/u-boot-omap3_git.bb b/packages/u-boot/u-boot-omap3_git.bb
new file mode 100644
index 0000000000..ce7c5b9433
--- /dev/null
+++ b/packages/u-boot/u-boot-omap3_git.bb
@@ -0,0 +1,19 @@
+require u-boot.inc
+
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/u-boot-omap3-git/${MACHINE}"
+
+SRCREV = "c492706ba046124333323273f6fc21123360cb50"
+
+PV = "2008.10-rc1+${PR}+git${SRCREV}"
+PR="r1"
+
+SRC_URI = "git://www.sakoman.net/git/u-boot-omap3.git;branch=common;protocol=git \
+ "
+
+UBOOT_MACHINE_beagleboard = "omap3_beagle_config"
+UBOOT_MACHINE_omap3evm = "omap3_evm_config"
+UBOOT_MACHINE_overo = "omap3_overo_config"
+
+S = "${WORKDIR}/git"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/packages/u-boot/u-boot_git.bb b/packages/u-boot/u-boot_git.bb
index a887c1641d..6131aa1e3b 100644
--- a/packages/u-boot/u-boot_git.bb
+++ b/packages/u-boot/u-boot_git.bb
@@ -3,19 +3,24 @@ PR="r18"
SRCREV_davinci-sffsdr = "4b50cd12a3b3c644153c4cf393f4a4c12289e5aa"
SRCREV_davinci-dvevm = "4b50cd12a3b3c644153c4cf393f4a4c12289e5aa"
-SRCREV_beagleboard = "9c1c36409b2cb4e81aab0bd9d0a69c68f4475aae"
+SRCREV_beagleboard = "fb479d0418bc7c15d63a131beedbc6f1970fc295"
+SRCREV_omap3evm = "9c1c36409b2cb4e81aab0bd9d0a69c68f4475aae"
SRCREV_neuros-osd2 = "df6de5f4ff79dc43ba2a79a3afa975d22ec273b5"
SRCREV_akita = "9bf86baaa3b35b25baa2d664e2f7f6cafad689ee"
SRCREV_spitz = "9bf86baaa3b35b25baa2d664e2f7f6cafad689ee"
SRCREV_c7x0 = "9bf86baaa3b35b25baa2d664e2f7f6cafad689ee"
+UBOOT_MACHINE_beagleboard = "omap3_beagle_config"
+UBOOT_MACHINE_omap3evm = "omap3_evm_config"
+UBOOT_MACHINE_overo = "omap3_overo_config"
+
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_beagleboard = "git://www.sakoman.net/git/u-boot-omap3.git;branch=test;protocol=git \
- file://name.patch;patch=1 \
- file://armv7-a.patch;patch=1 \
- "
+SRC_URI_beagleboard = "git://www.sakoman.net/git/u-boot-omap3.git;branch=common;protocol=git \
+ file://beagle-600MHz.diff;patch=1 \
+ file://mru-256.diff;patch=1 \
+ "
SRC_URI_neuros-osd2 += "file://Makefile-fix.patch;patch=1"
SRC_URI_append_akita = "file://pdaXrom-u-boot.patch;patch=1 \
diff --git a/packages/xorg-driver/xf86-video-omapfb_git.bb b/packages/xorg-driver/xf86-video-omapfb_git.bb
index c116f64483..b222ef8fef 100644
--- a/packages/xorg-driver/xf86-video-omapfb_git.bb
+++ b/packages/xorg-driver/xf86-video-omapfb_git.bb
@@ -2,10 +2,13 @@ require xorg-driver-video.inc
DESCRIPTION = "X.Org X server -- OMAP display driver"
-SRCREV = "eb05e4446877409b349d8f9ede35052cc7a3432b"
+PR ="r3"
+
+SRCREV = "afb03099adc621fa7857a9bf26342d6380cbc2eb"
PV = "0.0.1+${PR}+git${SRCREV}"
SRC_URI = "git://git.pingu.fi/xf86-video-omapfb.git;protocol=http"
S = "${WORKDIR}/git"
+CFLAGS += " -I${STAGING_INCDIR}/xorg "