[LEDE-DEV] [OpenWrt-Devel] [PATCH] add support for OCTEON TX target
Hauke Mehrtens
hauke at hauke-m.de
Tue Feb 13 12:51:29 PST 2018
On 02/13/2018 09:46 PM, Hauke Mehrtens wrote:
> Hi Tim,
>
> sorry that I haven't reviewed this earlyer, but now I saw some problems,
> see my comments inline.
>
> Can you please create a follow up patch based on current master branch.
>
> On 01/24/2018 12:15 AM, Tim Harvey wrote:
>> The Cavium OCTEON TX is an ARM 64-bit SoC leveraging CPU cores and
>> periperhals from the Cavium ThunderX SoC.
>>
>> This initial support provides a 4.14 kernel and kernel+initramfs that is
>> bootable on the Gateworks Newport GW630x as well as the Cavium sff8104
>> reference board.
>>
>> Signed-off-by: Tim Harvey <tharvey at gateworks.com>
>> ---
>> target/linux/octeontx/Makefile | 27 +
>> .../octeontx/base-files/etc/board.d/02_network | 18 +
>> target/linux/octeontx/base-files/etc/inittab | 5 +
>> target/linux/octeontx/base-files/lib/octeontx.sh | 43 ++
>> target/linux/octeontx/config-4.14 | 670 +++++++++++++++++++++
>> target/linux/octeontx/image/Makefile | 21 +
>> ...x-add-support-for-rgmii-internal-delay-mo.patch | 148 +++++
>> ...hunderx-workaround-BGX-TX-Underflow-issue.patch | 117 ++++
>> 8 files changed, 1049 insertions(+)
>> create mode 100644 target/linux/octeontx/Makefile
>> create mode 100644 target/linux/octeontx/base-files/etc/board.d/02_network
>> create mode 100644 target/linux/octeontx/base-files/etc/inittab
>> create mode 100644 target/linux/octeontx/base-files/lib/octeontx.sh
>> create mode 100644 target/linux/octeontx/config-4.14
>> create mode 100644 target/linux/octeontx/image/Makefile
>> create mode 100644 target/linux/octeontx/patches-4.14/0001-net-thunderx-add-support-for-rgmii-internal-delay-mo.patch
>> create mode 100644 target/linux/octeontx/patches-4.14/0001-net-thunderx-workaround-BGX-TX-Underflow-issue.patch
>>
>> diff --git a/target/linux/octeontx/Makefile b/target/linux/octeontx/Makefile
>> new file mode 100644
>> index 0000000..bbe8149
>> --- /dev/null
>> +++ b/target/linux/octeontx/Makefile
>> @@ -0,0 +1,27 @@
>> +#
>> +# Copyright (C) 2018 OpenWrt.org
>> +#
>> +# This is free software, licensed under the GNU General Public License v2.
>> +# See /LICENSE for more information.
>> +#
>> +include $(TOPDIR)/rules.mk
>> +
>> +ARCH:=aarch64
>> +BOARD:=octeontx
>> +BOARDNAME:=Octeon-TX
>> +FEATURES:=targz pcie gpio rtc usb
>
> I think you should define fpu here, but arm64 anyway has a fpu.
>
>> +CFLAGS:=-Os -pipe -fno-caller-saves
>
> You should not define CFLAGS for the toolchain as this will also leak
> into other targets if they share the same toolchain.
>
> Can you try to remove the CFLAGS setting if it still works?
> The build system will then set it to "-Os -pipe -mcpu=generic"
>
>> +
>> +MAINTAINER:=Tim Harvey <tharvey at gateworks.com>
>> +
>> +KERNEL_PATCHVER:=4.14
>> +
>> +define Target/Description
>> + Build images for Octeon-TX CN80XX/CN81XX based boards
>> +endef
>> +
>> +include $(INCLUDE_DIR)/target.mk
>> +
>> +KERNELNAME:=Image
>> +
>> +$(eval $(call BuildTarget))
> ....
>> diff --git a/target/linux/octeontx/config-4.14 b/target/linux/octeontx/config-4.14
>> new file mode 100644
>> index 0000000..97d0cc6
>> --- /dev/null
>> +++ b/target/linux/octeontx/config-4.14
>> @@ -0,0 +1,670 @@
> .....
>> +# CONFIG_CRYPTO_SHA512_ARM64 is not set
>> +CONFIG_CRYPTO_SIMD=y
>> +CONFIG_CRYPTO_WORKQUEUE=y
>> +CONFIG_DCACHE_WORD_ACCESS=y
>> +# CONFIG_DEBUG_ALIGN_RODATA is not set
>> +# CONFIG_DEBUG_BLK_CGROUP is not set
>> +CONFIG_DEBUG_INFO=y
>
> Is this needed by default?
>
>> +CONFIG_DEFAULT_IOSCHED="noop"
>> +CONFIG_DEFAULT_NOOP=y
>> +# CONFIG_DEVPORT is not set
>> +CONFIG_DEVTMPFS=y
>> +CONFIG_DEVTMPFS_MOUNT=y
>> +CONFIG_DMADEVICES=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_VIRT_OPS is not set
>> +CONFIG_DNS_RESOLVER=y
>> +# CONFIG_DRM_LIB_RANDOM is not set
>> +CONFIG_DTC=y
>> +CONFIG_DT_IDLE_STATES=y
>> +CONFIG_EDAC=y
>> +# CONFIG_EDAC_DEBUG is not set
>> +CONFIG_EDAC_LEGACY_SYSFS=y
>> +CONFIG_EDAC_SUPPORT=y
>> +CONFIG_EDAC_THUNDERX=y
>> +# CONFIG_EDAC_XGENE is not set
>> +CONFIG_EEPROM_AT24=y
>> +# CONFIG_EVM is not set
>> +CONFIG_EXT2_FS=y
>> +CONFIG_EXT3_FS=y
>
> Please activate ext2 and 3 support in ext4 instead.
>
>> +# CONFIG_EXT3_FS_POSIX_ACL is not set
>> +# CONFIG_EXT3_FS_SECURITY is not set
>> +CONFIG_EXT4_FS=y
>> +CONFIG_EXT4_FS_POSIX_ACL=y
>> +# CONFIG_F2FS_CHECK_FS is not set
>> +CONFIG_F2FS_FS=y
>> +# CONFIG_F2FS_FS_SECURITY is not set
>> +CONFIG_F2FS_FS_XATTR=y
>> +CONFIG_F2FS_STAT_FS=y
> ...
>
> You should run "make kernel_oldconfig" to refresh the configuration.
Please do not deactivate all the CONFIG_NET_VENDOR* options.
>
> There is also something missing in this configuration or in the generic
> one, see this error from the build bot:
> http://phase1.builds.lede-project.org/builders/octeontx%2Fgeneric/builds/0/steps/kmods/logs/stdio
>
> Please test compile it with this configuration:
> CONFIG_TARGET_octeontx=y
> CONFIG_TARGET_octeontx_Default=y
> CONFIG_TARGET_BOARD="octeontx"
> CONFIG_ALL_KMODS=y
>
More information about the Lede-dev
mailing list