ARC: enable uboot support unconditionally [Linux 5.0]

This Linux kernel change "ARC: enable uboot support unconditionally" is included in the Linux 5.0 release. This change is authored by Eugeniy Paltsev <Eugeniy.Paltsev [at] synopsys.com> on Thu Feb 14 18:07:45 2019 +0300. The commit for this change in Linux stable tree is 493a2f8 (patch).

ARC: enable uboot support unconditionally

After reworking U-boot args handling code and adding paranoid
arguments check we can eliminate CONFIG_ARC_UBOOT_SUPPORT and
enable uboot support unconditionally.

For JTAG case we can assume that core registers will come up
reset value of 0 or in worst case we rely on user passing
'-on=clear_regs' to Metaware debugger.

Cc: [email protected]
Tested-by: Corentin LABBE <[email protected]>
Signed-off-by: Eugeniy Paltsev <[email protected]>
Signed-off-by: Vineet Gupta <[email protected]>

There are 20 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 arch/arc/Kconfig                        | 12 ------------
 arch/arc/configs/nps_defconfig          |  1 -
 arch/arc/configs/vdk_hs38_defconfig     |  1 -
 arch/arc/configs/vdk_hs38_smp_defconfig |  2 --
 arch/arc/kernel/head.S                  |  2 --
 arch/arc/kernel/setup.c                 |  2 --
 6 files changed, 20 deletions(-)

diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
index 7215f52..d750b30 100644
--- a/arch/arc/Kconfig
+++ b/arch/arc/Kconfig
@@ -191,7 +191,6 @@ config NR_CPUS

 config ARC_SMP_HALT_ON_RESET
    bool "Enable Halt-on-reset boot mode"
-   default y if ARC_UBOOT_SUPPORT
    help
      In SMP configuration cores can be configured as Halt-on-reset
      or they could all start at same time. For Halt-on-reset, non
@@ -523,17 +522,6 @@ config ARC_DBG_TLB_PARANOIA

 endif

-config ARC_UBOOT_SUPPORT
-   bool "Support uboot arg Handling"
-   help
-     ARC Linux by default checks for uboot provided args as pointers to
-     external cmdline or DTB. This however breaks in absence of uboot,
-     when booting from Metaware debugger directly, as the registers are
-     not zeroed out on reset by mdb and/or ARCv2 based cores. The bogus
-     registers look like uboot args to kernel which then chokes.
-     So only enable the uboot arg checking/processing if users are sure
-     of uboot being in play.
-
 config ARC_BUILTIN_DTB_NAME
    string "Built in DTB"
    help
diff --git a/arch/arc/configs/nps_defconfig b/arch/arc/configs/nps_defconfig
index 6e84060..621f594 100644
--- a/arch/arc/configs/nps_defconfig
+++ b/arch/arc/configs/nps_defconfig
@@ -31,7 +31,6 @@ CONFIG_ARC_CACHE_LINE_SHIFT=5
 # CONFIG_ARC_HAS_LLSC is not set
 CONFIG_ARC_KVADDR_SIZE=402
 CONFIG_ARC_EMUL_UNALIGNED=y
-CONFIG_ARC_UBOOT_SUPPORT=y
 CONFIG_PREEMPT=y
 CONFIG_NET=y
 CONFIG_UNIX=y
diff --git a/arch/arc/configs/vdk_hs38_defconfig b/arch/arc/configs/vdk_hs38_defconfig
index 1e59a2e..e447ace6 100644
--- a/arch/arc/configs/vdk_hs38_defconfig
+++ b/arch/arc/configs/vdk_hs38_defconfig
@@ -13,7 +13,6 @@ CONFIG_PARTITION_ADVANCED=y
 CONFIG_ARC_PLAT_AXS10X=y
 CONFIG_AXS103=y
 CONFIG_ISA_ARCV2=y
-CONFIG_ARC_UBOOT_SUPPORT=y
 CONFIG_ARC_BUILTIN_DTB_NAME="vdk_hs38"
 CONFIG_PREEMPT=y
 CONFIG_NET=y
diff --git a/arch/arc/configs/vdk_hs38_smp_defconfig b/arch/arc/configs/vdk_hs38_smp_defconfig
index b5c3f6c..c82cdb1 100644
--- a/arch/arc/configs/vdk_hs38_smp_defconfig
+++ b/arch/arc/configs/vdk_hs38_smp_defconfig
@@ -15,8 +15,6 @@ CONFIG_AXS103=y
 CONFIG_ISA_ARCV2=y
 CONFIG_SMP=y
 # CONFIG_ARC_TIMERS_64BIT is not set
-# CONFIG_ARC_SMP_HALT_ON_RESET is not set
-CONFIG_ARC_UBOOT_SUPPORT=y
 CONFIG_ARC_BUILTIN_DTB_NAME="vdk_hs38_smp"
 CONFIG_PREEMPT=y
 CONFIG_NET=y
diff --git a/arch/arc/kernel/head.S b/arch/arc/kernel/head.S
index 1f945d0..30e0906 100644
--- a/arch/arc/kernel/head.S
+++ b/arch/arc/kernel/head.S
@@ -100,7 +100,6 @@ ENTRY(stext)
    st.ab   0, [r5, 4]
 1:

-#ifdef CONFIG_ARC_UBOOT_SUPPORT
    ; Uboot - kernel ABI
    ;    r0 = [0] No uboot interaction, [1] cmdline in r2, [2] DTB in r2
    ;    r1 = magic number (always zero as of now)
@@ -108,7 +107,6 @@ ENTRY(stext)
    ; These are handled later in handle_uboot_args()
    st  r0, [@uboot_tag]
    st  r2, [@uboot_arg]
-#endif

    ; setup "current" tsk and optionally cache it in dedicated r25
    mov r9, @init_task
diff --git a/arch/arc/kernel/setup.c b/arch/arc/kernel/setup.c
index 8bb1561..93d4d66 100644
--- a/arch/arc/kernel/setup.c
+++ b/arch/arc/kernel/setup.c
@@ -487,7 +487,6 @@ void __init handle_uboot_args(void)
    bool use_embedded_dtb = true;
    bool append_cmdline = false;

-#ifdef CONFIG_ARC_UBOOT_SUPPORT
    /* check that we know this tag */
    if (uboot_tag != UBOOT_TAG_NONE &&
        uboot_tag != UBOOT_TAG_CMDLINE &&
@@ -514,7 +513,6 @@ void __init handle_uboot_args(void)
        append_cmdline = true;

 ignore_uboot_args:
-#endif

    if (use_embedded_dtb) {
        machine_desc = setup_machine_fdt(__dtb_start);

Leave a Reply

Your email address will not be published. Required fields are marked *