Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

MIPS: mobileye: Add EyeQ6H support

EyeQ6H (or “High”) is an other SoC from Mobileye still based on the
MIPS I6500 architecture as the EyeQ5. The 2 clusters of this SoC
contains 4 cores which are capable of running 4 threads. Besides this,
it features multiple controllers such as the classic UART, high speed
I2C, SPI, as well as CAN-FD, PCIe Gen4, Octal/Quad SPI Flash
interface, Gigabit Ethernet, MIPI CSI-2, MIPI DSI, and eMMC 5.1. It
also includes a Hardware Security Module, Functional Safety Hardware,
and video encoders and more.

This commit provides the infrastructure to build a kernel running on
EyeQ6H SoC. For now the support is limited and only one CPU core is
running.

Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>

authored by

Gregory CLEMENT and committed by
Thomas Bogendoerfer
fbe0fae6 12c03bd4

+146 -5
+1 -1
arch/mips/Kbuild.platforms
··· 8 8 platform-$(CONFIG_BCM63XX) += bcm63xx/ 9 9 platform-$(CONFIG_BMIPS_GENERIC) += bmips/ 10 10 platform-$(CONFIG_CAVIUM_OCTEON_SOC) += cavium-octeon/ 11 + platform-$(CONFIG_EYEQ) += mobileye/ 11 12 platform-$(CONFIG_MIPS_COBALT) += cobalt/ 12 13 platform-$(CONFIG_MACH_DECSTATION) += dec/ 13 14 platform-$(CONFIG_MIPS_GENERIC) += generic/ ··· 18 17 platform-$(CONFIG_MACH_LOONGSON32) += loongson32/ 19 18 platform-$(CONFIG_MACH_LOONGSON64) += loongson64/ 20 19 platform-$(CONFIG_MIPS_MALTA) += mti-malta/ 21 - platform-$(CONFIG_MACH_EYEQ5) += mobileye/ 22 20 platform-$(CONFIG_MACH_NINTENDO64) += n64/ 23 21 platform-$(CONFIG_PIC32MZDA) += pic32/ 24 22 platform-$(CONFIG_RALINK) += ralink/
+4 -3
arch/mips/Kconfig
··· 575 575 Microchip PIC32 is a family of general-purpose 32 bit MIPS core 576 576 microcontrollers. 577 577 578 - config MACH_EYEQ5 579 - bool "Mobileye EyeQ5 SoC" 578 + config EYEQ 579 + bool "Mobileye EyeQ SoC" 580 580 select MACH_GENERIC_CORE 581 581 select ARM_AMBA 582 582 select PHYSICAL_START_BOOL ··· 615 615 select USB_UHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN 616 616 select USE_OF 617 617 help 618 - Select this to build a kernel supporting EyeQ5 SoC from Mobileye. 618 + Select this to build a kernel supporting EyeQ SoC from Mobileye. 619 619 620 620 bool 621 621 ··· 1021 1021 source "arch/mips/ingenic/Kconfig" 1022 1022 source "arch/mips/jazz/Kconfig" 1023 1023 source "arch/mips/lantiq/Kconfig" 1024 + source "arch/mips/mobileye/Kconfig" 1024 1025 source "arch/mips/pic32/Kconfig" 1025 1026 source "arch/mips/ralink/Kconfig" 1026 1027 source "arch/mips/sgi-ip27/Kconfig"
+1 -1
arch/mips/boot/dts/Makefile
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 2 subdir-$(CONFIG_BMIPS_GENERIC) += brcm 3 3 subdir-$(CONFIG_CAVIUM_OCTEON_SOC) += cavium-octeon 4 + subdir-$(CONFIG_EYEQ) += mobileye 4 5 subdir-$(CONFIG_FIT_IMAGE_FDT_MARDUK) += img 5 6 subdir-$(CONFIG_FIT_IMAGE_FDT_BOSTON) += img 6 7 subdir-$(CONFIG_MACH_INGENIC) += ingenic ··· 9 8 subdir-$(CONFIG_MACH_LOONGSON64) += loongson 10 9 subdir-$(CONFIG_SOC_VCOREIII) += mscc 11 10 subdir-$(CONFIG_MIPS_MALTA) += mti 12 - subdir-$(CONFIG_MACH_EYEQ5) += mobileye 13 11 subdir-$(CONFIG_LEGACY_BOARD_SEAD3) += mti 14 12 subdir-$(CONFIG_FIT_IMAGE_FDT_NI169445) += ni 15 13 subdir-$(CONFIG_MACH_PIC32) += pic32
+1
arch/mips/boot/dts/mobileye/Makefile
··· 2 2 # Copyright 2023 Mobileye Vision Technologies Ltd. 3 3 4 4 dtb-$(CONFIG_MACH_EYEQ5) += eyeq5-epm5.dtb 5 + dtb-$(CONFIG_MACH_EYEQ6H) += eyeq6h-epm6.dtb
+1
arch/mips/configs/eyeq5_defconfig
··· 18 18 CONFIG_SCHED_AUTOGROUP=y 19 19 CONFIG_BLK_DEV_INITRD=y 20 20 CONFIG_EXPERT=y 21 + CONFIG_EYEQ=y 21 22 CONFIG_MACH_EYEQ5=y 22 23 CONFIG_FIT_IMAGE_FDT_EPM5=y 23 24 CONFIG_PAGE_SIZE_16KB=y
+111
arch/mips/configs/eyeq6_defconfig
··· 1 + CONFIG_SYSVIPC=y 2 + CONFIG_NO_HZ_IDLE=y 3 + CONFIG_HIGH_RES_TIMERS=y 4 + CONFIG_BPF_SYSCALL=y 5 + CONFIG_TASKSTATS=y 6 + CONFIG_IKCONFIG=y 7 + CONFIG_IKCONFIG_PROC=y 8 + CONFIG_MEMCG=y 9 + CONFIG_BLK_CGROUP=y 10 + CONFIG_CFS_BANDWIDTH=y 11 + CONFIG_RT_GROUP_SCHED=y 12 + CONFIG_CGROUP_PIDS=y 13 + CONFIG_CGROUP_FREEZER=y 14 + CONFIG_CPUSETS=y 15 + CONFIG_CGROUP_DEVICE=y 16 + CONFIG_CGROUP_CPUACCT=y 17 + CONFIG_NAMESPACES=y 18 + CONFIG_USER_NS=y 19 + CONFIG_SCHED_AUTOGROUP=y 20 + CONFIG_BLK_DEV_INITRD=y 21 + CONFIG_EXPERT=y 22 + CONFIG_EYEQ=y 23 + CONFIG_MACH_EYEQ6H=y 24 + CONFIG_MIPS_CPS=y 25 + CONFIG_CPU_HAS_MSA=y 26 + CONFIG_NR_CPUS=16 27 + CONFIG_MIPS_RAW_APPENDED_DTB=y 28 + CONFIG_JUMP_LABEL=y 29 + CONFIG_PAGE_SIZE_16KB=y 30 + CONFIG_COMPAT_32BIT_TIME=y 31 + CONFIG_MODULES=y 32 + CONFIG_MODULE_UNLOAD=y 33 + CONFIG_TRIM_UNUSED_KSYMS=y 34 + # CONFIG_COMPAT_BRK is not set 35 + CONFIG_SPARSEMEM_MANUAL=y 36 + CONFIG_USERFAULTFD=y 37 + CONFIG_NET=y 38 + CONFIG_PACKET=y 39 + CONFIG_UNIX=y 40 + CONFIG_NET_KEY=y 41 + CONFIG_INET=y 42 + CONFIG_IP_PNP=y 43 + CONFIG_IP_PNP_DHCP=y 44 + CONFIG_NETFILTER=y 45 + CONFIG_CAN=y 46 + CONFIG_PCI=y 47 + CONFIG_PCI_MSI=y 48 + CONFIG_PCI_DEBUG=y 49 + CONFIG_PCI_ENDPOINT=y 50 + CONFIG_DEVTMPFS=y 51 + CONFIG_DEVTMPFS_MOUNT=y 52 + CONFIG_CONNECTOR=y 53 + CONFIG_MTD=y 54 + CONFIG_MTD_UBI=y 55 + CONFIG_MTD_UBI_BLOCK=y 56 + CONFIG_SCSI=y 57 + CONFIG_NETDEVICES=y 58 + CONFIG_MACVLAN=y 59 + CONFIG_IPVLAN=y 60 + CONFIG_MACB=y 61 + CONFIG_MARVELL_PHY=y 62 + CONFIG_MICREL_PHY=y 63 + CONFIG_CAN_M_CAN=y 64 + CONFIG_SERIAL_AMBA_PL011=y 65 + CONFIG_SERIAL_AMBA_PL011_CONSOLE=y 66 + CONFIG_HW_RANDOM=y 67 + CONFIG_I2C=y 68 + CONFIG_I2C_CHARDEV=y 69 + # CONFIG_PTP_1588_CLOCK is not set 70 + CONFIG_PINCTRL=y 71 + CONFIG_PINCTRL_SINGLE=y 72 + CONFIG_MFD_SYSCON=y 73 + CONFIG_HID_A4TECH=y 74 + CONFIG_HID_BELKIN=y 75 + CONFIG_HID_CHERRY=y 76 + CONFIG_HID_CYPRESS=y 77 + CONFIG_HID_EZKEY=y 78 + CONFIG_HID_ITE=y 79 + CONFIG_HID_KENSINGTON=y 80 + CONFIG_HID_REDRAGON=y 81 + CONFIG_HID_MICROSOFT=y 82 + CONFIG_HID_MONTEREY=y 83 + CONFIG_MMC=y 84 + CONFIG_MMC_SDHCI=y 85 + # CONFIG_IOMMU_SUPPORT is not set 86 + CONFIG_RESET_CONTROLLER=y 87 + # CONFIG_NVMEM is not set 88 + CONFIG_EXT4_FS=y 89 + CONFIG_EXT4_FS_POSIX_ACL=y 90 + CONFIG_EXT4_FS_SECURITY=y 91 + CONFIG_FS_ENCRYPTION=y 92 + CONFIG_FUSE_FS=y 93 + CONFIG_CUSE=y 94 + CONFIG_MSDOS_FS=y 95 + CONFIG_VFAT_FS=y 96 + CONFIG_TMPFS=y 97 + CONFIG_TMPFS_POSIX_ACL=y 98 + CONFIG_UBIFS_FS=y 99 + CONFIG_NFS_FS=y 100 + CONFIG_NFS_V3_ACL=y 101 + CONFIG_NFS_V4=y 102 + CONFIG_NFS_V4_1=y 103 + CONFIG_NFS_V4_2=y 104 + CONFIG_ROOT_NFS=y 105 + CONFIG_CRYPTO_CRC32_MIPS=y 106 + CONFIG_FRAME_WARN=1024 107 + CONFIG_DEBUG_FS=y 108 + # CONFIG_RCU_TRACE is not set 109 + # CONFIG_FTRACE is not set 110 + CONFIG_CMDLINE_BOOL=y 111 + CONFIG_CMDLINE="earlycon"
+26
arch/mips/mobileye/Kconfig
··· 1 + # SPDX-License-Identifier: GPL-2.0 2 + if EYEQ 3 + 4 + choice 5 + prompt "Mobileye EyeQ SoC selection" 6 + default MACH_EYEQ5 7 + help 8 + Select Mobileye EyeQ MIPS SoC type. 9 + 10 + config MACH_EYEQ5 11 + bool "Mobileye EyeQ5 SoC" 12 + 13 + config MACH_EYEQ6H 14 + bool "Mobileye EyeQ6H SoC" 15 + endchoice 16 + 17 + config FIT_IMAGE_FDT_EPM5 18 + bool "Include FDT for Mobileye EyeQ5 development platforms" 19 + depends on MACH_EYEQ5 20 + default n 21 + help 22 + Enable this to include the FDT for the EyeQ5 development platforms 23 + from Mobileye in the FIT kernel image. 24 + This requires u-boot on the platform. 25 + 26 + endif
+1
arch/mips/mobileye/Platform
··· 9 9 # 10 10 11 11 load-$(CONFIG_MACH_EYEQ5) = 0xa800000808000000 12 + load-$(CONFIG_MACH_EYEQ6H) = 0xa800000100800000 12 13 all-$(CONFIG_MACH_EYEQ5) += vmlinux.gz.itb 13 14 14 15 its-y := vmlinux.its.S