[yocto] [meta-raspberrypi][PATCH 1/2] Support for 64bits target on raspberrypi3 (generic part)

Khem Raj raj.khem at gmail.com
Sun Nov 20 11:38:14 PST 2016


This is ok.

On Sun, Nov 20, 2016 at 4:46 AM, Herve Jourdain <herve.jourdain at neuf.fr> wrote:
> Signed-off-by: Herve Jourdain <herve.jourdain at neuf.fr>
> ---
>  classes/sdcard_image-rpi.bbclass           |  2 ++
>  conf/machine/include/rpi-base.inc          | 21 +++++++++++++++++
>  recipes-bsp/bootfiles/rpi-config_git.bb    |  6 +++++
>  recipes-kernel/linux/linux-raspberrypi.inc |  2 ++
>  recipes-kernel/linux/linux-rpi.inc         | 38 ++++++++++++++++++++++--------
>  5 files changed, 59 insertions(+), 10 deletions(-)
>
> diff --git a/classes/sdcard_image-rpi.bbclass b/classes/sdcard_image-rpi.bbclass
> index 116d5e8..375f624 100644
> --- a/classes/sdcard_image-rpi.bbclass
> +++ b/classes/sdcard_image-rpi.bbclass
> @@ -35,6 +35,8 @@ KERNEL_INITRAMFS ?= ""
>  # Kernel image name
>  SDIMG_KERNELIMAGE_raspberrypi  ?= "kernel.img"
>  SDIMG_KERNELIMAGE_raspberrypi2 ?= "kernel7.img"
> +SDIMG_KERNELIMAGE_raspberrypi3 ?= "kernel7.img"
> +SDIMG_KERNELIMAGE_raspberrypi3-64 ?= "kernel8.img"
>
>  # Boot partition volume id
>  BOOTDD_VOLUME_ID ?= "${MACHINE}"
> diff --git a/conf/machine/include/rpi-base.inc b/conf/machine/include/rpi-base.inc
> index 497dd29..f6e2997 100644
> --- a/conf/machine/include/rpi-base.inc
> +++ b/conf/machine/include/rpi-base.inc
> @@ -40,6 +40,27 @@ KERNEL_DEVICETREE ?= " \
>      overlays/pi3-miniuart-bt.dtbo \
>      overlays/vc4-kms-v3d.dtbo \
>      "
> +KERNEL_DEVICETREE_raspberrypi3-64 ?= " \
> +    broadcom/bcm2837-rpi-3-b.dtb \
> +    \
> +    broadcom/overlays/hifiberry-amp.dtbo \
> +    broadcom/overlays/hifiberry-dac.dtbo \
> +    broadcom/overlays/hifiberry-dacplus.dtbo \
> +    broadcom/overlays/hifiberry-digi.dtbo \
> +    broadcom/overlays/i2c-rtc.dtbo \
> +    broadcom/overlays/iqaudio-dac.dtbo \
> +    broadcom/overlays/iqaudio-dacplus.dtbo \
> +    broadcom/overlays/lirc-rpi.dtbo \
> +    broadcom/overlays/pitft22.dtbo \
> +    broadcom/overlays/pitft28-resistive.dtbo \
> +    broadcom/overlays/pps-gpio.dtbo \
> +    broadcom/overlays/rpi-ft5406.dtbo \
> +    broadcom/overlays/w1-gpio.dtbo \
> +    broadcom/overlays/w1-gpio-pullup.dtbo \
> +    broadcom/overlays/pi3-disable-bt.dtbo \
> +    broadcom/overlays/pi3-miniuart-bt.dtbo \
> +    broadcom/overlays/vc4-kms-v3d.dtbo \
> +    "
>  KERNEL_IMAGETYPE ?= "Image"
>
>  MACHINE_FEATURES += "apm usbhost keyboard vfat ext2 screen touchscreen alsa bluetooth wifi sdio"
> diff --git a/recipes-bsp/bootfiles/rpi-config_git.bb b/recipes-bsp/bootfiles/rpi-config_git.bb
> index f610718..df87d3d 100644
> --- a/recipes-bsp/bootfiles/rpi-config_git.bb
> +++ b/recipes-bsp/bootfiles/rpi-config_git.bb
> @@ -112,6 +112,12 @@ do_deploy() {
>      fi
>  }
>
> +do_deploy_append_raspberrypi3-64() {
> +    # Device Tree support
> +    echo "# Load correct Device Tree for Aarch64" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
> +    echo "device_tree=bcm2837-rpi-3-b.dtb" >>${DEPLOYDIR}/bcm2835-bootfiles/config.txt
> +}
> +
>  addtask deploy before do_package after do_install
>  do_deploy[dirs] += "${DEPLOYDIR}/bcm2835-bootfiles"
>
> diff --git a/recipes-kernel/linux/linux-raspberrypi.inc b/recipes-kernel/linux/linux-raspberrypi.inc
> index 98229d9..6ae94ea 100644
> --- a/recipes-kernel/linux/linux-raspberrypi.inc
> +++ b/recipes-kernel/linux/linux-raspberrypi.inc
> @@ -18,6 +18,8 @@ PV = "${LINUX_VERSION}+git${SRCPV}"
>  # NOTE: For now we pull in the default config from the RPi kernel GIT tree.
>  KERNEL_DEFCONFIG_raspberrypi ?= "bcmrpi_defconfig"
>  KERNEL_DEFCONFIG_raspberrypi2 ?= "bcm2709_defconfig"
> +KERNEL_DEFCONFIG_raspberrypi3 ?= "bcm2709_defconfig"
> +KERNEL_DEFCONFIG_raspberrypi3-64 ?= "bcm2837_defconfig"
>
>  # CMDLINE for raspberrypi
>  CMDLINE = "dwc_otg.lpm_enable=0 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait"
> diff --git a/recipes-kernel/linux/linux-rpi.inc b/recipes-kernel/linux/linux-rpi.inc
> index 95a9530..27adf40 100644
> --- a/recipes-kernel/linux/linux-rpi.inc
> +++ b/recipes-kernel/linux/linux-rpi.inc
> @@ -39,12 +39,15 @@ do_configure_prepend() {
>      echo "" > ${B}/.config
>      CONF_SED_SCRIPT=""
>
> -    # oabi / eabi support
> -    kernel_configure_variable AEABI y
> -    if [ "${ARM_KEEP_OABI}" = "1" ] ; then
> -        kernel_configure_variable OABI_COMPAT y
> -    else
> -        kernel_configure_variable OABI_COMPAT n
> +    if [ "${ARCH}" = "arm" ]; then
> +
> +        # oabi / eabi support
> +        kernel_configure_variable AEABI y
> +        if [ "${ARM_KEEP_OABI}" = "1" ] ; then
> +            kernel_configure_variable OABI_COMPAT y
> +        else
> +            kernel_configure_variable OABI_COMPAT n
> +        fi
>      fi
>
>      # Set cmdline
> @@ -58,7 +61,11 @@ do_configure_prepend() {
>      # Newer versions of udev mandate that sysfs doesn't have deprecated entries
>      if [ "${UDEV_GE_141}" = "1" ] ; then
>          kernel_configure_variable SYSFS_DEPRECATED n
> -        kernel_configure_variable SYSFS_DEPRECATED_V2 n
> +
> +        if [ "${ARCH}" = "arm" ]; then
> +            kernel_configure_variable SYSFS_DEPRECATED_V2 n
> +        fi
> +
>          kernel_configure_variable HOTPLUG y
>          kernel_configure_variable UEVENT_HELPER_PATH "\"\""
>          kernel_configure_variable UNIX y
> @@ -77,13 +84,20 @@ do_configure_prepend() {
>      if [ "${KERNEL_ENABLE_CGROUPS}" = "1" ] ; then
>          kernel_configure_variable CGROUP_SCHED y
>          kernel_configure_variable CGROUPS y
> -        kernel_configure_variable CGROUP_NS y
> +
> +        if [ "${ARCH}" = "arm" ]; then
> +            kernel_configure_variable CGROUP_NS y
> +        fi
> +
>          kernel_configure_variable CGROUP_FREEZER y
>          kernel_configure_variable CGROUP_DEVICE y
>          kernel_configure_variable CPUSETS y
>          kernel_configure_variable PROC_PID_CPUSET y
>          kernel_configure_variable CGROUP_CPUACCT y
> -        kernel_configure_variable RESOURCE_COUNTERS y
> +
> +        if [ "${ARCH}" = "arm" ]; then
> +            kernel_configure_variable RESOURCE_COUNTERS y
> +        fi
>      fi
>
>      # root-over-nfs-over-usb-eth support. Limited, but should cover some cases
> @@ -93,7 +107,11 @@ do_configure_prepend() {
>          kernel_configure_variable INET y
>          kernel_configure_variable IP_PNP y
>          kernel_configure_variable USB_GADGET y
> -        kernel_configure_variable USB_GADGET_SELECTED y
> +
> +        if [ "${ARCH}" = "arm" ]; then
> +            kernel_configure_variable USB_GADGET_SELECTED y
> +        fi
> +
>          kernel_configure_variable USB_ETH y
>          kernel_configure_variable NFS_FS y
>          kernel_configure_variable ROOT_NFS y
> --
> 2.7.4
>
> --
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto



More information about the yocto mailing list