Received: by 2002:a05:7412:8598:b0:f9:33c2:5753 with SMTP id n24csp501517rdh; Tue, 19 Dec 2023 05:37:32 -0800 (PST) X-Google-Smtp-Source: AGHT+IHA2jFUREM4UDi/I7o7VSMR6x+4PM6UftwilvM4znQmIX4N6cH5vY+5THaGhdXzsV0Hzn81 X-Received: by 2002:a05:6512:2823:b0:50e:3714:b420 with SMTP id cf35-20020a056512282300b0050e3714b420mr2095975lfb.9.1702993052202; Tue, 19 Dec 2023 05:37:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702993052; cv=none; d=google.com; s=arc-20160816; b=0kGLZuZP6phkXidZAy9XEFlpLl15GCWXl/KZsLKF3z44JJszF7EF8P9X3K7whAzboX wLtNtkmj/NgRhaRMjtJ52WKwet21Z1rXa0ZLtK63qPfylsNphnF9pMKJcPH/6vSJg1LH z4oH+eA0fg0c9u3rnBjodK38vNOCp90xTMqI4UyeQGxyJdU9iICaY3m6tw6yz41kc8lL CsR5xYOTPbMS8xzxjITT1yXjiEi7aTsAb/fSmxr42DURYJn5VbSzL2Fh/KcTaOdZDgjd nbIvVv+/u3cIgg15Ok8eB1XZpVP9gI1ZrVP0nBHineBQtvRvpRjjRCQQloV2KOWI3WVm yz0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:date:message-id:dkim-signature; bh=ZzePefga1B02f6n3jYDjT/Gt0GHTCGQ31XDH1CWatM0=; fh=6v7/79oMYoRy67ZfZt9QYX6F5Cdwi+N/luivP4wnsbw=; b=vjuZ2Z6ZMBoVQGy6iuZiKhy8KuYGAESZ68V+dZIZzEt7k9QsJMiEbh7ls939aDkY5k 5CY4nMEU9Pjv63sySgWlZD6wqjJI/PUyKq5Kx3Ba3e0dGDAh+s3bLzWanGB0Vpvf8SNC vRxwoxwoH4TVpko70uMpg6T88RG/fQ2usqjIXW3SLnW7f3jo0h4jt2VInhu/U9ATIbRh J4/upZZtwfrObuLr5QAS3y0rYAhELgJ2DyrKo9Oi3h/94jY7v0Gq00vb8mkt2TPbuYgp 3Xb9uZdxUT5fcCiQZcAvpxJ0DIzXr1V0Uu9a9IPDMSiTakQ3UPGYMlZAIiB0giCime/1 sFwQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=i+8ivEIG; spf=pass (google.com: domain of linux-embedded+bounces-7-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-embedded+bounces-7-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id gx21-20020a170906f1d500b00a2339255aeesi2467684ejb.53.2023.12.19.05.37.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Dec 2023 05:37:32 -0800 (PST) Received-SPF: pass (google.com: domain of linux-embedded+bounces-7-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=i+8ivEIG; spf=pass (google.com: domain of linux-embedded+bounces-7-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-embedded+bounces-7-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 7C5481F254CC for ; Tue, 19 Dec 2023 13:37:31 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 15252199CA; Tue, 19 Dec 2023 13:37:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="i+8ivEIG" X-Original-To: linux-embedded@vger.kernel.org Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0103C1945C for ; Tue, 19 Dec 2023 13:37:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-32f8441dfb5so4363511f8f.0 for ; Tue, 19 Dec 2023 05:37:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702993043; x=1703597843; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=ZzePefga1B02f6n3jYDjT/Gt0GHTCGQ31XDH1CWatM0=; b=i+8ivEIGlbATh3y5y67yAWINmiUaZS7LyP7XlNN9f2EdX7n8myLv71079cKQ35ENd4 zApUk7y0SAQxhA1aSDfFv0QXwR6bCeftr4VAkjeDL86JzK48B83u8Ff5h6G8U5T1WrmH CeFmRhpYJ+w/FhVN3leFsZdUDJ3f4AecjHxWzhxWz/pK2i4ujfLeZJyycdJyHgfPvl5+ 2ngssM2S9NyN2ou1E9u0xhxp33lGqFk+ZkCL4odi8p731l+PKGataDzlogL35/v47lRQ vyucxdhl2Ush42bn5Fuo1smdNa26lrmQFqlI+L1nD9S3dQpRIXex0dOMyd2bBVudCSvi pFig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702993043; x=1703597843; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ZzePefga1B02f6n3jYDjT/Gt0GHTCGQ31XDH1CWatM0=; b=AZ/8AmS8K1nbHhJMLi55Fg/z0CL0mrm2/VMI9n1jT1NTx0IhmnGSogPlZoFDjs0fGC B3QEk0CygD1K5HwOoyEvnaqJVTTtz5TRkSOLh30tIoJeSHXGTJ54FNF4a4Hr0NoxDxaV XHsgpkK1JnBwgpGHkhuWIWitJPHf7RkInn7uhIQxfB09R9YEzYt0QW6KntCG+uBI7YwA uUnI0Ld3VIdw3ijeb879Ifc0wENqACLB6+XBdOA02OXgIhxPw1U5ZYceTu1sp8Hb726W cVdjbVnVetfZtv4u3b8MLVYQWL6EBjV/MVGRJy5BKTHnOenB1Vhk0ZnSC4fe7jRpfQaj glSg== X-Gm-Message-State: AOJu0YxfFVuZG/btFbkGptEYiPAuB2Syo+PsmR7sYlh89SmuQEj3Kvvk 37fIy7Lhuus01Tk2oLH2F9JHgE2GHsM= X-Received: by 2002:a05:600c:16d4:b0:40c:275b:319 with SMTP id l20-20020a05600c16d400b0040c275b0319mr8815518wmn.111.1702993043022; Tue, 19 Dec 2023 05:37:23 -0800 (PST) Received: from ?IPV6:2003:df:bf1f:bd00:833c:aedf:5f19:a956? (p200300dfbf1fbd00833caedf5f19a956.dip0.t-ipconnect.de. [2003:df:bf1f:bd00:833c:aedf:5f19:a956]) by smtp.gmail.com with ESMTPSA id og49-20020a1709071df100b00a239a593aa9sm741610ejc.161.2023.12.19.05.37.22 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 19 Dec 2023 05:37:22 -0800 (PST) Message-ID: <375eeb75-dde5-4806-a2d7-7f4e97342ee8@gmail.com> Date: Tue, 19 Dec 2023 14:37:22 +0100 Precedence: bulk X-Mailing-List: linux-embedded@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Debugging early SError exception Content-Language: de-AT-frami To: Lior Weintraub , "linux-embedded@vger.kernel.org" References: From: Dirk Behme In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Am 19.12.23 um 14:23 schrieb Lior Weintraub: > Thanks Dirk, Welcome :) In case you find the root cause it would be nice to get some generic description of it so that we can learn something :) Best regards Dirk >> -----Original Message----- >> From: Dirk Behme >> Sent: Tuesday, December 19, 2023 9:09 AM >> To: Lior Weintraub ; linux-embedded@vger.kernel.org >> Subject: Re: Debugging early SError exception >> >> [You don't often get email from dirk.behme@gmail.com. Learn why this is >> important at https://aka.ms/LearnAboutSenderIdentification ] >> >> CAUTION: External Sender >> >> Am 17.12.23 um 22:32 schrieb Lior Weintraub: >>> Hi, >>> >>> We have a new SoC with eLinux porting (kernel v6.5). >>> This SoC is ARM64 (A53) single core based device. >>> It runs correctly on QEMU but fails with SError on emulation platform >> (Synopsys Zebu running our SoC model). >>> There is no debugger connected to this emulation but there are several >> debug capabilities we can use: >>> 1. Generating wave dump of CPU signals >>> 2. Generate a Tarmac log >>> 3. UART >>> >>> Since the SError happens at early stages of Linux boot the UART is not >> enabled yet. >>> From the Tarmac log we can see: >>> 3824884521 ps ES (ffff800080760888:d65f03c0) O el1h_ns: ret >> (parse_early_param) >>> 3824884522 ps ES (ffff800080763a60:d2801800) O el1h_ns: mov x0, >> #0xc0 // #192 (setup_arch) >>> R X0 (AARCH64) 00000000 000000c0 >>> 3824884523 ps ES (ffff800080763a64:d51b4220) O el1h_ns: msr >> daif, x0 (setup_arch) >>> R CPSR 600000c5 >>> 3824884529 ps ES System Error (Abort) >>> EXC [0x380] SError/vSError Current EL with SP_ELx >>> R ESR_EL1 (AARCH64) bf000002 >>> R CPSR 600003c5 >>> R SPSR_EL1 (AARCH64) 600000c5 >>> R ELR_EL1 (AARCH64) ffff8000 80763a68 >>> 3824884925 ps ES (ffff800080010b80:d10543ff) O el1h_ns: sub sp, >> sp, #0x150 (vectors) >>> R SP_EL1 (AARCH64) ffff8000 808f3c50 >>> 3824884925 ps ES (ffff800080010b84:8b2063ff) O el1h_ns: add sp, >> sp, x0 (vectors) >>> R SP_EL1 (AARCH64) ffff8000 808f3d10 >>> 3824884926 ps ES (ffff800080010b88:cb2063e0) O el1h_ns: sub x0, >> sp, x0 (vectors) >>> R X0 (AARCH64) ffff8000 808f3c50 >>> 3824884927 ps ES (ffff800080010b8c:37700080) O el1h_ns: tbnz w0, >> #14, ffff800080010b9c (vectors) >>> 3824884935 ps ES (ffff800080010b90:cb2063e0) O el1h_ns: sub x0, >> sp, x0 (vectors) >>> R X0 (AARCH64) 00000000 000000c0 >>> 3824884937 ps ES (ffff800080010b94:cb2063ff) O el1h_ns: sub sp, >> sp, x0 (vectors) >>> R SP_EL1 (AARCH64) ffff8000 808f3c50 >>> 3824884938 ps ES (ffff800080010b98:140001ef) O el1h_ns: b >> ffff800080011354 (vectors) >>> >>> If I understand correctly, the exception happened sometime earlier and only >> now Linux boot code (setup_arch) opened the exception handling and as a >> result we immediately jump to the SError exception handler. >> >> >> Yes, that sounds reasonable. If I understood correctly, you are >> running something "quite new" on some software (QEMU) and hardware >> (Synopsis) simulators. >> >> That would mean that you have new hardware with e.g. new memory map >> not used before. What you describe might sound like in the code before >> Linux (boot loader) there is anything resulting in the SError. This >> might be an access to non-existing or non-enabled hardware. I.e. it >> might be that you try to access (read/write) an address what is not >> available, yet (or just invalid). It's hard to debug that. In case you >> are able to modify the code before Linux (the boot loader?) you might >> try to enable SError exceptions, there, too. To get it earlier and >> with that make the search window smaller. I'm not that familiar with >> QEMU, but could you try to trace which (all?) hardware accesses your >> code does. And with that analyse all accesses and with that check if >> all these accesses are valid even on the hardware (Synopsis) emulation >> system? That should be checked from valid address and from hardware >> subsystem enablement point of view. >> >> Hth, >> >> Dirk >> >> >>> From the Linux source: >>> parse_early_param(); >>> >>> dynamic_scs_init(); >>> >>> /* >>> * Unmask asynchronous aborts and fiq after bringing up possible >>> * earlycon. (Report possible System Errors once we can report this >>> * occurred). >>> */ >>> local_daif_restore(DAIF_PROCCTX_NOIRQ); <---- This is when we get the >> exception. >>> >>> After some kernel hacking (replacing printk) we could extract the logs: >>> 6Booting Linux on physical CPU 0x0000000000 [0x410fd034] >>> 5Linux version 6.5.0 (pliops@dev-liorw) (aarch64-buildroot-linux-gnu- >> gcc.br_real (Buildroot 2023.02.1-95-g8391404e23) 11.3.0, GNU ld (GNU >> Binutils) 2.38) #101 SMP Sun Dec 17 20:09:06 IST 2023 >>> 6Machine model: Pliops Spider MK-I EVK >>> 2SError Interrupt on CPU0, code 0x00000000bf000002 -- SError >>> CPU: 0 PID: 0 Comm: swapper Not tainted 6.5.0 #101 >>> Hardware name: Pliops Spider MK-I EVK (DT) >>> pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--) >>> pc : setup_arch+0x13c/0x5ac >>> lr : setup_arch+0x134/0x5ac >>> sp : ffff8000808f3da0 >>> x29: ffff8000808f3da0c x28: 0000000008758074c x27: >> 0000000005e31b58c >>> x26: 0000000000000001c x25: 0000000007e5f728c x24: >> ffff8000808f8000c >>> x23: ffff8000808f8600c x22: ffff8000807b6000c x21: ffff800080010000c >>> x20: ffff800080a1e000c x19: fffffbfffddfe190c x18: 000000002266684ac >>> x17: 00000000fcad60bbc x16: 0000000000001800c x15: >> 0000000000000008c >>> x14: ffffffffffffffffc x13: 0000000000000000c x12: 0000000000000003c >>> x11: 0101010101010101c x10: ffffffffffee87dfc x9 : 0000000000000038c >>> x8 : 0101010101010101c x7 : 7f7f7f7f7f7f7f7fc x6 : 0000000000000001c >>> x5 : 0000000000000000c x4 : 8000000000000000c x3 : >> 0000000000000065c >>> x2 : 0000000000000000c x1 : 0000000000000000c x0 : >> 00000000000000c0c >>> 0Kernel panic - not syncing: Asynchronous SError Interrupt >>> CPU: 0 PID: 0 Comm: swapper Not tainted 6.5.0 #101 >>> Hardware name: Pliops Spider MK-I EVK (DT) >>> Call trace: >>> dump_backtrace+0x9c/0xd0 >>> show_stack+0x14/0x1c >>> dump_stack_lvl+0x44/0x58 >>> dump_stack+0x14/0x1c >>> panic+0x2e0/0x33c >>> nmi_panic+0x68/0x6c >>> arm64_serror_panic+0x68/0x78 >>> do_serror+0x24/0x54 >>> el1h_64_error_handler+0x2c/0x40 >>> el1h_64_error+0x64/0x68 >>> setup_arch+0x13c/0x5ac >>> start_kernel+0x5c/0x5b8 >>> __primary_switched+0xb4/0xbc >>> 0---[ end Kernel panic - not syncing: Asynchronous SError Interrupt ]--- >>> >>> Can you please advice how to proceed with debugging? >>> >>> Thanks in advanced, >>> Cheers, >>> Lior. >>> >>> >> >