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

MIPS: Add support for Mobileye EyeQ5

Introduce support for the MIPS based Mobileye EyeQ5 SoCs.

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
101bd58f 80f2e4cd

+234
+1
arch/mips/Kbuild.platforms
··· 17 17 platform-$(CONFIG_MACH_LOONGSON32) += loongson32/ 18 18 platform-$(CONFIG_MACH_LOONGSON64) += loongson64/ 19 19 platform-$(CONFIG_MIPS_MALTA) += mti-malta/ 20 + platform-$(CONFIG_MACH_EYEQ5) += mobileye/ 20 21 platform-$(CONFIG_MACH_NINTENDO64) += n64/ 21 22 platform-$(CONFIG_PIC32MZDA) += pic32/ 22 23 platform-$(CONFIG_RALINK) += ralink/
+53
arch/mips/Kconfig
··· 571 571 Microchip PIC32 is a family of general-purpose 32 bit MIPS core 572 572 microcontrollers. 573 573 574 + config MACH_EYEQ5 575 + bool "Mobileye EyeQ5 SoC" 576 + select MACH_GENERIC_CORE 577 + select ARM_AMBA 578 + select PHYSICAL_START_BOOL 579 + select ARCH_SPARSEMEM_DEFAULT if 64BIT 580 + select BOOT_RAW 581 + select BUILTIN_DTB 582 + select CEVT_R4K 583 + select CLKSRC_MIPS_GIC 584 + select COMMON_CLK 585 + select CPU_MIPSR2_IRQ_EI 586 + select CPU_MIPSR2_IRQ_VI 587 + select CSRC_R4K 588 + select DMA_NONCOHERENT 589 + select HAVE_PCI 590 + select IRQ_MIPS_CPU 591 + select MIPS_AUTO_PFN_OFFSET 592 + select MIPS_CPU_SCACHE 593 + select MIPS_GIC 594 + select MIPS_L1_CACHE_SHIFT_7 595 + select PCI_DRIVERS_GENERIC 596 + select SMP_UP if SMP 597 + select SWAP_IO_SPACE 598 + select SYS_HAS_CPU_MIPS64_R6 599 + select SYS_SUPPORTS_64BIT_KERNEL 600 + select SYS_SUPPORTS_HIGHMEM 601 + select SYS_SUPPORTS_LITTLE_ENDIAN 602 + select SYS_SUPPORTS_MIPS_CPS 603 + select SYS_SUPPORTS_RELOCATABLE 604 + select SYS_SUPPORTS_ZBOOT 605 + select UHI_BOOT 606 + select USB_EHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN 607 + select USB_EHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN 608 + select USB_OHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN 609 + select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN 610 + select USB_UHCI_BIG_ENDIAN_DESC if CPU_BIG_ENDIAN 611 + select USB_UHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN 612 + select USE_OF 613 + help 614 + Select this to build a kernel supporting EyeQ5 SoC from Mobileye. 615 + 616 + bool 617 + 618 + config FIT_IMAGE_FDT_EPM5 619 + bool "Include FDT for Mobileye EyeQ5 development platforms" 620 + depends on MACH_EYEQ5 621 + default n 622 + help 623 + Enable this to include the FDT for the EyeQ5 development platforms 624 + from Mobileye in the FIT kernel image. 625 + This requires u-boot on the platform. 626 + 574 627 config MACH_NINTENDO64 575 628 bool "Nintendo 64 console" 576 629 select CEVT_R4K
+108
arch/mips/configs/eyeq5_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_MACH_EYEQ5=y 23 + CONFIG_FIT_IMAGE_FDT_EPM5=y 24 + CONFIG_PAGE_SIZE_16KB=y 25 + CONFIG_MIPS_CPS=y 26 + CONFIG_CPU_HAS_MSA=y 27 + CONFIG_NR_CPUS=16 28 + CONFIG_MIPS_RAW_APPENDED_DTB=y 29 + CONFIG_JUMP_LABEL=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_PTP_1588_CLOCK is not set 68 + CONFIG_PINCTRL=y 69 + CONFIG_MFD_SYSCON=y 70 + CONFIG_HID_A4TECH=y 71 + CONFIG_HID_BELKIN=y 72 + CONFIG_HID_CHERRY=y 73 + CONFIG_HID_CYPRESS=y 74 + CONFIG_HID_EZKEY=y 75 + CONFIG_HID_ITE=y 76 + CONFIG_HID_KENSINGTON=y 77 + CONFIG_HID_REDRAGON=y 78 + CONFIG_HID_MICROSOFT=y 79 + CONFIG_HID_MONTEREY=y 80 + CONFIG_MMC=y 81 + CONFIG_MMC_SDHCI=y 82 + # CONFIG_IOMMU_SUPPORT is not set 83 + CONFIG_RESET_CONTROLLER=y 84 + # CONFIG_NVMEM is not set 85 + CONFIG_EXT4_FS=y 86 + CONFIG_EXT4_FS_POSIX_ACL=y 87 + CONFIG_EXT4_FS_SECURITY=y 88 + CONFIG_FS_ENCRYPTION=y 89 + CONFIG_FUSE_FS=y 90 + CONFIG_CUSE=y 91 + CONFIG_MSDOS_FS=y 92 + CONFIG_VFAT_FS=y 93 + CONFIG_TMPFS=y 94 + CONFIG_TMPFS_POSIX_ACL=y 95 + CONFIG_UBIFS_FS=y 96 + CONFIG_NFS_FS=y 97 + CONFIG_NFS_V3_ACL=y 98 + CONFIG_NFS_V4=y 99 + CONFIG_NFS_V4_1=y 100 + CONFIG_NFS_V4_2=y 101 + CONFIG_ROOT_NFS=y 102 + CONFIG_CRYPTO_CRC32_MIPS=y 103 + CONFIG_FRAME_WARN=1024 104 + CONFIG_DEBUG_FS=y 105 + # CONFIG_RCU_TRACE is not set 106 + # CONFIG_FTRACE is not set 107 + CONFIG_CMDLINE_BOOL=y 108 + CONFIG_CMDLINE="earlycon"
+1
arch/mips/mobileye/Makefile
··· 1 + # SPDX-License-Identifier: GPL-2.0-or-later
+15
arch/mips/mobileye/Platform
··· 1 + # 2 + # Copyright (C) 2016 Imagination Technologies 3 + # Author: Paul Burton <paul.burton@mips.com> 4 + # 5 + # This program is free software; you can redistribute it and/or modify it 6 + # under the terms of the GNU General Public License as published by the 7 + # Free Software Foundation; either version 2 of the License, or (at your 8 + # option) any later version. 9 + # 10 + 11 + load-$(CONFIG_MACH_EYEQ5) = 0xa800000808000000 12 + all-$(CONFIG_MACH_EYEQ5) += vmlinux.gz.itb 13 + 14 + its-y := vmlinux.its.S 15 + its-$(CONFIG_FIT_IMAGE_FDT_EPM5) += board-epm5.its.S
+24
arch/mips/mobileye/board-epm5.its.S
··· 1 + /* SPDX-License-Identifier: (GPL-2.0 OR MIT) */ 2 + / { 3 + images { 4 + fdt-mobileye-epm5 { 5 + description = "Mobileeye MP5 Device Tree"; 6 + data = /incbin/("boot/dts/mobileye/eyeq5-epm5.dtb"); 7 + type = "flat_dt"; 8 + arch = "mips"; 9 + compression = "none"; 10 + hash { 11 + algo = "sha1"; 12 + }; 13 + }; 14 + }; 15 + 16 + configurations { 17 + default = "conf-1"; 18 + conf-1 { 19 + description = "Mobileye EPM5 Linux kernel"; 20 + kernel = "kernel"; 21 + fdt = "fdt-mobileye-epm5"; 22 + }; 23 + }; 24 + };
+32
arch/mips/mobileye/vmlinux.its.S
··· 1 + /* SPDX-License-Identifier: GPL-2.0 */ 2 + /dts-v1/; 3 + 4 + / { 5 + description = KERNEL_NAME; 6 + #address-cells = <ADDR_CELLS>; 7 + 8 + images { 9 + kernel { 10 + description = KERNEL_NAME; 11 + data = /incbin/(VMLINUX_BINARY); 12 + type = "kernel"; 13 + arch = "mips"; 14 + os = "linux"; 15 + compression = VMLINUX_COMPRESSION; 16 + load = /bits/ ADDR_BITS <VMLINUX_LOAD_ADDRESS>; 17 + entry = /bits/ ADDR_BITS <VMLINUX_ENTRY_ADDRESS>; 18 + hash { 19 + algo = "sha1"; 20 + }; 21 + }; 22 + }; 23 + 24 + configurations { 25 + default = "conf-default"; 26 + 27 + conf-default { 28 + description = "Generic Linux kernel"; 29 + kernel = "kernel"; 30 + }; 31 + }; 32 + };