* [PATCH 1/6] genericx86: add new BSP
2013-07-25 16:37 [RFC] New x86 Super BSP Ross Burton
@ 2013-07-25 16:38 ` Ross Burton
2013-07-25 16:38 ` [PATCH 2/6] local.conf.sample: add genericx86 reference Ross Burton
` (4 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Ross Burton @ 2013-07-25 16:38 UTC (permalink / raw)
To: poky
This BSP aims to support "most" contemporary x86 hardware. It's a direct copy
of atom-pc initially.
Signed-off-by: Ross Burton <ross.burton@intel.com>
---
meta-yocto-bsp/conf/machine/genericx86.conf | 37 +++++++++++
.../formfactor/formfactor/genericx86/machconfig | 6 ++
.../packagegroup-core-tools-profile.bbappend | 1 +
.../uclibc/uclibc/genericx86/uClibc.machine | 69 ++++++++++++++++++++
.../packagegroup-core-sdk-gmae.bbappend | 1 +
...egroup-core-standalone-gmae-sdk-target.bbappend | 1 +
.../recipes-kernel/linux/linux-yocto_3.4.bbappend | 3 +
.../recipes-kernel/linux/linux-yocto_3.8.bbappend | 3 +
8 files changed, 121 insertions(+)
create mode 100644 meta-yocto-bsp/conf/machine/genericx86.conf
create mode 100644 meta-yocto-bsp/recipes-bsp/formfactor/formfactor/genericx86/machconfig
create mode 100644 meta-yocto-bsp/recipes-core/uclibc/uclibc/genericx86/uClibc.machine
create mode 100644 meta-yocto-bsp/recipes-graphics/xorg-xserver/xserver-xf86-config/genericx86/xorg.conf
diff --git a/meta-yocto-bsp/conf/machine/genericx86.conf b/meta-yocto-bsp/conf/machine/genericx86.conf
new file mode 100644
index 0000000..6318d60
--- /dev/null
+++ b/meta-yocto-bsp/conf/machine/genericx86.conf
@@ -0,0 +1,37 @@
+#@TYPE: Machine
+#@NAME: Atom-PC
+
+#@DESCRIPTION: Machine configuration for Intel Atom based PCs. Currently supported machines are the Asus eee901, Acer Aspire One, Toshiba NB305, and Intel BlackSand development board.
+
+include conf/machine/include/tune-atom.inc
+
+MACHINE_FEATURES = "screen keyboard pci usbhost ext2 ext3 x86 wifi acpi alsa"
+
+KERNEL_IMAGETYPE = "bzImage"
+
+PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
+PREFERRED_VERSION_linux-yocto ?= "3.8%"
+PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
+XSERVER ?= "xserver-xorg \
+ xserver-xorg-extension-glx \
+ xf86-input-mouse \
+ xf86-input-keyboard \
+ xf86-input-evdev \
+ xf86-input-synaptics \
+ xf86-video-intel \
+ mesa-driver-i915 \
+ mesa-driver-i965"
+
+#MACHINE_EXTRA_RDEPENDS = "rt2860"
+
+MACHINE_EXTRA_RRECOMMENDS = "kernel-modules eee-acpi-scripts"
+
+IMAGE_FSTYPES ?= "ext3 cpio.gz live"
+
+APPEND += "usbcore.autosuspend=1"
+
+GLIBC_ADDONS = "nptl"
+
+EXTRA_OECONF_append_pn-matchbox-panel-2 = " --with-battery=acpi"
+
+ROOTLESS_X = "1"
diff --git a/meta-yocto-bsp/recipes-bsp/formfactor/formfactor/genericx86/machconfig b/meta-yocto-bsp/recipes-bsp/formfactor/formfactor/genericx86/machconfig
new file mode 100644
index 0000000..bef4ce3
--- /dev/null
+++ b/meta-yocto-bsp/recipes-bsp/formfactor/formfactor/genericx86/machconfig
@@ -0,0 +1,6 @@
+HAVE_TOUCHSCREEN=0
+HAVE_KEYBOARD=1
+
+DISPLAY_CAN_ROTATE=0
+DISPLAY_ORIENTATION=0
+DISPLAY_DPI=133
diff --git a/meta-yocto-bsp/recipes-core/packagegroups/packagegroup-core-tools-profile.bbappend b/meta-yocto-bsp/recipes-core/packagegroups/packagegroup-core-tools-profile.bbappend
index 352c1f9..e3aa5e8 100644
--- a/meta-yocto-bsp/recipes-core/packagegroups/packagegroup-core-tools-profile.bbappend
+++ b/meta-yocto-bsp/recipes-core/packagegroups/packagegroup-core-tools-profile.bbappend
@@ -1,2 +1,3 @@
RDEPENDS_${PN}_append_atom-pc = " lttng-ust systemtap"
+RDEPENDS_${PN}_append_genericx86 = " lttng-ust systemtap"
diff --git a/meta-yocto-bsp/recipes-core/uclibc/uclibc/genericx86/uClibc.machine b/meta-yocto-bsp/recipes-core/uclibc/uclibc/genericx86/uClibc.machine
new file mode 100644
index 0000000..5df15f9
--- /dev/null
+++ b/meta-yocto-bsp/recipes-core/uclibc/uclibc/genericx86/uClibc.machine
@@ -0,0 +1,69 @@
+#
+# Automatically generated make config: don't edit
+# Fri Nov 23 15:49:33 2007
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+TARGET_i386=y
+# TARGET_i960 is not set
+# TARGET_ia64 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sh64 is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+# TARGET_vax is not set
+# TARGET_x86_64 is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="i386"
+FORCE_OPTIONS_FOR_ARCH=y
+CONFIG_GENERIC_386=y
+# CONFIG_386 is not set
+# CONFIG_486 is not set
+# CONFIG_586 is not set
+# CONFIG_586MMX is not set
+# CONFIG_686 is not set
+# CONFIG_PENTIUMII is not set
+# CONFIG_PENTIUMIII is not set
+# CONFIG_PENTIUM4 is not set
+# CONFIG_K6 is not set
+# CONFIG_K7 is not set
+# CONFIG_ELAN is not set
+# CONFIG_CRUSOE is not set
+# CONFIG_WINCHIPC6 is not set
+# CONFIG_WINCHIP2 is not set
+# CONFIG_CYRIXIII is not set
+# CONFIG_NEHEMIAH is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_LITTLE_ENDIAN=y
+
+#
+# Using Little Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+KERNEL_HEADERS="/usr/include"
+HAVE_DOT_CONFIG=y
+
+UCLIBC_HAS_FENV=y
diff --git a/meta-yocto-bsp/recipes-gnome/packagegroups/packagegroup-core-sdk-gmae.bbappend b/meta-yocto-bsp/recipes-gnome/packagegroups/packagegroup-core-sdk-gmae.bbappend
index 0105ade..d7de19f 100644
--- a/meta-yocto-bsp/recipes-gnome/packagegroups/packagegroup-core-sdk-gmae.bbappend
+++ b/meta-yocto-bsp/recipes-gnome/packagegroups/packagegroup-core-sdk-gmae.bbappend
@@ -1 +1,2 @@
SDK-EXTRAS_atom-pc ?= " lttng-ust-dev"
+SDK-EXTRAS_genericx86 ?= " lttng-ust-dev"
diff --git a/meta-yocto-bsp/recipes-gnome/packagegroups/packagegroup-core-standalone-gmae-sdk-target.bbappend b/meta-yocto-bsp/recipes-gnome/packagegroups/packagegroup-core-standalone-gmae-sdk-target.bbappend
index 0105ade..d7de19f 100644
--- a/meta-yocto-bsp/recipes-gnome/packagegroups/packagegroup-core-standalone-gmae-sdk-target.bbappend
+++ b/meta-yocto-bsp/recipes-gnome/packagegroups/packagegroup-core-standalone-gmae-sdk-target.bbappend
@@ -1 +1,2 @@
SDK-EXTRAS_atom-pc ?= " lttng-ust-dev"
+SDK-EXTRAS_genericx86 ?= " lttng-ust-dev"
diff --git a/meta-yocto-bsp/recipes-graphics/xorg-xserver/xserver-xf86-config/genericx86/xorg.conf b/meta-yocto-bsp/recipes-graphics/xorg-xserver/xserver-xf86-config/genericx86/xorg.conf
new file mode 100644
index 0000000..e69de29
diff --git a/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_3.4.bbappend b/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_3.4.bbappend
index 9e3efc9..c3d1290 100644
--- a/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_3.4.bbappend
+++ b/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_3.4.bbappend
@@ -1,9 +1,11 @@
KBRANCH_atom-pc = "standard/common-pc/atom-pc"
+KBRANCH_genericx86 = "standard/common-pc/atom-pc"
KBRANCH_routerstationpro = "standard/routerstationpro"
KBRANCH_mpc8315e-rdb = "standard/fsl-mpc8315e-rdb"
KBRANCH_beagleboard = "standard/beagleboard"
SRCREV_machine_atom-pc ?= "cdd7a546922ca1c46c94adeec3b9c90dc9aaad2d"
+SRCREV_machine_genericx86 ?= "cdd7a546922ca1c46c94adeec3b9c90dc9aaad2d"
SRCREV_machine_routerstationpro ?= "62b86dc8ac794cd97c61a99418d7429e6a83ec1a"
SRCREV_machine_mpc8315e-rdb ?= "b2f78892b3ff6cc940e4661f7b2017a73b289c73"
SRCREV_machine_beagleboard ?= "cdd7a546922ca1c46c94adeec3b9c90dc9aaad2d"
@@ -12,6 +14,7 @@ COMPATIBLE_MACHINE_mpc8315e-rdb = "mpc8315e-rdb"
COMPATIBLE_MACHINE_routerstationpro = "routerstationpro"
COMPATIBLE_MACHINE_beagleboard = "beagleboard"
COMPATIBLE_MACHINE_atom-pc = "atom-pc"
+COMPATIBLE_MACHINE_genericx86 = "genericx86"
# routerstationpro has a flash size of 16mb
KERNEL_IMAGE_MAXSIZE_append_routerstationpro = "16777216"
diff --git a/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_3.8.bbappend b/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_3.8.bbappend
index 0686d4b..c4c005d 100644
--- a/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_3.8.bbappend
+++ b/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_3.8.bbappend
@@ -1,9 +1,11 @@
KBRANCH_atom-pc = "standard/common-pc/atom-pc"
+KBRANCH_genericx86 = "standard/common-pc/atom-pc"
KBRANCH_routerstationpro = "standard/routerstationpro"
KBRANCH_mpc8315e-rdb = "standard/fsl-mpc8315e-rdb"
KBRANCH_beagleboard = "standard/beagleboard"
SRCREV_machine_atom-pc ?= "f20047520a57322f05d95a18a5fbd082fb15cb87"
+SRCREV_machine_genericx86 ?= "f20047520a57322f05d95a18a5fbd082fb15cb87"
SRCREV_machine_routerstationpro ?= "4a94f39d429fa284ce69b13bb635b29b1319e372"
SRCREV_machine_mpc8315e-rdb ?= "f467c72937de0e4a2a66e21b9855c4aee844f936"
SRCREV_machine_beagleboard ?= "f20047520a57322f05d95a18a5fbd082fb15cb87"
@@ -12,6 +14,7 @@ COMPATIBLE_MACHINE_mpc8315e-rdb = "mpc8315e-rdb"
COMPATIBLE_MACHINE_routerstationpro = "routerstationpro"
COMPATIBLE_MACHINE_beagleboard = "beagleboard"
COMPATIBLE_MACHINE_atom-pc = "atom-pc"
+COMPATIBLE_MACHINE_genericx86 = "genericx86"
# routerstationpro has a flash size of 16mb
KERNEL_IMAGE_MAXSIZE_routerstationpro = "16777216"
--
1.7.10.4
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 2/6] local.conf.sample: add genericx86 reference
2013-07-25 16:37 [RFC] New x86 Super BSP Ross Burton
2013-07-25 16:38 ` [PATCH 1/6] genericx86: add new BSP Ross Burton
@ 2013-07-25 16:38 ` Ross Burton
2013-07-25 16:38 ` [PATCH 3/6] genericx86: add fbdev, modesettings and vesa Xorg drivers Ross Burton
` (3 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Ross Burton @ 2013-07-25 16:38 UTC (permalink / raw)
To: poky
Signed-off-by: Ross Burton <ross.burton@intel.com>
---
meta-yocto/conf/local.conf.sample | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta-yocto/conf/local.conf.sample b/meta-yocto/conf/local.conf.sample
index 2d89282..b6c26d5 100644
--- a/meta-yocto/conf/local.conf.sample
+++ b/meta-yocto/conf/local.conf.sample
@@ -44,6 +44,7 @@
#
#MACHINE ?= "atom-pc"
#MACHINE ?= "beagleboard"
+#MACHINE ?= "genericx86"
#MACHINE ?= "mpc8315e-rdb"
#MACHINE ?= "routerstationpro"
#
--
1.7.10.4
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 3/6] genericx86: add fbdev, modesettings and vesa Xorg drivers
2013-07-25 16:37 [RFC] New x86 Super BSP Ross Burton
2013-07-25 16:38 ` [PATCH 1/6] genericx86: add new BSP Ross Burton
2013-07-25 16:38 ` [PATCH 2/6] local.conf.sample: add genericx86 reference Ross Burton
@ 2013-07-25 16:38 ` Ross Burton
2013-07-25 16:38 ` [PATCH 4/6] genericx86: disable rootless X Ross Burton
` (2 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Ross Burton @ 2013-07-25 16:38 UTC (permalink / raw)
To: poky
This should ensure that X can start on more hardware. The range of hardware is
still small as the atom-pc kernel only has limited framebuffer devices currently
(e.g. no nVidia).
Signed-off-by: Ross Burton <ross.burton@intel.com>
---
meta-yocto-bsp/conf/machine/genericx86.conf | 3 +++
1 file changed, 3 insertions(+)
diff --git a/meta-yocto-bsp/conf/machine/genericx86.conf b/meta-yocto-bsp/conf/machine/genericx86.conf
index 6318d60..2154943 100644
--- a/meta-yocto-bsp/conf/machine/genericx86.conf
+++ b/meta-yocto-bsp/conf/machine/genericx86.conf
@@ -18,6 +18,9 @@ XSERVER ?= "xserver-xorg \
xf86-input-keyboard \
xf86-input-evdev \
xf86-input-synaptics \
+ xf86-video-fbdev \
+ xf86-video-modesetting \
+ xf86-video-vesa \
xf86-video-intel \
mesa-driver-i915 \
mesa-driver-i965"
--
1.7.10.4
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 4/6] genericx86: disable rootless X
2013-07-25 16:37 [RFC] New x86 Super BSP Ross Burton
` (2 preceding siblings ...)
2013-07-25 16:38 ` [PATCH 3/6] genericx86: add fbdev, modesettings and vesa Xorg drivers Ross Burton
@ 2013-07-25 16:38 ` Ross Burton
2013-07-29 7:29 ` Tomas Frydrych
2013-07-25 16:38 ` [PATCH 5/6] genericx86: ship all the driver firmware by default Ross Burton
2013-07-25 16:38 ` [PATCH 6/6] linux-yocto: enable more framebuffers on genericx86 Ross Burton
5 siblings, 1 reply; 9+ messages in thread
From: Ross Burton @ 2013-07-25 16:38 UTC (permalink / raw)
To: poky
Not all video drivers support rootless X and this BSP aims to have broader
support than atom-pc.
Signed-off-by: Ross Burton <ross.burton@intel.com>
---
meta-yocto-bsp/conf/machine/genericx86.conf | 2 --
1 file changed, 2 deletions(-)
diff --git a/meta-yocto-bsp/conf/machine/genericx86.conf b/meta-yocto-bsp/conf/machine/genericx86.conf
index 2154943..572a480 100644
--- a/meta-yocto-bsp/conf/machine/genericx86.conf
+++ b/meta-yocto-bsp/conf/machine/genericx86.conf
@@ -36,5 +36,3 @@ APPEND += "usbcore.autosuspend=1"
GLIBC_ADDONS = "nptl"
EXTRA_OECONF_append_pn-matchbox-panel-2 = " --with-battery=acpi"
-
-ROOTLESS_X = "1"
--
1.7.10.4
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH 4/6] genericx86: disable rootless X
2013-07-25 16:38 ` [PATCH 4/6] genericx86: disable rootless X Ross Burton
@ 2013-07-29 7:29 ` Tomas Frydrych
2013-07-29 16:26 ` Burton, Ross
0 siblings, 1 reply; 9+ messages in thread
From: Tomas Frydrych @ 2013-07-29 7:29 UTC (permalink / raw)
To: poky
On 25/07/2013 17:38, Ross Burton wrote:
> Not all video drivers support rootless X and this BSP aims to have broader
> support than atom-pc.
Which drivers do you have in mind here? AFAICT this patch set / BSP only
supports the i9x5 family of drivers out of the box, where this is not an
issue. In this day and age rootless X should be the norm, not the
exception, so I think it would be preferable to document the need to
disable rootless X with any such substandard drivers rather than have a
suboptimal lowest common denominator for the generic x86 machine.
Tomas
--
http://sleepfive.com
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 4/6] genericx86: disable rootless X
2013-07-29 7:29 ` Tomas Frydrych
@ 2013-07-29 16:26 ` Burton, Ross
0 siblings, 0 replies; 9+ messages in thread
From: Burton, Ross @ 2013-07-29 16:26 UTC (permalink / raw)
To: Tomas Frydrych; +Cc: poky
On 29 July 2013 08:29, Tomas Frydrych <tf+lists.yocto@r-finger.com> wrote:
> On 25/07/2013 17:38, Ross Burton wrote:
>> Not all video drivers support rootless X and this BSP aims to have broader
>> support than atom-pc.
>
> Which drivers do you have in mind here? AFAICT this patch set / BSP only
> supports the i9x5 family of drivers out of the box, where this is not an
> issue. In this day and age rootless X should be the norm, not the
> exception, so I think it would be preferable to document the need to
> disable rootless X with any such substandard drivers rather than have a
> suboptimal lowest common denominator for the generic x86 machine.
In X is supports Intel gen hardware directly, and anything that it has
framebuffer or modesetting kernel drivers for (so anything with a
plain vesa framebuffer *should* work).
There's also a big difference between running X as root and the
session as root. I've been meaning for a long time to implement that
split in the session scripts so that we're not by default running Sato
as root, just the X server.
Ross
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 5/6] genericx86: ship all the driver firmware by default
2013-07-25 16:37 [RFC] New x86 Super BSP Ross Burton
` (3 preceding siblings ...)
2013-07-25 16:38 ` [PATCH 4/6] genericx86: disable rootless X Ross Burton
@ 2013-07-25 16:38 ` Ross Burton
2013-07-25 16:38 ` [PATCH 6/6] linux-yocto: enable more framebuffers on genericx86 Ross Burton
5 siblings, 0 replies; 9+ messages in thread
From: Ross Burton @ 2013-07-25 16:38 UTC (permalink / raw)
To: poky
By shipping all firmware, hopefully more hardware will work out of the box.
Signed-off-by: Ross Burton <ross.burton@intel.com>
---
meta-yocto-bsp/conf/machine/genericx86.conf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-yocto-bsp/conf/machine/genericx86.conf b/meta-yocto-bsp/conf/machine/genericx86.conf
index 572a480..fbe818c 100644
--- a/meta-yocto-bsp/conf/machine/genericx86.conf
+++ b/meta-yocto-bsp/conf/machine/genericx86.conf
@@ -27,7 +27,7 @@ XSERVER ?= "xserver-xorg \
#MACHINE_EXTRA_RDEPENDS = "rt2860"
-MACHINE_EXTRA_RRECOMMENDS = "kernel-modules eee-acpi-scripts"
+MACHINE_EXTRA_RRECOMMENDS = "kernel-modules eee-acpi-scripts linux-firmware"
IMAGE_FSTYPES ?= "ext3 cpio.gz live"
--
1.7.10.4
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 6/6] linux-yocto: enable more framebuffers on genericx86
2013-07-25 16:37 [RFC] New x86 Super BSP Ross Burton
` (4 preceding siblings ...)
2013-07-25 16:38 ` [PATCH 5/6] genericx86: ship all the driver firmware by default Ross Burton
@ 2013-07-25 16:38 ` Ross Burton
5 siblings, 0 replies; 9+ messages in thread
From: Ross Burton @ 2013-07-25 16:38 UTC (permalink / raw)
To: poky
Signed-off-by: Ross Burton <ross.burton@intel.com>
---
meta-yocto-bsp/recipes-kernel/linux/files/framebuffers.cfg | 5 +++++
meta-yocto-bsp/recipes-kernel/linux/linux-yocto_3.8.bbappend | 3 +++
2 files changed, 8 insertions(+)
create mode 100644 meta-yocto-bsp/recipes-kernel/linux/files/framebuffers.cfg
diff --git a/meta-yocto-bsp/recipes-kernel/linux/files/framebuffers.cfg b/meta-yocto-bsp/recipes-kernel/linux/files/framebuffers.cfg
new file mode 100644
index 0000000..162e103
--- /dev/null
+++ b/meta-yocto-bsp/recipes-kernel/linux/files/framebuffers.cfg
@@ -0,0 +1,5 @@
+CONFIG_FB_UVESA=m
+CONFIG_FB_EFI=m
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_INTEL=m
+CONFIG_FB_RADEON=m
diff --git a/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_3.8.bbappend b/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_3.8.bbappend
index c4c005d..d660450 100644
--- a/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_3.8.bbappend
+++ b/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_3.8.bbappend
@@ -18,3 +18,6 @@ COMPATIBLE_MACHINE_genericx86 = "genericx86"
# routerstationpro has a flash size of 16mb
KERNEL_IMAGE_MAXSIZE_routerstationpro = "16777216"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+SRC_URI_append_genericx86 = " file://framebuffers.cfg"
--
1.7.10.4
^ permalink raw reply related [flat|nested] 9+ messages in thread