Re: [PATCH V12] mm/debug: Add tests validating architecture page table helpers
On 02/10/2020 09:07 PM, Catalin Marinas wrote: > On Tue, Jan 28, 2020 at 06:57:53AM +0530, Anshuman Khandual wrote: >> This gets build and run when CONFIG_DEBUG_VM_PGTABLE is selected along with >> CONFIG_VM_DEBUG. Architectures willing to subscribe this test also need to >> select CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE which for now is limited to x86 and >> arm64. Going forward, other architectures too can enable this after fixing >> build or runtime problems (if any) with their page table helpers. > > It may be worth posting the next version to linux-arch to reach out to > other arch maintainers. Sure, will do. > > Also I've seen that you posted a v13 but it hasn't reached > linux-arm-kernel (likely held in moderation because of the large amount > of addresses cc'ed) and I don't normally follow LKML. I'm not cc'ed to > this patch either (which is fine as long as you post to a list that I > read). Right, the CC list on V13 was a disaster. I did not realize that it will exceed the permitted limit when the lists will start refusing to take. In fact, it looks like LKML did not get the email either. > > Since I started the reply on v12 about a week ago, I'll follow up here. > When you post a v14, please trim the people on cc only to those strictly > necessary (e.g. arch maintainers, linux-mm, linux-arch and lkml). Sure, will do. > >> diff --git a/Documentation/features/debug/debug-vm-pgtable/arch-support.txt >> b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt >> new file mode 100644 >> index ..f3f8111edbe3 >> --- /dev/null >> +++ b/Documentation/features/debug/debug-vm-pgtable/arch-support.txt >> @@ -0,0 +1,35 @@ >> +# >> +# Feature name: debug-vm-pgtable >> +# Kconfig: ARCH_HAS_DEBUG_VM_PGTABLE >> +# description: arch supports pgtable tests for semantics >> compliance >> +# >> +--- >> +| arch |status| >> +--- >> +| alpha: | TODO | >> +| arc: | ok | >> +| arm: | TODO | > > I'm sure you can find some arm32 hardware around (or a VM) to give this > a try ;). It does not build on arm32 and we dont have an agreement on how to go about that either, hence will disable this test on IA64 and ARM (32) in order to prevent the known build failures (as Andrew had requested). > >> diff --git a/arch/x86/include/asm/pgtable_64.h >> b/arch/x86/include/asm/pgtable_64.h >> index 0b6c4042942a..fb0e76d254b3 100644 >> --- a/arch/x86/include/asm/pgtable_64.h >> +++ b/arch/x86/include/asm/pgtable_64.h > [...] >> @@ -1197,6 +1197,7 @@ static noinline void __init kernel_init_freeable(void) >> sched_init_smp(); >> >> page_alloc_init_late(); >> +debug_vm_pgtable(); >> /* Initialize page ext after all struct pages are initialized. */ >> page_ext_init(); > > I guess you could even make debug_vm_pgtable() an early_initcall(). I > don't have a strong opinion either way. > >> diff --git a/mm/debug_vm_pgtable.c b/mm/debug_vm_pgtable.c >> new file mode 100644 >> index ..0f37f32d15f1 >> --- /dev/null >> +++ b/mm/debug_vm_pgtable.c >> @@ -0,0 +1,388 @@ > [...] >> +/* >> + * Basic operations >> + * >> + * mkold(entry) = An old and not a young entry >> + * mkyoung(entry) = A young and not an old entry >> + * mkdirty(entry) = A dirty and not a clean entry >> + * mkclean(entry) = A clean and not a dirty entry >> + * mkwrite(entry) = A write and not a write protected entry >> + * wrprotect(entry) = A write protected and not a write entry >> + * pxx_bad(entry) = A mapped and non-table entry >> + * pxx_same(entry1, entry2) = Both entries hold the exact same value >> + */ >> +#define VMFLAGS (VM_READ|VM_WRITE|VM_EXEC) >> + >> +/* >> + * On s390 platform, the lower 12 bits are used to identify given page table >> + * entry type and for other arch specific requirements. But these bits might >> + * affect the ability to clear entries with pxx_clear(). So while loading up >> + * the entries skip all lower 12 bits in order to accommodate s390 platform. >> + * It does not have affect any other platform. >> + */ >> +#define RANDOM_ORVALUE (0xf000UL) > > I'd suggest you generate this mask with something like > GENMASK(BITS_PER_LONG, PAGE_SHIFT). IIRC the lower 12 bits constrains on s390 platform might not be really related to it's PAGE_SHIFT which can be a variable, but instead just a constant number. But can definitely use GENMASK or it's variants here. https://lkml.org/lkml/2019/9/5/862 > >> +#define RANDOM_NZVALUE (0xff) >> + >> +static void __init pte_basic_tests(unsigned long pfn, pgprot_t prot) >> +{ >> +pte_t pte = pfn_pte(pfn, prot); >> + >> +WARN_ON(!pte_same(pte, pte)); >> +WARN_ON(!pte_young(pte_mkyoung(pte))); >> +WARN_ON(!pte_dirty(pte_mkdirty(pte))); >> +WARN_ON(!pte_write(pte_mkwrite(pte))); >> +WARN_ON(pte_youn
[PATCH] ARC: Replace by
The ARC platform code is not a clock provider, and just needs to call of_clk_init(). Hence it can include instead of . Signed-off-by: Geert Uytterhoeven --- arch/arc/kernel/setup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arc/kernel/setup.c b/arch/arc/kernel/setup.c index e1c647490f00e910..aa41af6ef4ac6ecc 100644 --- a/arch/arc/kernel/setup.c +++ b/arch/arc/kernel/setup.c @@ -8,11 +8,11 @@ #include #include #include -#include #include #include #include #include +#include #include #include #include -- 2.17.1 ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
[PATCH] ARC: rework setting of ARC CPU specific compiler options
It's a very rare if at all existing occasion when ARC CPU template is used as is w/o any changes - in the end it's a beauty and competitive advantage of ARC cores to be tailored for a particular use-case - and so it doesn't make a lot of sense to offer template-based "-mcpu" selection. Given for each and every platform we end-up adding quite a few more flags it's logical to move "-mcpu" selection to platform's definition as well which we exactly do here. Signed-off-by: Eugeniy Paltsev --- arch/arc/config.mk | 20 board/abilis/tb100/config.mk| 5 + board/synopsys/axs10x/config.mk | 6 ++ board/synopsys/emsdp/config.mk | 2 +- board/synopsys/hsdk/config.mk | 4 board/synopsys/iot_devkit/config.mk | 3 ++- board/synopsys/nsim/Kconfig | 9 + board/synopsys/nsim/config.mk | 8 configs/nsim_700_defconfig | 1 + configs/nsim_700be_defconfig| 1 + configs/nsim_hs38_defconfig | 1 + configs/nsim_hs38be_defconfig | 1 + 12 files changed, 39 insertions(+), 22 deletions(-) create mode 100644 board/abilis/tb100/config.mk create mode 100644 board/synopsys/nsim/config.mk diff --git a/arch/arc/config.mk b/arch/arc/config.mk index 18005d99930..6fa29adae81 100644 --- a/arch/arc/config.mk +++ b/arch/arc/config.mk @@ -22,26 +22,6 @@ ifdef CONFIG_ARC_MMU_VER CONFIG_MMU = 1 endif -ifdef CONFIG_CPU_ARC750D -PLATFORM_CPPFLAGS += -mcpu=arc700 -endif - -ifdef CONFIG_CPU_ARC770D -PLATFORM_CPPFLAGS += -mcpu=arc700 -mlock -mswape -endif - -ifdef CONFIG_CPU_ARCEM6 -PLATFORM_CPPFLAGS += -mcpu=arcem -endif - -ifdef CONFIG_CPU_ARCHS34 -PLATFORM_CPPFLAGS += -mcpu=archs -endif - -ifdef CONFIG_CPU_ARCHS38 -PLATFORM_CPPFLAGS += -mcpu=archs -endif - PLATFORM_CPPFLAGS += -ffixed-r25 -D__ARC__ -gdwarf-2 -mno-sdata PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections -fno-common diff --git a/board/abilis/tb100/config.mk b/board/abilis/tb100/config.mk new file mode 100644 index 000..9e8dee49bd3 --- /dev/null +++ b/board/abilis/tb100/config.mk @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0+ +# +# Copyright (C) 2020 Synopsys, Inc. All rights reserved. + +PLATFORM_CPPFLAGS += -mcpu=arc700 -mlock -mswape diff --git a/board/synopsys/axs10x/config.mk b/board/synopsys/axs10x/config.mk index 81ff498f818..ccac5442908 100644 --- a/board/synopsys/axs10x/config.mk +++ b/board/synopsys/axs10x/config.mk @@ -2,6 +2,12 @@ # # Copyright (C) 2018 Synopsys, Inc. All rights reserved. +ifdef CONFIG_TARGET_AXS103 + PLATFORM_CPPFLAGS += -mcpu=archs +else + PLATFORM_CPPFLAGS += -mcpu=arc700 -mlock -mswape +endif + bsp-generate: u-boot u-boot.bin ifdef CONFIG_ISA_ARCV2 $(Q)python3 $(srctree)/board/$(BOARDDIR)/headerize-axs.py \ diff --git a/board/synopsys/emsdp/config.mk b/board/synopsys/emsdp/config.mk index 67fd7bf82a3..5bd10442aff 100644 --- a/board/synopsys/emsdp/config.mk +++ b/board/synopsys/emsdp/config.mk @@ -1,2 +1,2 @@ -PLATFORM_CPPFLAGS += -mlittle-endian -mnorm -mswap -mmpy-option=3 \ +PLATFORM_CPPFLAGS += -mcpu=arcem -mlittle-endian -mnorm -mswap -mmpy-option=3 \ -mbarrel-shifter -mfpu=fpuda_all -mcode-density diff --git a/board/synopsys/hsdk/config.mk b/board/synopsys/hsdk/config.mk index 9e280f921a1..5ae22fa2b75 100644 --- a/board/synopsys/hsdk/config.mk +++ b/board/synopsys/hsdk/config.mk @@ -2,6 +2,10 @@ # # Copyright (C) 2018 Synopsys, Inc. All rights reserved. +PLATFORM_CPPFLAGS += -mcpu=hs38_linux -mlittle-endian -matomic -mll64 \ + -mdiv-rem -mswap -mnorm -mmpy-option=9 -mbarrel-shifter \ + -mfpu=fpud_all + bsp-generate: u-boot u-boot.bin $(Q)python3 $(srctree)/board/$(BOARDDIR)/headerize-hsdk.py \ --arc-id 0x52 --image $(srctree)/u-boot.bin \ diff --git a/board/synopsys/iot_devkit/config.mk b/board/synopsys/iot_devkit/config.mk index 120733538a4..e1e546a3d04 100644 --- a/board/synopsys/iot_devkit/config.mk +++ b/board/synopsys/iot_devkit/config.mk @@ -1,2 +1,3 @@ -PLATFORM_CPPFLAGS += -mlittle-endian -mcode-density -mdiv-rem -mswap -mnorm -mmpy-option=6 -mbarrel-shifter +PLATFORM_CPPFLAGS += -mcpu=em4_fpuda -mlittle-endian -mcode-density -mdiv-rem \ + -mswap -mnorm -mmpy-option=6 -mbarrel-shifter LDSCRIPT = $(srctree)/board/synopsys/iot_devkit/u-boot.lds diff --git a/board/synopsys/nsim/Kconfig b/board/synopsys/nsim/Kconfig index 22287032bf5..b6966b2991e 100644 --- a/board/synopsys/nsim/Kconfig +++ b/board/synopsys/nsim/Kconfig @@ -9,4 +9,13 @@ config SYS_VENDOR config SYS_CONFIG_NAME default "nsim" +config NSIM_BOARD_CPPFLAGS + string "board arc-specific compiler options" + help + For nSIM we allow to set custom arc-specific compiler options + (like -mcpu=) instead of hardcoding them in its makefile as nSIM + target is used for representing targets without fixed CPU version + like FPGA-based b
Re: [RFC v6 07/23] RISC-V: Use 64-bit time_t and off_t for RV32 and RV64
On Wed, Feb 12, 2020 at 2:42 AM Vineet Gupta wrote: > On 2/11/20 4:14 PM, Alistair Francis wrote: > > On Tue, Feb 11, 2020 at 4:14 PM Vineet Gupta wrote: > > >>> +/* Same for ino_t and ino64_t. */ > >>> +# define __INO_T_MATCHES_INO64_T 1 > > I'm surprised that ARC port doesn't define this in glibc, yet we use the > asm-generic syscall interface where this is true. I need to investigate more. All 32-bit kernels supported by glibc today define the 64-bit file offset types (__off64_t, __ino64_t, ...) and a lot of them never had the old 'long' types (__off_t, __ino_t, ...), but applications can still pick between the two ABIs when compiling against glibc, see /usr/include/fcntl.h: #ifndef __off_t_defined # ifndef __USE_FILE_OFFSET64 typedef __off_t off_t; # else typedef __off64_t off_t; # endif # define __off_t_defined #endif If you use the old types, glibc will do the conversion in the syscall wrappers on architectures that only have the 64-bit interfaces. Arnd ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH] ARC: Replace by
Quoting Geert Uytterhoeven (2020-02-12 02:00:47) > The ARC platform code is not a clock provider, and just needs to call > of_clk_init(). > > Hence it can include instead of . > > Signed-off-by: Geert Uytterhoeven > --- Reviewed-by: Stephen Boyd ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH] ARC: Replace by
On 2/12/20 2:00 AM, Geert Uytterhoeven wrote: > The ARC platform code is not a clock provider, and just needs to call > of_clk_init(). > > Hence it can include instead of . > > Signed-off-by: Geert Uytterhoeven Thx for this Geert. Do you want me to pick this up. Thx, -Vineet ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
[PATCH 3/3 v2] ARC: nsim_hs38: Add support of Virtio NET & BLK
Given now nsim_hs38 configuration is usable on QEMU and in QEMU we have Virtio working perfectly fine the next logical step is to add support of supported & known to work net & bkl to this config. Signed-off-by: Alexey Brodkin --- Changes v1 -> v2: * Instead of adding IRQ parent it might be much cleaner solution to just get rid of "interrupt" properties in Virtio nodes. Again that's all OK for now since we don't really sync Linux .dts and U-Boot's ones. It's not that it's super good though but that's what we have today :) arch/arc/Kconfig | 4 ++-- arch/arc/dts/nsim.dts | 24 board/synopsys/{ => nsim}/Kconfig | 3 +++ board/synopsys/nsim/MAINTAINERS | 6 ++ board/synopsys/nsim/Makefile | 7 +++ board/synopsys/nsim/nsim.c| 26 ++ configs/nsim_hs38_defconfig | 9 + 7 files changed, 77 insertions(+), 2 deletions(-) rename board/synopsys/{ => nsim}/Kconfig (74%) create mode 100644 board/synopsys/nsim/MAINTAINERS create mode 100644 board/synopsys/nsim/Makefile create mode 100644 board/synopsys/nsim/nsim.c diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig index 0cb97207db..545fc3e243 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig @@ -160,7 +160,7 @@ config TARGET_TB100 bool "Support tb100" config TARGET_NSIM - bool "Support standalone nSIM & Free nSIM" + bool "Support ARC simulation & prototyping platforms" config TARGET_AXS101 bool "Support Synopsys Designware SDP board AXS101" @@ -184,10 +184,10 @@ config TARGET_IOT_DEVKIT endchoice source "board/abilis/tb100/Kconfig" -source "board/synopsys/Kconfig" source "board/synopsys/axs10x/Kconfig" source "board/synopsys/emsdp/Kconfig" source "board/synopsys/hsdk/Kconfig" source "board/synopsys/iot_devkit/Kconfig" +source "board/synopsys/nsim/Kconfig" endmenu diff --git a/arch/arc/dts/nsim.dts b/arch/arc/dts/nsim.dts index 43f281dfec..c2899ef2ea 100644 --- a/arch/arc/dts/nsim.dts +++ b/arch/arc/dts/nsim.dts @@ -30,4 +30,28 @@ clock-frequency = <7000>; }; + virtio0: virtio@f010 { + compatible = "virtio,mmio"; + reg = <0xf010 0x2000>; + }; + + virtio1: virtio@f0102000 { + compatible = "virtio,mmio"; + reg = <0xf0102000 0x2000>; + }; + + virtio2: virtio@f0104000 { + compatible = "virtio,mmio"; + reg = <0xf0104000 0x2000>; + }; + + virtio3: virtio@f0106000 { + compatible = "virtio,mmio"; + reg = <0xf0106000 0x2000>; + }; + + virtio4: virtio@f0108000 { + compatible = "virtio,mmio"; + reg = <0xf0108000 0x2000>; + }; }; diff --git a/board/synopsys/Kconfig b/board/synopsys/nsim/Kconfig similarity index 74% rename from board/synopsys/Kconfig rename to board/synopsys/nsim/Kconfig index 27e5509b26..22287032bf 100644 --- a/board/synopsys/Kconfig +++ b/board/synopsys/nsim/Kconfig @@ -1,5 +1,8 @@ if TARGET_NSIM +config SYS_BOARD + default "nsim" + config SYS_VENDOR default "synopsys" diff --git a/board/synopsys/nsim/MAINTAINERS b/board/synopsys/nsim/MAINTAINERS new file mode 100644 index 00..ad23c8338e --- /dev/null +++ b/board/synopsys/nsim/MAINTAINERS @@ -0,0 +1,6 @@ +ARC SIMULATION & PROTOTYPING PLATFORMS +M: Alexey Brodkin +S: Maintained +F: arch/arc/dts/nsim.dts +F: board/synopsys/nsim/ +F: configs/nsim_*_defconfig diff --git a/board/synopsys/nsim/Makefile b/board/synopsys/nsim/Makefile new file mode 100644 index 00..6aaa73 --- /dev/null +++ b/board/synopsys/nsim/Makefile @@ -0,0 +1,7 @@ +# +# Copyright (C) 2020 Synopsys, Inc. All rights reserved. +# +# SPDX-License-Identifier: GPL-2.0+ +# + +obj-y += nsim.o diff --git a/board/synopsys/nsim/nsim.c b/board/synopsys/nsim/nsim.c new file mode 100644 index 00..f384f707f6 --- /dev/null +++ b/board/synopsys/nsim/nsim.c @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2020 Synopsys, Inc. All rights reserved. + */ + +#include +#include +#include +#include + +int board_early_init_r(void) +{ + /* +* Make sure virtio bus is enumerated so that peripherals +* on the virtio bus can be discovered by their drivers +*/ + virtio_init(); + + return 0; +} + +int checkboard(void) +{ + printf("Board: ARC virtual or prototyping platform\n"); + return 0; +}; diff --git a/configs/nsim_hs38_defconfig b/configs/nsim_hs38_defconfig index ce68de3251..6cd01a505b 100644 --- a/configs/nsim_hs38_defconfig +++ b/configs/nsim_hs38_defconfig @@ -9,14 +9,23 @@ CONFIG_DEBUG_UART=y CONFIG_BOOTDELAY=3 CONFIG_USE_BOOTARGS=y CONFIG_BOOTARGS="console=ttyS0,115200n8" +CONFIG_BOARD_EARLY_INIT_R=y CONFIG_SYS_PROMPT="nsim# " +CONFIG_CMD_DM=y # CONFIG_CMD_SETEXPR is not set +CONFIG_CMD_DHC
[PATCH 1/3 v2] ARC: nSIM: switch from ARC UART to DW UART
Since v2019.06 DesingWare nSIM supports DesignWare UART simulation and so we may switch from pretty unusual ARC UART to much more standard DesignWare UART (which in case of U-Boot is just an ordinary 16650 UART). This among other things makes built dinaries compatible with our other platforms to name a few: FPGA-based HAPS boards, QEMU and even ZeBU. Signed-off-by: Alexey Brodkin --- Changes v1 -> v2: * Copyright year bumped to 2020. arch/arc/dts/nsim.dts | 12 +++- configs/nsim_700_defconfig| 8 configs/nsim_700be_defconfig | 8 configs/nsim_hs38_defconfig | 8 configs/nsim_hs38be_defconfig | 8 5 files changed, 23 insertions(+), 21 deletions(-) diff --git a/arch/arc/dts/nsim.dts b/arch/arc/dts/nsim.dts index 243ecb178e..43f281dfec 100644 --- a/arch/arc/dts/nsim.dts +++ b/arch/arc/dts/nsim.dts @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0+ /* - * Copyright (C) 2015-2016 Synopsys, Inc. (www.synopsys.com) + * Copyright (C) 2015-2016, 2020 Synopsys, Inc. (www.synopsys.com) */ /dts-v1/; @@ -10,7 +10,7 @@ model = "snps,nsim"; aliases { - console = &arcuart0; + console = &uart0; }; cpu_card { @@ -22,9 +22,11 @@ }; }; - arcuart0: serial@0xc0fc1000 { - compatible = "snps,arc-uart"; - reg = <0xc0fc1000 0x100>; + uart0: serial@f000 { + compatible = "snps,dw-apb-uart"; + reg = <0xf000 0x1000>; + reg-shift = <2>; + reg-io-width = <4>; clock-frequency = <7000>; }; diff --git a/configs/nsim_700_defconfig b/configs/nsim_700_defconfig index 5633113b09..2d4a58b178 100644 --- a/configs/nsim_700_defconfig +++ b/configs/nsim_700_defconfig @@ -1,13 +1,13 @@ CONFIG_ARC=y CONFIG_TARGET_NSIM=y CONFIG_SYS_TEXT_BASE=0x8100 -CONFIG_DEBUG_UART_BASE=0xc0fc1000 +CONFIG_DEBUG_UART_BASE=0xf000 CONFIG_DEBUG_UART_CLOCK=7000 CONFIG_SYS_CLK_FREQ=7000 CONFIG_DEBUG_UART=y CONFIG_BOOTDELAY=3 CONFIG_USE_BOOTARGS=y -CONFIG_BOOTARGS="console=ttyARC0,115200n8" +CONFIG_BOOTARGS="console=ttyS0,115200n8" CONFIG_SYS_PROMPT="nsim# " # CONFIG_CMD_SETEXPR is not set CONFIG_OF_CONTROL=y @@ -16,6 +16,6 @@ CONFIG_DEFAULT_DEVICE_TREE="nsim" CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_DM=y CONFIG_DM_SERIAL=y -CONFIG_DEBUG_ARC_SERIAL=y -CONFIG_ARC_SERIAL=y +CONFIG_DEBUG_UART_SHIFT=2 +CONFIG_SYS_NS16550=y CONFIG_USE_PRIVATE_LIBGCC=y diff --git a/configs/nsim_700be_defconfig b/configs/nsim_700be_defconfig index 40f7ec7e1f..61eea91449 100644 --- a/configs/nsim_700be_defconfig +++ b/configs/nsim_700be_defconfig @@ -2,13 +2,13 @@ CONFIG_ARC=y CONFIG_CPU_BIG_ENDIAN=y CONFIG_TARGET_NSIM=y CONFIG_SYS_TEXT_BASE=0x8100 -CONFIG_DEBUG_UART_BASE=0xc0fc1000 +CONFIG_DEBUG_UART_BASE=0xf000 CONFIG_DEBUG_UART_CLOCK=7000 CONFIG_SYS_CLK_FREQ=7000 CONFIG_DEBUG_UART=y CONFIG_BOOTDELAY=3 CONFIG_USE_BOOTARGS=y -CONFIG_BOOTARGS="console=ttyARC0,115200n8" +CONFIG_BOOTARGS="console=ttyS0,115200n8" CONFIG_SYS_PROMPT="nsim# " # CONFIG_CMD_SETEXPR is not set CONFIG_OF_CONTROL=y @@ -17,6 +17,6 @@ CONFIG_DEFAULT_DEVICE_TREE="nsim" CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_DM=y CONFIG_DM_SERIAL=y -CONFIG_DEBUG_ARC_SERIAL=y -CONFIG_ARC_SERIAL=y +CONFIG_DEBUG_UART_SHIFT=2 +CONFIG_SYS_NS16550=y CONFIG_USE_PRIVATE_LIBGCC=y diff --git a/configs/nsim_hs38_defconfig b/configs/nsim_hs38_defconfig index 2820a6fca3..ce68de3251 100644 --- a/configs/nsim_hs38_defconfig +++ b/configs/nsim_hs38_defconfig @@ -2,13 +2,13 @@ CONFIG_ARC=y CONFIG_ISA_ARCV2=y CONFIG_TARGET_NSIM=y CONFIG_SYS_TEXT_BASE=0x8100 -CONFIG_DEBUG_UART_BASE=0xc0fc1000 +CONFIG_DEBUG_UART_BASE=0xf000 CONFIG_DEBUG_UART_CLOCK=7000 CONFIG_SYS_CLK_FREQ=7000 CONFIG_DEBUG_UART=y CONFIG_BOOTDELAY=3 CONFIG_USE_BOOTARGS=y -CONFIG_BOOTARGS="console=ttyARC0,115200n8" +CONFIG_BOOTARGS="console=ttyS0,115200n8" CONFIG_SYS_PROMPT="nsim# " # CONFIG_CMD_SETEXPR is not set CONFIG_OF_CONTROL=y @@ -17,6 +17,6 @@ CONFIG_DEFAULT_DEVICE_TREE="nsim" CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_DM=y CONFIG_DM_SERIAL=y -CONFIG_DEBUG_ARC_SERIAL=y -CONFIG_ARC_SERIAL=y +CONFIG_DEBUG_UART_SHIFT=2 +CONFIG_SYS_NS16550=y CONFIG_USE_PRIVATE_LIBGCC=y diff --git a/configs/nsim_hs38be_defconfig b/configs/nsim_hs38be_defconfig index e533fae2b1..5d2ea59d52 100644 --- a/configs/nsim_hs38be_defconfig +++ b/configs/nsim_hs38be_defconfig @@ -3,13 +3,13 @@ CONFIG_ISA_ARCV2=y CONFIG_CPU_BIG_ENDIAN=y CONFIG_TARGET_NSIM=y CONFIG_SYS_TEXT_BASE=0x8100 -CONFIG_DEBUG_UART_BASE=0xc0fc1000 +CONFIG_DEBUG_UART_BASE=0xf000 CONFIG_DEBUG_UART_CLOCK=7000 CONFIG_SYS_CLK_FREQ=7000 CONFIG_DEBUG_UART=y CONFIG_BOOTDELAY=3 CONFIG_USE_BOOTARGS=y -CONFIG_BOOTARGS="console=ttyARC0,115200n8" +CONFIG_BOOTARGS="console=ttyS0,115200n8" CONFIG_SYS_PROMPT="nsim# " # CONFIG_CMD_SETEXPR is not set CONFIG_OF_CON
[PATCH 2/3 v2] ARC: nsim_{700|700be|hs38be}_defconfigs: Disable networking
We don't have yet any brc700 or big-enadian platforms with networking support to run this particular configuration. Whenever QEMU for ARC supports arc700 or big-endian targets we may revisit this one. Signed-off-by: Alexey Brodkin --- No changes v1 -> v2. configs/nsim_700_defconfig| 1 + configs/nsim_700be_defconfig | 1 + configs/nsim_hs38be_defconfig | 1 + 3 files changed, 3 insertions(+) diff --git a/configs/nsim_700_defconfig b/configs/nsim_700_defconfig index 2d4a58b178..6a38e2c246 100644 --- a/configs/nsim_700_defconfig +++ b/configs/nsim_700_defconfig @@ -14,6 +14,7 @@ CONFIG_OF_CONTROL=y CONFIG_OF_EMBED=y CONFIG_DEFAULT_DEVICE_TREE="nsim" CONFIG_SYS_RELOC_GD_ENV_ADDR=y +# CONFIG_NET is not set CONFIG_DM=y CONFIG_DM_SERIAL=y CONFIG_DEBUG_UART_SHIFT=2 diff --git a/configs/nsim_700be_defconfig b/configs/nsim_700be_defconfig index 61eea91449..d3ed84a415 100644 --- a/configs/nsim_700be_defconfig +++ b/configs/nsim_700be_defconfig @@ -15,6 +15,7 @@ CONFIG_OF_CONTROL=y CONFIG_OF_EMBED=y CONFIG_DEFAULT_DEVICE_TREE="nsim" CONFIG_SYS_RELOC_GD_ENV_ADDR=y +# CONFIG_NET is not set CONFIG_DM=y CONFIG_DM_SERIAL=y CONFIG_DEBUG_UART_SHIFT=2 diff --git a/configs/nsim_hs38be_defconfig b/configs/nsim_hs38be_defconfig index 5d2ea59d52..b074b4ca98 100644 --- a/configs/nsim_hs38be_defconfig +++ b/configs/nsim_hs38be_defconfig @@ -16,6 +16,7 @@ CONFIG_OF_CONTROL=y CONFIG_OF_EMBED=y CONFIG_DEFAULT_DEVICE_TREE="nsim" CONFIG_SYS_RELOC_GD_ENV_ADDR=y +# CONFIG_NET is not set CONFIG_DM=y CONFIG_DM_SERIAL=y CONFIG_DEBUG_UART_SHIFT=2 -- 2.16.2 ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH V12] mm/debug: Add tests validating architecture page table helpers
On Wed, 12 Feb 2020 15:12:54 +0530 Anshuman Khandual wrote: > >> +/* > >> + * On s390 platform, the lower 12 bits are used to identify given page > >> table > >> + * entry type and for other arch specific requirements. But these bits > >> might > >> + * affect the ability to clear entries with pxx_clear(). So while loading > >> up > >> + * the entries skip all lower 12 bits in order to accommodate s390 > >> platform. > >> + * It does not have affect any other platform. > >> + */ > >> +#define RANDOM_ORVALUE(0xf000UL) > > > > I'd suggest you generate this mask with something like > > GENMASK(BITS_PER_LONG, PAGE_SHIFT). > > IIRC the lower 12 bits constrains on s390 platform might not be really related > to it's PAGE_SHIFT which can be a variable, but instead just a constant > number. > But can definitely use GENMASK or it's variants here. > > https://lkml.org/lkml/2019/9/5/862 PAGE_SHIFT would be fine, it is 12 on s390. However, in order to be more precise, we do not really need all 12 bits, only the last 4 bits. So, something like this would work: #define RANDOM_ORVALUE GENMASK(BITS_PER_LONG - 1, 4) The text in the comment could then also be changed from 12 to 4, and be a bit more specific on the fact that the impact on pxx_clear() results from the dynamic page table folding logic on s390: /* * On s390 platform, the lower 4 bits are used to identify given page table * entry type. But these bits might affect the ability to clear entries with * pxx_clear() because of how dynamic page table folding works on s390. So * while loading up the entries do not change the lower 4 bits. * It does not have affect any other platform. */ ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH] ARC: Replace by
Hi Vineet, On Wed, Feb 12, 2020 at 6:30 PM Vineet Gupta wrote: > On 2/12/20 2:00 AM, Geert Uytterhoeven wrote: > > The ARC platform code is not a clock provider, and just needs to call > > of_clk_init(). > > > > Hence it can include instead of . > > > > Signed-off-by: Geert Uytterhoeven > > Thx for this Geert. Do you want me to pick this up. Yes please. Thanks! Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc
Re: [PATCH V12] mm/debug: Add tests validating architecture page table helpers
On 02/12/2020 11:25 PM, Gerald Schaefer wrote: > On Wed, 12 Feb 2020 15:12:54 +0530 > Anshuman Khandual wrote: > +/* + * On s390 platform, the lower 12 bits are used to identify given page table + * entry type and for other arch specific requirements. But these bits might + * affect the ability to clear entries with pxx_clear(). So while loading up + * the entries skip all lower 12 bits in order to accommodate s390 platform. + * It does not have affect any other platform. + */ +#define RANDOM_ORVALUE(0xf000UL) >>> >>> I'd suggest you generate this mask with something like >>> GENMASK(BITS_PER_LONG, PAGE_SHIFT). >> >> IIRC the lower 12 bits constrains on s390 platform might not be really >> related >> to it's PAGE_SHIFT which can be a variable, but instead just a constant >> number. >> But can definitely use GENMASK or it's variants here. >> >> https://lkml.org/lkml/2019/9/5/862 > > PAGE_SHIFT would be fine, it is 12 on s390. However, in order to be > more precise, we do not really need all 12 bits, only the last 4 bits. > So, something like this would work: > > #define RANDOM_ORVALUE GENMASK(BITS_PER_LONG - 1, 4) > > The text in the comment could then also be changed from 12 to 4, and > be a bit more specific on the fact that the impact on pxx_clear() > results from the dynamic page table folding logic on s390: > > /* > * On s390 platform, the lower 4 bits are used to identify given page table > * entry type. But these bits might affect the ability to clear entries with > * pxx_clear() because of how dynamic page table folding works on s390. So > * while loading up the entries do not change the lower 4 bits. > * It does not have affect any other platform. > */ Sure, will update accordingly. ___ linux-snps-arc mailing list linux-snps-arc@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-snps-arc