From patchwork Tue Aug 26 07:28:59 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: kpark3469@gmail.com X-Patchwork-Id: 4778601 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 6AC75C0338 for ; Tue, 26 Aug 2014 07:32:28 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 56D5620149 for ; Tue, 26 Aug 2014 07:32:27 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 57A3120145 for ; Tue, 26 Aug 2014 07:32:25 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1XMBCW-0007DB-Rv; Tue, 26 Aug 2014 07:29:56 +0000 Received: from mail-pd0-x231.google.com ([2607:f8b0:400e:c02::231]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1XMBCU-00077h-MC for linux-arm-kernel@lists.infradead.org; Tue, 26 Aug 2014 07:29:55 +0000 Received: by mail-pd0-f177.google.com with SMTP id p10so21787002pdj.22 for ; Tue, 26 Aug 2014 00:29:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=ac5nezHaC4kj9UORxEaHGmsVve4IvHunWhMsgELjAYw=; b=pUXTlj/IoFAn7NfwwbMD46IoF9SpkTxHZaAQhTOJrD6DjnQ4GytHH69/7qTPPsVhEo qiT4AuO4dggWRmX54uJG7NYf4e/IvRfkF31wrF0fcFNDC1So/s5jwQQwFWG2X0GIrm/K UfrciXEclsBghMsIRa673GnJnKgEvarpxiwQrpiIU+cHB5bxxP8rB2kpF5vusWRdo/Sp qowUgn6/W+x5mVbElyLeki3Aa5a2fgCl20HzEh62Bs75ya55c0cOig1pCi7pd/je6lWL HbuRl2J8n16C4Fb4pCicBy9Aj/EK4xpUBIQZz8I+tTm2Sf06ZoOyNFqZgz6ofG+O1TVL 8+wA== X-Received: by 10.68.57.175 with SMTP id j15mr3562278pbq.164.1409038171316; Tue, 26 Aug 2014 00:29:31 -0700 (PDT) Received: from SEL-KPARK-D2.wrs.com ([61.107.31.52]) by mx.google.com with ESMTPSA id fz10sm3178516pdb.50.2014.08.26.00.29.29 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 26 Aug 2014 00:29:30 -0700 (PDT) From: kpark3469@gmail.com To: linux@arm.linux.org.uk Subject: [PATCHv2] ARM: debug: uncompress debug support for omap2plus Date: Tue, 26 Aug 2014 16:28:59 +0900 Message-Id: <1409038140-7433-1-git-send-email-kpark3469@gmail.com> X-Mailer: git-send-email 1.7.9.5 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20140826_002954_763655_2B648784 X-CRM114-Status: GOOD ( 12.95 ) X-Spam-Score: -0.6 (/) Cc: keun-o.park@windriver.com, afzal.mohd.ma@gmail.com, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RP_MATCHES_RCVD, T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=no version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Sahara Since OMAP low-level debug code places data in the .data section, The symbol DEBUG_UNCOMPRESS was defined with !DEBUG_OMAP2PLUS_UART. This patch removes the part using data section in debug/omap2plus.S, so DEBUG_UNCOMPRESS is now available on OMAP system. Signed-off-by: Sahara Tested-by: Afzal Mohammed (on am335x beagle bone white) --- arch/arm/Kconfig.debug | 3 +- arch/arm/include/debug/omap2plus.S | 96 ++++++++++-------------------------- 2 files changed, 27 insertions(+), 72 deletions(-) diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index b11ad54..c0ad3e4 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -1220,8 +1220,7 @@ config DEBUG_UART_8250_FLOW_CONTROL config DEBUG_UNCOMPRESS bool depends on ARCH_MULTIPLATFORM || ARCH_MSM || PLAT_SAMSUNG - default y if DEBUG_LL && !DEBUG_OMAP2PLUS_UART && \ - (!DEBUG_TEGRA_UART || !ZBOOT_ROM) + default y if DEBUG_LL && (!DEBUG_TEGRA_UART || !ZBOOT_ROM) help This option influences the normal decompressor output for multiplatform kernels. Normally, multiplatform kernels disable diff --git a/arch/arm/include/debug/omap2plus.S b/arch/arm/include/debug/omap2plus.S index 6d867ae..0b7ec89 100644 --- a/arch/arm/include/debug/omap2plus.S +++ b/arch/arm/include/debug/omap2plus.S @@ -58,115 +58,71 @@ #define UART_OFFSET(addr) ((addr) & 0x00ffffff) - .pushsection .data -omap_uart_phys: .word 0 -omap_uart_virt: .word 0 -omap_uart_lsr: .word 0 - .popsection - .macro addruart, rp, rv, tmp - /* Use omap_uart_phys/virt if already configured */ -10: adr \rp, 99f @ get effective addr of 99f - ldr \rv, [\rp] @ get absolute addr of 99f - sub \rv, \rv, \rp @ offset between the two - ldr \rp, [\rp, #4] @ abs addr of omap_uart_phys - sub \tmp, \rp, \rv @ make it effective - ldr \rp, [\tmp, #0] @ omap_uart_phys - ldr \rv, [\tmp, #4] @ omap_uart_virt - cmp \rp, #0 @ is port configured? - cmpne \rv, #0 - bne 100f @ already configured - /* Configure the UART offset from the phys/virt base */ -#ifdef CONFIG_DEBUG_OMAP2UART1 +#if defined(CONFIG_DEBUG_OMAP2UART1) mov \rp, #UART_OFFSET(OMAP2_UART1_BASE) @ omap2/3/4 b 98f -#endif -#ifdef CONFIG_DEBUG_OMAP2UART2 +#elif defined(CONFIG_DEBUG_OMAP2UART2) mov \rp, #UART_OFFSET(OMAP2_UART2_BASE) @ omap2/3/4 b 98f -#endif -#ifdef CONFIG_DEBUG_OMAP2UART3 +#elif defined(CONFIG_DEBUG_OMAP2UART3) mov \rp, #UART_OFFSET(OMAP2_UART3_BASE) b 98f -#endif -#ifdef CONFIG_DEBUG_OMAP3UART3 +#elif defined(CONFIG_DEBUG_OMAP3UART3) mov \rp, #UART_OFFSET(OMAP3_UART1_BASE) add \rp, \rp, #0x00fb0000 add \rp, \rp, #0x00006000 @ OMAP3_UART3_BASE b 98f -#endif -#ifdef CONFIG_DEBUG_OMAP4UART3 +#elif defined(CONFIG_DEBUG_OMAP4UART3) mov \rp, #UART_OFFSET(OMAP4_UART3_BASE) b 98f -#endif -#ifdef CONFIG_DEBUG_OMAP3UART4 +#elif defined(CONFIG_DEBUG_OMAP3UART4) mov \rp, #UART_OFFSET(OMAP3_UART1_BASE) add \rp, \rp, #0x00fb0000 add \rp, \rp, #0x00028000 @ OMAP3_UART4_BASE b 98f -#endif -#ifdef CONFIG_DEBUG_OMAP4UART4 +#elif defined(CONFIG_DEBUG_OMAP4UART4) mov \rp, #UART_OFFSET(OMAP4_UART4_BASE) b 98f -#endif -#ifdef CONFIG_DEBUG_TI81XXUART1 +#elif defined(CONFIG_DEBUG_TI81XXUART1) mov \rp, #UART_OFFSET(TI81XX_UART1_BASE) b 98f -#endif -#ifdef CONFIG_DEBUG_TI81XXUART2 +#elif defined(CONFIG_DEBUG_TI81XXUART2) mov \rp, #UART_OFFSET(TI81XX_UART2_BASE) b 98f -#endif -#ifdef CONFIG_DEBUG_TI81XXUART3 +#elif defined(CONFIG_DEBUG_TI81XXUART3) mov \rp, #UART_OFFSET(TI81XX_UART3_BASE) b 98f -#endif -#ifdef CONFIG_DEBUG_AM33XXUART1 +#elif defined(CONFIG_DEBUG_AM33XXUART1) ldr \rp, =AM33XX_UART1_BASE and \rp, \rp, #0x00ffffff b 97f -#endif -#ifdef CONFIG_DEBUG_ZOOM_UART +#elif defined(CONFIG_DEBUG_ZOOM_UART) ldr \rp, =ZOOM_UART_BASE - str \rp, [\tmp, #0] @ omap_uart_phys - ldr \rp, =ZOOM_UART_VIRT - str \rp, [\tmp, #4] @ omap_uart_virt - mov \rp, #(UART_LSR << ZOOM_PORT_SHIFT) - str \rp, [\tmp, #8] @ omap_uart_lsr + ldr \rv, =ZOOM_UART_VIRT + mov \tmp, #(UART_LSR << ZOOM_PORT_SHIFT) + b 100f +#else +#error "Error! No proper debug option is defined." #endif - b 10b /* AM33XX: Store both phys and virt address for the uart */ 97: add \rp, \rp, #0x44000000 @ phys base - str \rp, [\tmp, #0] @ omap_uart_phys - sub \rp, \rp, #0x44000000 @ phys base - add \rp, \rp, #0xf9000000 @ virt base - str \rp, [\tmp, #4] @ omap_uart_virt - mov \rp, #(UART_LSR << OMAP_PORT_SHIFT) - str \rp, [\tmp, #8] @ omap_uart_lsr + sub \rv, \rp, #0x44000000 @ phys base + add \rv, \rv, #0xf9000000 @ virt base + mov \tmp, #(UART_LSR << OMAP_PORT_SHIFT) - b 10b + b 100f /* Store both phys and virt address for the uart */ 98: add \rp, \rp, #0x48000000 @ phys base - str \rp, [\tmp, #0] @ omap_uart_phys - sub \rp, \rp, #0x48000000 @ phys base - add \rp, \rp, #0xfa000000 @ virt base - str \rp, [\tmp, #4] @ omap_uart_virt - mov \rp, #(UART_LSR << OMAP_PORT_SHIFT) - str \rp, [\tmp, #8] @ omap_uart_lsr - - b 10b - - .align -99: .word . - .word omap_uart_phys - .ltorg - -100: /* Pass the UART_LSR reg address */ - ldr \tmp, [\tmp, #8] @ omap_uart_lsr + sub \rv, \rp, #0x48000000 @ phys base + add \rv, \rv, #0xfa000000 @ virt base + mov \tmp, #(UART_LSR << OMAP_PORT_SHIFT) + +100: /* Add the UART_LSR reg address */ add \rp, \rp, \tmp add \rv, \rv, \tmp .endm