mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jiaxun Yang <jiaxun.yang@flygoat.com>
To: Gregory CLEMENT <gregory.clement@bootlin.com>,
	Paul Burton <paulburton@kernel.org>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	linux-mips@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: "Vladimir Kondratiev" <vladimir.kondratiev@mobileye.com>,
	"Tawfik Bayouk" <tawfik.bayouk@mobileye.com>,
	"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	"Théo Lebrun" <theo.lebrun@bootlin.com>,
	"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>
Subject: Re: [PATCH v6 14/15] MIPS: Add support for Mobileye EyeQ5
Date: Fri, 19 Jan 2024 09:56:31 +0000	[thread overview]
Message-ID: <08c15a99-b158-4a69-af63-0bbbb0961da7@flygoat.com> (raw)
In-Reply-To: <20240118155252.397947-15-gregory.clement@bootlin.com>



在 2024/1/18 15:52, Gregory CLEMENT 写道:
> Introduce support for the MIPS based Mobileye EyeQ5 SoCs.
>
> Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>

Hi Gregory,

Thanks for your reversion!
See my comments below.
> ---
>   arch/mips/Kbuild.platforms          |   1 +
>   arch/mips/Kconfig                   |  62 ++++++++++++++++
>   arch/mips/configs/eyeq5_defconfig   | 109 ++++++++++++++++++++++++++++
>   arch/mips/mobileye/Kconfig          |  12 +++
>   arch/mips/mobileye/Platform         |  16 ++++
>   arch/mips/mobileye/board-epm5.its.S |  24 ++++++
>   arch/mips/mobileye/vmlinux.its.S    |  32 ++++++++
>   7 files changed, 256 insertions(+)
>   create mode 100644 arch/mips/configs/eyeq5_defconfig
>   create mode 100644 arch/mips/mobileye/Kconfig
>   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)	+= loongson2ef/
>   platform-$(CONFIG_MACH_LOONGSON32)	+= loongson32/
>   platform-$(CONFIG_MACH_LOONGSON64)	+= loongson64/
>   platform-$(CONFIG_MIPS_MALTA)		+= mti-malta/
> +platform-$(CONFIG_MACH_EYEQ5)		+= mobileye/
>   platform-$(CONFIG_MACH_NINTENDO64)	+= n64/
>   platform-$(CONFIG_PIC32MZDA)		+= pic32/
>   platform-$(CONFIG_RALINK)		+= ralink/
> diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
> index 5549d26448941..e4f624adffee8 100644
> --- a/arch/mips/Kconfig
> +++ b/arch/mips/Kconfig
> @@ -569,6 +569,68 @@ config MACH_PIC32
>   	  Microchip PIC32 is a family of general-purpose 32 bit MIPS core
>   	  microcontrollers.
>   
> +config MACH_EYEQ5
> +	bool "Mobileye EyeQ5 SoC"
> +	select MACH_GENERIC_CORE
> +	select ARM_AMBA
> +	select WEAK_ORDERING
> +	select WEAK_REORDERING_BEYOND_LLSC
^ Those should be selected for MIPS_CPS, as I mentioned before.
> +	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_32BIT_KERNEL
^ I don't think you can build 32bit kernel due to your address space 
limitation.
> +	select SYS_SUPPORTS_64BIT_KERNEL
> +	select SYS_SUPPORTS_BIG_ENDIAN
^ Does it support big endian mode?
For I6500 endian pin is driven by external circuit. You shouldn't select 
it unless you have
physical endian pin or reset and set register at SoC level.
> +	select SYS_SUPPORTS_HIGHMEM
> +	select SYS_SUPPORTS_LITTLE_ENDIAN
> +	select SYS_SUPPORTS_MICROMIPS
> +	select SYS_SUPPORTS_MIPS16
^ Both MICROMIPS and MIPS16 are not available on MIPS R6.
> +	select SYS_SUPPORTS_MIPS_CPS
> +	select SYS_SUPPORTS_MULTITHREADING
^ MT is not possible on R6, we do have VP on R6.
> +	select SYS_SUPPORTS_RELOCATABLE
> +	select SYS_SUPPORTS_SMARTMIPS
^ SMARTMIPS is deprecated on R6.
> +	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_defconfig
> new file mode 100644
> index 0000000000000..653fb11b1580d
> --- /dev/null
> +++ b/arch/mips/configs/eyeq5_defconfig
> @@ -0,0 +1,109 @@
> +CONFIG_SYSVIPC=y
> +CONFIG_NO_HZ_IDLE=y
> +CONFIG_HIGH_RES_TIMERS=y
> +CONFIG_BPF_SYSCALL=y
> +CONFIG_TASKSTATS=y
> +CONFIG_IKCONFIG=y
> +CONFIG_IKCONFIG_PROC=y
> +CONFIG_MEMCG=y
> +CONFIG_BLK_CGROUP=y
> +CONFIG_CFS_BANDWIDTH=y
> +CONFIG_RT_GROUP_SCHED=y
> +CONFIG_CGROUP_PIDS=y
> +CONFIG_CGROUP_FREEZER=y
> +CONFIG_CPUSETS=y
> +CONFIG_CGROUP_DEVICE=y
> +CONFIG_CGROUP_CPUACCT=y
> +CONFIG_NAMESPACES=y
> +CONFIG_USER_NS=y
> +CONFIG_SCHED_AUTOGROUP=y
> +CONFIG_BLK_DEV_INITRD=y
> +CONFIG_EXPERT=y
> +CONFIG_MACH_EYEQ5=y
> +CONFIG_FIT_IMAGE_FDT_EPM5=y
> +CONFIG_CPU_LITTLE_ENDIAN=y
> +CONFIG_64BIT=y
> +CONFIG_PAGE_SIZE_16KB=y
> +CONFIG_MIPS_CPS=y
> +CONFIG_CPU_HAS_MSA=y
> +CONFIG_NR_CPUS=16
> +CONFIG_JUMP_LABEL=y
> +CONFIG_COMPAT_32BIT_TIME=y
> +CONFIG_MODULES=y
> +CONFIG_MODULE_UNLOAD=y
> +CONFIG_TRIM_UNUSED_KSYMS=y
> +# CONFIG_COMPAT_BRK is not set
> +CONFIG_SPARSEMEM_MANUAL=y
> +CONFIG_USERFAULTFD=y
> +CONFIG_NET=y
> +CONFIG_PACKET=y
> +CONFIG_UNIX=y
> +CONFIG_NET_KEY=y
> +CONFIG_INET=y
> +CONFIG_IP_PNP=y
> +CONFIG_IP_PNP_DHCP=y
> +CONFIG_NETFILTER=y
> +CONFIG_CAN=y
> +CONFIG_PCI=y
> +CONFIG_PCI_MSI=y
> +CONFIG_PCI_DEBUG=y
> +CONFIG_PCI_ENDPOINT=y
> +CONFIG_DEVTMPFS=y
> +CONFIG_DEVTMPFS_MOUNT=y
> +CONFIG_CONNECTOR=y
> +CONFIG_MTD=y
> +CONFIG_MTD_UBI=y
> +CONFIG_MTD_UBI_BLOCK=y
> +CONFIG_SCSI=y
> +CONFIG_NETDEVICES=y
> +CONFIG_MACVLAN=y
> +CONFIG_IPVLAN=y
> +CONFIG_MACB=y
> +CONFIG_MARVELL_PHY=y
> +CONFIG_MICREL_PHY=y
> +CONFIG_CAN_M_CAN=y
> +CONFIG_SERIAL_AMBA_PL011=y
> +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
> +CONFIG_HW_RANDOM=y
> +# CONFIG_PTP_1588_CLOCK is not set
> +CONFIG_PINCTRL=y
> +CONFIG_MFD_SYSCON=y
> +CONFIG_HID_A4TECH=y
> +CONFIG_HID_BELKIN=y
> +CONFIG_HID_CHERRY=y
> +CONFIG_HID_CYPRESS=y
> +CONFIG_HID_EZKEY=y
> +CONFIG_HID_ITE=y
> +CONFIG_HID_KENSINGTON=y
> +CONFIG_HID_REDRAGON=y
> +CONFIG_HID_MICROSOFT=y
> +CONFIG_HID_MONTEREY=y
> +CONFIG_MMC=y
> +CONFIG_MMC_SDHCI=y
> +# CONFIG_IOMMU_SUPPORT is not set
> +CONFIG_RESET_CONTROLLER=y
> +# CONFIG_NVMEM is not set
> +CONFIG_EXT4_FS=y
> +CONFIG_EXT4_FS_POSIX_ACL=y
> +CONFIG_EXT4_FS_SECURITY=y
> +CONFIG_FS_ENCRYPTION=y
> +CONFIG_FUSE_FS=y
> +CONFIG_CUSE=y
> +CONFIG_MSDOS_FS=y
> +CONFIG_VFAT_FS=y
> +CONFIG_TMPFS=y
> +CONFIG_TMPFS_POSIX_ACL=y
> +CONFIG_UBIFS_FS=y
> +CONFIG_NFS_FS=y
> +CONFIG_NFS_V3_ACL=y
> +CONFIG_NFS_V4=y
> +CONFIG_NFS_V4_1=y
> +CONFIG_NFS_V4_2=y
> +CONFIG_ROOT_NFS=y
> +CONFIG_CRYPTO_CRC32_MIPS=y
> +CONFIG_FRAME_WARN=1024
> +CONFIG_DEBUG_FS=y
> +# CONFIG_RCU_TRACE is not set
> +# CONFIG_FTRACE is not set
> +CONFIG_CMDLINE_BOOL=y
> +CONFIG_CMDLINE="earlycon"
^ Better not overriding cmdline here, you can leave it in chosen node.

> diff --git a/arch/mips/mobileye/Kconfig b/arch/mips/mobileye/Kconfig
> new file mode 100644
> index 0000000000000..781007542422d
> --- /dev/null
> +++ b/arch/mips/mobileye/Kconfig
> @@ -0,0 +1,12 @@
> +# SPDX-License-Identifier: GPL-2.0
> +if MACH_EYEQ5
> +
> +config BOARD_EYEQ5
> +	bool "Support EyeQ5 platform"
> +	select WEAK_ORDERING
> +	select WEAK_REORDERING_BEYOND_LLSC
> +	default n
> +	help
> +	  This enables support for EyeQ5 platform.
^ Do you need this board option, given that you can build a generic 
kernel for all
EyeQ5 systems?

Thanks
- Jiaxun
> +
> +endif
> 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 <paul.burton@mips.com>
> +#
> +# 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)	= 0xa800000808000000
> +all-$(CONFIG_MACH_EYEQ5)	+= vmlinux.gz.itb
> +
> +its-y					:= vmlinux.its.S
> +its-$(CONFIG_FIT_IMAGE_FDT_EPM5)	+= 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 = "Mobileeye MP5 Device Tree";
> +			data = /incbin/("boot/dts/mobileye/eyeq5-epm5.dtb");
> +			type = "flat_dt";
> +			arch = "mips";
> +			compression = "none";
> +			hash {
> +				algo = "sha1";
> +			};
> +		};
> +	};
> +
> +    configurations {
> +		default = "conf-1";
> +		conf-1 {
> +			description = "Mobileye EPM5 Linux kernel";
> +			kernel = "kernel";
> +			fdt = "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 = KERNEL_NAME;
> +	#address-cells = <ADDR_CELLS>;
> +
> +	images {
> +		kernel {
> +			description = KERNEL_NAME;
> +			data = /incbin/(VMLINUX_BINARY);
> +			type = "kernel";
> +			arch = "mips";
> +			os = "linux";
> +			compression = VMLINUX_COMPRESSION;
> +			load = /bits/ ADDR_BITS <VMLINUX_LOAD_ADDRESS>;
> +			entry = /bits/ ADDR_BITS <VMLINUX_ENTRY_ADDRESS>;
> +			hash {
> +				algo = "sha1";
> +			};
> +		};
> +	};
> +
> +	configurations {
> +		default = "conf-default";
> +
> +		conf-default {
> +			description = "Generic Linux kernel";
> +			kernel = "kernel";
> +		};
> +	};
> +};

-- 
---
Jiaxun Yang


  reply	other threads:[~2024-01-19  9:56 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-18 15:52 [PATCH v6 00/15] Add support for the Mobileye EyeQ5 SoC Gregory CLEMENT
2024-01-18 15:52 ` [PATCH v6 01/15] MIPS: spaces: Define a couple of handy macros Gregory CLEMENT
2024-01-18 15:52 ` [PATCH v6 02/15] MIPS: Fix set_uncached_handler for ebase in XKPHYS Gregory CLEMENT
2024-01-18 15:52 ` [PATCH v6 03/15] MIPS: Allows relocation exception vectors everywhere Gregory CLEMENT
2024-01-18 15:52 ` [PATCH v6 04/15] MIPS: traps: Give more explanations if ebase doesn't belong to KSEG0 Gregory CLEMENT
2024-01-19  9:58   ` Jiaxun Yang
2024-01-18 15:52 ` [PATCH v6 05/15] MIPS: cps-vec: Use macros for 64bits access Gregory CLEMENT
2024-01-18 15:52 ` [PATCH v6 06/15] dt-bindings: Add vendor prefix for Mobileye Vision Technologies Ltd Gregory CLEMENT
2024-01-18 15:52 ` [PATCH v6 07/15] dt-bindings: mips: cpus: Sort the entries Gregory CLEMENT
2024-01-18 15:52 ` [PATCH v6 08/15] dt-bindings: mips: cpu: Add I-Class I6500 Multiprocessor Core Gregory CLEMENT
2024-01-18 15:52 ` [PATCH v6 09/15] dt-bindings: mips: Add bindings for Mobileye SoCs Gregory CLEMENT
2024-01-18 15:52 ` [PATCH v6 10/15] dt-bindings: mfd: syscon: Document EyeQ5 OLB Gregory CLEMENT
2024-02-01  9:17   ` Krzysztof Kozlowski
2024-01-18 15:52 ` [PATCH v6 11/15] MIPS: mobileye: Add EyeQ5 dtsi Gregory CLEMENT
2024-02-01  9:14   ` Krzysztof Kozlowski
2024-01-18 15:52 ` [PATCH v6 12/15] MIPS: mobileye: Add EPM5 device tree Gregory CLEMENT
2024-01-19  9:59   ` Jiaxun Yang
2024-02-01  9:18   ` Krzysztof Kozlowski
2024-01-18 15:52 ` [PATCH v6 13/15] MIPS: Share generic kernel code with other architecture Gregory CLEMENT
2024-01-18 15:52 ` [PATCH v6 14/15] MIPS: Add support for Mobileye EyeQ5 Gregory CLEMENT
2024-01-19  9:56   ` Jiaxun Yang [this message]
2024-01-18 15:52 ` [PATCH v6 15/15] MAINTAINERS: Add entry for Mobileye MIPS SoCs Gregory CLEMENT
2024-01-22 13:47 ` [PATCH v6 00/15] Add support for the Mobileye EyeQ5 SoC Gregory CLEMENT

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=08c15a99-b158-4a69-af63-0bbbb0961da7@flygoat.com \
    --to=jiaxun.yang@flygoat.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=devicetree@vger.kernel.org \
    --cc=gregory.clement@bootlin.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=paulburton@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=tawfik.bayouk@mobileye.com \
    --cc=theo.lebrun@bootlin.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=tsbogend@alpha.franken.de \
    --cc=vladimir.kondratiev@mobileye.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®