Status report:
https://wiki.linaro.org/OfficeofCTO/WeeklyReport
Last weekly meeting minutes:
https://wiki.linaro.org/OfficeofCTO/2011-12-13
Highlights:
= ARMHF =
- Debian: 67 % of the archive built
(https://buildd.debian.org/stats/graph-week-big.png), chasing/fixing up
~140-180 build failures now. Estimated to need a week or two more
- Ubuntu - the email from Mathias Klose (thread in linaro-dev:
http://lists.linaro.org/pipermail/linaro-dev/2011-December/009242.html)
describes well the status for Ubuntu armhf build. Emphasis on the issues
which Matthias raised:
compilers not completely built yet
packaging mentioning armel only not armhf
hardfloat issues needing porting work
= ARM Server =
- Preparing server WG presentation to mgmt team - will start filling
out some meta-blueprints for the initial work, concentrating on the
kernel parts
- Finished and discussing the first version of Server WG roadmap with
updated mandate and PMWG bits
- Starting to look into the newly released ACPI v5 specification, with
the interest to write a whitepaper on ACPI recommendations
Questions/comments?
--
Ilias Biris ilias.biris(a)linaro.org
Project Manager, Linaro
M: +358504839608, IRC: ibiris Skype: ilias_biris
Linaro.org│ Open source software for ARM SoCs
An hwmod with a 'HWMOD_INIT_NO_IDLE' flag set, is left in
enabled state by the hwmod framework post the initial setup.
Once a real user of the device (a driver) tries to enable it
at a later point, the hwmod framework throws a WARN() about
the device being already in enabled state.
Fix this by introducing a new state '_HWMOD_STATE_ENABLED_AT_INIT'
to identify such devices/hwmods. When the device/hwmod
is requested to be enabled (the first time) by its driver/user,
nothing except the mux-enable and a state change to '_HWMOD_STATE_ENABLED'
is needed. The mux data is board specific and is unavailable during
initial enable() of the device, done by the framework as part of
setup().
A good example of a such a device is an UART used as debug console.
The UART module needs to be kept enabled through the boot, until the
UART driver takes control of it, for debug prints to appear on
the console.
Acked-by: Kevin Hilman <khilman(a)ti.com>
Acked-by: Benoit Cousson <b-cousson(a)ti.com>
Signed-off-by: Rajendra Nayak <rnayak(a)ti.com>
---
arch/arm/mach-omap2/omap_hwmod.c | 23 ++++++++++++++++++++++-
arch/arm/plat-omap/include/plat/omap_hwmod.h | 6 ++++++
2 files changed, 28 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
index 6b3088d..166a42d 100644
--- a/arch/arm/mach-omap2/omap_hwmod.c
+++ b/arch/arm/mach-omap2/omap_hwmod.c
@@ -1441,6 +1441,25 @@ static int _enable(struct omap_hwmod *oh)
pr_debug("omap_hwmod: %s: enabling\n", oh->name);
+ /*
+ * hwmods' with HWMOD_INIT_NO_IDLE flag set, are left
+ * in enabled state at init.
+ * Now that someone is really trying to enable them,
+ * just update the state.
+ */
+ if (oh->_state == _HWMOD_STATE_ENABLED_AT_INIT) {
+ /*
+ * If the caller has mux data populated, do the mux'ing
+ * which wouldn't have been done as part of the _enable()
+ * done during setup.
+ */
+ if (oh->mux)
+ omap_hwmod_mux(oh->mux, _HWMOD_STATE_ENABLED);
+
+ oh->_state = _HWMOD_STATE_ENABLED;
+ return 0;
+ }
+
if (oh->_state != _HWMOD_STATE_INITIALIZED &&
oh->_state != _HWMOD_STATE_IDLE &&
oh->_state != _HWMOD_STATE_DISABLED) {
@@ -1744,8 +1763,10 @@ static int _setup(struct omap_hwmod *oh, void *data)
* it should be set by the core code as a runtime flag during startup
*/
if ((oh->flags & HWMOD_INIT_NO_IDLE) &&
- (postsetup_state == _HWMOD_STATE_IDLE))
+ (postsetup_state == _HWMOD_STATE_IDLE)) {
+ oh->_state = _HWMOD_STATE_ENABLED_AT_INIT;
postsetup_state = _HWMOD_STATE_ENABLED;
+ }
if (postsetup_state == _HWMOD_STATE_IDLE)
_idle(oh);
diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h
index 8b372ed..2bd3929 100644
--- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
@@ -436,6 +436,12 @@ struct omap_hwmod_omap4_prcm {
#define _HWMOD_STATE_ENABLED 4
#define _HWMOD_STATE_IDLE 5
#define _HWMOD_STATE_DISABLED 6
+/*
+ * This state signifies the hwmod was left enabled
+ * after init, by the framework, because of the
+ * 'HWMOD_INIT_NO_IDLE' flag.
+ */
+#define _HWMOD_STATE_ENABLED_AT_INIT 7
/**
* struct omap_hwmod_class - the type of an IP block
--
1.7.1
Hi Nicolas,
It seems as though some of my perf patches have ended up in the Linaro
kernel source but the fixes that I've pushed during the -rc haven't made
it:
https://bugs.launchpad.net/linaro-landing-team-freescale/+bug/893653https://bugs.launchpad.net/ubuntu/+source/linux-linaro-omap/+bug/843628
Rather than me point each landing team at the patches, would you be able
to cherry-pick the fixes from mainline please? They are:
bce34d14 ("ARM: perf: initialise used_mask for fake PMU during validation")
e5a21327 ("ARM: perf: check that we have a platform device when reserving PMU")
6bd05409 ("ARM: 7185/1: perf: don't assign platform_device on unsupported CPUs")
Hopefully that way all of the landing teams will receive the patches via
the main Linaro kernel tree.
Cheers,
Will
This subject came up on debian-arm:
http://lists.debian.org/debian-arm/2011/12/msg00025.html
And it seems like the sort of architectural issue linaro should take
an interest in fixing to avoid making people's lives difficult when
building on arm. Is it on anyone's list already?
In short:
A C app that defines a struct 'user' and uses wait.h or signal.h will
find a clash with the system struct of the same name, which should
only be needed for GDB (when built on/for arm).
On other arches this is not pulled in by default so the problem doesn't arise.
We can
1) Change every app in the world that defines a 'struct user'
2) Stop these headers getting brought in when not actually needed
(it's a relatively recent change that brings it in)
3) Change the name in glibc/GDB to something less likely to clash
disclaimer: I know nothing at all about this except what I
just read in that thread. Please refer to the thread for details.
Wookey
--
Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/
This week, a kind of rebuild for precise pangolin in the disguise of the armhf
bootstrap did end. The build did expose some ARM unspecific build failures;
please use the information from the armhf build logs to address these build
failures. Please use the ftbfs pages to gather more information:
- http://qa.ubuntuwire.com/ftbfs/ (not yet showing armhf)
This mostly shows failures introduced by syncs from Debian
unstable (Debian didn't yet file bug reports after introducing
the -Werror=format-security default).
- http://qa.ubuntuwire.org/ftbfs/primary-precise-armhf.html
Shows armhf and armel build failures. Look at build failures
which appear on armhf but not armel. These are likely build
failures for other architectures as well.
There are some generic issues found in more than one package:
- default CFLAGS/CXXFLAGS include -Werror=format-security.
Fixes are easy; don't stop fixing the first occurrence, but
complete a local build.
- Gnome pkgconfig files dropping -lm from Libs, and other
packages not explicitly linking with -lm (resulting in symbols
like "sqrt" and "pow" not found).
- libreadline-dev dropping build dependency on libncurses-dev,
and libncurses introducing a new libtinfo library.
ARM (hf) specific issues include
- compilers not yet built on armhf (gnat, fpc, ocamlopt),
or not yet having the correct defaults (clang).
- packaging mentioning armel only, but not armhf; usually
needs fixes in both the control and rules files.
http://people.canonical.com/~adconrad/universe-armel-armhf_differences
might help with these although it includes all the packages
build depending on gnat and fpc.
- hard float issues, needing porting work. known ones are
libreoffice, ocamlopt and fpc, but there will be more ...
The armhf precise archive is installable with debootstrap(1) in a chroot on any
armel Ubuntu/Linaro release.
Thanks to Adam Conrad for driving the bootstrap, to Loic Minier for fixing ARM
issues on the fly, to the Losa's for keeping the build farm alive, and many others.
Matthias
Detailed dashboard:
https://wiki.linaro.org/WorkingGroups/Middleware/Multimedia/WeeklyReport
Last meeting minutes:
https://wiki.linaro.org/WorkingGroups/Middleware/Multimedia/Notes/2011-12-13
Highlights:
- Moving on with the release for realvideo end-to-end audio testing
(basic prototype), speex, UCM (initialize ucm testcase to make sure
ucm4pa works properly, loaded pulseaudio patches)
- Found a way to work around lava-test proxy issue: cma lava-test
submitted to test the only one snowball in board farm
- Started working with gstplayer (gstreamer playbin2 based) for xbmc
(xorg on i.mx boards is really slow, xbmc package for the LEB is very
slow as well)
- Started working on the api differences post for tinyalsa vs alsa-lib
- Continued pushing patches for omapdrm (dri2video work) for the 3.3
merge window
Issues:
- Bug #893402 is impeding progress in end-to-end audio testing (only a
prototype is available for desktop - pandaboard is not functional).
We're working on the bug
- CMA lava-test is very long (around 2 hours) and there is only one
snowball on test farm, so it will takes long to debug/fix it
- Related to xbmc effort: there's SLOW xorg (no hw accel) on i.mx53 with
linaro image and will probably be missing also for 11.12. Biggest
problem is xbmc dvdplayer - a replacement for dvdplayer that uses gst
demuxer and decoders would work much better. The work for xbmc is now
moving to 12.01 with this gstreamer-related blueprint
Risks
-It is possible to delay the Huffman optimisations for LJT work planned
for 11.12 to complete in 12.01 instead
- It is possible to move Speex LAVA benchmarking to 12.01
- Since CMA lava-test is very long (around 2 hours) and there is only
one snowball on test farm, the CMA testing blueprint could be put on
hold. This is not a huge impediment - since we can already execute the
CMA lava-test with local method
--
Ilias Biris ilias.biris(a)linaro.org
Project Manager, Linaro
M: +358504839608, IRC: ibiris Skype: ilias_biris
Linaro.org│ Open source software for ARM SoCs