diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 0cb86b7a5ab212..d59b0f01cdbd7e 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -1,23 +1,14 @@ ifeq ($(CONFIG_OF),y) -dtb-$(CONFIG_ARCH_BCM2708) += bcm2708-rpi-b.dtb -dtb-$(CONFIG_ARCH_BCM2708) += bcm2708-rpi-b-plus.dtb -dtb-$(CONFIG_ARCH_BCM2708) += bcm2708-rpi-cm.dtb -dtb-$(CONFIG_ARCH_BCM2709) += bcm2709-rpi-2-b.dtb -dtb-$(CONFIG_ARCH_BCM2709) += bcm2710-rpi-3-b.dtb -dtb-$(CONFIG_ARCH_BCM2709) += bcm2710-rpi-cm3.dtb +dtb-$(CONFIG_ARCH_BCM2835) += \ + bcm2708-rpi-b.dtb \ + bcm2708-rpi-b-plus.dtb \ + bcm2708-rpi-cm.dtb \ + bcm2709-rpi-2-b.dtb \ + bcm2710-rpi-3-b.dtb \ + bcm2710-rpi-cm3.dtb -# Raspberry Pi -ifeq ($(CONFIG_ARCH_BCM2708),y) - RPI_DT_OVERLAYS=y -endif -ifeq ($(CONFIG_ARCH_BCM2709),y) - RPI_DT_OVERLAYS=y -endif ifeq ($(CONFIG_ARCH_BCM2835),y) - RPI_DT_OVERLAYS=y -endif -ifeq ($(RPI_DT_OVERLAYS),y) dts-dirs += overlays endif @@ -954,6 +945,6 @@ subdir-y := $(dts-dirs) clean-files := *.dtb # Enable fixups to support overlays on BCM2708 platforms -ifeq ($(RPI_DT_OVERLAYS),y) +ifeq ($(CONFIG_ARCH_BCM2835),y) DTC_FLAGS ?= -@ -H epapr endif diff --git a/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts b/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts index 6bd8df44dc9163..360da5c928dc55 100644 --- a/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts +++ b/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts @@ -3,7 +3,6 @@ #include "bcm2708.dtsi" / { - compatible = "brcm,bcm2708"; model = "Raspberry Pi Model B+"; }; diff --git a/arch/arm/boot/dts/bcm2708-rpi-b.dts b/arch/arm/boot/dts/bcm2708-rpi-b.dts index ba80832726004b..9c49659ab246bc 100644 --- a/arch/arm/boot/dts/bcm2708-rpi-b.dts +++ b/arch/arm/boot/dts/bcm2708-rpi-b.dts @@ -3,7 +3,6 @@ #include "bcm2708.dtsi" / { - compatible = "brcm,bcm2708"; model = "Raspberry Pi Model B"; }; diff --git a/arch/arm/boot/dts/bcm2708.dtsi b/arch/arm/boot/dts/bcm2708.dtsi index 663843965027da..0f72bd90c591a2 100644 --- a/arch/arm/boot/dts/bcm2708.dtsi +++ b/arch/arm/boot/dts/bcm2708.dtsi @@ -3,9 +3,6 @@ #include "bcm2708-rpi.dtsi" / { - compatible = "brcm,bcm2708"; - model = "BCM2708"; - soc { timer@7e003000 { compatible = "brcm,bcm2835-system-timer"; diff --git a/arch/arm/boot/dts/bcm2709-rpi-2-b.dts b/arch/arm/boot/dts/bcm2709-rpi-2-b.dts index 4f79aaae149abc..19c83823420fc3 100644 --- a/arch/arm/boot/dts/bcm2709-rpi-2-b.dts +++ b/arch/arm/boot/dts/bcm2709-rpi-2-b.dts @@ -3,7 +3,6 @@ #include "bcm2709.dtsi" / { - compatible = "brcm,bcm2709"; model = "Raspberry Pi 2 Model B"; }; diff --git a/arch/arm/boot/dts/bcm2709.dtsi b/arch/arm/boot/dts/bcm2709.dtsi index b1d82f9026d02e..343437db94820b 100644 --- a/arch/arm/boot/dts/bcm2709.dtsi +++ b/arch/arm/boot/dts/bcm2709.dtsi @@ -3,9 +3,6 @@ #include "bcm2708-rpi.dtsi" / { - compatible = "brcm,bcm2709"; - model = "BCM2709"; - soc { ranges = <0x7e000000 0x3f000000 0x01000000>, <0x40000000 0x40000000 0x00040000>; diff --git a/arch/arm/boot/dts/bcm2710-rpi-3-b.dts b/arch/arm/boot/dts/bcm2710-rpi-3-b.dts index 30060663ca7125..cb1694da24b54d 100644 --- a/arch/arm/boot/dts/bcm2710-rpi-3-b.dts +++ b/arch/arm/boot/dts/bcm2710-rpi-3-b.dts @@ -7,7 +7,6 @@ #include "bcm2710.dtsi" / { - compatible = "brcm,bcm2710","brcm,bcm2709"; model = "Raspberry Pi 3 Model B"; }; diff --git a/arch/arm/boot/dts/bcm2710-rpi-cm3.dts b/arch/arm/boot/dts/bcm2710-rpi-cm3.dts index d13e3d4dac4e19..41874c25a84226 100644 --- a/arch/arm/boot/dts/bcm2710-rpi-cm3.dts +++ b/arch/arm/boot/dts/bcm2710-rpi-cm3.dts @@ -3,7 +3,6 @@ #include "bcm2710.dtsi" / { - compatible = "brcm,bcm2710","brcm,bcm2709"; model = "Raspberry Pi Compute Module 3"; }; diff --git a/arch/arm/boot/dts/bcm2710.dtsi b/arch/arm/boot/dts/bcm2710.dtsi index df1a4ce1cd4e57..f6def5d7e5d622 100644 --- a/arch/arm/boot/dts/bcm2710.dtsi +++ b/arch/arm/boot/dts/bcm2710.dtsi @@ -3,8 +3,8 @@ #include "bcm2708-rpi.dtsi" / { - compatible = "brcm,bcm2710","brcm,bcm2709"; - model = "BCM2710"; + compatible = "brcm,bcm2837", "brcm,bcm2836"; + model = "BCM2837"; soc { ranges = <0x7e000000 0x3f000000 0x01000000>, diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile index 7ef449dcfb206f..c940eb3b685d7b 100644 --- a/arch/arm/boot/dts/overlays/Makefile +++ b/arch/arm/boot/dts/overlays/Makefile @@ -1,114 +1,101 @@ -ifeq ($(CONFIG_OF),y) - # Overlays for the Raspberry Pi platform -ifeq ($(CONFIG_ARCH_BCM2708),y) - RPI_DT_OVERLAYS=y -endif -ifeq ($(CONFIG_ARCH_BCM2709),y) - RPI_DT_OVERLAYS=y -endif -ifeq ($(CONFIG_ARCH_BCM2835),y) - RPI_DT_OVERLAYS=y -endif - -dtbo-$(RPI_DT_OVERLAYS) += adau1977-adc.dtbo -dtbo-$(RPI_DT_OVERLAYS) += ads1015.dtbo -dtbo-$(RPI_DT_OVERLAYS) += ads7846.dtbo -dtbo-$(RPI_DT_OVERLAYS) += akkordion-iqdacplus.dtbo -dtbo-$(RPI_DT_OVERLAYS) += allo-piano-dac-pcm512x-audio.dtbo -dtbo-$(RPI_DT_OVERLAYS) += at86rf233.dtbo -dtbo-$(RPI_DT_OVERLAYS) += audioinjector-wm8731-audio.dtbo -dtbo-$(RPI_DT_OVERLAYS) += audremap.dtbo -dtbo-$(RPI_DT_OVERLAYS) += bmp085_i2c-sensor.dtbo -dtbo-$(RPI_DT_OVERLAYS) += dht11.dtbo -dtbo-$(RPI_DT_OVERLAYS) += dionaudio-loco.dtbo -dtbo-$(RPI_DT_OVERLAYS) += dpi18.dtbo -dtbo-$(RPI_DT_OVERLAYS) += dpi24.dtbo -dtbo-$(RPI_DT_OVERLAYS) += dwc-otg.dtbo -dtbo-$(RPI_DT_OVERLAYS) += dwc2.dtbo -dtbo-$(RPI_DT_OVERLAYS) += enc28j60.dtbo -dtbo-$(RPI_DT_OVERLAYS) += gpio-ir.dtbo -dtbo-$(RPI_DT_OVERLAYS) += gpio-poweroff.dtbo -dtbo-$(RPI_DT_OVERLAYS) += hifiberry-amp.dtbo -dtbo-$(RPI_DT_OVERLAYS) += hifiberry-dac.dtbo -dtbo-$(RPI_DT_OVERLAYS) += hifiberry-dacplus.dtbo -dtbo-$(RPI_DT_OVERLAYS) += hifiberry-digi.dtbo -dtbo-$(RPI_DT_OVERLAYS) += hifiberry-digi-pro.dtbo -dtbo-$(RPI_DT_OVERLAYS) += hy28a.dtbo -dtbo-$(RPI_DT_OVERLAYS) += hy28b.dtbo -dtbo-$(RPI_DT_OVERLAYS) += i2c-bcm2708.dtbo -dtbo-$(RPI_DT_OVERLAYS) += i2c-gpio.dtbo -dtbo-$(RPI_DT_OVERLAYS) += i2c-mux.dtbo -dtbo-$(RPI_DT_OVERLAYS) += i2c-pwm-pca9685a.dtbo -dtbo-$(RPI_DT_OVERLAYS) += i2c-rtc.dtbo -dtbo-$(RPI_DT_OVERLAYS) += i2c0-bcm2708.dtbo -dtbo-$(RPI_DT_OVERLAYS) += i2c1-bcm2708.dtbo -dtbo-$(RPI_DT_OVERLAYS) += i2s-gpio28-31.dtbo -dtbo-$(RPI_DT_OVERLAYS) += iqaudio-dac.dtbo -dtbo-$(RPI_DT_OVERLAYS) += iqaudio-dacplus.dtbo -dtbo-$(RPI_DT_OVERLAYS) += iqaudio-digi-wm8804-audio.dtbo -dtbo-$(RPI_DT_OVERLAYS) += justboom-dac.dtbo -dtbo-$(RPI_DT_OVERLAYS) += justboom-digi.dtbo -dtbo-$(RPI_DT_OVERLAYS) += lirc-rpi.dtbo -dtbo-$(RPI_DT_OVERLAYS) += mcp23017.dtbo -dtbo-$(RPI_DT_OVERLAYS) += mcp23s17.dtbo -dtbo-$(RPI_DT_OVERLAYS) += mcp2515-can0.dtbo -dtbo-$(RPI_DT_OVERLAYS) += mcp2515-can1.dtbo -dtbo-$(RPI_DT_OVERLAYS) += mmc.dtbo -dtbo-$(RPI_DT_OVERLAYS) += mz61581.dtbo -dtbo-$(RPI_DT_OVERLAYS) += pi3-act-led.dtbo -dtbo-$(RPI_DT_OVERLAYS) += pi3-disable-bt.dtbo -dtbo-$(RPI_DT_OVERLAYS) += pi3-miniuart-bt.dtbo -dtbo-$(RPI_DT_OVERLAYS) += piscreen.dtbo -dtbo-$(RPI_DT_OVERLAYS) += piscreen2r.dtbo -dtbo-$(RPI_DT_OVERLAYS) += pisound.dtbo -dtbo-$(RPI_DT_OVERLAYS) += pitft22.dtbo -dtbo-$(RPI_DT_OVERLAYS) += pitft28-capacitive.dtbo -dtbo-$(RPI_DT_OVERLAYS) += pitft28-resistive.dtbo -dtbo-$(RPI_DT_OVERLAYS) += pitft35-resistive.dtbo -dtbo-$(RPI_DT_OVERLAYS) += pps-gpio.dtbo -dtbo-$(RPI_DT_OVERLAYS) += pwm.dtbo -dtbo-$(RPI_DT_OVERLAYS) += pwm-2chan.dtbo -dtbo-$(RPI_DT_OVERLAYS) += qca7000.dtbo -dtbo-$(RPI_DT_OVERLAYS) += raspidac3.dtbo -dtbo-$(RPI_DT_OVERLAYS) += rpi-backlight.dtbo -dtbo-$(RPI_DT_OVERLAYS) += rpi-dac.dtbo -dtbo-$(RPI_DT_OVERLAYS) += rpi-display.dtbo -dtbo-$(RPI_DT_OVERLAYS) += rpi-ft5406.dtbo -dtbo-$(RPI_DT_OVERLAYS) += rpi-proto.dtbo -dtbo-$(RPI_DT_OVERLAYS) += rpi-sense.dtbo -dtbo-$(RPI_DT_OVERLAYS) += rra-digidac1-wm8741-audio.dtbo -dtbo-$(RPI_DT_OVERLAYS) += sc16is750-i2c.dtbo -dtbo-$(RPI_DT_OVERLAYS) += sc16is752-spi1.dtbo -dtbo-$(RPI_DT_OVERLAYS) += sdhost.dtbo -dtbo-$(RPI_DT_OVERLAYS) += sdio.dtbo -dtbo-$(RPI_DT_OVERLAYS) += sdio-1bit.dtbo -dtbo-$(RPI_DT_OVERLAYS) += sdtweak.dtbo -dtbo-$(RPI_DT_OVERLAYS) += smi.dtbo -dtbo-$(RPI_DT_OVERLAYS) += smi-dev.dtbo -dtbo-$(RPI_DT_OVERLAYS) += smi-nand.dtbo -dtbo-$(RPI_DT_OVERLAYS) += spi-gpio35-39.dtbo -dtbo-$(RPI_DT_OVERLAYS) += spi-rtc.dtbo -dtbo-$(RPI_DT_OVERLAYS) += spi0-hw-cs.dtbo -dtbo-$(RPI_DT_OVERLAYS) += spi1-1cs.dtbo -dtbo-$(RPI_DT_OVERLAYS) += spi1-2cs.dtbo -dtbo-$(RPI_DT_OVERLAYS) += spi1-3cs.dtbo -dtbo-$(RPI_DT_OVERLAYS) += spi2-1cs.dtbo -dtbo-$(RPI_DT_OVERLAYS) += spi2-2cs.dtbo -dtbo-$(RPI_DT_OVERLAYS) += spi2-3cs.dtbo -dtbo-$(RPI_DT_OVERLAYS) += tinylcd35.dtbo -dtbo-$(RPI_DT_OVERLAYS) += uart1.dtbo -dtbo-$(RPI_DT_OVERLAYS) += vc4-kms-v3d.dtbo -dtbo-$(RPI_DT_OVERLAYS) += vga666.dtbo -dtbo-$(RPI_DT_OVERLAYS) += w1-gpio.dtbo -dtbo-$(RPI_DT_OVERLAYS) += w1-gpio-pullup.dtbo -dtbo-$(RPI_DT_OVERLAYS) += wittypi.dtbo +dtbo-$(CONFIG_ARCH_BCM2835) += \ + adau1977-adc.dtbo \ + ads1015.dtbo \ + ads7846.dtbo \ + akkordion-iqdacplus.dtbo \ + allo-piano-dac-pcm512x-audio.dtbo \ + at86rf233.dtbo \ + audioinjector-wm8731-audio.dtbo \ + audremap.dtbo \ + bmp085_i2c-sensor.dtbo \ + dht11.dtbo \ + dionaudio-loco.dtbo \ + dpi18.dtbo \ + dpi24.dtbo \ + dwc-otg.dtbo \ + dwc2.dtbo \ + enc28j60.dtbo \ + gpio-ir.dtbo \ + gpio-poweroff.dtbo \ + hifiberry-amp.dtbo \ + hifiberry-dac.dtbo \ + hifiberry-dacplus.dtbo \ + hifiberry-digi.dtbo \ + hifiberry-digi-pro.dtbo \ + hy28a.dtbo \ + hy28b.dtbo \ + i2c-bcm2708.dtbo \ + i2c-gpio.dtbo \ + i2c-mux.dtbo \ + i2c-pwm-pca9685a.dtbo \ + i2c-rtc.dtbo \ + i2c0-bcm2708.dtbo \ + i2c1-bcm2708.dtbo \ + i2s-gpio28-31.dtbo \ + iqaudio-dac.dtbo \ + iqaudio-dacplus.dtbo \ + iqaudio-digi-wm8804-audio.dtbo \ + justboom-dac.dtbo \ + justboom-digi.dtbo \ + lirc-rpi.dtbo \ + mcp23017.dtbo \ + mcp23s17.dtbo \ + mcp2515-can0.dtbo \ + mcp2515-can1.dtbo \ + mmc.dtbo \ + mz61581.dtbo \ + pi3-act-led.dtbo \ + pi3-disable-bt.dtbo \ + pi3-miniuart-bt.dtbo \ + piscreen.dtbo \ + piscreen2r.dtbo \ + pisound.dtbo \ + pitft22.dtbo \ + pitft28-capacitive.dtbo \ + pitft28-resistive.dtbo \ + pitft35-resistive.dtbo \ + pps-gpio.dtbo \ + pwm.dtbo \ + pwm-2chan.dtbo \ + qca7000.dtbo \ + raspidac3.dtbo \ + rpi-backlight.dtbo \ + rpi-dac.dtbo \ + rpi-display.dtbo \ + rpi-ft5406.dtbo \ + rpi-proto.dtbo \ + rpi-sense.dtbo \ + rra-digidac1-wm8741-audio.dtbo \ + sc16is750-i2c.dtbo \ + sc16is752-spi1.dtbo \ + sdhost.dtbo \ + sdio.dtbo \ + sdio-1bit.dtbo \ + sdtweak.dtbo \ + smi.dtbo \ + smi-dev.dtbo \ + smi-nand.dtbo \ + spi-gpio35-39.dtbo \ + spi-rtc.dtbo \ + spi0-hw-cs.dtbo \ + spi1-1cs.dtbo \ + spi1-2cs.dtbo \ + spi1-3cs.dtbo \ + spi2-1cs.dtbo \ + spi2-2cs.dtbo \ + spi2-3cs.dtbo \ + tinylcd35.dtbo \ + uart1.dtbo \ + vc4-kms-v3d.dtbo \ + vga666.dtbo \ + w1-gpio.dtbo \ + w1-gpio-pullup.dtbo \ + wittypi.dtbo targets += dtbs dtbs_install targets += $(dtbo-y) -endif - always := $(dtbo-y) clean-files := *.dtbo diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig index 8ab82ca775b336..36d0e55739b0fe 100644 --- a/arch/arm/configs/bcm2709_defconfig +++ b/arch/arm/configs/bcm2709_defconfig @@ -42,7 +42,7 @@ CONFIG_PARTITION_ADVANCED=y CONFIG_MAC_PARTITION=y CONFIG_CFQ_GROUP_IOSCHED=y CONFIG_ARCH_BCM=y -CONFIG_ARCH_BCM2709=y +CONFIG_ARCH_BCM2835=y # CONFIG_CACHE_L2X0 is not set CONFIG_SMP=y CONFIG_VMSPLIT_2G=y diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig index 3de3a93921cbea..59dae0cdec5dbd 100644 --- a/arch/arm/configs/bcmrpi_defconfig +++ b/arch/arm/configs/bcmrpi_defconfig @@ -42,7 +42,7 @@ CONFIG_CFQ_GROUP_IOSCHED=y CONFIG_ARCH_MULTI_V6=y # CONFIG_ARCH_MULTI_V7 is not set CONFIG_ARCH_BCM=y -CONFIG_ARCH_BCM2708=y +CONFIG_ARCH_BCM2835=y # CONFIG_CACHE_L2X0 is not set CONFIG_PREEMPT_VOLUNTARY=y CONFIG_AEABI=y diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig index 929a5fa241fa94..3968816e0ee07b 100644 --- a/arch/arm/mach-bcm/Kconfig +++ b/arch/arm/mach-bcm/Kconfig @@ -156,33 +156,18 @@ config ARCH_BCM2835 select FIQ select PINCTRL select PINCTRL_BCM2835 + select MFD_SYSCON if ARCH_MULTI_V7 help This enables support for the Broadcom BCM2835 and BCM2836 SoCs. This SoC is used in the Raspberry Pi and Roku 2 devices. config MACH_BCM2708 bool "Enable optimized __copy_to_user and __copy_from_user" - depends on ARCH_BCM2708 + depends on ARCH_BCM2835 && ARCH_MULTI_V6 default y help Optimized versions of __copy_to_user and __copy_from_user for Pi1. -config ARCH_BCM2708 - bool "Broadcom BCM2708 family" - depends on ARCH_MULTI_V6 - select ARCH_BCM2835 - help - This enables support for Broadcom BCM2708 boards. - -config ARCH_BCM2709 - bool "Broadcom BCM2709 family" - depends on ARCH_MULTI_V7 - select ARCH_BCM2835 - select HAVE_SMP - select MFD_SYSCON - help - This enables support for Broadcom BCM2709 boards. - config ARCH_BCM_63XX bool "Broadcom BCM63xx DSL SoC" depends on ARCH_MULTI_V7 diff --git a/arch/arm/mach-bcm/board_bcm2835.c b/arch/arm/mach-bcm/board_bcm2835.c index efbd18020479c1..133338f0a21237 100644 --- a/arch/arm/mach-bcm/board_bcm2835.c +++ b/arch/arm/mach-bcm/board_bcm2835.c @@ -66,31 +66,3 @@ DT_MACHINE_START(BCM2835, "BCM2835") .init_early = bcm2835_init_early, .dt_compat = bcm2835_compat MACHINE_END - -#ifdef CONFIG_ARCH_BCM2708 -static const char * const bcm2708_compat[] = { - "brcm,bcm2708", - NULL -}; - -DT_MACHINE_START(BCM2708, "BCM2708") - .init_machine = bcm2835_init, - .reserve = bcm2835_board_reserve, - .init_early = bcm2835_init_early, - .dt_compat = bcm2708_compat, -MACHINE_END -#endif - -#ifdef CONFIG_ARCH_BCM2709 -static const char * const bcm2709_compat[] = { - "brcm,bcm2709", - NULL -}; - -DT_MACHINE_START(BCM2709, "BCM2709") - .init_machine = bcm2835_init, - .reserve = bcm2835_board_reserve, - .init_early = bcm2835_init_early, - .dt_compat = bcm2709_compat, -MACHINE_END -#endif diff --git a/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c b/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c index 85d82f31cb4963..13047c08fb71cc 100644 --- a/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c +++ b/drivers/usb/host/dwc_otg/dwc_otg_fiq_fsm.c @@ -78,7 +78,7 @@ void notrace _fiq_print(enum fiq_debug_level dbg_lvl, volatile struct fiq_state * fiq_fsm_spin_lock() - ARMv6+ bare bones spinlock * Must be called with local interrupts and FIQ disabled. */ -#if defined(CONFIG_ARCH_BCM2709) && defined(CONFIG_SMP) +#if defined(CONFIG_ARCH_BCM2835) && defined(CONFIG_SMP) inline void fiq_fsm_spin_lock(fiq_lock_t *lock) { unsigned long tmp; @@ -111,7 +111,7 @@ inline void fiq_fsm_spin_lock(fiq_lock_t *lock) { } /** * fiq_fsm_spin_unlock() - ARMv6+ bare bones spinunlock */ -#if defined(CONFIG_ARCH_BCM2709) && defined(CONFIG_SMP) +#if defined(CONFIG_ARCH_BCM2835) && defined(CONFIG_SMP) inline void fiq_fsm_spin_unlock(fiq_lock_t *lock) { smp_mb(); diff --git a/scripts/mkknlimg b/scripts/mkknlimg index a21f7e31bc9042..60206de7fa9a49 100755 --- a/scripts/mkknlimg +++ b/scripts/mkknlimg @@ -78,6 +78,7 @@ my $wanted_strings = 'brcm,bcm2835' => FLAG_PI | FLAG_DTOK | FLAG_283X, 'brcm,bcm2836' => FLAG_PI | FLAG_DTOK | FLAG_283X, 'of_cfs_init' => FLAG_DTOK | FLAG_DDTK, + 'vc_cma_init' => FLAG_PI | FLAG_270X, }; my $res = try_extract($kernel_file, $tmpfile1);