From: Trevor Woerner <twoerner@gmail.com>
To: yocto@yoctoproject.org
Subject: [meta-raspberrypi][PATCH] linux-raspberrypi-rt
Date: Tue, 3 Jan 2017 14:38:30 -0500 [thread overview]
Message-ID: <20170103193831.16829-1-twoerner@gmail.com> (raw)
This patchset adds a new recipe to meta-raspberrypi to give users the option
to choose a full PREEMPT_RT Linux kernel with the full PREEMPT_RT patch
applied. It is based on the linux-raspberrypi 4.4 kernel with the -rt patch
from https://www.kernel.org/pub/linux/kernel/projects/rt/, specifically it is
linux-raspberrypi-4.4.35 with the patch-4.4.32-rt43 -rt patch applied.
To select this kernel for your image, set:
PREFERRED_PROVIDER_virtual/kernel = "linux-raspberrypi-rt"
in local.conf or similar.
Normally when using the -rt kernel on the raspberrypi and enabling full
preemption (CONFIG_PREEMPT_RT_FULL=y), the device will become unstable and
be prone to frequent crashing. There are two ways to fix this problem:
1) disable FIQ
2) patch the FIQ handling to avoid the race which causes the crashes
The FIQ can be disabled by appending "dwc_otg.fiq_enable=0
dwc_otg.fiq_fsm_enable=0" to the kernel cmdline. Disabling the FIQ altogether
does fix the problem but increases latencies. The better solution is to patch
the FIQ handling code to avoid the race condition that causes the crash. This
allows the FIQ to be used, and lowers latencies.
This patch implements the 2nd option of patching the kernel code to avoid the
race condition. Thus providing a better -rt experience on this platform.
A full explanation of this issue can be found here:
https://www.osadl.org/Single-View.111+M5c03315dc57.0.html
This kernel recipe ignores the raspberrypi-specific kernel configuration
mechanisms of the other raspberrypi kernel recipes so that users are free to
modify the base kernel configuration using fragments in the usual Yocto way.
The base defconfig for this kernel is the same as the linux-raspberrypi-4.4
kernel but with full preemption enabled (and whatever else that pulls in).
Trevor Woerner (1):
linux-raspberrypi-rt: add
.../0001-fix-dtbo-rules.patch | 44 +
.../FIQ_PREEMPT_RT_on_raspi.patch | 310 +
.../linux/linux-raspberrypi-rt-4.4/defconfig | 5419 ++++
.../patch-4.4.32-rt43.patch | 31403 +++++++++++++++++++
recipes-kernel/linux/linux-raspberrypi-rt_4.4.bb | 55 +
5 files changed, 37231 insertions(+)
create mode 100644 recipes-kernel/linux/linux-raspberrypi-rt-4.4/0001-fix-dtbo-rules.patch
create mode 100644 recipes-kernel/linux/linux-raspberrypi-rt-4.4/FIQ_PREEMPT_RT_on_raspi.patch
create mode 100644 recipes-kernel/linux/linux-raspberrypi-rt-4.4/defconfig
create mode 100644 recipes-kernel/linux/linux-raspberrypi-rt-4.4/patch-4.4.32-rt43.patch
create mode 100644 recipes-kernel/linux/linux-raspberrypi-rt_4.4.bb
--
2.10.2
next reply other threads:[~2017-01-03 19:38 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-03 19:38 Trevor Woerner [this message]
2017-01-03 19:38 ` [meta-raspberrypi][PATCH] linux-raspberrypi-rt: add Trevor Woerner
2017-01-04 0:05 ` Andreas Müller
2017-01-04 3:01 ` Andreas Müller
2017-01-04 13:42 ` Trevor Woerner
2017-01-04 13:37 ` Trevor Woerner
2017-01-04 6:43 ` Khem Raj
2017-01-04 12:29 ` Andreas Müller
2017-01-04 14:22 ` Trevor Woerner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170103193831.16829-1-twoerner@gmail.com \
--to=twoerner@gmail.com \
--cc=yocto@yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.