lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Fri, 29 Nov 2019 15:48:04 +0800
From:   Zhou Yanjie <zhouyanjie@...o.com>
To:     Paul Cercueil <paul@...pouillou.net>
Cc:     linux-mips@...r.kernel.org, linux-kernel@...r.kernel.org,
        devicetree@...r.kernel.org, robh+dt@...nel.org,
        paul.burton@...s.com, paulburton@...nel.org, jhogan@...nel.org,
        mripard@...nel.org, shawnguo@...nel.org, mark.rutland@....com,
        syq@...ian.org, ralf@...ux-mips.org, heiko@...ech.de,
        icenowy@...c.io, laurent.pinchart@...asonboard.com,
        krzk@...nel.org, geert+renesas@...der.be,
        prasannatsmkumar@...il.com, sernia.zhou@...mail.com,
        zhenwenjin@...il.com, 772753199@...com
Subject: Re: [PATCH v4 4/6] MIPS: Ingenic: Initial YSH & ATIL CU Neo board
 support.

Hi Paul,

On 2019年11月28日 20:31, Paul Cercueil wrote:
> Hi Zhou,
>
>
> Le jeu., nov. 28, 2019 at 13:11, Zhou Yanjie <zhouyanjie@...o.com> a 
> écrit :
>> Hi Paul,
>>
>> On 2019年11月28日 00:57, Paul Cercueil wrote:
>>> Hi Zhou,
>>>
>>>
>>> Le mer., nov. 27, 2019 at 01:06, Zhou Yanjie <zhouyanjie@...o.com> 
>>> a écrit :
>>>> Add a device tree for the Ingenic X1000 based YSH & ATIL CU Neo board.
>>>> Note that this is unselectable via Kconfig until the X1000 SoC is made
>>>> selectable in a later commit.
>>>>
>>>> Signed-off-by: Zhou Yanjie <zhouyanjie@...o.com>
>>>> ---
>>>>
>>>> Notes:
>>>>     v1->v2:
>>>>     Rebase on top of mips-next, use TCU for system timer and 
>>>> clocksource.
>>>>
>>>>     v2->v3:
>>>>     No change.
>>>>
>>>>     v3->v4:
>>>>     1.Adjust "model" in "cu1000.dts" to match the description in 
>>>> "devices.yaml".
>>>>     2.Adjust "bool" in "Kconfig" to avoid duplicate names with 
>>>> subsequent boards.
>>>>
>>>>  arch/mips/boot/dts/ingenic/Makefile   |   1 +
>>>>  arch/mips/boot/dts/ingenic/cu1000.dts |  52 ++++++++++++++++++
>>>>  arch/mips/configs/cu1000_defconfig    | 100 
>>>> ++++++++++++++++++++++++++++++++++
>>>>  arch/mips/jz4740/Kconfig              |   4 ++
>>>>  4 files changed, 157 insertions(+)
>>>>  create mode 100644 arch/mips/boot/dts/ingenic/cu1000.dts
>>>>  create mode 100644 arch/mips/configs/cu1000_defconfig
>>>>
>>>> diff --git a/arch/mips/boot/dts/ingenic/Makefile 
>>>> b/arch/mips/boot/dts/ingenic/Makefile
>>>> index 9cc4844..f6db7bb 100644
>>>> --- a/arch/mips/boot/dts/ingenic/Makefile
>>>> +++ b/arch/mips/boot/dts/ingenic/Makefile
>>>> @@ -2,5 +2,6 @@
>>>>  dtb-$(CONFIG_JZ4740_QI_LB60)    += qi_lb60.dtb
>>>>  dtb-$(CONFIG_JZ4770_GCW0)    += gcw0.dtb
>>>>  dtb-$(CONFIG_JZ4780_CI20)    += ci20.dtb
>>>> +dtb-$(CONFIG_X1000_CU1000)    += cu1000.dtb
>>>>
>>>>  obj-$(CONFIG_BUILTIN_DTB)    += $(addsuffix .o, $(dtb-y))
>>>> diff --git a/arch/mips/boot/dts/ingenic/cu1000.dts 
>>>> b/arch/mips/boot/dts/ingenic/cu1000.dts
>>>> new file mode 100644
>>>> index 00000000..f92f6af
>>>> --- /dev/null
>>>> +++ b/arch/mips/boot/dts/ingenic/cu1000.dts
>>>> @@ -0,0 +1,52 @@
>>>> +// SPDX-License-Identifier: GPL-2.0
>>>> +/dts-v1/;
>>>> +
>>>> +#include "x1000.dtsi"
>>>> +#include <dt-bindings/gpio/gpio.h>
>>>> +#include <dt-bindings/clock/ingenic,tcu.h>
>>>> +
>>>> +/ {
>>>> +    compatible = "yna,cu1000", "ingenic,x1000";
>>>> +    model = "YSH & ATIL General Board CU Neo";
>>>> +
>>>> +    aliases {
>>>> +        serial2 = &uart2;
>>>> +    };
>>>> +
>>>> +    chosen {
>>>> +        stdout-path = &uart2;
>>>> +    };
>>>> +
>>>> +    memory {
>>>> +        device_type = "memory";
>>>> +        reg = <0x0 0x04000000>;
>>>> +    };
>>>> +};
>>>> +
>>>> +&exclk {
>>>> +    clock-frequency = <24000000>;
>>>> +};
>>>> +
>>>> +&tcu {
>>>> +    /* 1500 kHz for the system timer and clocksource */
>>>> +    assigned-clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER2>;
>>>> +    assigned-clock-rates = <1500000>, <1500000>;
>>>> +
>>>> +    /* Use channel #1 for the system timer channel #2 for the 
>>>> clocksource */
>>>> +    ingenic,pwm-channels-mask = <0xfa>;
>>>
>>> From the mask used, I'm gessing that you're reserving channels #0 
>>> and #2, not #1 and #2.
>>>
>>
>> My fault, you are right, it use channels #0 and #2.
>>
>>>> +};
>>>> +
>>>> +&uart2 {
>>>> +    status = "okay";
>>>> +
>>>> +    pinctrl-names = "default";
>>>> +    pinctrl-0 = <&pins_uart2>;
>>>> +};
>>>> +
>>>> +&pinctrl {
>>>> +    pins_uart2: uart2 {
>>>> +        function = "uart2";
>>>> +        groups = "uart2-data-d";
>>>> +        bias-disable;
>>>> +    };
>>>> +};
>>>> diff --git a/arch/mips/configs/cu1000_defconfig 
>>>> b/arch/mips/configs/cu1000_defconfig
>>>> new file mode 100644
>>>> index 00000000..88729ee
>>>> --- /dev/null
>>>> +++ b/arch/mips/configs/cu1000_defconfig
>>>> @@ -0,0 +1,100 @@
>>>> +CONFIG_LOCALVERSION_AUTO=y
>>>> +CONFIG_KERNEL_GZIP=y
>>>> +CONFIG_SYSVIPC=y
>>>> +CONFIG_NO_HZ_IDLE=y
>>>> +CONFIG_HIGH_RES_TIMERS=y
>>>> +CONFIG_PREEMPT=y
>>>> +CONFIG_IKCONFIG=y
>>>> +CONFIG_IKCONFIG_PROC=y
>>>> +CONFIG_LOG_BUF_SHIFT=14
>>>> +CONFIG_CGROUPS=y
>>>> +CONFIG_MEMCG=y
>>>> +CONFIG_MEMCG_KMEM=y
>>>> +CONFIG_CGROUP_SCHED=y
>>>> +CONFIG_CGROUP_FREEZER=y
>>>> +CONFIG_CGROUP_DEVICE=y
>>>> +CONFIG_CGROUP_CPUACCT=y
>>>> +CONFIG_NAMESPACES=y
>>>> +CONFIG_USER_NS=y
>>>> +CONFIG_BLK_DEV_INITRD=y
>>>> +CONFIG_INITRAMFS_SOURCE="arch/mips/boot/ramdisk.cpio.gz"
>>>> +CONFIG_CC_OPTIMIZE_FOR_SIZE=y
>>>> +CONFIG_SYSCTL_SYSCALL=y
>>>> +CONFIG_KALLSYMS_ALL=y
>>>> +CONFIG_EMBEDDED=y
>>>> +# CONFIG_VM_EVENT_COUNTERS is not set
>>>> +# CONFIG_COMPAT_BRK is not set
>>>> +CONFIG_SLAB=y
>>>> +CONFIG_MACH_INGENIC=y
>>>> +CONFIG_X1000_CU1000=y
>>>> +CONFIG_HIGHMEM=y
>>>> +CONFIG_HZ_100=y
>>>> +CONFIG_HZ=100
>>>
>>> This line looks malformed.
>>
>> Ok, I'll remove it in v7.
>>
>>>
>>>> +# CONFIG_SECCOMP is not set
>>>> +# CONFIG_SUSPEND is not set
>>>> +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
>>>> +# CONFIG_COMPACTION is not set
>>>> +CONFIG_CMA=y
>>>> +CONFIG_CMA_AREAS=7
>>>> +CONFIG_UEVENT_HELPER=y
>>>> +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
>>>> +CONFIG_DEVTMPFS=y
>>>> +# CONFIG_FW_LOADER is not set
>>>> +# CONFIG_ALLOW_DEV_COREDUMP is not set
>>>> +# CONFIG_INPUT_MOUSEDEV is not set
>>>> +# CONFIG_INPUT_KEYBOARD is not set
>>>> +# CONFIG_INPUT_MOUSE is not set
>>>> +# CONFIG_SERIO is not set
>>>> +CONFIG_VT_HW_CONSOLE_BINDING=y
>>>> +CONFIG_LEGACY_PTY_COUNT=2
>>>> +CONFIG_SERIAL_EARLYCON=y
>>>> +CONFIG_SERIAL_8250=y
>>>> +CONFIG_SERIAL_8250_CONSOLE=y
>>>> +CONFIG_SERIAL_8250_NR_UARTS=3
>>>> +CONFIG_SERIAL_8250_RUNTIME_UARTS=3
>>>> +CONFIG_SERIAL_8250_INGENIC=y
>>>> +CONFIG_SERIAL_OF_PLATFORM=y
>>>> +# CONFIG_HW_RANDOM is not set
>>>> +CONFIG_GPIO_SYSFS=y
>>>> +# CONFIG_HWMON is not set
>>>> +# CONFIG_LCD_CLASS_DEVICE is not set
>>>> +# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
>>>> +# CONFIG_VGA_CONSOLE is not set
>>>> +# CONFIG_HID is not set
>>>> +# CONFIG_USB_SUPPORT is not set
>>>> +# CONFIG_IOMMU_SUPPORT is not set
>>>> +CONFIG_NVMEM=y
>>>> +CONFIG_NVMEM_SYSFS=y
>>>> +CONFIG_EXT4_FS=y
>>>> +# CONFIG_DNOTIFY is not set
>>>> +CONFIG_PROC_KCORE=y
>>>> +# CONFIG_PROC_PAGE_MONITOR is not set
>>>> +CONFIG_TMPFS=y
>>>> +CONFIG_CONFIGFS_FS=y
>>>> +CONFIG_NLS=y
>>>> +CONFIG_NLS_CODEPAGE_936=y
>>>> +CONFIG_NLS_CODEPAGE_950=y
>>>> +CONFIG_NLS_ASCII=y
>>>> +CONFIG_NLS_ISO8859_1=y
>>>> +CONFIG_NLS_UTF8=y
>>>> +CONFIG_CRYPTO_ECHAINIV=y
>>>> +CONFIG_CRYPTO_AES=y
>>>> +CONFIG_CRYPTO_DEFLATE=y
>>>> +CONFIG_CRYPTO_LZO=y
>>>> +CONFIG_PRINTK_TIME=y
>>>> +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=15
>>>> +CONFIG_CONSOLE_LOGLEVEL_QUIET=15
>>>> +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=7
>>>> +CONFIG_DEBUG_INFO=y
>>>> +CONFIG_STRIP_ASM_SYMS=y
>>>> +CONFIG_DEBUG_FS=y
>>>> +CONFIG_MAGIC_SYSRQ=y
>>>> +CONFIG_PANIC_ON_OOPS=y
>>>> +CONFIG_PANIC_TIMEOUT=10
>>>> +# CONFIG_SCHED_DEBUG is not set
>>>> +# CONFIG_DEBUG_PREEMPT is not set
>>>> +CONFIG_STACKTRACE=y
>>>> +# CONFIG_FTRACE is not set
>>>> +CONFIG_CMDLINE_BOOL=y
>>>> +CONFIG_CMDLINE="console=ttyS2,115200n8 mem=32M@0x0 earlycon 
>>>> clk_ignore_unused"
>>>
>>> You already specify the stdout-path in the devicetree, no need to 
>>> pass the "console" parameter.
>>>
>>
>> According the test log , if remove "console=ttyS2,115200n8", serial 
>> will not
>> initialized and will stuck after:
>>
>> [    0.016815] printk: bootconsole [x1000_uart0] disabled
>>
>> if remove both "console=ttyS2,115200n8" and "earlycon" it will stuck 
>> after:
>>
>> Starting kernel ...
>>
>> So I think both the "earlycon" and the "console=ttyS2,115200n8 
>> earlycon" should be retained.
>
> There must be something wrong with your kernel config. It works here.
>
> Use this as your stdout-path: "serial2:115200n8", unset 
> CONFIG_CMDLINE_OVERRIDE, enable MIPS_CMDLINE_DTB_EXTEND, and just use 
> "earlycon clk_ignore_unused" in the devicetree's bootargs. That should 
> do it.
>

It works, I will change it in v6.

>>
>>> For the "mem" parameter, it's already set in the devicetree, so no 
>>> need to set it again here.
>>> Besides, in the devicetree it is set to 64 MiB.
>>
>> Ok, I'll remove them in v7.
>>
>>>
>>> Why is clk_ignore_unused needed?
>>
>> In fact, I also don't know why "clk_ignore_unused" needed.
>> This part of the parameter is copied from ci20_defconfig,
>> but according to the test, if remove "clk_ignore_unused",
>> it will stuck after :
>>
>> [    0.374361] printk: bootconsole [x1000_uart0] disabled
>>
>> Differeent from the case where "console=ttyS2,115200n8" is removed,
>> the serial is successfully initialized this time.
>>
>> So I think "clk_ignore_unused" should be retained.
>
> It locks up because Linux disables a clock that is required for the 
> system. This clock should be requested and enabled by a client driver. 
> Could you investigate which clock is the problem?
>

I also don't have any good ideas now, but I will try to investigate it.

Thanks and best regards!

> @Paul Burton: do you remember why it was needed on CI20?
>
> In the meantime I suppose "clk_ignore_unused" is fine.
>
> Cheers,
> -Paul
>
>>>
>>>> +CONFIG_CMDLINE_OVERRIDE=y
>>>> diff --git a/arch/mips/jz4740/Kconfig b/arch/mips/jz4740/Kconfig
>>>> index 6b96844..ccaf507 100644
>>>> --- a/arch/mips/jz4740/Kconfig
>>>> +++ b/arch/mips/jz4740/Kconfig
>>>> @@ -16,6 +16,10 @@ config JZ4780_CI20
>>>>      bool "MIPS Creator CI20"
>>>>      select MACH_JZ4780
>>>>
>>>> +config X1000_CU1000
>>>> +    bool "YSH & ATIL General Module CU1000"
>>>> +    select MACH_X1000
>>>> +
>>>>  endchoice
>>>>
>>>>  config MACH_JZ4740
>>>> -- 
>>>> 2.7.4
>>>>
>>>>
>>>
>>>
>>
>>
>>
>
>



Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ