From fb31f0fe9ad6614786d52802d63d25277c80e723 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 4 Jul 2019 20:51:23 +0200 Subject: [PATCH] Try to support RPI4 --- ...nc-nvram-configuration-brcmfmac43455.patch | 25 + .../target/linux/brcm2708/bcm2709/config-4.19 | 264 +++-- .../target/linux/brcm2708/bcm2711/config-4.19 | 12 +- root/target/linux/brcm2708/image/Makefile | 39 +- .../linux/brcm2708/image/armstub8-gic.bin | Bin 0 -> 512 bytes root/target/linux/brcm2708/image/config.txt | 965 +++++++++++++++++ root/target/linux/brcm2708/image/config64.txt | 966 ++++++++++++++++++ ...ame-w1_family-struct-fixing-c-p-typo.patch | 49 + ...output_write-cosmetic-fixes-simplify.patch | 69 ++ ...2413-add-retry-support-to-state_read.patch | 79 ++ ...he-slave-is-not-responding-during-re.patch | 61 ++ ...w1-ds2413-fix-state-byte-comparision.patch | 53 + ...DMA-channel-and-memory-leak-in-vc4-3.patch | 140 +++ ...708_fb-Revert-cma-allocation-attempt.patch | 166 +++ ...ort-for-color-encoding-on-YUV-planes.patch | 117 +++ ...dd-coherent_pool-1M-to-Pi-4-bootargs.patch | 33 + 16 files changed, 2920 insertions(+), 118 deletions(-) create mode 100644 root/package/firmware/brcmfmac-board-rpi/patches/sync-nvram-configuration-brcmfmac43455.patch create mode 100644 root/target/linux/brcm2708/image/armstub8-gic.bin create mode 100644 root/target/linux/brcm2708/image/config.txt create mode 100644 root/target/linux/brcm2708/image/config64.txt create mode 100644 root/target/linux/brcm2708/patches-4.19/0679-w1-ds2805-rename-w1_family-struct-fixing-c-p-typo.patch create mode 100644 root/target/linux/brcm2708/patches-4.19/0680-w1-ds2413-output_write-cosmetic-fixes-simplify.patch create mode 100644 root/target/linux/brcm2708/patches-4.19/0681-w1-ds2413-add-retry-support-to-state_read.patch create mode 100644 root/target/linux/brcm2708/patches-4.19/0682-w1-ds2413-when-the-slave-is-not-responding-during-re.patch create mode 100644 root/target/linux/brcm2708/patches-4.19/0683-w1-ds2413-fix-state-byte-comparision.patch create mode 100644 root/target/linux/brcm2708/patches-4.19/0684-drm-vc4_dsi-Fix-DMA-channel-and-memory-leak-in-vc4-3.patch create mode 100644 root/target/linux/brcm2708/patches-4.19/0685-video-bcm2708_fb-Revert-cma-allocation-attempt.patch create mode 100644 root/target/linux/brcm2708/patches-4.19/0686-drm-vc4-Add-support-for-color-encoding-on-YUV-planes.patch create mode 100644 root/target/linux/brcm2708/patches-4.19/0689-arm-dts-Add-coherent_pool-1M-to-Pi-4-bootargs.patch diff --git a/root/package/firmware/brcmfmac-board-rpi/patches/sync-nvram-configuration-brcmfmac43455.patch b/root/package/firmware/brcmfmac-board-rpi/patches/sync-nvram-configuration-brcmfmac43455.patch new file mode 100644 index 00000000..2c2f1c05 --- /dev/null +++ b/root/package/firmware/brcmfmac-board-rpi/patches/sync-nvram-configuration-brcmfmac43455.patch @@ -0,0 +1,25 @@ +From ca8a6a85b4753a386f519b8b2d8436f34badc543 Mon Sep 17 00:00:00 2001 +From: Andrei Gherzan +Date: Wed, 3 Jul 2019 16:15:21 +0100 +Subject: [PATCH] brcmfmac43455-sdio.txt: Sync NVRAM configuration Raspbian + +Fixes: https://github.com/RPi-Distro/firmware-nonfree/issues/3 + +Signed-off-by: Andrei Gherzan +--- + brcm/brcmfmac43455-sdio.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/brcm/brcmfmac43455-sdio.txt b/brcm/brcmfmac43455-sdio.txt +index 54d9321..6801286 100644 +--- a/brcm/brcmfmac43455-sdio.txt ++++ b/brcm/brcmfmac43455-sdio.txt +@@ -21,7 +21,7 @@ btc_mode=1 + # bit1 for btcoex + boardflags=0x00480201 + boardflags2=0x40800000 +-boardflags3=0x48200100 ++boardflags3=0x44200100 + phycal_tempdelta=15 + rxchain=1 + txchain=1 diff --git a/root/target/linux/brcm2708/bcm2709/config-4.19 b/root/target/linux/brcm2708/bcm2709/config-4.19 index 612c1602..bb94a0de 100644 --- a/root/target/linux/brcm2708/bcm2709/config-4.19 +++ b/root/target/linux/brcm2708/bcm2709/config-4.19 @@ -1,13 +1,21 @@ # CONFIG_AIO is not set CONFIG_ALIGNMENT_TRAP=y +CONFIG_ALTERA_MSGDMA=y +CONFIG_AMBA_PL08X=y +# CONFIG_ARCH_AXXIA is not set CONFIG_ARCH_BCM=y CONFIG_ARCH_BCM2835=y -CONFIG_ARCH_CRYPTO=y # CONFIG_ARCH_BCM_HR2 is not set CONFIG_ARCH_CLOCKSOURCE_DATA=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +CONFIG_ARCH_HAS_KCOV=y +CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y +CONFIG_ARCH_HAS_PHYS_TO_DMA=y +CONFIG_ARCH_HAS_PTE_SPECIAL=y CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_ARCH_HAS_SG_CHAIN=y CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y @@ -16,22 +24,17 @@ CONFIG_ARCH_HAS_TICK_BROADCAST=y CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y -CONFIG_ARCH_MMAP_RND_BITS_MAX=15 CONFIG_ARCH_MULTIPLATFORM=y -# CONFIG_ARCH_MULTI_CPU_AUTO is not set CONFIG_ARCH_MULTI_V6_V7=y CONFIG_ARCH_MULTI_V7=y CONFIG_ARCH_NR_GPIO=0 CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y -# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set -# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y -# CONFIG_ARCH_WANTS_THP_SWAP is not set CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y CONFIG_ARM=y @@ -40,6 +43,8 @@ CONFIG_ARM_ARCH_TIMER=y CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y CONFIG_ARM_BCM2835_CPUFREQ=y CONFIG_ARM_CPU_SUSPEND=y +CONFIG_ARM_CRYPTO=y +CONFIG_ARM_GIC=y CONFIG_ARM_HAS_SG_CHAIN=y CONFIG_ARM_L1_CACHE_SHIFT=6 CONFIG_ARM_L1_CACHE_SHIFT_6=y @@ -53,35 +58,52 @@ CONFIG_ARM_THUMB=y CONFIG_ARM_TIMER_SP804=y CONFIG_ARM_UNWIND=y CONFIG_ARM_VIRT_EXT=y +CONFIG_ASYNC_CORE=y +CONFIG_ASYNC_MEMCPY=y +CONFIG_ASYNC_PQ=y +CONFIG_ASYNC_RAID6_RECOV=y +CONFIG_ASYNC_XOR=y CONFIG_AUTO_ZRELADDR=y # CONFIG_BACKLIGHT_CLASS_DEVICE is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_BCM2708_VCMEM=y # CONFIG_BCM2835_DEVGPIOMEM is not set CONFIG_BCM2835_MBOX=y +# CONFIG_BCM2835_POWER is not set # CONFIG_BCM2835_SMI is not set CONFIG_BCM2835_THERMAL=y CONFIG_BCM2835_TIMER=y CONFIG_BCM2835_VCHIQ=y -# CONFIG_BCM2835_VCHIQ_SUPPORT_MEMDUMP is not set +CONFIG_BCM2835_VCHIQ_MMAL=y CONFIG_BCM2835_WDT=y +CONFIG_BCM7XXX_PHY=y CONFIG_BCMGENET=y +CONFIG_BCM_NET_PHYLIB=y CONFIG_BCM_VCIO=y CONFIG_BCM_VC_SM=y +CONFIG_BCM_VC_SM_CMA=y CONFIG_BCM_VIDEOCORE=y +CONFIG_BLK_DEV_DM=y +CONFIG_BLK_DEV_DM_BUILTIN=y # CONFIG_BLK_DEV_INITRD is not set CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_MD=y CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=4096 CONFIG_BLK_DEV_SD=y +CONFIG_BLK_MQ_PCI=y CONFIG_BLK_SCSI_REQUEST=y -CONFIG_BRCM_CHAR_DRIVERS=y -CONFIG_BRCMFMAC_USB=y +CONFIG_BOUNCE=y CONFIG_BRCMSTB_THERMAL=y +CONFIG_BRCM_CHAR_DRIVERS=y CONFIG_BROADCOM_PHY=y CONFIG_BUILD_BIN2C=y # CONFIG_CACHE_L2X0 is not set +CONFIG_CB710_CORE=y +# CONFIG_CB710_DEBUG is not set +CONFIG_CB710_DEBUG_ASSUMPTIONS=y +CONFIG_CC_HAS_ASM_GOTO=y CONFIG_CLKDEV_LOOKUP=y CONFIG_CLKSRC_MMIO=y CONFIG_CLONE_BACKWARDS=y @@ -90,14 +112,13 @@ CONFIG_CMA_ALIGNMENT=8 CONFIG_CMA_AREAS=7 # CONFIG_CMA_DEBUG is not set # CONFIG_CMA_DEBUGFS is not set -CONFIG_CMA_SIZE_MBYTES=16 +CONFIG_CMA_SIZE_MBYTES=5 # CONFIG_CMA_SIZE_SEL_MAX is not set CONFIG_CMA_SIZE_SEL_MBYTES=y # CONFIG_CMA_SIZE_SEL_MIN is not set # CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set CONFIG_COMMON_CLK=y CONFIG_CONFIGFS_FS=y -CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_CONSOLE_TRANSLATIONS=y # CONFIG_CPUFREQ_DT is not set CONFIG_CPU_32v6K=y @@ -129,6 +150,7 @@ CONFIG_CPU_IDLE_GOV_MENU=y CONFIG_CPU_PABRT_V7=y CONFIG_CPU_PM=y CONFIG_CPU_RMAP=y +CONFIG_CPU_SPECTRE=y # CONFIG_CPU_THERMAL is not set CONFIG_CPU_THUMB_CAPABLE=y CONFIG_CPU_TLB_V7=y @@ -136,81 +158,79 @@ CONFIG_CPU_V7=y CONFIG_CRC16=y CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y +# CONFIG_CRYPTO_AES_ARM_CE is not set CONFIG_CRYPTO_CBC=y +# CONFIG_CRYPTO_CHACHA20_NEON is not set CONFIG_CRYPTO_CRC32C=y +# CONFIG_CRYPTO_CRC32_ARM_CE is not set CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_GHASH_ARM_CE is not set CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_NULL2=y CONFIG_CRYPTO_RNG2=y +# CONFIG_CRYPTO_SHA1_ARM_CE is not set +# CONFIG_CRYPTO_SHA1_ARM_NEON is not set +# CONFIG_CRYPTO_SHA256_ARM is not set +# CONFIG_CRYPTO_SHA2_ARM_CE is not set +# CONFIG_CRYPTO_SHA512_ARM is not set CONFIG_CRYPTO_WORKQUEUE=y CONFIG_DCACHE_WORD_ACCESS=y CONFIG_DEBUG_ALIGN_RODATA=y CONFIG_DEBUG_BUGVERBOSE=y CONFIG_DEBUG_INFO=y CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" -# CONFIG_DEBUG_UART_8250 is not set # CONFIG_DEBUG_USER is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_DEFAULT_MPTCP_PM="fullmesh" CONFIG_DMADEVICES=y CONFIG_DMA_BCM2708=y CONFIG_DMA_BCM2835=y CONFIG_DMA_CMA=y CONFIG_DMA_ENGINE=y -# CONFIG_DMA_NOOP_OPS is not set CONFIG_DMA_OF=y CONFIG_DMA_SHARED_BUFFER=y CONFIG_DMA_VIRTUAL_CHANNELS=y -# CONFIG_DMA_VIRT_OPS is not set +CONFIG_DM_BIO_PRISON=y +CONFIG_DM_BUFIO=y +CONFIG_DM_CACHE=y +CONFIG_DM_CACHE_SMQ=y +# CONFIG_DM_CRYPT is not set +# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set +CONFIG_DM_DELAY=y +# CONFIG_DM_MIRROR is not set +CONFIG_DM_PERSISTENT_DATA=y +CONFIG_DM_RAID=y +CONFIG_DM_SNAPSHOT=y +CONFIG_DM_THIN_PROVISIONING=y +CONFIG_DM_ZERO=y CONFIG_DNOTIFY=y -# CONFIG_DRM_LIB_RANDOM is not set -CONFIG_DRM_PANEL_LVDS=n -CONFIG_DRM_PANEL_INNOLUX_P079ZCA=n -CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=n -CONFIG_DRM_PANEL_SITRONIX_ST7789V=n -CONFIG_DRM_VC4_HDMI_CEC=n CONFIG_DTC=y CONFIG_DUMMY_CONSOLE=y +CONFIG_DW_AXI_DMAC=y +CONFIG_DW_DMAC=y +CONFIG_DW_DMAC_CORE=y +CONFIG_DW_DMAC_PCI=y CONFIG_EDAC_ATOMIC_SCRUB=y CONFIG_EDAC_SUPPORT=y CONFIG_ENABLE_MUST_CHECK=y -CONFIG_EXPORTFS=y CONFIG_EXT4_FS=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y -# CONFIG_F2FS_CHECK_FS is not set -# CONFIG_F2FS_FS is not set -# CONFIG_F2FS_FS_SECURITY is not set -# CONFIG_F2FS_FS_XATTR is not set -# CONFIG_F2FS_STAT_FS is not set -CONFIG_FB=y -CONFIG_FB_BCM2708=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_IMAGEBLIT=y -CONFIG_FB_CMDLINE=y -# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set -# CONFIG_FB_RPISENSE is not set CONFIG_FIQ=y -CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_FIXED_PHY=y CONFIG_FIX_EARLYCON_MEM=y -# CONFIG_FONTS is not set -CONFIG_FONT_8x16=y -CONFIG_FONT_8x8=y -CONFIG_FONT_SUPPORT=y # CONFIG_FPE_FASTFPE is not set # CONFIG_FPE_NWFPE is not set -CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set -# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set CONFIG_FREEZER=y +CONFIG_FSL_EDMA=y +CONFIG_FS_IOMAP=y CONFIG_FS_MBCACHE=y CONFIG_FS_POSIX_ACL=y -CONFIG_FUTEX_PI=y CONFIG_GENERIC_ALLOCATOR=y CONFIG_GENERIC_ARCH_TOPOLOGY=y CONFIG_GENERIC_BUG=y @@ -219,9 +239,13 @@ CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_EARLY_IOREMAP=y CONFIG_GENERIC_IDLE_POLL_SETUP=y -CONFIG_GENERIC_IO=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_IRQ_MIGRATION=y +CONFIG_GENERIC_IRQ_MULTI_HANDLER=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_IRQ_SHOW_LEVEL=y +CONFIG_GENERIC_MSI_IRQ=y +CONFIG_GENERIC_MSI_IRQ_DOMAIN=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_GENERIC_PINCONF=y CONFIG_GENERIC_PINCTRL_GROUPS=y @@ -232,33 +256,29 @@ CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GPIOLIB=y CONFIG_GPIOLIB_IRQCHIP=y -CONFIG_GPIO_ARIZONA=y -CONFIG_GPIO_BCM_EXP=y CONFIG_GPIO_BCM_VIRT=y +# CONFIG_GPIO_RASPBERRYPI_EXP is not set CONFIG_GPIO_SYSFS=y -# CONFIG_GRO_CELLS is not set CONFIG_HANDLE_DOMAIN_IRQ=y CONFIG_HARDEN_BRANCH_PREDICTOR=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_HAS_DMA=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y -# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_ARCH_BITREVERSE=y CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_HAVE_ARCH_KGDB=y CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y CONFIG_HAVE_ARM_ARCH_TIMER=y CONFIG_HAVE_ARM_SMCCC=y -# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set -CONFIG_HAVE_CC_STACKPROTECTOR=y CONFIG_HAVE_CLK=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_HAVE_CONTEXT_TRACKING=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_HAVE_DEBUG_KMEMLEAK=y -CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y @@ -268,7 +288,10 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_HAVE_GENERIC_GUP=y +CONFIG_HAVE_IDE=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y CONFIG_HAVE_MEMBLOCK=y CONFIG_HAVE_MOD_ARCH_SPECIFIC=y CONFIG_HAVE_NET_DSA=y @@ -278,12 +301,15 @@ CONFIG_HAVE_PERF_EVENTS=y CONFIG_HAVE_PERF_REGS=y CONFIG_HAVE_PERF_USER_STACK_DUMP=y CONFIG_HAVE_PROC_CPU=y +CONFIG_HAVE_RCU_TABLE_FREE=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_RSEQ=y CONFIG_HAVE_SMP=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_UID16=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HOTPLUG_CPU=y +# CONFIG_HUGETLBFS is not set CONFIG_HW_CONSOLE=y CONFIG_HZ_FIXED=0 CONFIG_IKCONFIG=y @@ -293,10 +319,11 @@ CONFIG_INPUT_MOUSEDEV=y # CONFIG_INPUT_MOUSEDEV_PSAUX is not set CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -CONFIG_IOMMU_HELPER=y +CONFIG_INTEL_IDMA64=y CONFIG_IOSCHED_CFQ=y CONFIG_IRQCHIP=y CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_IRQ_WORK=y CONFIG_JBD2=y @@ -305,42 +332,75 @@ CONFIG_KERNEL_GZIP=y # CONFIG_LCD_CLASS_DEVICE is not set CONFIG_LEDS_GPIO=y CONFIG_LEDS_TRIGGER_INPUT=y +CONFIG_LIBCRC32C=y CONFIG_LIBFDT=y +CONFIG_LOCK_DEBUGGING_SUPPORT=y CONFIG_LOCK_SPIN_ON_OWNER=y -CONFIG_LOGO=y -CONFIG_LOGO_LINUX_CLUT224=y -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set -CONFIG_MAC_PARTITION=y CONFIG_MAGIC_SYSRQ=y CONFIG_MAILBOX=y # CONFIG_MAILBOX_TEST is not set CONFIG_MAX_RAW_DEVS=256 CONFIG_MD=y -# CONFIG_MDIO_BUS is not set +CONFIG_MDIO_BCM_UNIMAC=y +CONFIG_MDIO_BUS=y +CONFIG_MDIO_DEVICE=y +CONFIG_MD_AUTODETECT=y +# CONFIG_MD_LINEAR is not set +# CONFIG_MD_MULTIPATH is not set +CONFIG_MD_RAID0=y +CONFIG_MD_RAID1=y +CONFIG_MD_RAID10=y +CONFIG_MD_RAID456=y +CONFIG_MEMFD_CREATE=y CONFIG_MEMORY_ISOLATION=y -CONFIG_MFD_ARIZONA=y -CONFIG_MFD_STMPE=y -CONFIG_MFD_WM5102=y +CONFIG_MFD_CORE=y CONFIG_MFD_SYSCON=y -# CONFIG_MFD_RPISENSE_CORE is not set +CONFIG_MICROCHIP_PHY=y CONFIG_MIGHT_HAVE_CACHE_L2X0=y CONFIG_MIGHT_HAVE_PCI=y CONFIG_MIGRATION=y +CONFIG_MISC_RTSX=y +CONFIG_MISC_RTSX_PCI=y CONFIG_MMC=y -# CONFIG_MMC_BCM2835 is not set +CONFIG_MMC_ARMMMCI=y +CONFIG_MMC_BCM2835=y CONFIG_MMC_BCM2835_DMA=y CONFIG_MMC_BCM2835_MMC=y +CONFIG_MMC_BCM2835_PIO_DMA_BARRIER=2 CONFIG_MMC_BCM2835_SDHOST=y CONFIG_MMC_BLOCK=y CONFIG_MMC_BLOCK_MINORS=32 +CONFIG_MMC_CB710=y +CONFIG_MMC_CQHCI=y +CONFIG_MMC_DEBUG=y +CONFIG_MMC_DW=y +# CONFIG_MMC_DW_BLUEFIELD is not set +# CONFIG_MMC_DW_EXYNOS is not set +# CONFIG_MMC_DW_HI3798CV200 is not set +# CONFIG_MMC_DW_K3 is not set +# CONFIG_MMC_DW_PCI is not set +CONFIG_MMC_DW_PLTFM=y +CONFIG_MMC_MTK=y +CONFIG_MMC_REALTEK_PCI=y CONFIG_MMC_SDHCI=y -# CONFIG_MMC_SDHCI_IPROC us not set +CONFIG_MMC_SDHCI_IO_ACCESSORS=y +CONFIG_MMC_SDHCI_PCI=y +CONFIG_MMC_SDHCI_ACPI=y CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_OF_ARASAN=y +CONFIG_MMC_SDHCI_OF_AT91=y +CONFIG_MMC_SDHCI_OF_DWCMSHC=y +CONFIG_MMC_SDHCI_CADENCE=y +CONFIG_MMC_SDHCI_IPROC=y +CONFIG_MMC_SDHCI_PLTFM=y +# CONFIG_MMC_TIFM_SD is not set CONFIG_MODULES_USE_ELF_REL=y # CONFIG_MTD is not set -CONFIG_MULTI_IRQ_HANDLER=y +# CONFIG_MTK_AEE_KDUMP is not set +CONFIG_MTK_MMC=y +# CONFIG_MTK_MMC_CD_POLL is not set CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_NBPFAXI_DMA=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEON=y CONFIG_NET_FLOW_LIMIT=y @@ -352,6 +412,7 @@ CONFIG_NO_HZ=y CONFIG_NO_HZ_COMMON=y CONFIG_NO_HZ_IDLE=y CONFIG_NR_CPUS=4 +CONFIG_NVMEM=y CONFIG_OABI_COMPAT=y CONFIG_OF=y CONFIG_OF_ADDRESS=y @@ -361,6 +422,8 @@ CONFIG_OF_EARLY_FLATTREE=y CONFIG_OF_FLATTREE=y CONFIG_OF_GPIO=y CONFIG_OF_IRQ=y +CONFIG_OF_KOBJ=y +CONFIG_OF_MDIO=y CONFIG_OF_NET=y CONFIG_OF_OVERLAY=y CONFIG_OF_RESERVED_MEM=y @@ -368,16 +431,22 @@ CONFIG_OF_RESOLVE=y CONFIG_OLD_SIGACTION=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_PADATA=y -CONFIG_PAGE_OFFSET=0x80000000 +CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_PCI=y CONFIG_PCIE_BRCMSTB=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_DOMAINS_GENERIC=y CONFIG_PCI_MSI=y -# CONFIG_PCI_DOMAINS_GENERIC is not set -# CONFIG_PCI_SYSCALL is not set +CONFIG_PCI_MSI_IRQ_DOMAIN=y +# CONFIG_PCI_V3_SEMI is not set CONFIG_PERF_USE_VMALLOC=y -CONFIG_PGTABLE_LEVELS=2 +CONFIG_PGTABLE_LEVELS=3 +CONFIG_PHYLIB=y +CONFIG_PHYS_ADDR_T_64BIT=y CONFIG_PINCTRL=y CONFIG_PINCTRL_BCM2835=y +CONFIG_PL330_DMA=y +CONFIG_PLUGIN_HOSTCC="g++" CONFIG_PM=y CONFIG_PM_CLK=y # CONFIG_PM_DEBUG is not set @@ -387,27 +456,30 @@ CONFIG_PM_GENERIC_DOMAINS_SLEEP=y CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y CONFIG_POWER_SUPPLY=y -CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 CONFIG_PRINTK_TIME=y CONFIG_PROC_PAGE_MONITOR=y CONFIG_PWM=y CONFIG_PWM_BCM2835=y CONFIG_PWM_SYSFS=y +CONFIG_QCOM_HIDMA=y +CONFIG_QCOM_HIDMA_MGMT=y +CONFIG_RAID6_PQ=y CONFIG_RASPBERRYPI_FIRMWARE=y CONFIG_RASPBERRYPI_POWER=y CONFIG_RATIONAL=y CONFIG_RAW_DRIVER=y CONFIG_RCU_NEED_SEGCBLIST=y CONFIG_RCU_STALL_COMMON=y +CONFIG_REFCOUNT_FULL=y CONFIG_REGMAP=y CONFIG_REGMAP_MMIO=y CONFIG_REGULATOR=y CONFIG_REGULATOR_FIXED_VOLTAGE=y CONFIG_RFS_ACCEL=y CONFIG_RPS=y +CONFIG_RTS5208=y CONFIG_RWSEM_SPIN_ON_OWNER=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y -# CONFIG_SCHED_INFO is not set CONFIG_SCSI=y # CONFIG_SCSI_LOWLEVEL is not set # CONFIG_SCSI_PROC_FS is not set @@ -424,32 +496,26 @@ CONFIG_SERIAL_OF_PLATFORM=y CONFIG_SG_POOL=y CONFIG_SMP=y CONFIG_SMP_ON_UP=y -CONFIG_SND_BCM2708_SOC_GOOGLEVOICEHAT_SOUNDCARD=n -CONFIG_SND_BCM2708_SOC_RPI_CIRRUS=n -CONFIG_SND_AUDIOINJECTOR_OCTO_SOUNDCARD=n -CONFIG_SND_BCM2708_SOC_ALLO_PIANO_DAC_PLUS=n -CONFIG_SND_BCM2708_SOC_ALLO_BOSS_DAC=n -CONFIG_SND_BCM2708_SOC_ALLO_DIGIONE=n -CONFIG_SND_BCM2708_SOC_ALLO_KATANA_DAC=n -# CONFIG_SND_SOC_ICS43432 is not set CONFIG_SPARSE_IRQ=y CONFIG_SRCU=y +CONFIG_STREAM_PARSER=y # CONFIG_STRIP_ASM_SYMS is not set CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y -CONFIG_SWIOTLB=y +CONFIG_SWPHY=y CONFIG_SWP_EMULATE=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y -# CONFIG_TEE is not set +CONFIG_SYS_SUPPORTS_HUGETLBFS=y # CONFIG_TEXTSEARCH is not set CONFIG_THERMAL=y CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 CONFIG_THERMAL_GOV_STEP_WISE=y CONFIG_THERMAL_OF=y -CONFIG_THIN_ARCHIVES=y # CONFIG_THUMB2_KERNEL is not set CONFIG_TICK_CPU_ACCOUNTING=y +CONFIG_TIFM_7XX1=y +CONFIG_TIFM_CORE=y CONFIG_TIMER_OF=y CONFIG_TIMER_PROBE=y CONFIG_TMPFS_POSIX_ACL=y @@ -459,7 +525,6 @@ CONFIG_UEVENT_HELPER_PATH="" # CONFIG_UID16 is not set CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" CONFIG_USB=y -CONFIG_USB_ALI_M5632=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y CONFIG_USB_COMMON=y CONFIG_USB_DWCOTG=y @@ -471,46 +536,19 @@ CONFIG_USB_STORAGE=y CONFIG_USB_SUPPORT=y CONFIG_USB_UAS=y CONFIG_USB_USBNET=y +CONFIG_USB_XHCI_HCD=y +# CONFIG_USB_XHCI_PLATFORM is not set CONFIG_USE_OF=y -CONFIG_VECTORS_BASE=0xffff0000 CONFIG_VFP=y CONFIG_VFPv3=y -CONFIG_VMSPLIT_2G=y -# CONFIG_VMSPLIT_3G is not set CONFIG_VT=y CONFIG_VT_CONSOLE=y CONFIG_VT_CONSOLE_SLEEP=y CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_WATCHDOG_CORE=y +CONFIG_XOR_BLOCKS=y CONFIG_XPS=y CONFIG_XZ_DEC_ARM=y CONFIG_XZ_DEC_BCJ=y CONFIG_ZBOOT_ROM_BSS=0x0 CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_MFD_RPISENSE_CORE=n -CONFIG_DRM_PANEL_LVDS=n -CONFIG_DRM_PANEL_INNOLUX_P079ZCA=n -CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=n -CONFIG_DRM_PANEL_SITRONIX_ST7789V=n -CONFIG_DRM_VC4_HDMI_CEC=n -CONFIG_SND_BCM2708_SOC_GOOGLEVOICEHAT_SOUNDCARD=n -CONFIG_SND_BCM2708_SOC_RPI_CIRRUS=n -CONFIG_SND_AUDIOINJECTOR_OCTO_SOUNDCARD=n -CONFIG_SND_BCM2708_SOC_ALLO_PIANO_DAC_PLUS=n -CONFIG_SND_BCM2708_SOC_ALLO_BOSS_DAC=n -CONFIG_SND_BCM2708_SOC_ALLO_DIGIONE=n -CONFIG_SND_BCM2708_SOC_ALLO_KATANA_DAC=n -CONFIG_SND_SOC_ICS43432=n -# CONFIG_TOUCHSCREEN_RPI_FT5406 is not set -# CONFIG_GPIO_RASPBERRYPI_EXP is not set -# CONFIG_SENSORS_RASPBERRYPI_HWMON is not set -# CONFIG_DRM_V3D is not set -# CONFIG_DRM_TVE200 is not set -# CONFIG_SND_BCM2708_SOC_HIFIBERRY_DACPLUSADC is not set -# CONFIG_SND_BCM2708_SOC_I_SABRE_Q2M is not set -# CONFIG_SND_AUDIOSENSE_PI is not set -# CONFIG_SND_RPI_SIMPLE_SOUNDCARD is not set -# CONFIG_SND_RPI_WM8804_SOUNDCARD is not set -# CONFIG_SND_SOC_AD193X_SPI is not set -CONFIG_BCM2835_VCHIQ_MMAL=y -# CONFIG_VIDEO_CODEC_BCM2835 is not set diff --git a/root/target/linux/brcm2708/bcm2711/config-4.19 b/root/target/linux/brcm2708/bcm2711/config-4.19 index b35a19b5..3cfdecf1 100644 --- a/root/target/linux/brcm2708/bcm2711/config-4.19 +++ b/root/target/linux/brcm2708/bcm2711/config-4.19 @@ -160,7 +160,7 @@ CONFIG_CMA_ALIGNMENT=8 CONFIG_CMA_AREAS=7 # CONFIG_CMA_DEBUG is not set # CONFIG_CMA_DEBUGFS is not set -CONFIG_CMA_SIZE_MBYTES=16 +CONFIG_CMA_SIZE_MBYTES=5 # CONFIG_CMA_SIZE_SEL_MAX is not set CONFIG_CMA_SIZE_SEL_MBYTES=y # CONFIG_CMA_SIZE_SEL_MIN is not set @@ -420,8 +420,15 @@ CONFIG_MMC_BCM2835_SDHOST=y CONFIG_MMC_BLOCK=y CONFIG_MMC_BLOCK_MINORS=32 CONFIG_MMC_SDHCI=y -# CONFIG_MMC_SDHCI_PCI is not set +CONFIG_MMC_SDHCI_IO_ACCESSORS=y +CONFIG_MMC_SDHCI_PCI=y +CONFIG_MMC_SDHCI_ACPI=y CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_OF_ARASAN=y +CONFIG_MMC_SDHCI_OF_AT91=y +CONFIG_MMC_SDHCI_OF_DWCMSHC=y +CONFIG_MMC_SDHCI_CADENCE=y +CONFIG_MMC_SDHCI_IPROC=y # CONFIG_MMC_TIFM_SD is not set CONFIG_MODULES_USE_ELF_RELA=y CONFIG_MTD=y @@ -442,7 +449,6 @@ CONFIG_NO_BOOTMEM=y CONFIG_NO_HZ=y CONFIG_NO_HZ_COMMON=y CONFIG_NO_HZ_IDLE=y -CONFIG_NO_IOPORT_MAP=y CONFIG_NR_CPUS=4 # CONFIG_NUMA is not set CONFIG_NVMEM=y diff --git a/root/target/linux/brcm2708/image/Makefile b/root/target/linux/brcm2708/image/Makefile index c13fea4c..16326343 100644 --- a/root/target/linux/brcm2708/image/Makefile +++ b/root/target/linux/brcm2708/image/Makefile @@ -1,6 +1,7 @@ # # Copyright (C) 2012-2015 OpenWrt.org # Copyright (C) 2016-2017 LEDE project +# Copyright (C) 2019 Ycarus (Yannick Chabanois) for OpenMPTCProuter project # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -41,6 +42,34 @@ define Build/boot-img mcopy -i $@.boot $(KDIR)/fixup4x.dat :: mcopy -i $@.boot cmdline.txt :: mcopy -i $@.boot config.txt :: + #mcopy -i $@.boot armstub8-32-gic.bin :: + mcopy -i $@.boot $(IMAGE_KERNEL) ::$(KERNEL_IMG) + $(foreach dts,$(shell echo $(DEVICE_DTS)),mcopy -i $@.boot $(DTS_DIR)/$(dts).dtb ::;) + mmd -i $@.boot ::/overlays + mcopy -i $@.boot $(DTS_DIR)/overlays/*.dtbo ::/overlays/ + mcopy -i $@.boot $(DTS_DIR)/overlays/README ::/overlays/ +endef + +define Build/boot64-img + rm -f $@.boot + mkfs.fat -C $@.boot $(FAT32_BLOCKS) + mcopy -i $@.boot $(KDIR)/COPYING.linux :: + mcopy -i $@.boot $(KDIR)/bootcode.bin :: + mcopy -i $@.boot $(KDIR)/LICENCE.broadcom :: + mcopy -i $@.boot $(KDIR)/start.elf :: + mcopy -i $@.boot $(KDIR)/start_cd.elf :: + mcopy -i $@.boot $(KDIR)/start_x.elf :: + mcopy -i $@.boot $(KDIR)/fixup.dat :: + mcopy -i $@.boot $(KDIR)/fixup_cd.dat :: + mcopy -i $@.boot $(KDIR)/fixup_x.dat :: + mcopy -i $@.boot $(KDIR)/start4.elf :: + mcopy -i $@.boot $(KDIR)/start4cd.elf :: + mcopy -i $@.boot $(KDIR)/start4x.elf :: + mcopy -i $@.boot $(KDIR)/fixup4.dat :: + mcopy -i $@.boot $(KDIR)/fixup4cd.dat :: + mcopy -i $@.boot $(KDIR)/fixup4x.dat :: + mcopy -i $@.boot cmdline.txt :: + mcopy -i $@.boot config64.txt ::config.txt mcopy -i $@.boot $(IMAGE_KERNEL) ::$(KERNEL_IMG) $(foreach dts,$(shell echo $(DEVICE_DTS)),mcopy -i $@.boot $(DTS_DIR)/$(dts).dtb ::;) mmd -i $@.boot ::/overlays @@ -58,8 +87,6 @@ define Device/Default KERNEL := kernel-bin | kernel-img KERNEL_IMG := kernel.img IMAGES := factory.img.gz sysupgrade.img.gz - IMAGE/sysupgrade.img.gz := boot-img | sdcard-img | gzip | append-metadata - IMAGE/factory.img.gz := boot-img | sdcard-img | gzip endef define Device/rpi @@ -71,6 +98,8 @@ define Device/rpi raspberrypi,compute-module raspberrypi,compute-module-1 \ raspberrypi,model-zero raspberrypi,model-zero-w DEVICE_PACKAGES := brcmfmac-firmware-43430-sdio brcmfmac-board-rpi2 kmod-brcmfmac wpad-basic + IMAGE/sysupgrade.img.gz := boot-img | sdcard-img | gzip | append-metadata + IMAGE/factory.img.gz := boot-img | sdcard-img | gzip endef ifeq ($(SUBTARGET),bcm2708) TARGET_DEVICES += rpi @@ -86,6 +115,8 @@ define Device/rpi-2 raspberrypi,3-model-b raspberrypi,3-model-b-plus \ raspberrypi,3-compute-module raspberrypi,compute-module-3 DEVICE_PACKAGES := brcmfmac-firmware-43430-sdio brcmfmac-firmware-43455-sdio brcmfmac-board-rpi2 brcmfmac-board-rpi3 kmod-brcmfmac wpad-basic + IMAGE/sysupgrade.img.gz := boot-img | sdcard-img | gzip | append-metadata + IMAGE/factory.img.gz := boot-img | sdcard-img | gzip endef ifeq ($(SUBTARGET),bcm2709) TARGET_DEVICES += rpi-2 @@ -101,6 +132,8 @@ define Device/rpi-3 raspberrypi,3-model-b raspberrypi,3-model-b-plus \ raspberrypi,3-compute-module raspberrypi,compute-module-3 DEVICE_PACKAGES := brcmfmac-firmware-43430-sdio brcmfmac-board-rpi2 brcmfmac-firmware-43455-sdio brcmfmac-board-rpi3 kmod-brcmfmac wpad-basic + IMAGE/sysupgrade.img.gz := boot64-img | sdcard-img | gzip | append-metadata + IMAGE/factory.img.gz := boot64-img | sdcard-img | gzip endef ifeq ($(SUBTARGET),bcm2710) TARGET_DEVICES += rpi-3 @@ -116,6 +149,8 @@ define Device/rpi-4 raspberrypi,3-model-b raspberrypi,3-model-b-plus \ raspberrypi,3-compute-module raspberrypi,compute-module-3 DEVICE_PACKAGES := brcmfmac-firmware-43430-sdio brcmfmac-board-rpi2 brcmfmac-firmware-43455-sdio brcmfmac-board-rpi3 kmod-brcmfmac wpad-basic + IMAGE/sysupgrade.img.gz := boot64-img | sdcard-img | gzip | append-metadata + IMAGE/factory.img.gz := boot64-img | sdcard-img | gzip endef ifeq ($(SUBTARGET),bcm2711) diff --git a/root/target/linux/brcm2708/image/armstub8-gic.bin b/root/target/linux/brcm2708/image/armstub8-gic.bin new file mode 100644 index 0000000000000000000000000000000000000000..11b97186bff7de1b7071199eecc9ae90aeb2c071 GIT binary patch literal 512 zcmdT=u}T9$5Pf&M#evN#772#j;t!Zk0~UJ$f8YohY;u+O30h?fv5(j%MX*S9MG&u2 zLH&S*xq2&WO%)qAqm{jt4~920Zx|jA?+-2ost9EsC8$ijbbp6KE7%5zq0@&N_>0, and at least one of the following: +## force_turbo=1 +## current_limit_override=0x5A000020 +## temp_limit>85 +## +## Overclock settings will be disabled at runtime if the SoC reaches temp_limit +## +################################################################################ + +################################################################################ +## Standard Definition Video Settings +################################################################################ + +## sdtv_mode +## defines the TV standard for composite output +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Normal NTSC (Default) +## 1 Japanese version of NTSC - no pedestal +## 2 Normal PAL +## 3 Brazilian version of PAL - 525/60 rather than 625/50, different +## subcarrier +## +#sdtv_mode=0 + +## sdtv_aspect +## defines the aspect ratio for composite output +## +## Value Description +## ------------------------------------------------------------------------- +## 1 4:3 (Default) +## 2 14:9 +## 3 16:9 +## +#sdtv_aspect=1 + +## sdtv_disable_colourburst +## Disables colour burst on composite output. The picture will be +## monochrome, but possibly sharper +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Colour burst is enabled (Default) +## 1 Colour burst is disabled +## +#sdtv_disable_colourburst=1 + +################################################################################ +## High Definition Video Settings +################################################################################ + +## hdmi_safe +## Use "safe mode" settings to try to boot with maximum hdmi compatibility. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Disabled (Default) +## 1 Enabled (this does: hdmi_force_hotplug=1, config_hdmi_boost=4, +## hdmi_group=1, hdmi_mode=1, +## disable_overscan=0) +## +#hdmi_safe=1 + +## hdmi_force_hotplug +## Pretends HDMI hotplug signal is asserted so it appears a HDMI display +## is attached +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Disabled (Default) +## 1 Use HDMI mode even if no HDMI monitor is detected +## +#hdmi_force_hotplug=1 + +## hdmi_ignore_hotplug +## Pretends HDMI hotplug signal is not asserted so it appears a HDMI +## display is not attached +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Disabled (Default) +## 1 Use composite mode even if HDMI monitor is detected +## +#hdmi_ignore_hotplug=1 + +## hdmi_drive +## chooses between HDMI and DVI modes +## +## Value Description +## ------------------------------------------------------------------------- +## 1 Normal DVI mode (No sound) +## 2 Normal HDMI mode (Sound will be sent if supported and enabled) +## +#hdmi_drive=2 + +## hdmi_ignore_edid +## Enables the ignoring of EDID/display data +## +#hdmi_ignore_edid=0xa5000080 + +## hdmi_edid_file +## Read the EDID data from the edid.dat file instead of from the attached +## device +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Read EDID data from attached device (Default) +## 1 Read EDID data from edid.txt file +## +#hdmi_edid_file=1 + +## hdmi_force_edid_audio +## Pretends all audio formats are supported by display, allowing +## passthrough of DTS/AC3 even when not reported as supported. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Use EDID provided values (Default) +## 1 Pretend all audio formats are supported +## +#hdmi_force_edid_audio=1 + +## avoid_edid_fuzzy_match +## Avoid fuzzy matching of modes described in edid. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Use fuzzy matching (Default) +## 1 Avoid fuzzy matching +## +#avoid_edid_fuzzy_match=1 + +## hdmi_group +## Defines the HDMI type +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Use the preferred group reported by the edid (Default) +## 1 CEA +## 2 DMT +## +#hdmi_group=1 + +## hdmi_mode +## defines screen resolution in CEA or DMT format +## +## H means 16:9 variant (of a normally 4:3 mode). +## 2x means pixel doubled (i.e. higher clock rate, with each pixel repeated +## twice) +## 4x means pixel quadrupled (i.e. higher clock rate, with each pixel +## repeated four times) +## reduced blanking means fewer bytes are used for blanking within the data +## stream (i.e. lower clock rate, with fewer wasted bytes) +## +## Value hdmi_group=CEA hdmi_group=DMT +## ------------------------------------------------------------------------- +## 1 VGA 640x350 85Hz +## 2 480p 60Hz 640x400 85Hz +## 3 480p 60Hz H 720x400 85Hz +## 4 720p 60Hz 640x480 60Hz +## 5 1080i 60Hz 640x480 72Hz +## 6 480i 60Hz 640x480 75Hz +## 7 480i 60Hz H 640x480 85Hz +## 8 240p 60Hz 800x600 56Hz +## 9 240p 60Hz H 800x600 60Hz +## 10 480i 60Hz 4x 800x600 72Hz +## 11 480i 60Hz 4x H 800x600 75Hz +## 12 240p 60Hz 4x 800x600 85Hz +## 13 240p 60Hz 4x H 800x600 120Hz +## 14 480p 60Hz 2x 848x480 60Hz +## 15 480p 60Hz 2x H 1024x768 43Hz DO NOT USE +## 16 1080p 60Hz 1024x768 60Hz +## 17 576p 50Hz 1024x768 70Hz +## 18 576p 50Hz H 1024x768 75Hz +## 19 720p 50Hz 1024x768 85Hz +## 20 1080i 50Hz 1024x768 120Hz +## 21 576i 50Hz 1152x864 75Hz +## 22 576i 50Hz H 1280x768 reduced blanking +## 23 288p 50Hz 1280x768 60Hz +## 24 288p 50Hz H 1280x768 75Hz +## 25 576i 50Hz 4x 1280x768 85Hz +## 26 576i 50Hz 4x H 1280x768 120Hz reduced blanking +## 27 288p 50Hz 4x 1280x800 reduced blanking +## 28 288p 50Hz 4x H 1280x800 60Hz +## 29 576p 50Hz 2x 1280x800 75Hz +## 30 576p 50Hz 2x H 1280x800 85Hz +## 31 1080p 50Hz 1280x800 120Hz reduced blanking +## 32 1080p 24Hz 1280x960 60Hz +## 33 1080p 25Hz 1280x960 85Hz +## 34 1080p 30Hz 1280x960 120Hz reduced blanking +## 35 480p 60Hz 4x 1280x1024 60Hz +## 36 480p 60Hz 4x H 1280x1024 75Hz +## 37 576p 50Hz 4x 1280x1024 85Hz +## 38 576p 50Hz 4x H 1280x1024 120Hz reduced blanking +## 39 1080i 50Hz reduced blanking 1360x768 60Hz +## 40 1080i 100Hz 1360x768 120Hz reduced blanking +## 41 720p 100Hz 1400x1050 reduced blanking +## 42 576p 100Hz 1400x1050 60Hz +## 43 576p 100Hz H 1400x1050 75Hz +## 44 576i 100Hz 1400x1050 85Hz +## 45 576i 100Hz H 1400x1050 120Hz reduced blanking +## 46 1080i 120Hz 1440x900 reduced blanking +## 47 720p 120Hz 1440x900 60Hz +## 48 480p 120Hz 1440x900 75Hz +## 49 480p 120Hz H 1440x900 85Hz +## 50 480i 120Hz 1440x900 120Hz reduced blanking +## 51 480i 120Hz H 1600x1200 60Hz +## 52 576p 200Hz 1600x1200 65Hz +## 53 576p 200Hz H 1600x1200 70Hz +## 54 576i 200Hz 1600x1200 75Hz +## 55 576i 200Hz H 1600x1200 85Hz +## 56 480p 240Hz 1600x1200 120Hz reduced blanking +## 57 480p 240Hz H 1680x1050 reduced blanking +## 58 480i 240Hz 1680x1050 60Hz +## 59 480i 240Hz H 1680x1050 75Hz +## 60 1680x1050 85Hz +## 61 1680x1050 120Hz reduced blanking +## 62 1792x1344 60Hz +## 63 1792x1344 75Hz +## 64 1792x1344 120Hz reduced blanking +## 65 1856x1392 60Hz +## 66 1856x1392 75Hz +## 67 1856x1392 120Hz reduced blanking +## 68 1920x1200 reduced blanking +## 69 1920x1200 60Hz +## 70 1920x1200 75Hz +## 71 1920x1200 85Hz +## 72 1920x1200 120Hz reduced blanking +## 73 1920x1440 60Hz +## 74 1920x1440 75Hz +## 75 1920x1440 120Hz reduced blanking +## 76 2560x1600 reduced blanking +## 77 2560x1600 60Hz +## 78 2560x1600 75Hz +## 79 2560x1600 85Hz +## 80 2560x1600 120Hz reduced blanking +## 81 1366x768 60Hz +## 82 1080p 60Hz +## 83 1600x900 reduced blanking +## 84 2048x1152 reduced blanking +## 85 720p 60Hz +## 86 1366x768 reduced blanking +## +#hdmi_mode=1 + +## config_hdmi_boost +## configure the signal strength of the HDMI interface. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 (Default) +## 1 +## 2 +## 3 +## 4 Try if you have interference issues with HDMI +## 5 +## 6 +## 7 Maximum +## +#config_hdmi_boost=0 + +## hdmi_ignore_cec_init +## Doesn't sent initial active source message. Avoids bringing +## (CEC enabled) TV out of standby and channel switch when rebooting. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Normal behaviour (Default) +## 1 Doesn't sent initial active source message +## +#hdmi_ignore_cec_init=1 + +## hdmi_ignore_cec +## Pretends CEC is not supported at all by TV. +## No CEC functions will be supported. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Normal behaviour (Default) +## 1 Pretend CEC is not supported by TV +## +#hdmi_ignore_cec=1 + +################################################################################ +## Overscan Video Settings +################################################################################ + +## overscan_left +## Number of pixels to skip on left +## +#overscan_left=0 + +## overscan_right +## Number of pixels to skip on right +## +#overscan_right=0 + +## overscan_top +## Number of pixels to skip on top +## +#overscan_top=0 + +## overscan_bottom +## Number of pixels to skip on bottom +## +#overscan_bottom=0 + +## disable_overscan +## Set to 1 to disable overscan +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Overscan Enabled (Default) +## 1 Overscan Disabled +## +#disable_overscan=1 + +################################################################################ +## Framebuffer Video Settings +################################################################################ + +## framebuffer_width +## Console framebuffer width in pixels. Default is display width minus +## overscan. +## +#framebuffer_width=0 + +## framebuffer_height +## Console framebuffer height in pixels. Default is display height minus +## overscan. +## +#framebuffer_height=0 + +## framebuffer_depth +## Console framebuffer depth in bits per pixel. +## +## Value Description +## ------------------------------------------------------------------------- +## 8 Valid, but default RGB palette makes an unreadable screen +## 16 (Default) +## 24 Looks better but has corruption issues as of 2012/06/15 +## 32 Has no corruption issues but needs framebuffer_ignore_alpha=1 +## and shows the wrong colors as of 2012/06/15 +## +#framebuffer_depth=16 + +## framebuffer_ignore_alpha +## Set to 1 to disable alpha channel. Helps with 32bit. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Enable Alpha Channel (Default) +## 1 Disable Alpha Channel +## +#framebuffer_ignore_alpha=0 + +################################################################################ +## General Video Settings +################################################################################ + +## display_rotate +## Rotate the display clockwise or flip the display. +## The 90 and 270 degrees rotation options require additional memory on GPU, +## so won't work with the 16M GPU split. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 0 degrees (Default) +## 1 90 degrees +## 2 180 degrees +## 3 270 degrees +## 0x10000 Horizontal flip +## 0x20000 Vertical flip +## +#display_rotate=0 + +################################################################################ +## Licensed Codecs +## +## Hardware decoding of additional codecs can be enabled by purchasing a +## license that is locked to the CPU serial number of your Raspberry Pi. +## +## Up to 8 licenses per CODEC can be specified as a comma seperated list. +## +################################################################################ + +## decode_MPG2 +## License key to allow hardware MPEG-2 decoding. +## +#decode_MPG2=0x12345678 + +## decode_WVC1 +## License key to allow hardware VC-1 decoding. +## +#decode_WVC1=0x12345678 + +################################################################################ +## Test Settings +################################################################################ + +## test_mode +## Enable test sound/image during boot for manufacturing test. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Disable Test Mod (Default) +## 1 Enable Test Mode +## +#test_mode=0 + +################################################################################ +## Memory Settings +################################################################################ + +## disable_l2cache +## Disable arm access to GPU's L2 cache. Needs corresponding L2 disabled +## kernel. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Enable L2 Cache (Default) +## 1 Disable L2 cache +## +#disable_l2cache=0 + +## gpu_mem +## GPU memory allocation in MB for all board revisions. +## +## Default 64 +## +#gpu_mem=128 + +## gpu_mem_256 +## GPU memory allocation in MB for 256MB board revision. +## This option overrides gpu_mem. +## +#gpu_mem_256=128 + +## gpu_mem_512 +## GPU memory allocation in MB for 512MB board revision. +## This option overrides gpu_mem. +## +#gpu_mem_512=128 + +## gpu_mem_1024 +## GPU memory allocation in MB for 1024MB board revision. +## This option overrides gpu_mem. +## +#gpu_mem_1024=128 + +################################################################################ +## Boot Option Settings +################################################################################ + +## disable_commandline_tags +## Stop start.elf from filling in ATAGS (memory from 0x100) before +## launching kernel +## +#disable_commandline_tags=2 + +## enable_uart +## Enables or disables uart pin multiplexing +## Raspberry Pi 1/2: if unset, uart is enabled by default +## Raspberry Pi 3: if unset uart is disabled by default +## +enable_uart=1 + +## cmdline (string) +## Command line parameters. Can be used instead of cmdline.txt file +## +#cmdline="" + +## kernel (string) +## Alternative name to use when loading kernel. +## +#kernel="" + +## kernel_address +## Address to load kernel.img file at +## +#kernel_address=0x8000 + +## ramfsfile (string) +## ramfs file to load +## +#ramfsfile="" + +## ramfsaddr +## Address to load ramfs file at +## +#ramfsaddr=0x00000000 + +## initramfs (string address) +## ramfs file and address to load it at (it's like ramfsfile+ramfsaddr in +## one option). +## +## NOTE: this option uses different syntax than all other options - you +## should not use "=" character here. +## +#initramfs initramf.gz 0x00800000 + +## device_tree_address +## Address to load device_tree at +## +#device_tree_address=0x100 + +## init_uart_baud +## Initial uart baud rate. +## +## Default 115200 +## +#init_uart_baud=115200 + +## init_uart_clock +## Initial uart clock. +## +## Default 3000000 (3MHz) +## +#init_uart_clock=3000000 + +## init_emmc_clock +## Initial emmc clock, increasing this can speedup your SD-card. +## +## Default 100000000 (100mhz) +## +#init_emmc_clock=100000000 + +## boot_delay +## Wait for a given number of seconds in start.elf before loading +## kernel.img. +## +## delay = (1000 * boot_delay) + boot_delay_ms +## +## Default 1 +## +#boot_delay=0 + +## boot_delay_ms +## Wait for a given number of milliseconds in start.elf before loading +## kernel.img. +## +## delay = (1000 * boot_delay) + boot_delay_ms +## +## Default 0 +## +#boot_delay_ms=0 + +## avoid_safe_mode +## Adding a jumper between pins 5 & 6 of P1 enables a recovery Safe Mode. +## If pins 5 & 6 are used for connecting to external devices (e.g. GPIO), +## then this setting can be used to ensure Safe Mode is not triggered. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Respect Safe Mode input (Default) +## 1 Ignore Safe Mode input +## +#avoid_safe_mode=1 + +################################################################################ +## Overclocking Settings +## +## ARM, SDRAM and GPU each have their own PLLs and can have unrelated +## frequencies. +## +## The GPU core, h264, v3d and isp share a PLL, so need to have related +## frequencies. +## pll_freq = floor(2400 / (2 * core_freq)) * (2 * core_freq) +## gpu_freq = pll_freq / [even number] +## +## The effective gpu_freq is automatically rounded to nearest even integer, so +## asking for core_freq = 500 and gpu_freq = 300 will result in divisor of +## 2000/300 = 6.666 => 6 and so 333.33MHz. +## +## +## Standard Profiles: +## arm_freq core_freq sdram_freq over_voltage +## ------------------------------------------------------------------------- +## None 700 250 400 0 +## Modest 800 300 400 0 +## Medium 900 333 450 2 +## High 950 450 450 6 +## Turbo 1000 500 500 6 +## +################################################################################ + +## force_turbo +## Control the kernel "ondemand" governor. It has no effect if no overclock +## settings are specified. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Enable dynamic clocks and voltage for the ARM core, GPU core and +## SDRAM (Default). +## Overclocking of h264_freq, v3d_freq and isp_freq is ignored. +## 1 Disable dynamic clocks and voltage for the ARM core, GPU core +## and SDRAM. +## Overclocking of h264_freq, v3d_freq and isp_freq is allowed. +## +#force_turbo=0 + +## initial_turbo +## Enables turbo mode from boot for the given value in seconds (up to 60) +## or until cpufreq sets a frequency. Can help with sdcard corruption if +## overclocked. +## +## Default 0 +## +#initial_turbo=0 + +## temp_limit +## Overheat protection. Sets clocks and voltages to default when the SoC +## reaches this Celsius value. +## Setting this higher than default voids warranty. +## +## Default 85 +## +#temp_limit=85 + +## arm_freq +## Frequency of ARM in MHz. +## +## Default 700. +## +#arm_freq=700 + +## arm_freq_min +## Minimum frequency of ARM in MHz (used for dynamic clocking). +## +## Default 700. +## +#arm_freq_min=700 + +## gpu_freq +## Sets core_freq, h264_freq, isp_freq, v3d_freq together. +## +## Default 250. +## +#gpu_freq=250 + +## core_freq +## Frequency of GPU processor core in MHz. It has an impact on ARM +## performance since it drives L2 cache. +## +## Default 250. +## +#core_freq=250 + +## core_freq_min +## Minimum frequency of GPU processor core in MHz (used for dynamic +## clocking). It has an impact on ARM performance since it drives L2 cache. +## +## Default 250. +## +#core_freq_min=250 + +## h264_freq +## Frequency of hardware video block in MHz. +## +## Default 250. +## +#h264_freq=250 + +## isp_freq +## Frequency of image sensor pipeline block in MHz. +## +## Default 250. +## +#isp_freq=250 + +## v3d_freq +## Frequency of 3D block in MHz. +## +## Default 250. +## +#v3d_freq=250 + +## sdram_freq +## Frequency of SDRAM in MHz. +## +## Default 400. +## +#sdram_freq=400 + +## sdram_freq_min +## Minimum frequency of SDRAM in MHz (used for dynamic clocking). +## +## Default 400. +## +#sdram_freq_min=400 + +## avoid_pwm_pll +## Unlink core_freq from the rest of the gpu. Analog audio should still +## work, but from a fractional divider, so lower quality. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Linked core_freq (Default) +## 1 Unlinked core_freq +## +#avoid_pwm_pll=1 + +################################################################################ +## Voltage Settings +################################################################################ + +## current_limit_override +## Disables SMPS current limit protection. Can help if you are currently +## hitting a reboot failure when overclocking too high. +## +#current_limit_override=0x5A000020 + +## over_voltage +## ARM/GPU core voltage adjust. +## +## Value Description +## ------------------------------------------------------------------------- +## -16 0.8 V +## -15 0.825 V +## -14 0.85 V +## -13 0.875 V +## -12 0.9 V +## -11 0.925 V +## -10 0.95 V +## -9 0.975 V +## -8 1.0 V +## -7 1.025 V +## -6 1.05 V +## -5 1.075 V +## -4 1.1 V +## -3 1.125 V +## -2 1.15 V +## -1 1.175 V +## 0 1.2 V (Default) +## 1 1.225 V +## 2 1.25 V +## 3 1.275 V +## 4 1.3 V +## 5 1.325 V +## 6 1.35 V +## 7 1.375 V (requires force_turbo=1) +## 8 1.4 V (requires force_turbo=1) +## +#over_voltage=0 + +## over_voltage_min +## Minimum ARM/GPU core voltage adjust (used for dynamic clocking). +## +## Value Description +## ------------------------------------------------------------------------- +## -16 0.8 V +## -15 0.825 V +## -14 0.85 V +## -13 0.875 V +## -12 0.9 V +## -11 0.925 V +## -10 0.95 V +## -9 0.975 V +## -8 1.0 V +## -7 1.025 V +## -6 1.05 V +## -5 1.075 V +## -4 1.1 V +## -3 1.125 V +## -2 1.15 V +## -1 1.175 V +## 0 1.2 V (Default) +## 1 1.225 V +## 2 1.25 V +## 3 1.275 V +## 4 1.3 V +## 5 1.325 V +## 6 1.35 V +## 7 1.375 V (requires force_turbo=1) +## 8 1.4 V (requires force_turbo=1) +## +#over_voltage_min=0 + +## over_voltage_sdram +## Sets over_voltage_sdram_c, over_voltage_sdram_i, over_voltage_sdram_p +## together +## +## Value Description +## ------------------------------------------------------------------------- +## -16 0.8 V +## -15 0.825 V +## -14 0.85 V +## -13 0.875 V +## -12 0.9 V +## -11 0.925 V +## -10 0.95 V +## -9 0.975 V +## -8 1.0 V +## -7 1.025 V +## -6 1.05 V +## -5 1.075 V +## -4 1.1 V +## -3 1.125 V +## -2 1.15 V +## -1 1.175 V +## 0 1.2 V (Default) +## 1 1.225 V +## 2 1.25 V +## 3 1.275 V +## 4 1.3 V +## 5 1.325 V +## 6 1.35 V +## 7 1.375 V +## 8 1.4 V +## +#over_voltage_sdram=0 + +## over_voltage_sdram_c +## SDRAM controller voltage adjust. +## +## Value Description +## ------------------------------------------------------------------------- +## -16 0.8 V +## -15 0.825 V +## -14 0.85 V +## -13 0.875 V +## -12 0.9 V +## -11 0.925 V +## -10 0.95 V +## -9 0.975 V +## -8 1.0 V +## -7 1.025 V +## -6 1.05 V +## -5 1.075 V +## -4 1.1 V +## -3 1.125 V +## -2 1.15 V +## -1 1.175 V +## 0 1.2 V (Default) +## 1 1.225 V +## 2 1.25 V +## 3 1.275 V +## 4 1.3 V +## 5 1.325 V +## 6 1.35 V +## 7 1.375 V +## 8 1.4 V +## +#over_voltage_sdram_c=0 + +## over_voltage_sdram_i +## SDRAM I/O voltage adjust. +## +## Value Description +## ------------------------------------------------------------------------- +## -16 0.8 V +## -15 0.825 V +## -14 0.85 V +## -13 0.875 V +## -12 0.9 V +## -11 0.925 V +## -10 0.95 V +## -9 0.975 V +## -8 1.0 V +## -7 1.025 V +## -6 1.05 V +## -5 1.075 V +## -4 1.1 V +## -3 1.125 V +## -2 1.15 V +## -1 1.175 V +## 0 1.2 V (Default) +## 1 1.225 V +## 2 1.25 V +## 3 1.275 V +## 4 1.3 V +## 5 1.325 V +## 6 1.35 V +## 7 1.375 V +## 8 1.4 V +## +#over_voltage_sdram_i=0 + +## over_voltage_sdram_p +## SDRAM phy voltage adjust. +## +## Value Description +## ------------------------------------------------------------------------- +## -16 0.8 V +## -15 0.825 V +## -14 0.85 V +## -13 0.875 V +## -12 0.9 V +## -11 0.925 V +## -10 0.95 V +## -9 0.975 V +## -8 1.0 V +## -7 1.025 V +## -6 1.05 V +## -5 1.075 V +## -4 1.1 V +## -3 1.125 V +## -2 1.15 V +## -1 1.175 V +## 0 1.2 V (Default) +## 1 1.225 V +## 2 1.25 V +## 3 1.275 V +## 4 1.3 V +## 5 1.325 V +## 6 1.35 V +## 7 1.375 V +## 8 1.4 V +## +#over_voltage_sdram_p=0 + +################################################################################ +## Device Tree Settings +################################################################################ + +dtparam=random=on +dtparam=watchdog=on +dtparam=audio=on +dtparam=i2c0=on +dtparam=i2c1=on +dtparam=spi=on + +#dtoverlay=adau1977-adc +#dtoverlay=allo-piano-dac-pcm512x-audio +#dtoverlay=audioinjector-wm8731-audio +#dtoverlay=dionaudio-loco +#dtoverlay=hifiberry-amp +#dtoverlay=hifiberry-dac +#dtoverlay=hifiberry-dacplus +#dtoverlay=hifiberry-digi +#dtoverlay=hifiberry-digi-pro +#dtoverlay=iqaudio-dac +#dtoverlay=iqaudio-dacplus +#dtoverlay=iqaudio-digi-wm8804-audio +#dtoverlay=justboom-dac +#dtoverlay=justboom-digi +#dtoverlay=pisound +#dtoverlay=raspidac3 +#dtoverlay=rpi-dac +#dtoverlay=rpi-proto +#dtoverlay=rra-digidac1-wm8741-audio +[pi4] +total_mem=1024 +#enable_gic=1 +#armstub=armstub8-32-gic.bin \ No newline at end of file diff --git a/root/target/linux/brcm2708/image/config64.txt b/root/target/linux/brcm2708/image/config64.txt new file mode 100644 index 00000000..0b08c397 --- /dev/null +++ b/root/target/linux/brcm2708/image/config64.txt @@ -0,0 +1,966 @@ +################################################################################ +## Raspberry Pi Configuration Settings +## +## Revision 14, 2012/10/22 +## +## Details taken from the eLinux wiki +## For up-to-date information please refer to wiki page. +## +## Wiki Location : http://elinux.org/RPi_config.txt +## +## +## Description: +## Details of each setting are described with each section that begins with +## a double hashed comment ('##') +## It is up to the user to remove the single hashed comment ('#') from each +## option they want to enable, and to set the specific value of that option. +## +## WARNING: Setting the following combination of parameters will set a +## permanent bit within the SOC and your warranty is void. +## over_voltage>0, and at least one of the following: +## force_turbo=1 +## current_limit_override=0x5A000020 +## temp_limit>85 +## +## Overclock settings will be disabled at runtime if the SoC reaches temp_limit +## +################################################################################ + +################################################################################ +## Standard Definition Video Settings +################################################################################ + +## sdtv_mode +## defines the TV standard for composite output +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Normal NTSC (Default) +## 1 Japanese version of NTSC - no pedestal +## 2 Normal PAL +## 3 Brazilian version of PAL - 525/60 rather than 625/50, different +## subcarrier +## +#sdtv_mode=0 + +## sdtv_aspect +## defines the aspect ratio for composite output +## +## Value Description +## ------------------------------------------------------------------------- +## 1 4:3 (Default) +## 2 14:9 +## 3 16:9 +## +#sdtv_aspect=1 + +## sdtv_disable_colourburst +## Disables colour burst on composite output. The picture will be +## monochrome, but possibly sharper +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Colour burst is enabled (Default) +## 1 Colour burst is disabled +## +#sdtv_disable_colourburst=1 + +################################################################################ +## High Definition Video Settings +################################################################################ + +## hdmi_safe +## Use "safe mode" settings to try to boot with maximum hdmi compatibility. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Disabled (Default) +## 1 Enabled (this does: hdmi_force_hotplug=1, config_hdmi_boost=4, +## hdmi_group=1, hdmi_mode=1, +## disable_overscan=0) +## +#hdmi_safe=1 + +## hdmi_force_hotplug +## Pretends HDMI hotplug signal is asserted so it appears a HDMI display +## is attached +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Disabled (Default) +## 1 Use HDMI mode even if no HDMI monitor is detected +## +#hdmi_force_hotplug=1 + +## hdmi_ignore_hotplug +## Pretends HDMI hotplug signal is not asserted so it appears a HDMI +## display is not attached +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Disabled (Default) +## 1 Use composite mode even if HDMI monitor is detected +## +#hdmi_ignore_hotplug=1 + +## hdmi_drive +## chooses between HDMI and DVI modes +## +## Value Description +## ------------------------------------------------------------------------- +## 1 Normal DVI mode (No sound) +## 2 Normal HDMI mode (Sound will be sent if supported and enabled) +## +#hdmi_drive=2 + +## hdmi_ignore_edid +## Enables the ignoring of EDID/display data +## +#hdmi_ignore_edid=0xa5000080 + +## hdmi_edid_file +## Read the EDID data from the edid.dat file instead of from the attached +## device +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Read EDID data from attached device (Default) +## 1 Read EDID data from edid.txt file +## +#hdmi_edid_file=1 + +## hdmi_force_edid_audio +## Pretends all audio formats are supported by display, allowing +## passthrough of DTS/AC3 even when not reported as supported. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Use EDID provided values (Default) +## 1 Pretend all audio formats are supported +## +#hdmi_force_edid_audio=1 + +## avoid_edid_fuzzy_match +## Avoid fuzzy matching of modes described in edid. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Use fuzzy matching (Default) +## 1 Avoid fuzzy matching +## +#avoid_edid_fuzzy_match=1 + +## hdmi_group +## Defines the HDMI type +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Use the preferred group reported by the edid (Default) +## 1 CEA +## 2 DMT +## +#hdmi_group=1 + +## hdmi_mode +## defines screen resolution in CEA or DMT format +## +## H means 16:9 variant (of a normally 4:3 mode). +## 2x means pixel doubled (i.e. higher clock rate, with each pixel repeated +## twice) +## 4x means pixel quadrupled (i.e. higher clock rate, with each pixel +## repeated four times) +## reduced blanking means fewer bytes are used for blanking within the data +## stream (i.e. lower clock rate, with fewer wasted bytes) +## +## Value hdmi_group=CEA hdmi_group=DMT +## ------------------------------------------------------------------------- +## 1 VGA 640x350 85Hz +## 2 480p 60Hz 640x400 85Hz +## 3 480p 60Hz H 720x400 85Hz +## 4 720p 60Hz 640x480 60Hz +## 5 1080i 60Hz 640x480 72Hz +## 6 480i 60Hz 640x480 75Hz +## 7 480i 60Hz H 640x480 85Hz +## 8 240p 60Hz 800x600 56Hz +## 9 240p 60Hz H 800x600 60Hz +## 10 480i 60Hz 4x 800x600 72Hz +## 11 480i 60Hz 4x H 800x600 75Hz +## 12 240p 60Hz 4x 800x600 85Hz +## 13 240p 60Hz 4x H 800x600 120Hz +## 14 480p 60Hz 2x 848x480 60Hz +## 15 480p 60Hz 2x H 1024x768 43Hz DO NOT USE +## 16 1080p 60Hz 1024x768 60Hz +## 17 576p 50Hz 1024x768 70Hz +## 18 576p 50Hz H 1024x768 75Hz +## 19 720p 50Hz 1024x768 85Hz +## 20 1080i 50Hz 1024x768 120Hz +## 21 576i 50Hz 1152x864 75Hz +## 22 576i 50Hz H 1280x768 reduced blanking +## 23 288p 50Hz 1280x768 60Hz +## 24 288p 50Hz H 1280x768 75Hz +## 25 576i 50Hz 4x 1280x768 85Hz +## 26 576i 50Hz 4x H 1280x768 120Hz reduced blanking +## 27 288p 50Hz 4x 1280x800 reduced blanking +## 28 288p 50Hz 4x H 1280x800 60Hz +## 29 576p 50Hz 2x 1280x800 75Hz +## 30 576p 50Hz 2x H 1280x800 85Hz +## 31 1080p 50Hz 1280x800 120Hz reduced blanking +## 32 1080p 24Hz 1280x960 60Hz +## 33 1080p 25Hz 1280x960 85Hz +## 34 1080p 30Hz 1280x960 120Hz reduced blanking +## 35 480p 60Hz 4x 1280x1024 60Hz +## 36 480p 60Hz 4x H 1280x1024 75Hz +## 37 576p 50Hz 4x 1280x1024 85Hz +## 38 576p 50Hz 4x H 1280x1024 120Hz reduced blanking +## 39 1080i 50Hz reduced blanking 1360x768 60Hz +## 40 1080i 100Hz 1360x768 120Hz reduced blanking +## 41 720p 100Hz 1400x1050 reduced blanking +## 42 576p 100Hz 1400x1050 60Hz +## 43 576p 100Hz H 1400x1050 75Hz +## 44 576i 100Hz 1400x1050 85Hz +## 45 576i 100Hz H 1400x1050 120Hz reduced blanking +## 46 1080i 120Hz 1440x900 reduced blanking +## 47 720p 120Hz 1440x900 60Hz +## 48 480p 120Hz 1440x900 75Hz +## 49 480p 120Hz H 1440x900 85Hz +## 50 480i 120Hz 1440x900 120Hz reduced blanking +## 51 480i 120Hz H 1600x1200 60Hz +## 52 576p 200Hz 1600x1200 65Hz +## 53 576p 200Hz H 1600x1200 70Hz +## 54 576i 200Hz 1600x1200 75Hz +## 55 576i 200Hz H 1600x1200 85Hz +## 56 480p 240Hz 1600x1200 120Hz reduced blanking +## 57 480p 240Hz H 1680x1050 reduced blanking +## 58 480i 240Hz 1680x1050 60Hz +## 59 480i 240Hz H 1680x1050 75Hz +## 60 1680x1050 85Hz +## 61 1680x1050 120Hz reduced blanking +## 62 1792x1344 60Hz +## 63 1792x1344 75Hz +## 64 1792x1344 120Hz reduced blanking +## 65 1856x1392 60Hz +## 66 1856x1392 75Hz +## 67 1856x1392 120Hz reduced blanking +## 68 1920x1200 reduced blanking +## 69 1920x1200 60Hz +## 70 1920x1200 75Hz +## 71 1920x1200 85Hz +## 72 1920x1200 120Hz reduced blanking +## 73 1920x1440 60Hz +## 74 1920x1440 75Hz +## 75 1920x1440 120Hz reduced blanking +## 76 2560x1600 reduced blanking +## 77 2560x1600 60Hz +## 78 2560x1600 75Hz +## 79 2560x1600 85Hz +## 80 2560x1600 120Hz reduced blanking +## 81 1366x768 60Hz +## 82 1080p 60Hz +## 83 1600x900 reduced blanking +## 84 2048x1152 reduced blanking +## 85 720p 60Hz +## 86 1366x768 reduced blanking +## +#hdmi_mode=1 + +## config_hdmi_boost +## configure the signal strength of the HDMI interface. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 (Default) +## 1 +## 2 +## 3 +## 4 Try if you have interference issues with HDMI +## 5 +## 6 +## 7 Maximum +## +#config_hdmi_boost=0 + +## hdmi_ignore_cec_init +## Doesn't sent initial active source message. Avoids bringing +## (CEC enabled) TV out of standby and channel switch when rebooting. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Normal behaviour (Default) +## 1 Doesn't sent initial active source message +## +#hdmi_ignore_cec_init=1 + +## hdmi_ignore_cec +## Pretends CEC is not supported at all by TV. +## No CEC functions will be supported. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Normal behaviour (Default) +## 1 Pretend CEC is not supported by TV +## +#hdmi_ignore_cec=1 + +################################################################################ +## Overscan Video Settings +################################################################################ + +## overscan_left +## Number of pixels to skip on left +## +#overscan_left=0 + +## overscan_right +## Number of pixels to skip on right +## +#overscan_right=0 + +## overscan_top +## Number of pixels to skip on top +## +#overscan_top=0 + +## overscan_bottom +## Number of pixels to skip on bottom +## +#overscan_bottom=0 + +## disable_overscan +## Set to 1 to disable overscan +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Overscan Enabled (Default) +## 1 Overscan Disabled +## +#disable_overscan=1 + +################################################################################ +## Framebuffer Video Settings +################################################################################ + +## framebuffer_width +## Console framebuffer width in pixels. Default is display width minus +## overscan. +## +#framebuffer_width=0 + +## framebuffer_height +## Console framebuffer height in pixels. Default is display height minus +## overscan. +## +#framebuffer_height=0 + +## framebuffer_depth +## Console framebuffer depth in bits per pixel. +## +## Value Description +## ------------------------------------------------------------------------- +## 8 Valid, but default RGB palette makes an unreadable screen +## 16 (Default) +## 24 Looks better but has corruption issues as of 2012/06/15 +## 32 Has no corruption issues but needs framebuffer_ignore_alpha=1 +## and shows the wrong colors as of 2012/06/15 +## +#framebuffer_depth=16 + +## framebuffer_ignore_alpha +## Set to 1 to disable alpha channel. Helps with 32bit. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Enable Alpha Channel (Default) +## 1 Disable Alpha Channel +## +#framebuffer_ignore_alpha=0 + +################################################################################ +## General Video Settings +################################################################################ + +## display_rotate +## Rotate the display clockwise or flip the display. +## The 90 and 270 degrees rotation options require additional memory on GPU, +## so won't work with the 16M GPU split. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 0 degrees (Default) +## 1 90 degrees +## 2 180 degrees +## 3 270 degrees +## 0x10000 Horizontal flip +## 0x20000 Vertical flip +## +#display_rotate=0 + +################################################################################ +## Licensed Codecs +## +## Hardware decoding of additional codecs can be enabled by purchasing a +## license that is locked to the CPU serial number of your Raspberry Pi. +## +## Up to 8 licenses per CODEC can be specified as a comma seperated list. +## +################################################################################ + +## decode_MPG2 +## License key to allow hardware MPEG-2 decoding. +## +#decode_MPG2=0x12345678 + +## decode_WVC1 +## License key to allow hardware VC-1 decoding. +## +#decode_WVC1=0x12345678 + +################################################################################ +## Test Settings +################################################################################ + +## test_mode +## Enable test sound/image during boot for manufacturing test. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Disable Test Mod (Default) +## 1 Enable Test Mode +## +#test_mode=0 + +################################################################################ +## Memory Settings +################################################################################ + +## disable_l2cache +## Disable arm access to GPU's L2 cache. Needs corresponding L2 disabled +## kernel. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Enable L2 Cache (Default) +## 1 Disable L2 cache +## +#disable_l2cache=0 + +## gpu_mem +## GPU memory allocation in MB for all board revisions. +## +## Default 64 +## +#gpu_mem=128 + +## gpu_mem_256 +## GPU memory allocation in MB for 256MB board revision. +## This option overrides gpu_mem. +## +#gpu_mem_256=128 + +## gpu_mem_512 +## GPU memory allocation in MB for 512MB board revision. +## This option overrides gpu_mem. +## +#gpu_mem_512=128 + +## gpu_mem_1024 +## GPU memory allocation in MB for 1024MB board revision. +## This option overrides gpu_mem. +## +#gpu_mem_1024=128 + +################################################################################ +## Boot Option Settings +################################################################################ + +## disable_commandline_tags +## Stop start.elf from filling in ATAGS (memory from 0x100) before +## launching kernel +## +#disable_commandline_tags=2 + +## enable_uart +## Enables or disables uart pin multiplexing +## Raspberry Pi 1/2: if unset, uart is enabled by default +## Raspberry Pi 3: if unset uart is disabled by default +## +enable_uart=1 + +## cmdline (string) +## Command line parameters. Can be used instead of cmdline.txt file +## +#cmdline="" + +## kernel (string) +## Alternative name to use when loading kernel. +## +#kernel="" + +## kernel_address +## Address to load kernel.img file at +## +#kernel_address=0x8000 + +## ramfsfile (string) +## ramfs file to load +## +#ramfsfile="" + +## ramfsaddr +## Address to load ramfs file at +## +#ramfsaddr=0x00000000 + +## initramfs (string address) +## ramfs file and address to load it at (it's like ramfsfile+ramfsaddr in +## one option). +## +## NOTE: this option uses different syntax than all other options - you +## should not use "=" character here. +## +#initramfs initramf.gz 0x00800000 + +## device_tree_address +## Address to load device_tree at +## +#device_tree_address=0x100 + +## init_uart_baud +## Initial uart baud rate. +## +## Default 115200 +## +#init_uart_baud=115200 + +## init_uart_clock +## Initial uart clock. +## +## Default 3000000 (3MHz) +## +#init_uart_clock=3000000 + +## init_emmc_clock +## Initial emmc clock, increasing this can speedup your SD-card. +## +## Default 100000000 (100mhz) +## +#init_emmc_clock=100000000 + +## boot_delay +## Wait for a given number of seconds in start.elf before loading +## kernel.img. +## +## delay = (1000 * boot_delay) + boot_delay_ms +## +## Default 1 +## +#boot_delay=0 + +## boot_delay_ms +## Wait for a given number of milliseconds in start.elf before loading +## kernel.img. +## +## delay = (1000 * boot_delay) + boot_delay_ms +## +## Default 0 +## +#boot_delay_ms=0 + +## avoid_safe_mode +## Adding a jumper between pins 5 & 6 of P1 enables a recovery Safe Mode. +## If pins 5 & 6 are used for connecting to external devices (e.g. GPIO), +## then this setting can be used to ensure Safe Mode is not triggered. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Respect Safe Mode input (Default) +## 1 Ignore Safe Mode input +## +#avoid_safe_mode=1 + +################################################################################ +## Overclocking Settings +## +## ARM, SDRAM and GPU each have their own PLLs and can have unrelated +## frequencies. +## +## The GPU core, h264, v3d and isp share a PLL, so need to have related +## frequencies. +## pll_freq = floor(2400 / (2 * core_freq)) * (2 * core_freq) +## gpu_freq = pll_freq / [even number] +## +## The effective gpu_freq is automatically rounded to nearest even integer, so +## asking for core_freq = 500 and gpu_freq = 300 will result in divisor of +## 2000/300 = 6.666 => 6 and so 333.33MHz. +## +## +## Standard Profiles: +## arm_freq core_freq sdram_freq over_voltage +## ------------------------------------------------------------------------- +## None 700 250 400 0 +## Modest 800 300 400 0 +## Medium 900 333 450 2 +## High 950 450 450 6 +## Turbo 1000 500 500 6 +## +################################################################################ + +## force_turbo +## Control the kernel "ondemand" governor. It has no effect if no overclock +## settings are specified. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Enable dynamic clocks and voltage for the ARM core, GPU core and +## SDRAM (Default). +## Overclocking of h264_freq, v3d_freq and isp_freq is ignored. +## 1 Disable dynamic clocks and voltage for the ARM core, GPU core +## and SDRAM. +## Overclocking of h264_freq, v3d_freq and isp_freq is allowed. +## +#force_turbo=0 + +## initial_turbo +## Enables turbo mode from boot for the given value in seconds (up to 60) +## or until cpufreq sets a frequency. Can help with sdcard corruption if +## overclocked. +## +## Default 0 +## +#initial_turbo=0 + +## temp_limit +## Overheat protection. Sets clocks and voltages to default when the SoC +## reaches this Celsius value. +## Setting this higher than default voids warranty. +## +## Default 85 +## +#temp_limit=85 + +## arm_freq +## Frequency of ARM in MHz. +## +## Default 700. +## +#arm_freq=700 + +## arm_freq_min +## Minimum frequency of ARM in MHz (used for dynamic clocking). +## +## Default 700. +## +#arm_freq_min=700 + +## gpu_freq +## Sets core_freq, h264_freq, isp_freq, v3d_freq together. +## +## Default 250. +## +#gpu_freq=250 + +## core_freq +## Frequency of GPU processor core in MHz. It has an impact on ARM +## performance since it drives L2 cache. +## +## Default 250. +## +#core_freq=250 + +## core_freq_min +## Minimum frequency of GPU processor core in MHz (used for dynamic +## clocking). It has an impact on ARM performance since it drives L2 cache. +## +## Default 250. +## +#core_freq_min=250 + +## h264_freq +## Frequency of hardware video block in MHz. +## +## Default 250. +## +#h264_freq=250 + +## isp_freq +## Frequency of image sensor pipeline block in MHz. +## +## Default 250. +## +#isp_freq=250 + +## v3d_freq +## Frequency of 3D block in MHz. +## +## Default 250. +## +#v3d_freq=250 + +## sdram_freq +## Frequency of SDRAM in MHz. +## +## Default 400. +## +#sdram_freq=400 + +## sdram_freq_min +## Minimum frequency of SDRAM in MHz (used for dynamic clocking). +## +## Default 400. +## +#sdram_freq_min=400 + +## avoid_pwm_pll +## Unlink core_freq from the rest of the gpu. Analog audio should still +## work, but from a fractional divider, so lower quality. +## +## Value Description +## ------------------------------------------------------------------------- +## 0 Linked core_freq (Default) +## 1 Unlinked core_freq +## +#avoid_pwm_pll=1 + +################################################################################ +## Voltage Settings +################################################################################ + +## current_limit_override +## Disables SMPS current limit protection. Can help if you are currently +## hitting a reboot failure when overclocking too high. +## +#current_limit_override=0x5A000020 + +## over_voltage +## ARM/GPU core voltage adjust. +## +## Value Description +## ------------------------------------------------------------------------- +## -16 0.8 V +## -15 0.825 V +## -14 0.85 V +## -13 0.875 V +## -12 0.9 V +## -11 0.925 V +## -10 0.95 V +## -9 0.975 V +## -8 1.0 V +## -7 1.025 V +## -6 1.05 V +## -5 1.075 V +## -4 1.1 V +## -3 1.125 V +## -2 1.15 V +## -1 1.175 V +## 0 1.2 V (Default) +## 1 1.225 V +## 2 1.25 V +## 3 1.275 V +## 4 1.3 V +## 5 1.325 V +## 6 1.35 V +## 7 1.375 V (requires force_turbo=1) +## 8 1.4 V (requires force_turbo=1) +## +#over_voltage=0 + +## over_voltage_min +## Minimum ARM/GPU core voltage adjust (used for dynamic clocking). +## +## Value Description +## ------------------------------------------------------------------------- +## -16 0.8 V +## -15 0.825 V +## -14 0.85 V +## -13 0.875 V +## -12 0.9 V +## -11 0.925 V +## -10 0.95 V +## -9 0.975 V +## -8 1.0 V +## -7 1.025 V +## -6 1.05 V +## -5 1.075 V +## -4 1.1 V +## -3 1.125 V +## -2 1.15 V +## -1 1.175 V +## 0 1.2 V (Default) +## 1 1.225 V +## 2 1.25 V +## 3 1.275 V +## 4 1.3 V +## 5 1.325 V +## 6 1.35 V +## 7 1.375 V (requires force_turbo=1) +## 8 1.4 V (requires force_turbo=1) +## +#over_voltage_min=0 + +## over_voltage_sdram +## Sets over_voltage_sdram_c, over_voltage_sdram_i, over_voltage_sdram_p +## together +## +## Value Description +## ------------------------------------------------------------------------- +## -16 0.8 V +## -15 0.825 V +## -14 0.85 V +## -13 0.875 V +## -12 0.9 V +## -11 0.925 V +## -10 0.95 V +## -9 0.975 V +## -8 1.0 V +## -7 1.025 V +## -6 1.05 V +## -5 1.075 V +## -4 1.1 V +## -3 1.125 V +## -2 1.15 V +## -1 1.175 V +## 0 1.2 V (Default) +## 1 1.225 V +## 2 1.25 V +## 3 1.275 V +## 4 1.3 V +## 5 1.325 V +## 6 1.35 V +## 7 1.375 V +## 8 1.4 V +## +#over_voltage_sdram=0 + +## over_voltage_sdram_c +## SDRAM controller voltage adjust. +## +## Value Description +## ------------------------------------------------------------------------- +## -16 0.8 V +## -15 0.825 V +## -14 0.85 V +## -13 0.875 V +## -12 0.9 V +## -11 0.925 V +## -10 0.95 V +## -9 0.975 V +## -8 1.0 V +## -7 1.025 V +## -6 1.05 V +## -5 1.075 V +## -4 1.1 V +## -3 1.125 V +## -2 1.15 V +## -1 1.175 V +## 0 1.2 V (Default) +## 1 1.225 V +## 2 1.25 V +## 3 1.275 V +## 4 1.3 V +## 5 1.325 V +## 6 1.35 V +## 7 1.375 V +## 8 1.4 V +## +#over_voltage_sdram_c=0 + +## over_voltage_sdram_i +## SDRAM I/O voltage adjust. +## +## Value Description +## ------------------------------------------------------------------------- +## -16 0.8 V +## -15 0.825 V +## -14 0.85 V +## -13 0.875 V +## -12 0.9 V +## -11 0.925 V +## -10 0.95 V +## -9 0.975 V +## -8 1.0 V +## -7 1.025 V +## -6 1.05 V +## -5 1.075 V +## -4 1.1 V +## -3 1.125 V +## -2 1.15 V +## -1 1.175 V +## 0 1.2 V (Default) +## 1 1.225 V +## 2 1.25 V +## 3 1.275 V +## 4 1.3 V +## 5 1.325 V +## 6 1.35 V +## 7 1.375 V +## 8 1.4 V +## +#over_voltage_sdram_i=0 + +## over_voltage_sdram_p +## SDRAM phy voltage adjust. +## +## Value Description +## ------------------------------------------------------------------------- +## -16 0.8 V +## -15 0.825 V +## -14 0.85 V +## -13 0.875 V +## -12 0.9 V +## -11 0.925 V +## -10 0.95 V +## -9 0.975 V +## -8 1.0 V +## -7 1.025 V +## -6 1.05 V +## -5 1.075 V +## -4 1.1 V +## -3 1.125 V +## -2 1.15 V +## -1 1.175 V +## 0 1.2 V (Default) +## 1 1.225 V +## 2 1.25 V +## 3 1.275 V +## 4 1.3 V +## 5 1.325 V +## 6 1.35 V +## 7 1.375 V +## 8 1.4 V +## +#over_voltage_sdram_p=0 + +################################################################################ +## Device Tree Settings +################################################################################ + +dtparam=random=on +dtparam=watchdog=on +dtparam=audio=on +dtparam=i2c0=on +dtparam=i2c1=on +dtparam=spi=on + +#dtoverlay=adau1977-adc +#dtoverlay=allo-piano-dac-pcm512x-audio +#dtoverlay=audioinjector-wm8731-audio +#dtoverlay=dionaudio-loco +#dtoverlay=hifiberry-amp +#dtoverlay=hifiberry-dac +#dtoverlay=hifiberry-dacplus +#dtoverlay=hifiberry-digi +#dtoverlay=hifiberry-digi-pro +#dtoverlay=iqaudio-dac +#dtoverlay=iqaudio-dacplus +#dtoverlay=iqaudio-digi-wm8804-audio +#dtoverlay=justboom-dac +#dtoverlay=justboom-digi +#dtoverlay=pisound +#dtoverlay=raspidac3 +#dtoverlay=rpi-dac +#dtoverlay=rpi-proto +#dtoverlay=rra-digidac1-wm8741-audio +[pi4] +arm_64bit=1 +total_mem=1024 +enable_gic=1 +armstub=armstub8-gic.bin \ No newline at end of file diff --git a/root/target/linux/brcm2708/patches-4.19/0679-w1-ds2805-rename-w1_family-struct-fixing-c-p-typo.patch b/root/target/linux/brcm2708/patches-4.19/0679-w1-ds2805-rename-w1_family-struct-fixing-c-p-typo.patch new file mode 100644 index 00000000..9c7505ee --- /dev/null +++ b/root/target/linux/brcm2708/patches-4.19/0679-w1-ds2805-rename-w1_family-struct-fixing-c-p-typo.patch @@ -0,0 +1,49 @@ +From 211785e0ac722faad9af7a8d2d95f5cd34d3dda2 Mon Sep 17 00:00:00 2001 +From: Mariusz Bialonczyk +Date: Sat, 25 May 2019 10:45:38 +0200 +Subject: [PATCH 679/692] w1: ds2805: rename w1_family struct, fixing c-p typo + +commit 0e3743d870711ae4daf1e7170c8d9381564e244d upstream. + +The ds2805 has a structure named: w1_family_2d, which surely +comes from a w1_ds2431 module. This commit fixes this name to +prevent confusion and mark a correct family name. + +Signed-off-by: Mariusz Bialonczyk +Signed-off-by: Greg Kroah-Hartman +--- + drivers/w1/slaves/w1_ds2805.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/drivers/w1/slaves/w1_ds2805.c b/drivers/w1/slaves/w1_ds2805.c +index 29348d283a65..ab349604531a 100644 +--- a/drivers/w1/slaves/w1_ds2805.c ++++ b/drivers/w1/slaves/w1_ds2805.c +@@ -288,7 +288,7 @@ static struct w1_family_ops w1_f0d_fops = { + .remove_slave = w1_f0d_remove_slave, + }; + +-static struct w1_family w1_family_2d = { ++static struct w1_family w1_family_0d = { + .fid = W1_EEPROM_DS2805, + .fops = &w1_f0d_fops, + }; +@@ -296,13 +296,13 @@ static struct w1_family w1_family_2d = { + static int __init w1_f0d_init(void) + { + pr_info("%s()\n", __func__); +- return w1_register_family(&w1_family_2d); ++ return w1_register_family(&w1_family_0d); + } + + static void __exit w1_f0d_fini(void) + { + pr_info("%s()\n", __func__); +- w1_unregister_family(&w1_family_2d); ++ w1_unregister_family(&w1_family_0d); + } + + module_init(w1_f0d_init); +-- +2.19.1 + diff --git a/root/target/linux/brcm2708/patches-4.19/0680-w1-ds2413-output_write-cosmetic-fixes-simplify.patch b/root/target/linux/brcm2708/patches-4.19/0680-w1-ds2413-output_write-cosmetic-fixes-simplify.patch new file mode 100644 index 00000000..db9f437e --- /dev/null +++ b/root/target/linux/brcm2708/patches-4.19/0680-w1-ds2413-output_write-cosmetic-fixes-simplify.patch @@ -0,0 +1,69 @@ +From 73493781df0ef080465193443dcd77acd08c235b Mon Sep 17 00:00:00 2001 +From: Mariusz Bialonczyk +Date: Mon, 20 May 2019 09:05:55 +0200 +Subject: [PATCH 680/692] w1: ds2413: output_write() cosmetic fixes / simplify + +commit ae2ee27aa985232f66421d7cd1c7f4b87c7dba7d upstream. + +Make the output_write simpler. +Based on Jean-Francois Dagenais code from: +49695ac46861 ("w1: ds2408: reset on output_write retry with readback") + +Signed-off-by: Mariusz Bialonczyk +Signed-off-by: Greg Kroah-Hartman +--- + drivers/w1/slaves/w1_ds2413.c | 19 +++++++++++-------- + 1 file changed, 11 insertions(+), 8 deletions(-) + +diff --git a/drivers/w1/slaves/w1_ds2413.c b/drivers/w1/slaves/w1_ds2413.c +index 492e3d010321..cd3763df69ac 100644 +--- a/drivers/w1/slaves/w1_ds2413.c ++++ b/drivers/w1/slaves/w1_ds2413.c +@@ -69,6 +69,7 @@ static ssize_t output_write(struct file *filp, struct kobject *kobj, + struct w1_slave *sl = kobj_to_w1_slave(kobj); + u8 w1_buf[3]; + unsigned int retries = W1_F3A_RETRIES; ++ ssize_t bytes_written = -EIO; + + if (count != 1 || off != 0) + return -EFAULT; +@@ -78,7 +79,7 @@ static ssize_t output_write(struct file *filp, struct kobject *kobj, + dev_dbg(&sl->dev, "mutex locked"); + + if (w1_reset_select_slave(sl)) +- goto error; ++ goto out; + + /* according to the DS2413 datasheet the most significant 6 bits + should be set to "1"s, so do it now */ +@@ -91,18 +92,20 @@ static ssize_t output_write(struct file *filp, struct kobject *kobj, + w1_write_block(sl->master, w1_buf, 3); + + if (w1_read_8(sl->master) == W1_F3A_SUCCESS_CONFIRM_BYTE) { +- mutex_unlock(&sl->master->bus_mutex); +- dev_dbg(&sl->dev, "mutex unlocked, retries:%d", retries); +- return 1; ++ bytes_written = 1; ++ goto out; + } + if (w1_reset_resume_command(sl->master)) +- goto error; ++ goto out; /* unrecoverable error */ ++ ++ dev_warn(&sl->dev, "PIO_ACCESS_WRITE error, retries left: %d\n", retries); + } + +-error: ++out: + mutex_unlock(&sl->master->bus_mutex); +- dev_dbg(&sl->dev, "mutex unlocked in error, retries:%d", retries); +- return -EIO; ++ dev_dbg(&sl->dev, "%s, mutex unlocked, retries: %d\n", ++ (bytes_written > 0) ? "succeeded" : "error", retries); ++ return bytes_written; + } + + static BIN_ATTR(output, S_IRUGO | S_IWUSR | S_IWGRP, NULL, output_write, 1); +-- +2.19.1 + diff --git a/root/target/linux/brcm2708/patches-4.19/0681-w1-ds2413-add-retry-support-to-state_read.patch b/root/target/linux/brcm2708/patches-4.19/0681-w1-ds2413-add-retry-support-to-state_read.patch new file mode 100644 index 00000000..2b4cc5db --- /dev/null +++ b/root/target/linux/brcm2708/patches-4.19/0681-w1-ds2413-add-retry-support-to-state_read.patch @@ -0,0 +1,79 @@ +From 55a3cf636741690dd12b9c57512a09ae999b5fc1 Mon Sep 17 00:00:00 2001 +From: Mariusz Bialonczyk +Date: Mon, 20 May 2019 09:05:56 +0200 +Subject: [PATCH 681/692] w1: ds2413: add retry support to state_read() + +commit c50d09a86172073f55ebac0b92ad5a75907d64e7 upstream. + +The state_read() was calling PIO_ACCESS_READ once and bail out if it +failed for this first time. +This commit is improving this to trying more times before it give up, +similarly as the write call is currently doing. + +Signed-off-by: Mariusz Bialonczyk +Signed-off-by: Greg Kroah-Hartman +--- + drivers/w1/slaves/w1_ds2413.c | 37 +++++++++++++++++++++++------------ + 1 file changed, 24 insertions(+), 13 deletions(-) + +diff --git a/drivers/w1/slaves/w1_ds2413.c b/drivers/w1/slaves/w1_ds2413.c +index cd3763df69ac..d63778c70568 100644 +--- a/drivers/w1/slaves/w1_ds2413.c ++++ b/drivers/w1/slaves/w1_ds2413.c +@@ -30,6 +30,9 @@ static ssize_t state_read(struct file *filp, struct kobject *kobj, + size_t count) + { + struct w1_slave *sl = kobj_to_w1_slave(kobj); ++ unsigned int retries = W1_F3A_RETRIES; ++ ssize_t bytes_read = -EIO; ++ + dev_dbg(&sl->dev, + "Reading %s kobj: %p, off: %0#10x, count: %zu, buff addr: %p", + bin_attr->attr.name, kobj, (unsigned int)off, count, buf); +@@ -42,22 +45,30 @@ static ssize_t state_read(struct file *filp, struct kobject *kobj, + mutex_lock(&sl->master->bus_mutex); + dev_dbg(&sl->dev, "mutex locked"); + +- if (w1_reset_select_slave(sl)) { +- mutex_unlock(&sl->master->bus_mutex); +- return -EIO; +- } ++ if (w1_reset_select_slave(sl)) ++ goto out; + +- w1_write_8(sl->master, W1_F3A_FUNC_PIO_ACCESS_READ); +- *buf = w1_read_8(sl->master); ++ while (retries--) { ++ w1_write_8(sl->master, W1_F3A_FUNC_PIO_ACCESS_READ); + +- mutex_unlock(&sl->master->bus_mutex); +- dev_dbg(&sl->dev, "mutex unlocked"); ++ *buf = w1_read_8(sl->master); ++ /* check for correct complement */ ++ if ((*buf & 0x0F) == ((~*buf >> 4) & 0x0F)) { ++ bytes_read = 1; ++ goto out; ++ } + +- /* check for correct complement */ +- if ((*buf & 0x0F) != ((~*buf >> 4) & 0x0F)) +- return -EIO; +- else +- return 1; ++ if (w1_reset_resume_command(sl->master)) ++ goto out; /* unrecoverable error */ ++ ++ dev_warn(&sl->dev, "PIO_ACCESS_READ error, retries left: %d\n", retries); ++ } ++ ++out: ++ mutex_unlock(&sl->master->bus_mutex); ++ dev_dbg(&sl->dev, "%s, mutex unlocked, retries: %d\n", ++ (bytes_read > 0) ? "succeeded" : "error", retries); ++ return bytes_read; + } + + static BIN_ATTR_RO(state, 1); +-- +2.19.1 + diff --git a/root/target/linux/brcm2708/patches-4.19/0682-w1-ds2413-when-the-slave-is-not-responding-during-re.patch b/root/target/linux/brcm2708/patches-4.19/0682-w1-ds2413-when-the-slave-is-not-responding-during-re.patch new file mode 100644 index 00000000..a3bfe248 --- /dev/null +++ b/root/target/linux/brcm2708/patches-4.19/0682-w1-ds2413-when-the-slave-is-not-responding-during-re.patch @@ -0,0 +1,61 @@ +From eb7c93f1db6a1e2b83d197afe79ed35ed406e953 Mon Sep 17 00:00:00 2001 +From: Mariusz Bialonczyk +Date: Wed, 22 May 2019 12:40:53 +0200 +Subject: [PATCH 682/692] w1: ds2413: when the slave is not responding during + read, select it again + +commit 3856032a0628e6b94badb9131a706dda185e071d upstream. + +The protocol is not allowing to obtain a byte of 0xff for PIO_ACCESS_READ +call. It is very likely that the slave was not addressed properly and +it is just not respoding (leaving the bus in logic high state) during +the read of sampled PIO value. +We cannot just call w1_reset_resume_command() because the problem will +persist, instead try selecting (addressing) the slave again. + +Signed-off-by: Mariusz Bialonczyk +Signed-off-by: Greg Kroah-Hartman +--- + drivers/w1/slaves/w1_ds2413.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/drivers/w1/slaves/w1_ds2413.c b/drivers/w1/slaves/w1_ds2413.c +index d63778c70568..21f08ac8a4e0 100644 +--- a/drivers/w1/slaves/w1_ds2413.c ++++ b/drivers/w1/slaves/w1_ds2413.c +@@ -24,6 +24,7 @@ + #define W1_F3A_FUNC_PIO_ACCESS_READ 0xF5 + #define W1_F3A_FUNC_PIO_ACCESS_WRITE 0x5A + #define W1_F3A_SUCCESS_CONFIRM_BYTE 0xAA ++#define W1_F3A_INVALID_PIO_STATE 0xFF + + static ssize_t state_read(struct file *filp, struct kobject *kobj, + struct bin_attribute *bin_attr, char *buf, loff_t off, +@@ -45,6 +46,7 @@ static ssize_t state_read(struct file *filp, struct kobject *kobj, + mutex_lock(&sl->master->bus_mutex); + dev_dbg(&sl->dev, "mutex locked"); + ++next: + if (w1_reset_select_slave(sl)) + goto out; + +@@ -52,10 +54,15 @@ static ssize_t state_read(struct file *filp, struct kobject *kobj, + w1_write_8(sl->master, W1_F3A_FUNC_PIO_ACCESS_READ); + + *buf = w1_read_8(sl->master); +- /* check for correct complement */ + if ((*buf & 0x0F) == ((~*buf >> 4) & 0x0F)) { ++ /* complement is correct */ + bytes_read = 1; + goto out; ++ } else if (*buf == W1_F3A_INVALID_PIO_STATE) { ++ /* slave didn't respond, try to select it again */ ++ dev_warn(&sl->dev, "slave device did not respond to PIO_ACCESS_READ, " \ ++ "reselecting, retries left: %d\n", retries); ++ goto next; + } + + if (w1_reset_resume_command(sl->master)) +-- +2.19.1 + diff --git a/root/target/linux/brcm2708/patches-4.19/0683-w1-ds2413-fix-state-byte-comparision.patch b/root/target/linux/brcm2708/patches-4.19/0683-w1-ds2413-fix-state-byte-comparision.patch new file mode 100644 index 00000000..3eb548cd --- /dev/null +++ b/root/target/linux/brcm2708/patches-4.19/0683-w1-ds2413-fix-state-byte-comparision.patch @@ -0,0 +1,53 @@ +From 9590e9aa6b1bc7a5946d6dae8c217bbde806133c Mon Sep 17 00:00:00 2001 +From: Mariusz Bialonczyk +Date: Thu, 30 May 2019 09:51:25 +0200 +Subject: [PATCH 683/692] w1: ds2413: fix state byte comparision + +commit aacd152ecd7b18af5d2d96dea9e7284c1c93abea upstream. + +This commit is fixing a smatch warning: +drivers/w1/slaves/w1_ds2413.c:61 state_read() warn: impossible condition '(*buf == 255) => ((-128)-127 == 255)' +by creating additional u8 variable for the bus reading and comparision + +Reported-by: kbuild test robot +Reported-by: Dan Carpenter +Cc: Dan Carpenter +Fixes: 3856032a0628 ("w1: ds2413: when the slave is not responding during read, select it again") +Signed-off-by: Mariusz Bialonczyk +Signed-off-by: Greg Kroah-Hartman +--- + drivers/w1/slaves/w1_ds2413.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/drivers/w1/slaves/w1_ds2413.c b/drivers/w1/slaves/w1_ds2413.c +index 21f08ac8a4e0..3364ad276b15 100644 +--- a/drivers/w1/slaves/w1_ds2413.c ++++ b/drivers/w1/slaves/w1_ds2413.c +@@ -33,6 +33,7 @@ static ssize_t state_read(struct file *filp, struct kobject *kobj, + struct w1_slave *sl = kobj_to_w1_slave(kobj); + unsigned int retries = W1_F3A_RETRIES; + ssize_t bytes_read = -EIO; ++ u8 state; + + dev_dbg(&sl->dev, + "Reading %s kobj: %p, off: %0#10x, count: %zu, buff addr: %p", +@@ -53,12 +54,13 @@ static ssize_t state_read(struct file *filp, struct kobject *kobj, + while (retries--) { + w1_write_8(sl->master, W1_F3A_FUNC_PIO_ACCESS_READ); + +- *buf = w1_read_8(sl->master); +- if ((*buf & 0x0F) == ((~*buf >> 4) & 0x0F)) { ++ state = w1_read_8(sl->master); ++ if ((state & 0x0F) == ((~state >> 4) & 0x0F)) { + /* complement is correct */ ++ *buf = state; + bytes_read = 1; + goto out; +- } else if (*buf == W1_F3A_INVALID_PIO_STATE) { ++ } else if (state == W1_F3A_INVALID_PIO_STATE) { + /* slave didn't respond, try to select it again */ + dev_warn(&sl->dev, "slave device did not respond to PIO_ACCESS_READ, " \ + "reselecting, retries left: %d\n", retries); +-- +2.19.1 + diff --git a/root/target/linux/brcm2708/patches-4.19/0684-drm-vc4_dsi-Fix-DMA-channel-and-memory-leak-in-vc4-3.patch b/root/target/linux/brcm2708/patches-4.19/0684-drm-vc4_dsi-Fix-DMA-channel-and-memory-leak-in-vc4-3.patch new file mode 100644 index 00000000..a389982d --- /dev/null +++ b/root/target/linux/brcm2708/patches-4.19/0684-drm-vc4_dsi-Fix-DMA-channel-and-memory-leak-in-vc4-3.patch @@ -0,0 +1,140 @@ +From eb0360356344d8ba633e61936c794aa46a02397f Mon Sep 17 00:00:00 2001 +From: Chris Miller +Date: Wed, 26 Jun 2019 10:40:30 +0100 +Subject: [PATCH 684/692] drm: vc4_dsi: Fix DMA channel and memory leak in vc4 + (#3012) + +Signed-off-by: Chris G Miller +--- + drivers/gpu/drm/vc4/vc4_dsi.c | 35 ++++++++++++++++++++++++----------- + 1 file changed, 24 insertions(+), 11 deletions(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_dsi.c b/drivers/gpu/drm/vc4/vc4_dsi.c +index 0c607eb33d7e..e79c436226e0 100644 +--- a/drivers/gpu/drm/vc4/vc4_dsi.c ++++ b/drivers/gpu/drm/vc4/vc4_dsi.c +@@ -1536,9 +1536,11 @@ static int vc4_dsi_bind(struct device *dev, struct device *master, void *data) + /* DSI1 has a broken AXI slave that doesn't respond to writes + * from the ARM. It does handle writes from the DMA engine, + * so set up a channel for talking to it. ++ * Where possible managed resource providers are used, but the DMA channel ++ * must - if acquired - be explicitly released prior to taking an error exit path. + */ + if (dsi->port == 1) { +- dsi->reg_dma_mem = dma_alloc_coherent(dev, 4, ++ dsi->reg_dma_mem = dmam_alloc_coherent(dev, 4, + &dsi->reg_dma_paddr, + GFP_KERNEL); + if (!dsi->reg_dma_mem) { +@@ -1557,6 +1559,8 @@ static int vc4_dsi_bind(struct device *dev, struct device *master, void *data) + return ret; + } + ++ /* From here on, any error exits must release the dma channel */ ++ + /* Get the physical address of the device's registers. The + * struct resource for the regs gives us the bus address + * instead. +@@ -1583,7 +1587,7 @@ static int vc4_dsi_bind(struct device *dev, struct device *master, void *data) + if (ret) { + if (ret != -EPROBE_DEFER) + dev_err(dev, "Failed to get interrupt: %d\n", ret); +- return ret; ++ goto rel_dma_exit; + } + + dsi->escape_clock = devm_clk_get(dev, "escape"); +@@ -1591,7 +1595,7 @@ static int vc4_dsi_bind(struct device *dev, struct device *master, void *data) + ret = PTR_ERR(dsi->escape_clock); + if (ret != -EPROBE_DEFER) + dev_err(dev, "Failed to get escape clock: %d\n", ret); +- return ret; ++ goto rel_dma_exit; + } + + dsi->pll_phy_clock = devm_clk_get(dev, "phy"); +@@ -1599,7 +1603,7 @@ static int vc4_dsi_bind(struct device *dev, struct device *master, void *data) + ret = PTR_ERR(dsi->pll_phy_clock); + if (ret != -EPROBE_DEFER) + dev_err(dev, "Failed to get phy clock: %d\n", ret); +- return ret; ++ goto rel_dma_exit; + } + + dsi->pixel_clock = devm_clk_get(dev, "pixel"); +@@ -1607,7 +1611,7 @@ static int vc4_dsi_bind(struct device *dev, struct device *master, void *data) + ret = PTR_ERR(dsi->pixel_clock); + if (ret != -EPROBE_DEFER) + dev_err(dev, "Failed to get pixel clock: %d\n", ret); +- return ret; ++ goto rel_dma_exit; + } + + ret = drm_of_find_panel_or_bridge(dev->of_node, 0, 0, +@@ -1622,26 +1626,28 @@ static int vc4_dsi_bind(struct device *dev, struct device *master, void *data) + if (ret == -ENODEV) + return 0; + +- return ret; ++ goto rel_dma_exit; + } + + if (panel) { + dsi->bridge = devm_drm_panel_bridge_add(dev, panel, + DRM_MODE_CONNECTOR_DSI); +- if (IS_ERR(dsi->bridge)) +- return PTR_ERR(dsi->bridge); ++ if (IS_ERR(dsi->bridge)){ ++ ret = PTR_ERR(dsi->bridge); ++ goto rel_dma_exit; ++ } + } + + /* The esc clock rate is supposed to always be 100Mhz. */ + ret = clk_set_rate(dsi->escape_clock, 100 * 1000000); + if (ret) { + dev_err(dev, "Failed to set esc clock: %d\n", ret); +- return ret; ++ goto rel_dma_exit; + } + + ret = vc4_dsi_init_phy_clocks(dsi); + if (ret) +- return ret; ++ goto rel_dma_exit; + + if (dsi->port == 1) + vc4->dsi1 = dsi; +@@ -1653,7 +1659,7 @@ static int vc4_dsi_bind(struct device *dev, struct device *master, void *data) + ret = drm_bridge_attach(dsi->encoder, dsi->bridge, NULL); + if (ret) { + dev_err(dev, "bridge attach failed: %d\n", ret); +- return ret; ++ goto rel_dma_exit; + } + /* Disable the atomic helper calls into the bridge. We + * manually call the bridge pre_enable / enable / etc. calls +@@ -1665,6 +1671,11 @@ static int vc4_dsi_bind(struct device *dev, struct device *master, void *data) + pm_runtime_enable(dev); + + return 0; ++ ++rel_dma_exit: ++ dma_release_channel(dsi->reg_dma_chan); ++ ++ return ret; + } + + static void vc4_dsi_unbind(struct device *dev, struct device *master, +@@ -1679,6 +1690,8 @@ static void vc4_dsi_unbind(struct device *dev, struct device *master, + + vc4_dsi_encoder_destroy(dsi->encoder); + ++ dma_release_channel(dsi->reg_dma_chan); ++ + if (dsi->port == 1) + vc4->dsi1 = NULL; + } +-- +2.19.1 + diff --git a/root/target/linux/brcm2708/patches-4.19/0685-video-bcm2708_fb-Revert-cma-allocation-attempt.patch b/root/target/linux/brcm2708/patches-4.19/0685-video-bcm2708_fb-Revert-cma-allocation-attempt.patch new file mode 100644 index 00000000..b5b8693f --- /dev/null +++ b/root/target/linux/brcm2708/patches-4.19/0685-video-bcm2708_fb-Revert-cma-allocation-attempt.patch @@ -0,0 +1,166 @@ +From a4750f850182ab7dbe25d519b385e592e1d5b353 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Wed, 19 Jun 2019 03:55:50 +0100 +Subject: [PATCH 685/692] video/bcm2708_fb: Revert cma allocation attempt + +"4600e91 Pulled in the multi frame buffer support from the Pi3 repo" +pulled back in the code for allocating the framebuffer from the CMA +heap. +Revert it again. + +Signed-off-by: Dave Stevenson +--- + drivers/video/fbdev/bcm2708_fb.c | 101 +++------------------ + include/soc/bcm2835/raspberrypi-firmware.h | 1 - + 2 files changed, 13 insertions(+), 89 deletions(-) + +diff --git a/drivers/video/fbdev/bcm2708_fb.c b/drivers/video/fbdev/bcm2708_fb.c +index 540567fe21a8..2b7d5ebc7611 100644 +--- a/drivers/video/fbdev/bcm2708_fb.c ++++ b/drivers/video/fbdev/bcm2708_fb.c +@@ -112,9 +112,6 @@ struct bcm2708_fb { + struct vc4_display_settings_t display_settings; + struct debugfs_regset32 screeninfo_regset; + struct bcm2708_fb_dev *fbdev; +- unsigned int image_size; +- dma_addr_t dma_addr; +- void *cpuaddr; + }; + + #define MAX_FRAMEBUFFERS 3 +@@ -377,12 +374,12 @@ static int bcm2708_fb_set_par(struct fb_info *info) + .xoffset = info->var.xoffset, + .yoffset = info->var.yoffset, + .tag5 = { RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE, 8, 0 }, +- /* base and screen_size will be initialised later */ +- .tag6 = { RPI_FIRMWARE_FRAMEBUFFER_SET_PITCH, 4, 0 }, +- /* pitch will be initialised later */ ++ .base = 0, ++ .screen_size = 0, ++ .tag6 = { RPI_FIRMWARE_FRAMEBUFFER_GET_PITCH, 4, 0 }, ++ .pitch = 0, + }; +- int ret, image_size; +- ++ int ret; + + print_debug("%s(%p) %dx%d (%dx%d), %d, %d (display %d)\n", __func__, + info, +@@ -397,76 +394,12 @@ static int bcm2708_fb_set_par(struct fb_info *info) + */ + set_display_num(fb); + +- /* Try allocating our own buffer. We can specify all the parameters */ +- image_size = ((info->var.xres * info->var.yres) * +- info->var.bits_per_pixel) >> 3; +- +- if (!fb->fbdev->disable_arm_alloc && +- (image_size != fb->image_size || !fb->dma_addr)) { +- if (fb->dma_addr) { +- dma_free_coherent(info->device, fb->image_size, +- fb->cpuaddr, fb->dma_addr); +- fb->image_size = 0; +- fb->cpuaddr = NULL; +- fb->dma_addr = 0; +- } +- +- fb->cpuaddr = dma_alloc_coherent(info->device, image_size, +- &fb->dma_addr, GFP_KERNEL); +- +- if (!fb->cpuaddr) { +- fb->dma_addr = 0; +- fb->fbdev->disable_arm_alloc = true; +- } else { +- fb->image_size = image_size; +- } +- } +- +- if (fb->cpuaddr) { +- fbinfo.base = fb->dma_addr; +- fbinfo.screen_size = image_size; +- fbinfo.pitch = (info->var.xres * info->var.bits_per_pixel) >> 3; +- +- ret = rpi_firmware_property_list(fb->fbdev->fw, &fbinfo, +- sizeof(fbinfo)); +- if (ret || fbinfo.base != fb->dma_addr) { +- /* Firmware either failed, or assigned a different base +- * address (ie it doesn't support being passed an FB +- * allocation). +- * Destroy the allocation, and don't try again. +- */ +- dma_free_coherent(info->device, fb->image_size, +- fb->cpuaddr, fb->dma_addr); +- fb->image_size = 0; +- fb->cpuaddr = NULL; +- fb->dma_addr = 0; +- fb->fbdev->disable_arm_alloc = true; +- } +- } else { +- /* Our allocation failed - drop into the old scheme of +- * allocation by the VPU. +- */ +- ret = -ENOMEM; +- } +- ++ ret = rpi_firmware_property_list(fb->fbdev->fw, &fbinfo, ++ sizeof(fbinfo)); + if (ret) { +- /* Old scheme: +- * - FRAMEBUFFER_ALLOCATE passes 0 for base and screen_size. +- * - GET_PITCH instead of SET_PITCH. +- */ +- fbinfo.base = 0; +- fbinfo.screen_size = 0; +- fbinfo.tag6.tag = RPI_FIRMWARE_FRAMEBUFFER_GET_PITCH; +- fbinfo.pitch = 0; +- +- ret = rpi_firmware_property_list(fb->fbdev->fw, &fbinfo, +- sizeof(fbinfo)); +- if (ret) { +- dev_err(info->device, +- "Failed to allocate GPU framebuffer (%d)\n", +- ret); +- return ret; +- } ++ dev_err(info->device, ++ "Failed to allocate GPU framebuffer (%d)\n", ret); ++ return ret; + } + + if (info->var.bits_per_pixel <= 8) +@@ -481,17 +414,9 @@ static int bcm2708_fb_set_par(struct fb_info *info) + fb->fb.fix.smem_start = fbinfo.base; + fb->fb.fix.smem_len = fbinfo.pitch * fbinfo.yres_virtual; + fb->fb.screen_size = fbinfo.screen_size; +- +- if (!fb->dma_addr) { +- if (fb->fb.screen_base) +- iounmap(fb->fb.screen_base); +- +- fb->fb.screen_base = ioremap_wc(fbinfo.base, +- fb->fb.screen_size); +- } else { +- fb->fb.screen_base = fb->cpuaddr; +- } +- ++ if (fb->fb.screen_base) ++ iounmap(fb->fb.screen_base); ++ fb->fb.screen_base = ioremap_wc(fbinfo.base, fb->fb.screen_size); + if (!fb->fb.screen_base) { + /* the console may currently be locked */ + console_trylock(); +diff --git a/include/soc/bcm2835/raspberrypi-firmware.h b/include/soc/bcm2835/raspberrypi-firmware.h +index 10252aa519d3..1ef454bd48b1 100644 +--- a/include/soc/bcm2835/raspberrypi-firmware.h ++++ b/include/soc/bcm2835/raspberrypi-firmware.h +@@ -138,7 +138,6 @@ enum rpi_firmware_property_tag { + RPI_FIRMWARE_FRAMEBUFFER_SET_DEPTH = 0x00048005, + RPI_FIRMWARE_FRAMEBUFFER_SET_PIXEL_ORDER = 0x00048006, + RPI_FIRMWARE_FRAMEBUFFER_SET_ALPHA_MODE = 0x00048007, +- RPI_FIRMWARE_FRAMEBUFFER_SET_PITCH = 0x00048008, + RPI_FIRMWARE_FRAMEBUFFER_SET_VIRTUAL_OFFSET = 0x00048009, + RPI_FIRMWARE_FRAMEBUFFER_SET_OVERSCAN = 0x0004800a, + RPI_FIRMWARE_FRAMEBUFFER_SET_PALETTE = 0x0004800b, +-- +2.19.1 + diff --git a/root/target/linux/brcm2708/patches-4.19/0686-drm-vc4-Add-support-for-color-encoding-on-YUV-planes.patch b/root/target/linux/brcm2708/patches-4.19/0686-drm-vc4-Add-support-for-color-encoding-on-YUV-planes.patch new file mode 100644 index 00000000..3aefec88 --- /dev/null +++ b/root/target/linux/brcm2708/patches-4.19/0686-drm-vc4-Add-support-for-color-encoding-on-YUV-planes.patch @@ -0,0 +1,117 @@ +From 56a097ef7a765fb35d50ff9a4fcd305fb6f6c5e0 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson +Date: Mon, 24 Jun 2019 02:29:40 +0100 +Subject: [PATCH 686/692] drm/vc4: Add support for color encoding on YUV planes + +Adds signalling for BT601/709/2020, and limited/full range +(on BT601). + +Signed-off-by: Dave Stevenson +--- + drivers/gpu/drm/vc4/vc4_firmware_kms.c | 32 +++++++++++++++++++++++++- + drivers/gpu/drm/vc4/vc_image_types.h | 28 ++++++++++++++++++++++ + 2 files changed, 59 insertions(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/vc4/vc4_firmware_kms.c b/drivers/gpu/drm/vc4/vc4_firmware_kms.c +index b5959abecf1a..074766fc076e 100644 +--- a/drivers/gpu/drm/vc4/vc4_firmware_kms.c ++++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c +@@ -66,7 +66,7 @@ struct set_plane { + u8 alpha; + u8 num_planes; + u8 is_vu; +- u8 padding; ++ u8 color_encoding; + + u32 planes[4]; /* DMA address of each plane */ + +@@ -454,6 +454,28 @@ static void vc4_plane_atomic_update(struct drm_plane *plane, + if (num_planes == 3 && + (fb->offsets[2] - fb->offsets[1]) == fb->pitches[1]) + mb->plane.vc_image_type = VC_IMAGE_YUV420_S; ++ ++ switch (state->color_encoding) { ++ default: ++ case DRM_COLOR_YCBCR_BT601: ++ if (state->color_range == DRM_COLOR_YCBCR_LIMITED_RANGE) ++ mb->plane.color_encoding = ++ VC_IMAGE_YUVINFO_CSC_ITUR_BT601; ++ else ++ mb->plane.color_encoding = ++ VC_IMAGE_YUVINFO_CSC_JPEG_JFIF; ++ break; ++ case DRM_COLOR_YCBCR_BT709: ++ /* Currently no support for a full range BT709 */ ++ mb->plane.color_encoding = ++ VC_IMAGE_YUVINFO_CSC_ITUR_BT709; ++ break; ++ case DRM_COLOR_YCBCR_BT2020: ++ /* Currently no support for a full range BT2020 */ ++ mb->plane.color_encoding = ++ VC_IMAGE_YUVINFO_CSC_REC_2020; ++ break; ++ } + } else { + mb->plane.planes[1] = 0; + mb->plane.planes[2] = 0; +@@ -643,6 +665,14 @@ static struct drm_plane *vc4_fkms_plane_init(struct drm_device *dev, + drm_plane_create_alpha_property(plane); + drm_plane_create_rotation_property(plane, DRM_MODE_ROTATE_0, + SUPPORTED_ROTATIONS); ++ drm_plane_create_color_properties(plane, ++ BIT(DRM_COLOR_YCBCR_BT601) | ++ BIT(DRM_COLOR_YCBCR_BT709) | ++ BIT(DRM_COLOR_YCBCR_BT2020), ++ BIT(DRM_COLOR_YCBCR_LIMITED_RANGE) | ++ BIT(DRM_COLOR_YCBCR_FULL_RANGE), ++ DRM_COLOR_YCBCR_BT709, ++ DRM_COLOR_YCBCR_LIMITED_RANGE); + + /* + * Default frame buffer setup is with FB on -127, and raspistill etc +diff --git a/drivers/gpu/drm/vc4/vc_image_types.h b/drivers/gpu/drm/vc4/vc_image_types.h +index 669a70fdb891..0bdffe5dd1e9 100644 +--- a/drivers/gpu/drm/vc4/vc_image_types.h ++++ b/drivers/gpu/drm/vc4/vc_image_types.h +@@ -4,6 +4,8 @@ + * + * Values taken from vc_image_types.h released by Broadcom at + * https://github.com/raspberrypi/userland/blob/master/interface/vctypes/vc_image_types.h ++ * and vc_image_structs.h at ++ * https://github.com/raspberrypi/userland/blob/master/interface/vctypes/vc_image_structs.h + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as +@@ -141,3 +143,29 @@ enum { + VC_IMAGE_MAX, /* bounds for error checking */ + VC_IMAGE_FORCE_ENUM_16BIT = 0xffff, + }; ++ ++enum { ++ /* Unknown or unset - defaults to BT601 interstitial */ ++ VC_IMAGE_YUVINFO_UNSPECIFIED = 0, ++ ++ /* colour-space conversions data [4 bits] */ ++ ++ /* ITU-R BT.601-5 [SDTV] (compatible with VideoCore-II) */ ++ VC_IMAGE_YUVINFO_CSC_ITUR_BT601 = 1, ++ /* ITU-R BT.709-3 [HDTV] */ ++ VC_IMAGE_YUVINFO_CSC_ITUR_BT709 = 2, ++ /* JPEG JFIF */ ++ VC_IMAGE_YUVINFO_CSC_JPEG_JFIF = 3, ++ /* Title 47 Code of Federal Regulations (2003) 73.682 (a) (20) */ ++ VC_IMAGE_YUVINFO_CSC_FCC = 4, ++ /* Society of Motion Picture and Television Engineers 240M (1999) */ ++ VC_IMAGE_YUVINFO_CSC_SMPTE_240M = 5, ++ /* ITU-R BT.470-2 System M */ ++ VC_IMAGE_YUVINFO_CSC_ITUR_BT470_2_M = 6, ++ /* ITU-R BT.470-2 System B,G */ ++ VC_IMAGE_YUVINFO_CSC_ITUR_BT470_2_BG = 7, ++ /* JPEG JFIF, but with 16..255 luma */ ++ VC_IMAGE_YUVINFO_CSC_JPEG_JFIF_Y16_255 = 8, ++ /* Rec 2020 */ ++ VC_IMAGE_YUVINFO_CSC_REC_2020 = 9, ++}; +-- +2.19.1 + diff --git a/root/target/linux/brcm2708/patches-4.19/0689-arm-dts-Add-coherent_pool-1M-to-Pi-4-bootargs.patch b/root/target/linux/brcm2708/patches-4.19/0689-arm-dts-Add-coherent_pool-1M-to-Pi-4-bootargs.patch new file mode 100644 index 00000000..5ea7f161 --- /dev/null +++ b/root/target/linux/brcm2708/patches-4.19/0689-arm-dts-Add-coherent_pool-1M-to-Pi-4-bootargs.patch @@ -0,0 +1,33 @@ +From dbb5d678f6a7c50d4026facf98b46c36555da084 Mon Sep 17 00:00:00 2001 +From: Phil Elwell +Date: Tue, 2 Jul 2019 17:13:05 +0100 +Subject: [PATCH 689/692] arm: dts: Add coherent_pool=1M to Pi 4 bootargs + +Downstream Raspberry Pi dts files add "coherent_pool=1M" to the kernel +command line to aid the dwc_otg driver, but this excluded Pi 4 which +uses a new XCHI interface instead. UAS also benefits from a larger +coherent_pool value, so replicate the addition in bcm2711-rpi-4-b.dts. + +See: https://github.com/raspberrypi/linux/pull/3040 + +Signed-off-by: Phil Elwell +--- + arch/arm/boot/dts/bcm2711-rpi-4-b.dts | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +index 5addb6130fa7..9b5c4f8a4d17 100644 +--- a/arch/arm/boot/dts/bcm2711-rpi-4-b.dts ++++ b/arch/arm/boot/dts/bcm2711-rpi-4-b.dts +@@ -14,7 +14,7 @@ + }; + + chosen { +- bootargs = "8250.nr_uarts=1 cma=64M"; ++ bootargs = "coherent_pool=1M 8250.nr_uarts=1 cma=64M"; + }; + + aliases { +-- +2.19.1 +