Hi All,
This is V2 Resend of my sched_select_cpu() work. Resend because didn't got much
attention on V2. Including more guys now in cc :)
In order to save power, it would be useful to schedule work onto non-IDLE cpus
instead of waking up an IDLE one.
To achieve this, we need scheduler to guide kernel frameworks (like: timers &
workqueues) on which is the most preferred CPU that must be used for these
tasks.
This patchset is about implementing this concept.
- The first patch adds sched_select_cpu() routine which returns the preferred
cpu which is non-idle.
- Second patch removes idle_cpu() calls from timer & hrtimer.
- Third patch is about adapting this change in workqueue framework.
- Fourth patch add migration capability in running timer
Earlier discussions over v1 can be found here:
http://www.mail-archive.com/linaro-dev@lists.linaro.org/msg13342.html
Earlier discussions over this concept were done at last LPC:
http://summit.linuxplumbersconf.org/lpc-2012/meeting/90/lpc2012-sched-timer…
Module created for testing this behavior is present here:
http://git.linaro.org/gitweb?p=people/vireshk/module.git;a=summary
Following are the steps followed in test module:
1. Run single work on each cpu
2. This work will start a timer after x (tested with 10) jiffies of delay
3. Timer routine queues a work... (This may be called from idle or non-idle cpu)
and starts the same timer again STEP 3 is done for n number of times (i.e.
queuing n works, one after other)
4. All works will call a single routine, which will count following per cpu:
- Total works processed by a CPU
- Total works processed by a CPU, which are queued from it
- Total works processed by a CPU, which aren't queued from it
Setup:
-----
- ARM Vexpress TC2 - big.LITTLE CPU
- Core 0-1: A15, 2-4: A7
- rootfs: linaro-ubuntu-nano
Results:
-------
Without Workqueue Modification, i.e. PATCH 3/3:
[ 2493.022335] Workqueue Analyser: works processsed by CPU0, Total: 1000, Own: 0, migrated: 0
[ 2493.047789] Workqueue Analyser: works processsed by CPU1, Total: 1000, Own: 0, migrated: 0
[ 2493.072918] Workqueue Analyser: works processsed by CPU2, Total: 1000, Own: 0, migrated: 0
[ 2493.098576] Workqueue Analyser: works processsed by CPU3, Total: 1000, Own: 0, migrated: 0
[ 2493.123702] Workqueue Analyser: works processsed by CPU4, Total: 1000, Own: 0, migrated: 0
With Workqueue Modification, i.e. PATCH 3/3:
[ 2493.022335] Workqueue Analyser: works processsed by CPU0, Total: 1002, Own: 999, migrated: 3
[ 2493.047789] Workqueue Analyser: works processsed by CPU1, Total: 998, Own: 997, migrated: 1
[ 2493.072918] Workqueue Analyser: works processsed by CPU2, Total: 1013, Own: 996, migrated: 17
[ 2493.098576] Workqueue Analyser: works processsed by CPU3, Total: 998, Own: 993, migrated: 5
[ 2493.123702] Workqueue Analyser: works processsed by CPU4, Total: 989, Own: 987, migrated: 2
V2->V2-Resend
-------------
- Included timer migration patch in the same thread.
V1->V2
-----
- New SD_* macros removed now and earlier ones used
- sched_select_cpu() rewritten and it includes the check on current cpu's
idleness.
- cpu_idle() calls from timer and hrtimer removed now.
- Patch 2/3 from V1, removed as it doesn't apply to latest workqueue branch from
tejun.
- CONFIG_MIGRATE_WQ removed and so is wq_select_cpu()
- sched_select_cpu() called only from __queue_work()
- got tejun/for-3.7 branch in my tree, before making workqueue changes.
Viresh Kumar (4):
sched: Create sched_select_cpu() to give preferred CPU for power
saving
timer: hrtimer: Don't check idle_cpu() before calling
get_nohz_timer_target()
workqueue: Schedule work on non-idle cpu instead of current one
timer: Migrate running timer
include/linux/sched.h | 16 ++++++++++--
include/linux/timer.h | 2 ++
kernel/hrtimer.c | 2 +-
kernel/sched/core.c | 69 +++++++++++++++++++++++++++++++--------------------
kernel/timer.c | 50 ++++++++++++++++++++++---------------
kernel/workqueue.c | 4 +--
6 files changed, 91 insertions(+), 52 deletions(-)
--
1.7.12.rc2.18.g61b472e
Hi Guys,
I really don't know whom to direct this mail to and hence the wide spread.
Problem: When we send a mail to kernel mailing lists with linaro-dev
or linaro-kernel
in cc, and we get replies to those mails, sometimes the mails from
outside people
doesn't reach us back on linaro mailing lists. And i hope the reason
behind that is
those people aren't subscribed to these lists.
For me it makes some sense to allow anyone to send mails to this list. Can that
request be considered?
I believe the idea behind blocking such use is for protecting against
spam mails, but
these mails/replies are really important and we certainly need them
delivered to us.
One solution (don't know if its possible) would be to monitor mails
from non-subscribers
and few people from Linaro can permit them on daily/hourly basis, so
that we don't get any
spam mails, but that would be a burden.
--
viresh
I am attaching a patch by Thomas Gleixner which adds a kernel
command line parameter to set the defauilt IRQ affinity mask. Could
you please integrate this in your tree for the next Linaro release?
I've been using this patch for sometime now and it doesn't introduce
any regressions. There is a possibility that this patch will make it
upstream via the RT patches in the near future but in the meanwhile,
we'd like to carry this patch as well.
Cheers,
Punit
>From 52a7d44f58a262e166575abc57aa0bd3bfc8cfbb Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx(a)linutronix.de>
Date: Fri, 25 May 2012 16:59:47 +0200
Subject: [PATCH] genirq: Add default affinity mask command line option
If we isolate CPUs, then we don't want random device interrupts on
them. Even w/o the user space irq balancer enabled we can end up with
irqs on non boot cpus.
Allow to restrict the default irq affinity mask.
Signed-off-by: Thomas Gleixner <tglx(a)linutronix.de>
---
Documentation/kernel-parameters.txt | 9 +++++++++
kernel/irq/irqdesc.c | 21 +++++++++++++++++++--
2 files changed, 28 insertions(+), 2 deletions(-)
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 7d82468..00fedab 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1164,6 +1164,15 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
See comment before ip2_setup() in
drivers/char/ip2/ip2base.c.
+ irqaffinity= [SMP] Set the default irq affinity mask
+ Format:
+ <cpu number>,...,<cpu number>
+ or
+ <cpu number>-<cpu number>
+ (must be a positive range in ascending order)
+ or a mixture
+ <cpu number>,...,<cpu number>-<cpu number>
+
irqfixup [HW]
When an interrupt is not handled search all handlers
for it. Intended to get systems with badly broken
diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c
index 192a302..473b2b6 100644
--- a/kernel/irq/irqdesc.c
+++ b/kernel/irq/irqdesc.c
@@ -23,10 +23,27 @@
static struct lock_class_key irq_desc_lock_class;
#if defined(CONFIG_SMP)
+static int __init irq_affinity_setup(char *str)
+{
+ zalloc_cpumask_var(&irq_default_affinity, GFP_NOWAIT);
+ cpulist_parse(str, irq_default_affinity);
+ /*
+ * Set at least the boot cpu. We don't want to end up with
+ * bugreports caused by random comandline masks
+ */
+ cpumask_set_cpu(smp_processor_id(), irq_default_affinity);
+ return 1;
+}
+__setup("irqaffinity=", irq_affinity_setup);
+
static void __init init_irq_default_affinity(void)
{
- alloc_cpumask_var(&irq_default_affinity, GFP_NOWAIT);
- cpumask_setall(irq_default_affinity);
+#ifdef CONFIG_CPUMASK_OFFSTACK
+ if (!irq_default_affinity)
+ zalloc_cpumask_var(&irq_default_affinity, GFP_NOWAIT);
+#endif
+ if (cpumask_empty(irq_default_affinity))
+ cpumask_setall(irq_default_affinity);
}
#else
static void __init init_irq_default_affinity(void)
--
1.7.9.5
Hello,
This series implements reentrancy for the common clk implementation of
the clk.h api. Making reentrant calls into the clock framework is both
necessary and desirable for many use cases such as enabling off-chip
clocks via i2c. The first patch in the series implements this.
A neat side effect of reentrancy is that it is possible for platforms
using voltage regulators controlled via i2c to register rate-change
notifier handlers to scale voltage as a function of clock rate. This is
an effective way to implement dynamic voltage & frequency scaling.
Patch #2 implements a helper function for registering such a notifier
handler.
The third patch in the series demonstrates dvfs on OMAP platforms by
modifying the cpufreq-omap driver; it migrates the voltage scaling logic
out of the cpufreq driver's .target callback and registers callbacks via
the helper introduced in patch #2.
Patches four and five are purely test coverage. And what better way to
test than to muck with fragile PLL programming code? These patches test
out a lot of the aforementioned reentrancy in the OMAP3+ DPLL code.
They are not for merging, but as a demonstration of what is now
possible.
Finally, I know that Documentation/clk.txt needs an update for these
changes but I wanted this on the list before I flew out to LCA 2013.
I'll provide that update during or after the conference.
Two previous (and considerably more insane) attempts at this,
v1: http://article.gmane.org/gmane.linux.kernel/1327866
v2: http://marc.info/?l=linux-kernel&m=134507429302463&w=2
Mike Turquette (5):
clk: allow reentrant calls into the clk framework
clk: notifier handler for dynamic voltage scaling
cpufreq: omap: scale regulator from clk notifier
HACK: set_parent callback for OMAP4 non-core DPLLs
HACK: omap: opp: add fake 400MHz OPP to bypass MPU
arch/arm/mach-omap2/cclock44xx_data.c | 1 +
arch/arm/mach-omap2/clock.h | 1 +
arch/arm/mach-omap2/dpll3xxx.c | 107 ++++++++++----
arch/arm/mach-omap2/opp4xxx_data.c | 18 +++
drivers/clk/Makefile | 1 +
drivers/clk/clk.c | 254 ++++++++++++++++++++++++---------
drivers/clk/dvfs.c | 125 ++++++++++++++++
drivers/cpufreq/omap-cpufreq.c | 82 +++--------
include/linux/clk.h | 27 +++-
9 files changed, 459 insertions(+), 157 deletions(-)
create mode 100644 drivers/clk/dvfs.c
--
1.7.10.4
On Fri, 2013-02-15 at 10:33 +0000, Lorenzo Pieralisi wrote:
> On Fri, Feb 15, 2013 at 10:04:37AM +0000, Jon Medhurst (Tixy) wrote:
> > On Thu, 2013-02-14 at 17:16 +0000, Will Deacon wrote:
> > > Hi Tixy,
> > >
> > > On Thu, Feb 14, 2013 at 05:07:43PM +0000, Jon Medhurst (Tixy) wrote:
> > > > The function v7_coherent_kern_range uses the macro icache_line_size to
> > > > read the current CPUs icache line size for the purpose of invalidating
> > > > all cache lines in the given range.
> > > >
> > > > Unfortunately, on the TC2 big.LITTLE test chip, the A15 icache line size
> > > > is 64 bytes, but the A7 size is only 32 bytes. So when the function
> > > > executes on the A15 it will miss out every alternate cache line for the
> > > > A7.
> > >
> > > There is a signal (IMINLN) to the core which allows A15 to behave as though
> > > it has a 32-byte line size and this should be driven correctly for big/little.
> >
> > How do we set that signal? Is that something we have to set up in Linux
> > or is it something that we expect the Firmware to set up?
>
> If I am not mistaken, SCC register at offset 0x400 (bit 7) allows IMINLN to
> be forced to 0 (ie Instruction Cache minimum line size == 32 bytes).
>
> This can be done through board.txt so that it is set up as we want.
According to the TRM for TC2 the default value for that register is
0x33330c80, so adding the line "SCC: 0x400 0x33330c00" and incrementing
TOTALSCCS does the trick, and the A15's now report an icache size of 32.
We'll have to get everyone with a TC2 to make that change then?
As this is a TC2 issue, and not Linux related, shall we drop
linux-arm-kernel from all future replies to avoid the noise? I've added
linaro-dev to the cc list so this continues to get public visibility.
--
Tixy
State of the Debian/Ubuntu arm64 port
=====================================
*** Arm64 lives! ***
Executive summary
-----------------
* There is now a bootable (raring) image to download and run
* Everything has been rebuilt against glibc 2.17 so it works
* A bit more work is needed to make the rootfs useable as a native buildd
* Multiarch crossbuilding and the build-profile mechanism is mature enough to cross-build
a port from scratch (this is a big deal IMHO)
* All packages, sources and tools are in a public repo and this work should be reproducible.
* This image is fully multiarched so co-installing armhf for a
64/32 mix should work nicely, as should multiarch crossbuilding to
legacy x86 architectures. :-) (but I haven't tried that yet...)
* Linaro wants 'the distros' to take this work forward from here so people interested in
Debian and Ubuntu on 64-bit arm hardware need to step up and help out.
Bootable images
---------------
A milestone was reached this week: Enough packages were built for arm64 to debootstrap an
image which booted to a prompt! After a bit of fettling (and switching to multistrap) I got
an image with all the packages configured which boots with upstart to a login prompt (I
admit, I did get quite excited about this, as it represents the coming together of nearly 3
years work on multiarch, crossbuilding, bootstrapping, cyclic dependencies and arm64 :-)
The images are available for download: http://wiki.debian.org/Arm64Port#Pre-built_Rootfs
And there are destructions there for making your own.
All these packages were cross-built on raring, untangling cyclic dependencies with build
profiles (see wiki.debian.org/DebianBootstrap for how that works), making this the first
(non x86) self-bootstrapped debian port ever (so far as I know). All (?) previous ports have
been done using something else like OpenEmbedded (armel, armhf), RedHat/HardHat (arm, alpha,
mips), something IBMy (s390) to get an initial linux rootfs on which debian packages are
built.
The new bootstrap process is (almost) just a list of sbuild commands. In practice there are
still a few rough edges around cross- build-dependencies so of the 140 packages needed for
the bootstrap, 9 had to be built manually with 'dpkg-buildpackage -aarm64 -d' (to skip
build-dep checks) instead of 'sbuild --host arm64 <package>'.
The current bootstrap packageset status is here:
http://people.linaro.org/~wookey/buildd/raring-arm64/status-bootstrap.html
There is no armv8 (arm64/aarch64) hardware available yet, so this image can currently only
be run in a model. ARM provide a free-beer prorietary 'Foundation model' so we do have
someting to test with. It's sluggish but perfectly useable. Booting the images takes a
couple of minutes on my fairly average machine.
The images are using the Linaro OE release kernels which seem to work fine for this purpose.
Thanks to Marcin for modified bootloader lines in .axf files.
Image status
------------
I was impressed that things basically 'just worked' on first boot. There is of course plenty
of breakage, I'm sure, and I haven't looked very hard yet, but it's a lot better than I
expected after months of just building stuff and testing nothing. (Things that are poorly:
nano can't parse it's own syntax-coluring files for example, and multiarch perl has the
wrong @INC path compiled in; I'm sure there is more). Consider this alpha-grade until it's
been used a bit more.
Things that are not yet built which would make the images a lot more useful are apt and a
dhcp client. apt needs gnupg needs curl needs nss. The nss cross-build needs fixing to
unbung that. A debian chroot without apt turns out to be disappointing quite quickly :-)
Expect an updated image with more packages very soon.
Multiarch crossbuilding
-----------------------
It's really nice to have building and crossbuilding using exactly the same mechanisms
and tools, with all files having one canonical location, and dependency mechanisms that
are reliable. The more I've used this, the more I've been impressed by it. There is
still work to do to expand the set of cross-buildable stuff, but it's a solid base to
work from.
Getting this port working has been 'interesting' because it's attempting 4 new things all at
once: multiarch (file layouts and dependencies), crossbuilding (tools and packaging support
in a distro that historically was always natively built), arm64 (aarch64) support in
packages that need it, and build-profiles to linearise the build-order.
The arm64 part of this is a relatively small part as the heavy lifting has been done
upstream (gcc, (e)glibc, binutils, kernel, libffi, autotools and a lot of minor fixes in
various packages). Thanks are due to doko (Matthias Klose) for sterling work getting all
that integrated into the debian and ubuntu toolchain packages, and infinity (Adam Conrad)
for merging various eglibc branches. There were also hordes of very boring patches of the
form 'update config.sub and guess before building'.
Most of the work has been in making things cross-build (exactly the same fixes needed for
armel/hf too so I've had plenty of help there from canonical types who want cross-building
for arm to work nicely), and particular thinks to Neil Williams for taking on the perl
cross-build challenge and creating the debian-perl-cross package to manage the
cross-configury, whilst also working with upstream to make the whole thing a bit less 1996.
Multiarchifying has been going on nicely in libraries and -dev packages, but things like
perl and python needed significant work, along with a lot of boring bugs saying 'mark this
package MA: foreign' and 'build-dep on python:any or perl-base:any'. Thanks are due to doko
for the python multiarching and Niko Tyni for the perl multiarchification. Getting all 3
'aspects' of multiarch perl, cross-built perl and arm64 perl config to work at the same time
was quite hard work, and there are still bugs there. Wider usage of multiarched perl would
no doubt sort this out reasonably quickly. I started a wiki page to track the status of
multiarched cross-buildable perl: http://wiki.debian.org/Multiarch/Perl . Help would be
welcome.
The build-profile work is described on the http://wiki.debian.org/DebianBootstrap page.
Progress has been greatly helped by GSOC projects last year, with good work on the tools
(crossbuild-essential packages, build-profile support) from P.J McDermott and an impressive
contribution from Johannes Schauer on dependency analysis tools around libdose, and apt
build-profile support.
All of this apart from multiarch perl, crossbuildable perl and build-profile stuff (and
a few pending patches) is already in raring.
Building stuff yourself
-----------------------
Setting up an arm64 build environment is very simple. Use sbuild-createchroot or mk-sbuild
and point at the bootstrap repo, with a bit of config and some updated tools packages from
the repo (amd64 only supplied). Details are given on
https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/arm64bootstrap
Once you've created a tarball chroot builds are simply done with
sbuild -c quantal-amd64-sbuild -d quantal --host=arm64 <package.dsc> or
sbuild -c quantal-amd64-sbuild -d quantal --host=arm64 <package>_<version> (I'd love it
if sbuild got smart enough to work out the version itself when given a distro - Roger
says he's working on it)
To deal with the chore of 'find version, run sbuild, sign result, upload to repo, import to
repo, deal with reprepro bitching if you re-upload the same version of something' for every
package build, I wrote 'dimstrap' which is a simple-minded tool to wrap that up and either do
one-off builds or run through a list. It is part of the xbuilder package here:
https://launchpad.net/~linaro-foundations/+archive/cross-build-tools/ It also includes the
logfile-parsing script ('generate html') which generates the nice status pages:
http://people.linaro.org/~wookey/buildd/raring-arm64/status-bootstrap.html
Image building
--------------
The config and instructions provided (in
http://wiki.debian.org/Arm64Port#Building_your_own_rootfs_image ) is
for multistrap. Debootstrap sort-of produces working images too but
takes a lot longer to unpack/configure, and misses out various vital
packages (like libperl5.14). I'm sure it could be kicked into
submission. In theory multistrap (apt really) should have got all the
arch all packages from the main repo, but in practice it refused to do
that so I had to rebuild them or copy them over anyway (grumble).
Any package that installs replaced conffiles seems to generate invalid
dpkg status entries (ifupdown did this to me). I've not got to the
bottom of that yet. Deleting the offending line gets you an image that
works.
Issues
------
General:
The build-profile patches for dpkg and apt need to be pushed into the distro to make
that feature permanent. A thread on debian-devel is working on that
(http://debian.2.n7.nabble.com/Bootstrappable-Debian-proposal-of-needed-chan…).
The main issue is what syntax to use '<>' or '[]' and how to deal with multiple overlapping
profiles. The patches to debian control cannot go in until at least the syntax is agreed and
the tools will parse them without barfing. Johannes ands I will send an updated spec
soonish.
The missing piece of bootstrapping with regard to build-deps is packages that build-dep on
gcc-4.6 or binutils. When cross-building this should be satisfied by <triplet>-gcc-4.6 or
<triplet>-binutils. Nothing makes that happen currently. A scheme has been mooted but
nothing is implemented yet.
There is debate about whether cross-toolchains should build against multiarch libraries
(libgcc, libstdc++) like everything else, or have their own internal copies. Doko and I
disagree on this matter. That will need to be worked out at some point.
We won't get that much further with fixing cross- object-introspection, which is a
non-trivial job.
Image-related:
The images do essentially work but very little has been tested so far.
Multiarch perl still needs work.
nss needs cross-building in order to get apt cross-built
I've not got networking working yet. Info is here:
https://fedoraproject.org/wiki/Architectures/ARM/AArch64/FoundationModel_Ne…
lack of a dhcp client in the image hasn't helped there.
More info
---------
The canonical arm64 port info page is:
http://wiki.debian.org/Arm64Port
Full arm64 cross-build status (i.e everything that has been tried) is here:
http://people.linaro.org/~wookey/buildd/raring-arm64/status.html
All the patches generated so far are here:
http://people.debian.org/~wookey/bootstrap/patches/
(most that can, have been filed as bugs - there is a backlog of stuff
filed in Launchpad but not yet forwarded to the Debian BTS - yes I am
a bad boy - blame the fact that you can't use reportbug or bts from
inside ARM due to their idiotic email policies).
Future work
-----------
Firstly we should say thank you to Linaro for sponsoring this work in various ways over
the last 3 years. We wouldn't be at this point now if it wasn't for that. However
Linaro has a lot of things to do and is trying hard not to do distro's work for them,
concentrating on upstream things. This makes sense for commercially-backed distros like
Red Hat and Ubuntu, but rather less for Debian where we _are_ the distro just as much
as anyone else is, and ultimately someone has to spend the time to get stuff working.
Anyway, I was supposed to stop work on this some time back, but have largely failed to
do so (cross-building is so moreish - there is always one more build to try before
bedtime!) and appreciate being given enough slack to get this to a point of actual
utility. However I expect to have much less time to spend on this from now on, except
insofar as it still co-oncides with things Linaro wants doing. I'd love to hear from
people who actually want to use this, to get more packages built, the Debian
cross-toolchains sorted, build-profiles finalised, and a whole pile of stuff fixed once
Wheezy is released. I'm pretty sure there are quite a lot of people who want multiarch
Debian or Ubuntu on their arm64 machines (or models).
I hear rumours that actual hardware may appear sometime around the middle of the year
with some bagsied for Debian. Setting up the ports infrastructure for that would be
good. I don't know if anyone is interested in building slowly on models in the
meantime, or if we should just carry on crossing and see how far we get. This table
shows that 471 packages in raring can be expected to cross-build already:
http://people.canonical.com/~cjwatson/cross/armhf/raring/
Todo:
Fix up multiarch/cross perl
Fix nss
Build missing packages for apt
Build missing packages for build-essential
Build Debian cross-toolchain
Get all this working in unstable as well as raring
Setup buildds
Build all the other packages
Set up automated bootstraping runs (eventually)
Current setup
-------------
Builds have all been run locally using the sbuild/chroot setup described above and on
the Arm64Port page, which should be easy for anyone to reproduce. The main irritation
is keeping up with raring: out of sync libraries are not MA-installable. Logs are
uploaded to people.linaro.org (rsync). The reprepro repo is on people.debian.org
(dupload). This stuff should probably move to ports.debian.org and ports.ubuntu.com,
but neither of those are set up for cross-building so I'm not quite sure how this will
work.
I could go on at great length about the machinery of profiled bootstrap builds, and
interactions between tools, but it's not very exciting, so will resist. Suffice it to
say that whilst it's all pretty slick I'd still like better buildd tools.
Build-profile changes
---------------------
The build-profile patches are not yet upstreamable so are collecting in the repo.
The patch set so far is here: http://people.debian.org/~wookey/bootstrap/patches/profiles/packages/
Other thanks:
Other people who have helped make this happen in various ways but not got a mention above:
Colin Watson, Dmitry Ledkovs, Steve Langasek, Harry Leibel, Thibaut Girka, Roger Leigh,
Marcus Shawcroft, James Morrisey, Jonathan Austin, Steve McIntyre, Peter Pearse, Aurelien
Jarno, and whoever does sysadmin at people.{linaro,debian}.org
I hope I didn't forget anyone, or any important information.
Feedback from anyone attempting to get this working outside my computer is very
welcome. I have almost certainly forgotten to write down some things, and upload
correct versions of some other things.
Wookey
--
Principal hats: Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/
Add display-timing node parsing to drm fimd and depends on
the display helper patchset at
http://lists.freedesktop.org/archives/dri-devel/2013-January/033998.html
It also adds pinctrl support for drm fimd.
changes since v8:
- replaced IS_ERR() with IS_ERR_OR_NULL(),
because devm_pinctrl_get_select_default can return NULL,
If CONFIG_PINCTRL is disabled.
- modified the error log, such that it shall NOT cross 80 column.
- added Acked-by.
changes since v7:
- addressed comments from Joonyoung Shim <jy0922.shim(a)samsung.com>
to remove a unnecessary variable.
changes since v6:
addressed comments from Inki Dae <inki.dae(a)samsung.com> to
separated out the pinctrl functionality and made a separate patch.
changes since v5:
- addressed comments from Inki Dae <inki.dae(a)samsung.com>,
to remove the allocation of 'fbmode' and replaced
'-1'in "of_get_fb_videomode(dev->of_node, fbmode, -1)" with
OF_USE_NATIVE_MODE.
changes since v4:
- addressed comments from Paul Menzel
<paulepanter(a)users.sourceforge.net>, to modify the commit message
changes since v3:
- addressed comments from Sean Paul <seanpaul(a)chromium.org>, to modify
the return values and print messages.
changes since v2:
- moved 'devm_pinctrl_get_select_default' function call under
'if (pdev->dev.of_node)', this makes NON-DT code unchanged.
(reported by: Rahul Sharma <r.sh.open(a)gmail.com>)
changes since v1:
- addressed comments from Sean Paul <seanpaul(a)chromium.org>
Vikas Sajjan (2):
video: drm: exynos: Add display-timing node parsing using video
helper function
video: drm: exynos: Add pinctrl support to fimd
drivers/gpu/drm/exynos/exynos_drm_fimd.c | 33 ++++++++++++++++++++++++++----
1 file changed, 29 insertions(+), 4 deletions(-)
--
1.7.9.5
On Tue, 2013-02-26 at 11:27 -0800, D D wrote:
> Yes, I have tried both the config in the release notes as well as
> configurations to boot A7.
> The configurations to boot A7 hang while executing the BOOTSCRIPT.
> The release note configurations get past that state, boot up the
> kernel and hang as shown in this thread.
> As a first step, I am just trying to get the release note
> configuration working without the hang.
I've just tested out the 13.01 release notes again by following them to
recreate and replacing my TC2's firmware and configure UEFI; and that
works for me to boot a fresh 13.01 Android image from an SD card.
If you aren't having any success with that configuration, then further
things I can suggest are:
1) To make sure any firmware changes have really taken hold, try erasing
all the NOR flash. You can do this from the bootloader Cmd> prompt by
entering "flash" to get a Flash> prompt, then enter 'eraseall'. After
the flash has finished erasing, reboot the board and the firmware will
be reprogrammed again.
2) In case there is an error in the UEFI config (I know it's a bit
fiddly to enter) then you could try the Linaro firmware zip we have for
the forthcoming 13.02 release [1]. This has a UEFI version which ignores
the SD card UUID and so doesn't need reconfiguring every time you create
a new disk image. It also has the benefit that the default boot config
will work without you needing to manually set anything. If you try this
latest UEFI, I suggest you also erase the flash as above, to make extra
sure there is no old config left over from a previous version.
[1] https://wiki.linaro.org/ARM/VersatileExpress?action=AttachFile&do=get&targe…
--
Tixy
Hi,
Please find a link[1] to some of the things we plan to discuss and
work on in Hong Kong next week.
If you're interested in some of these topics and are attending in
person, please come and say hello.
See you in Hong Kong!
Regards,
Amit
-----------------------------------------------
PMWG Tech Lead, Linaro
[1] https://wiki.linaro.org/WorkingGroups/PowerManagement/Doc/HK_LCA2013