[yocto] [meta-raspberrypi][PATCH 0/5] Add support for 4.1 kernel with vc4 DRM/KMS driver

Petter Mabäcker petter at technux.se
Wed Aug 5 13:48:20 PDT 2015


 

2015-08-04 18:07 skrev Javier Martinez Canillas: 

> Hello Petter,
>

> Thanks a lot for your feedback.
> 
> On 08/04/2015 11:16 AM, Petter
Mabäcker wrote:
> 
>> On 07/30/2015 10:34 AM, Javier Martinez Canillas
wrote: 
>> 
>>> Hello Andrei, This series adds support for Eric Anholt's
v4.1 kernel, that has support for the vc4 DRM/KMS driver. Which is the
new open source graphics driver stack for the Raspberry Pi to be used
instead of the userland driver. We are using it in the Tizen port to
RPI2 [0] and are trying to push all the patches back to the tizen-distro
and meta-raspberrypi OE layers so I'm posting these patches to get your
feedback. The v4.1 kernel is under heavy development so is a
work-in-progress and should not be used in production. That's why a
default preference of -1 is set and the kernel only is enabled if the
"vc4-gfx" feature is added to the DISTRO_FEATURES variable. But even
when it's still a development kernel, having the recipe in the
meta-raspberrypi will allow people to test it. The patches are for:
Patch 1/5 makes optional to add the kgdboc kernel command line parameter
Patch 2/5 allows to set the mask_gpu_interrupt0 option in config.txt
Patch 3/5 changes the partition layout to add more space for boot files
Patch 4/5 adds a recipe for the 4.1 and some patches to make it stable
Patch 5/5 switchs the default providers according to the gfx stack used
One problem I found is that the latest RPI kernels changed the path for
the DT overlays after commit 739c586c8757 ("BCM270X_DT: Move the
overlays into a subdirectory, adding the README") [1] so the kernel
fails to build with the default KERNEL_DEVICETREE. I tried to change
get_dts() function logic to take this into account but found that it
would had been a more intrusive change and KERNEL_DEVICETREE will have
to be changed anyways once the recipes for the other kernels are updated
to the latest HEAD so for now I just define the following on local.conf
to make it build:
>> As long as we bump SRCREV for 3.18 kernel as well,
I see no problem. Since then the KERNEL_DEVICETREE default value can
look the same in all situations (both 3.18 and 4.x can handle the new
structure and we get no compatibility issues) and for older kernels
(3.12 and 3.14) it doesn't matter since they don't have native device
tree support and will turn device tree support off by default.
> 
> Yes,
that's what I meant when I said that the problem will be solved once
>
all the recipes for DT enabled kernels are updated to the latest
branch
> HEAD. But I didn't want to do that in this series since I
wanted the
> changes to be as less intrusive as possible.

Ok, sounds
reasonable. Alex found some problems when bumping 3.18 to latest but
when that is solved he can push the 3.18 bumping and prepare the
KERNEL_DEVICETREE variable with the new subdir for overlays. 

>>
KERNEL_DEVICETREE = " bcm2708-rpi-b.dtb bcm2708-rpi-b-plus.dtb
bcm2709-rpi-2-b.dtb overlays/hifiberry-amp-overlay.dtb
overlays/hifiberry-dac-overlay.dtb
overlays/hifiberry-dacplus-overlay.dtb
overlays/hifiberry-digi-overlay.dtb overlays/iqaudio-dac-overlay.dtb
overlays/iqaudio-dacplus-overlay.dtb overlays/lirc-rpi-overlay.dtb
overlays/pps-gpio-overlay.dtb overlays/w1-gpio-overlay.dtb
overlays/w1-gpio-pullup-overlay.dtb " [0]:
http://blogs.s-osg.org/tizen-rpi2-now-supporting-3d-acceleration/ [1]
[1]: https://github.com/raspberrypi/linux/commit/739c586c8757 [2] Best
regards, --- Javier Martinez Canillas Open Source Group Samsung Research
America Derek Foreman (4): rpi-config: Allow to mask GPU irqs
sdcard_image-rpi.bbclass: Allocate more space for boot partition
linux-raspberrypi: Add a 4.1 linux kernel with vc4 support
rpi-default-providers: Switch providers according to used gfx stack
Mauro Carvalho Chehab (1): linux-raspberrypi.inc: Make kgdboc kernel
param optional README | 38 +++++-- classes/sdcard_image-rpi.bbclass | 6
+- conf/machine/include/rpi-default-providers.inc | 8 +-
conf/machine/include/rpi-default-versions.inc | 2 +-
recipes-bsp/bootfiles/rpi-config_git.bb | 6 ++
recipes-kernel/linux/linux-raspberrypi.inc | 5 +-
..._defconfig-Enable-config-options-for-vc4-.patch | 48 +++++++++
...-ARM-dts-Fix-i2c-for-bcm2709-RPI2-B-board.patch | 85 +++++++++++++++
.../0003-drm-vc4-Use-the-fbdev_cma-helpers.patch | 115
+++++++++++++++++++++ .../0004-drm-vc4-Allow-vblank-to-be-disabled.patch
| 26 +++++ .../0005-drm-vc4-Disable-KMS-operations.patch | 95
+++++++++++++++++ recipes-kernel/linux/linux-raspberrypi_4.1.bb | 16 +++
12 files changed, 433 insertions(+), 17 deletions(-) create mode 100644
recipes-kernel/linux/linux-raspberrypi/0001-ARM-bcm2709_defconfig-Enable-config-options-for-vc4-.patch
create mode 100644
recipes-kernel/linux/linux-raspberrypi/0002-ARM-dts-Fix-i2c-for-bcm2709-RPI2-B-board.patch
create mode 100644
recipes-kernel/linux/linux-raspberrypi/0003-drm-vc4-Use-the-fbdev_cma-helpers.patch
create mode 100644
recipes-kernel/linux/linux-raspberrypi/0004-drm-vc4-Allow-vblank-to-be-disabled.patch
create mode 100644
recipes-kernel/linux/linux-raspberrypi/0005-drm-vc4-Disable-KMS-operations.patch
create mode 100644 recipes-kernel/linux/linux-raspberrypi_4.1.bb
> Nice
and interesting changes, but you really should sync this with Alex
Lennon as well since he currently are working with integrating 4.1 into
meta-raspberrypi. An other opinion is that you should start by trying to
integrate relevant kernel changes both from
'git://github.com/anholt/linux.git;protocol=git;branch=vc4-kms-v3d-rpi2'
and the integration patches into the currently used upstream
(https://github.com/raspberrypi/linux [3]) and I also think it's a good
idea to ensure that the new code is added within kernel config options
so it's easy to enable/disable the vc4 support. Then at least I think
this more easily can be integrated in meta-raspberrypi.

I didn't know
there was a work in progress to integrate the 4.1 tree.
Although that is
for the branch in https://github.com/raspberrypi/linux [3]that does not
have the Broa> n't expect that to be a trivial task. I certainly don't
know if have the bandwidth to do it. Also, it is under heavy development
so will be hard to track. Another option is to have two recipes for 4.1,
one for the raspberrypi tree with userland and another one with the tree
with the VC4 DRM/KMS driver. Or use the same recipe but with a different
SRC_URI for each case. I tried to isolate all the VC4 support so is
enabled and disable easily using a config option.
> 
> Ok, in that case
I think we don't have so much options. I vote for two recipes in that
case (at least to start with) something like
recipe-kernel/linux/linux-raspberrypi-vc4 or similar.
r 

Best
regards,

> 


Links:
------
[1]
http://blogs.s-osg.org/tizen-rpi2-now-supporting-3d-acceleration/
[2]
https://github.com/raspberrypi/linux/commit/739c586c8757
[3]
https://github.com/raspberrypi/linux
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20150805/889a27b9/attachment.html>


More information about the yocto mailing list