From nobody Wed Dec 17 00:14:06 2025 Received: from relay5-d.mail.gandi.net (relay5-d.mail.gandi.net [217.70.183.197]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 038481353E6; Fri, 16 Feb 2024 17:42:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.197 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708105366; cv=none; b=k1ZKTIt4qhSs9o4YxwuIXtrQ0HnoFVkCZU5NserfXm7N+MGnxS2x7CTlpI3mry91mKrZUtLdO0/Stj81Nvit6VmAYSQrW+RlXAJIAlH+JfsxlkMKv9iEXkLeoNlBB/ARWlImTgguAb1dHjbO4aH4NTuwFfsndgjL8bg3tJ7j6Uw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708105366; c=relaxed/simple; bh=PpsyNMdLxEOIEfnbTp+pBvpidipRHF9L8aBJTqmqb/w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tvYf6nw3Jyey8eJr3PxaDtbhor9Tqnc72WizSyImgc9BhtuWA7eO5Fai+xVQKBclDJlPyUclzXimM6O3SxVm31UTEnsgM0j8HW/uvgWA3YElYS1oeJwEGwrjUlmrp2tj/tirJCZ8/dCW5Bl+DaZWdAhCm1nWZTPXwdrAGAURFBU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=SsuA7Nva; arc=none smtp.client-ip=217.70.183.197 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="SsuA7Nva" Received: by mail.gandi.net (Postfix) with ESMTPSA id 16DA31C0006; Fri, 16 Feb 2024 17:42:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1708105362; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=b/xJ16yj8WxYIe9GyjcF+QVWZQeGfsPuTQ2nq8RbNuU=; b=SsuA7NvamiWZNQcZnchgBOayZIqArrvJQxQUmGOYgPQPL/SXbGEXpKSj3n3hhFQ7fFK4o2 +RZwJOnKF/9o6+XvH29c6gLl6HDcaSDCw1/IqZ5/k0WkG0ypY/oV2eCItpyDAVtQOYInZM gvlNCiL3rtSFEUSCDQaM6bq3Ygj3EPyHO+qjgkjBQYdxPBi1umWiSc3ZAnk7+gbwXb29lj eG62/HJhrsDWAIQ1VT3xajkm+9UhjGRf7kYlzzWDaJ0yi6BKi/fqRocYBCphafmlKz4nJd Wb+JUuhQZ8kCZcvsVfuBzZPU40CY22OkAw/Exef/HHQYXVpiLWXwwRfySRiEfA== From: Gregory CLEMENT To: Paul Burton , Thomas Bogendoerfer , linux-mips@vger.kernel.org, Jiaxun Yang , Rob Herring , Krzysztof Kozlowski , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Vladimir Kondratiev , Tawfik Bayouk , Alexandre Belloni , =?UTF-8?q?Th=C3=A9o=20Lebrun?= , Thomas Petazzoni , Gregory CLEMENT Subject: [PATCH v8 13/14] MIPS: Add support for Mobileye EyeQ5 Date: Fri, 16 Feb 2024 18:42:22 +0100 Message-ID: <20240216174227.409400-14-gregory.clement@bootlin.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240216174227.409400-1-gregory.clement@bootlin.com> References: <20240216174227.409400-1-gregory.clement@bootlin.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-GND-Sasl: gregory.clement@bootlin.com Content-Type: text/plain; charset="utf-8" Introduce support for the MIPS based Mobileye EyeQ5 SoCs. Reviewed-by: Jiaxun Yang Signed-off-by: Gregory CLEMENT --- arch/mips/Kbuild.platforms | 1 + arch/mips/Kconfig | 54 ++++++++++++++ arch/mips/configs/eyeq5_defconfig | 108 ++++++++++++++++++++++++++++ arch/mips/mobileye/Makefile | 1 + arch/mips/mobileye/Platform | 16 +++++ arch/mips/mobileye/board-epm5.its.S | 24 +++++++ arch/mips/mobileye/vmlinux.its.S | 32 +++++++++ 7 files changed, 236 insertions(+) create mode 100644 arch/mips/configs/eyeq5_defconfig create mode 100644 arch/mips/mobileye/Makefile create mode 100644 arch/mips/mobileye/Platform create mode 100644 arch/mips/mobileye/board-epm5.its.S create mode 100644 arch/mips/mobileye/vmlinux.its.S diff --git a/arch/mips/Kbuild.platforms b/arch/mips/Kbuild.platforms index a2311c4bce6a6..5c145b67d3bf4 100644 --- a/arch/mips/Kbuild.platforms +++ b/arch/mips/Kbuild.platforms @@ -17,6 +17,7 @@ platform-$(CONFIG_MACH_LOONGSON2EF) +=3D loongson2ef/ platform-$(CONFIG_MACH_LOONGSON32) +=3D loongson32/ platform-$(CONFIG_MACH_LOONGSON64) +=3D loongson64/ platform-$(CONFIG_MIPS_MALTA) +=3D mti-malta/ +platform-$(CONFIG_MACH_EYEQ5) +=3D mobileye/ platform-$(CONFIG_MACH_NINTENDO64) +=3D n64/ platform-$(CONFIG_PIC32MZDA) +=3D pic32/ platform-$(CONFIG_RALINK) +=3D ralink/ diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 5549d26448941..a40eb9ecb50d5 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -569,6 +569,60 @@ config MACH_PIC32 Microchip PIC32 is a family of general-purpose 32 bit MIPS core microcontrollers. =20 +config MACH_EYEQ5 + bool "Mobileye EyeQ5 SoC" + select MACH_GENERIC_CORE + select ARM_AMBA + select PHYSICAL_START_BOOL + select ARCH_SPARSEMEM_DEFAULT if 64BIT + select BOOT_RAW + select BUILTIN_DTB + select CEVT_R4K + select CLKSRC_MIPS_GIC + select COMMON_CLK + select CPU_MIPSR2_IRQ_EI + select CPU_MIPSR2_IRQ_VI + select CSRC_R4K + select DMA_NONCOHERENT + select HAVE_PCI + select IRQ_MIPS_CPU + select MIPS_AUTO_PFN_OFFSET + select MIPS_CPU_SCACHE + select MIPS_GIC + select MIPS_L1_CACHE_SHIFT_7 + select PCI_DRIVERS_GENERIC + select SMP_UP if SMP + select SWAP_IO_SPACE + select SYS_HAS_CPU_MIPS64_R6 + select SYS_SUPPORTS_64BIT_KERNEL + select SYS_SUPPORTS_HIGHMEM + select SYS_SUPPORTS_LITTLE_ENDIAN + select SYS_SUPPORTS_MIPS_CPS + select SYS_SUPPORTS_RELOCATABLE + select SYS_SUPPORTS_ZBOOT + select UHI_BOOT + select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN + select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN + select USB_OHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN + select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN + select USB_UHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN + select USB_UHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN + select USE_OF + help + Select this to build a kernel supporting EyeQ5 SoC from Mobileye. + + bool + +config FIT_IMAGE_FDT_EPM5 + bool "Include FDT for Mobileye EyeQ5 development platforms" + depends on MACH_EYEQ5 + default n + help + Enable this to include the FDT for the EyeQ5 development platforms + from Mobileye in the FIT kernel image. + This requires u-boot on the platform. + + config MACH_NINTENDO64 bool "Nintendo 64 console" select CEVT_R4K diff --git a/arch/mips/configs/eyeq5_defconfig b/arch/mips/configs/eyeq5_de= fconfig new file mode 100644 index 0000000000000..c35c29a4d4795 --- /dev/null +++ b/arch/mips/configs/eyeq5_defconfig @@ -0,0 +1,108 @@ +CONFIG_SYSVIPC=3Dy +CONFIG_NO_HZ_IDLE=3Dy +CONFIG_HIGH_RES_TIMERS=3Dy +CONFIG_BPF_SYSCALL=3Dy +CONFIG_TASKSTATS=3Dy +CONFIG_IKCONFIG=3Dy +CONFIG_IKCONFIG_PROC=3Dy +CONFIG_MEMCG=3Dy +CONFIG_BLK_CGROUP=3Dy +CONFIG_CFS_BANDWIDTH=3Dy +CONFIG_RT_GROUP_SCHED=3Dy +CONFIG_CGROUP_PIDS=3Dy +CONFIG_CGROUP_FREEZER=3Dy +CONFIG_CPUSETS=3Dy +CONFIG_CGROUP_DEVICE=3Dy +CONFIG_CGROUP_CPUACCT=3Dy +CONFIG_NAMESPACES=3Dy +CONFIG_USER_NS=3Dy +CONFIG_SCHED_AUTOGROUP=3Dy +CONFIG_BLK_DEV_INITRD=3Dy +CONFIG_EXPERT=3Dy +CONFIG_MACH_EYEQ5=3Dy +CONFIG_FIT_IMAGE_FDT_EPM5=3Dy +CONFIG_PAGE_SIZE_16KB=3Dy +CONFIG_MIPS_CPS=3Dy +CONFIG_CPU_HAS_MSA=3Dy +CONFIG_NR_CPUS=3D16 +CONFIG_MIPS_RAW_APPENDED_DTB=3Dy +CONFIG_JUMP_LABEL=3Dy +CONFIG_COMPAT_32BIT_TIME=3Dy +CONFIG_MODULES=3Dy +CONFIG_MODULE_UNLOAD=3Dy +CONFIG_TRIM_UNUSED_KSYMS=3Dy +# CONFIG_COMPAT_BRK is not set +CONFIG_SPARSEMEM_MANUAL=3Dy +CONFIG_USERFAULTFD=3Dy +CONFIG_NET=3Dy +CONFIG_PACKET=3Dy +CONFIG_UNIX=3Dy +CONFIG_NET_KEY=3Dy +CONFIG_INET=3Dy +CONFIG_IP_PNP=3Dy +CONFIG_IP_PNP_DHCP=3Dy +CONFIG_NETFILTER=3Dy +CONFIG_CAN=3Dy +CONFIG_PCI=3Dy +CONFIG_PCI_MSI=3Dy +CONFIG_PCI_DEBUG=3Dy +CONFIG_PCI_ENDPOINT=3Dy +CONFIG_DEVTMPFS=3Dy +CONFIG_DEVTMPFS_MOUNT=3Dy +CONFIG_CONNECTOR=3Dy +CONFIG_MTD=3Dy +CONFIG_MTD_UBI=3Dy +CONFIG_MTD_UBI_BLOCK=3Dy +CONFIG_SCSI=3Dy +CONFIG_NETDEVICES=3Dy +CONFIG_MACVLAN=3Dy +CONFIG_IPVLAN=3Dy +CONFIG_MACB=3Dy +CONFIG_MARVELL_PHY=3Dy +CONFIG_MICREL_PHY=3Dy +CONFIG_CAN_M_CAN=3Dy +CONFIG_SERIAL_AMBA_PL011=3Dy +CONFIG_SERIAL_AMBA_PL011_CONSOLE=3Dy +CONFIG_HW_RANDOM=3Dy +# CONFIG_PTP_1588_CLOCK is not set +CONFIG_PINCTRL=3Dy +CONFIG_MFD_SYSCON=3Dy +CONFIG_HID_A4TECH=3Dy +CONFIG_HID_BELKIN=3Dy +CONFIG_HID_CHERRY=3Dy +CONFIG_HID_CYPRESS=3Dy +CONFIG_HID_EZKEY=3Dy +CONFIG_HID_ITE=3Dy +CONFIG_HID_KENSINGTON=3Dy +CONFIG_HID_REDRAGON=3Dy +CONFIG_HID_MICROSOFT=3Dy +CONFIG_HID_MONTEREY=3Dy +CONFIG_MMC=3Dy +CONFIG_MMC_SDHCI=3Dy +# CONFIG_IOMMU_SUPPORT is not set +CONFIG_RESET_CONTROLLER=3Dy +# CONFIG_NVMEM is not set +CONFIG_EXT4_FS=3Dy +CONFIG_EXT4_FS_POSIX_ACL=3Dy +CONFIG_EXT4_FS_SECURITY=3Dy +CONFIG_FS_ENCRYPTION=3Dy +CONFIG_FUSE_FS=3Dy +CONFIG_CUSE=3Dy +CONFIG_MSDOS_FS=3Dy +CONFIG_VFAT_FS=3Dy +CONFIG_TMPFS=3Dy +CONFIG_TMPFS_POSIX_ACL=3Dy +CONFIG_UBIFS_FS=3Dy +CONFIG_NFS_FS=3Dy +CONFIG_NFS_V3_ACL=3Dy +CONFIG_NFS_V4=3Dy +CONFIG_NFS_V4_1=3Dy +CONFIG_NFS_V4_2=3Dy +CONFIG_ROOT_NFS=3Dy +CONFIG_CRYPTO_CRC32_MIPS=3Dy +CONFIG_FRAME_WARN=3D1024 +CONFIG_DEBUG_FS=3Dy +# CONFIG_RCU_TRACE is not set +# CONFIG_FTRACE is not set +CONFIG_CMDLINE_BOOL=3Dy +CONFIG_CMDLINE=3D"earlycon" diff --git a/arch/mips/mobileye/Makefile b/arch/mips/mobileye/Makefile new file mode 100644 index 0000000000000..315c06b689cfb --- /dev/null +++ b/arch/mips/mobileye/Makefile @@ -0,0 +1 @@ +# SPDX-License-Identifier: GPL-2.0-or-later diff --git a/arch/mips/mobileye/Platform b/arch/mips/mobileye/Platform new file mode 100644 index 0000000000000..43b6f4644592f --- /dev/null +++ b/arch/mips/mobileye/Platform @@ -0,0 +1,16 @@ +# +# Copyright (C) 2016 Imagination Technologies +# Author: Paul Burton +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# + +load-$(CONFIG_MACH_EYEQ5) =3D 0xa800000808000000 +all-$(CONFIG_MACH_EYEQ5) +=3D vmlinux.gz.itb + +its-y :=3D vmlinux.its.S +its-$(CONFIG_FIT_IMAGE_FDT_EPM5) +=3D board-epm5.its.S + diff --git a/arch/mips/mobileye/board-epm5.its.S b/arch/mips/mobileye/board= -epm5.its.S new file mode 100644 index 0000000000000..08e8c4f183d63 --- /dev/null +++ b/arch/mips/mobileye/board-epm5.its.S @@ -0,0 +1,24 @@ +/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */ +/ { + images { + fdt-mobileye-epm5 { + description =3D "Mobileeye MP5 Device Tree"; + data =3D /incbin/("boot/dts/mobileye/eyeq5-epm5.dtb"); + type =3D "flat_dt"; + arch =3D "mips"; + compression =3D "none"; + hash { + algo =3D "sha1"; + }; + }; + }; + + configurations { + default =3D "conf-1"; + conf-1 { + description =3D "Mobileye EPM5 Linux kernel"; + kernel =3D "kernel"; + fdt =3D "fdt-mobileye-epm5"; + }; + }; +}; diff --git a/arch/mips/mobileye/vmlinux.its.S b/arch/mips/mobileye/vmlinux.= its.S new file mode 100644 index 0000000000000..3e254676540f4 --- /dev/null +++ b/arch/mips/mobileye/vmlinux.its.S @@ -0,0 +1,32 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/dts-v1/; + +/ { + description =3D KERNEL_NAME; + #address-cells =3D ; + + images { + kernel { + description =3D KERNEL_NAME; + data =3D /incbin/(VMLINUX_BINARY); + type =3D "kernel"; + arch =3D "mips"; + os =3D "linux"; + compression =3D VMLINUX_COMPRESSION; + load =3D /bits/ ADDR_BITS ; + entry =3D /bits/ ADDR_BITS ; + hash { + algo =3D "sha1"; + }; + }; + }; + + configurations { + default =3D "conf-default"; + + conf-default { + description =3D "Generic Linux kernel"; + kernel =3D "kernel"; + }; + }; +}; --=20 2.43.0