From patchwork Tue May 13 12:52:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: 'Thomas Petazzoni' via Amarula Linux X-Patchwork-Id: 4005 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-yw1-f197.google.com (mail-yw1-f197.google.com [209.85.128.197]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 4B55C3F142 for ; Tue, 13 May 2025 14:52:30 +0200 (CEST) Received: by mail-yw1-f197.google.com with SMTP id 00721157ae682-708af1dc9easf80244727b3.2 for ; Tue, 13 May 2025 05:52:30 -0700 (PDT) ARC-Seal: i=3; a=rsa-sha256; t=1747140749; cv=pass; d=google.com; s=arc-20240605; b=QH9VwA0m3C7Hq/YYgkoqYE+mWolKtdn5842z53sfueLsOilVvJAz1Fa+RZTjI/DvKQ Gxdphit0BJqS4bAmcLHHCeV/Lr/n8kdRjU4hPnL7rWcPTQSJzhHzVjrNDpjvSEJ/G5XC 1H6Qplplftta79TxekUMb1frN62yh50X5k0dTcliusBAJxUnBLaO0ZkCF1/E7gDch3HD s+c5URy6I5bQzRl0+nMWoehzhGB1BteDbSRhbpwJJ3Qw7MvDhZZDP/tAmfo4IEJ0VCtz BZ2abExA3jQMPZNujEyJxuOfyXoI1ICt8hDQm75gheWCkelcwa19SHINUpoUAcid9M4y idKQ== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:reply-to:mime-version :content-transfer-encoding:content-language:accept-language :in-reply-to:references:message-id:date:thread-index:thread-topic :subject:cc:to:from:dkim-signature; bh=KoqUy0UKbUbIsA+8PipvbHUWeX521q2iXq/onYY1eKk=; fh=tht50yBw67E7A3bS0rnW/pktXn4U7xg4+FFJ+HJA6NY=; b=UGRk4BqrnQht8X9e3japjP2N9f2/3Btn2U6srf745PVUSNMjoymclFf9SXVwxN53fd tBWRu6t3UYSZ6HU3ttB+AgON7kxgkWJuc/Ne0jGcxitcZfdc+2vZ6Zsykphb92KwYV/f XaR7xYeH4B/kavo6M2KrSUMw/Ppq9RU7NFOu7WWeEnJPOufNLuCMwNSf0wqWVVqI78le 0+BArVx9qQC09MA0I30bGt07R6/snv5UDnq7DlBN1F6qnimOKtTxzUUT3YXxDp/0Qama 3k7kAjESjZYMn1AfDYY/zxFfcGs3+kux6V0uKkfycSeGcFpQjkwJjT2w6ThIzWN/yN4Z uf6Q==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=3; mx.google.com; dkim=pass header.i=@bshg.com header.s=selector2 header.b=s08JX1i1; arc=pass (i=1 spf=pass spfdomain=bshg.com dkim=pass dkdomain=bshg.com dmarc=pass fromdomain=bshg.com); spf=pass (google.com: domain of michael.bode@bshg.com designates 2a01:111:f403:c201::7 as permitted sender) smtp.mailfrom=michael.bode@bshg.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bshg.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1747140749; x=1747745549; darn=patchwork.amarulasolutions.com; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:reply-to:x-original-authentication-results :x-original-sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:from:to:cc :subject:date:message-id:reply-to; bh=KoqUy0UKbUbIsA+8PipvbHUWeX521q2iXq/onYY1eKk=; b=NUKCMw8y+6l+pTrG1TI1zo3KhS0OOQnVrEBwmBS1HRLnQjC2HKFzKQc0/33o3ShZ1m FcrJ/k8PF13+83sQuw9+ETXA+GEysHYi7ZDtMxQesFWB91fpI1oBXeXxQgF6b9VQJkv/ W7hWHCsKQszglETw1jvcXwWSZG6UKnQwJI+a0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747140749; x=1747745549; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:mime-version :content-transfer-encoding:content-language:accept-language :in-reply-to:references:message-id:date:thread-index:thread-topic :subject:cc:to:from:x-beenthere:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KoqUy0UKbUbIsA+8PipvbHUWeX521q2iXq/onYY1eKk=; b=eY20umQ445n2+ikaAnZKEITriuC597BmoC9YAqG3r1PJKkTCtb0dbf9RICukGI2wKI AHL8nXiVqiAUrtIGmIxzoBFy9x2Z8MhJOBDm+MyL8830DPUJupQ0L7MW2s3+KbzKzs1X JRNKb/wUkQYNHX+ezqyFATm1NSb2XZz9aAS7+dBdD5/aAxJ7KUdxJu6wMoqYQTd9JvRk U7XrmFS2p7BM1A/hfP6rtp9iBMj4NvvLuE/kysaqVx70dtV3gHMY5VfFWJZS7pN2Yli5 YT2/Lm6mPU+xDvq0yJ5oOE8e4N7nP0yuXiiEjbeIU3fJ4exYq8jPwFIdcvpTJemTT6TC n5+g== X-Forwarded-Encrypted: i=3; AJvYcCU0uQaPZWKIXj85GrLv9+VwMnVpGFqzsBMVmYxoINl2oEVUsuRIb9rudelsCjjNWbUWWHk2jx32twqYxJZi@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YwOBpMRZNgNOy/tCpGBO/WWS33CMT+4i9i/BraiR25/9uiZ5SbA 40XJWoy6ouCxsy5XEpV99jFfHEeIOf2iQhO0ODhpQVQW52/iqmF5VLmJrShCA/yIWg== X-Google-Smtp-Source: AGHT+IEqZqst8/YySDmEzMsqsqOXUAOnfa+657537bnyL93OoV1jgwQDMmA79g18p2f/2TEYCGqIcA== X-Received: by 2002:a05:6902:188f:b0:e78:f7a0:fcf8 with SMTP id 3f1490d57ef6-e78fdd62ce9mr21787325276.48.1747140749008; Tue, 13 May 2025 05:52:29 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com; h=AVT/gBGWn4kA+qeQcCe3zlrGuX38DTUuCkMcqaTGdXhNWFSJKw== Received: by 2002:a25:e08a:0:b0:e7a:63e6:d8e0 with SMTP id 3f1490d57ef6-e7a63e6dd08ls1740551276.1.-pod-prod-05-us; Tue, 13 May 2025 05:52:28 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCUStSldnGgJuTpjay6QhW4+H7MMWdDH8l76V3HXAbaPIOyEZKyn9JHbsjQWJ+sCueO0vV36ERC5cokM3QwH@amarulasolutions.com X-Received: by 2002:a05:690c:2902:b0:709:171e:1310 with SMTP id 00721157ae682-70a3fb8072fmr221743077b3.34.1747140748152; Tue, 13 May 2025 05:52:28 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1747140748; cv=pass; d=google.com; s=arc-20240605; b=FbsaESoJSwHNUCM3g/dSlR3DlAW+TKfftYFOxVo8gQKTV6fz7VtMpNqb52xlRuO7wt KcslkxH4MB9Qq7s4JK9ahGnJQEpiRgVLqCZ63uQI6gXj3qJCYKuw5WXMz1fxi3OOSD2R vk2qk+4q9Swc8FzjxnhJBuGIIEz9DKsohystNeIGzPk61W5Mh5kCWFhBMzbVIdpHJAjI 8UgxikUzJOvF0puttT9EEC8tlHd2ZQsK+P8rDGBHTv4CtOtHu6zCzvUayMNc2Nzi0U5/ PUz7iQujRYWTSXge152FJDlav23OFc0IHPVRfonRE1n5NnQYK8pBkeFEr64uICH6Rzgg kGRg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=mime-version:content-transfer-encoding:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature; bh=PLurhbhfBJJPFRBZ+j0dQ3sjbX2RwkNiRz4ny09/M0k=; fh=FfKm2B3ucHl/JCQoX9Jtgh0alcyv/em6yIDzfSjOuMQ=; b=Bt5EW3DtrvdTfMQIdhA06ZhPVq7lfMw2wz6Hxqm0AzIwSARXZywETXmZOJ/OXyUeRV M03wgQXbcyCy7OSkGOvLw5jquZfyrXw/9+Lka/XzaB1MMxbda13ETBnS5g8IBob7rguW FYr4VuWmWszBGwLe4UXXEwRuacRQPVA+J6LE0+caGzA6pcgEHz6WYbD1yyc0bfJbbgQO 2ytnalY1Trmg4Ss/NTegOoGcibhxfPhns/3AkZ1PqUeElSK/VnpNrHatWuWPImZrISdc mQAxnhbEeMTmK6fEMcgtAYVDsrPAQmC8m0hz6tkN8c0HCbgn109SzsJzdQvhheykLF0T Vp/Q==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@bshg.com header.s=selector2 header.b=s08JX1i1; arc=pass (i=1 spf=pass spfdomain=bshg.com dkim=pass dkdomain=bshg.com dmarc=pass fromdomain=bshg.com); spf=pass (google.com: domain of michael.bode@bshg.com designates 2a01:111:f403:c201::7 as permitted sender) smtp.mailfrom=michael.bode@bshg.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bshg.com Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazlp170130007.outbound.protection.outlook.com. [2a01:111:f403:c201::7]) by mx.google.com with ESMTPS id 00721157ae682-70a3d7f0c54si88219367b3.84.2025.05.13.05.52.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 May 2025 05:52:28 -0700 (PDT) Received-SPF: pass (google.com: domain of michael.bode@bshg.com designates 2a01:111:f403:c201::7 as permitted sender) client-ip=2a01:111:f403:c201::7; ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QnZsskmviRqVmFZC0IYiuhGmA2qx5+qdP40B9BoR4vSdmmaUSMGpB6PCLkHHeMdrCWJA8xI5ue3lRr8AjdqTukLsVy6zEFV9Oab0vw5NnBv7nWyOIKQLnVGLid60AWz74fgbAxQRa/8IoNuE58qofk2GOOg114KRqJsFL0pfqCrXU48DYvus2noRtl4lKWqDZ7gaUMFLWIeCw4edQvz9UQbm/jzZec1b6YUHE75PnvlWo3GuzsQ+pO9VNFh+hSn5BNqvtGh2663IpLdkhaEcjVomm0CSThM6o5IBm4XMPaGfJ6JIu79xuc2uC8JBQsMcKDeQx1C9xfXQJDUVa8nEQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=PLurhbhfBJJPFRBZ+j0dQ3sjbX2RwkNiRz4ny09/M0k=; b=qfRyhsb5WgsFVybo/Hc3K+tteL0uJLlKDYxXRKBKqiV5UgEu8h8tc/cjuE8YexmHqni6NSQCTTY3Ivs5PZ0PLLPh1BDzeT9HcrRRI4gbevzK+hapydq6pRHk4j876vaL6bX4lTbuOStbn/YcvpOLAcnn69BthQ562j36OfQjKQoPz3TmTGGB/XcgObbNlbvCMvxdrxvRfhdaY0ZQt9ZDwRqDaFC158MYIvzULyizjRn7lXh8QxU/+QdZCA1vyYuOS9tqAPdLZ6eunXT7UvCJgA1CXes9o1SVp5+okZ161kpCwL6QudN9oBuXmiofeL6CFGf4j2fhFgqJuMygOqpLvw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=bshg.com; dmarc=pass action=none header.from=bshg.com; dkim=pass header.d=bshg.com; arc=none Received: from DU0PR10MB6510.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:406::8) by PR3PR10MB3836.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:48::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8699.20; Tue, 13 May 2025 12:52:25 +0000 Received: from DU0PR10MB6510.EURPRD10.PROD.OUTLOOK.COM ([fe80::7762:b85:64cf:af7d]) by DU0PR10MB6510.EURPRD10.PROD.OUTLOOK.COM ([fe80::7762:b85:64cf:af7d%4]) with mapi id 15.20.8722.027; Tue, 13 May 2025 12:52:25 +0000 From: "'Bode Michael (BSH GDE-EDSD7)' via Amarula Linux" To: Dario Binacchi , "linux-amarula@amarulasolutions.com" CC: "michael@amarulasolutions.com" , "Holesch Simon (BSH GDE-EDSD7)" Subject: AW: [PATCH 1/4] board: bsh: imx6ulz_smm_m2: Match SPL DDR settings to DCD table Thread-Topic: [PATCH 1/4] board: bsh: imx6ulz_smm_m2: Match SPL DDR settings to DCD table Thread-Index: AQHbxALm+xELTp4PKUygSf4DD3jh5LPQgAeQ Date: Tue, 13 May 2025 12:52:25 +0000 Message-ID: References: <20250513123039.1676913-1-dario.binacchi@amarulasolutions.com> In-Reply-To: <20250513123039.1676913-1-dario.binacchi@amarulasolutions.com> Accept-Language: de-DE, en-US Content-Language: de-DE X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DU0PR10MB6510:EE_|PR3PR10MB3836:EE_ x-ms-office365-filtering-correlation-id: e52093dc-a4e6-4db8-7335-08dd921d02dd x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?q?+0LvO126X2VUJEijK4aasGjOFh?= =?iso-8859-1?q?EBdnb6hGaq5mqZGTewNWZdl2q36s6iEiU4frKJD9FLKlMSRoJsq2fdQj5W6f?= =?iso-8859-1?q?V8iPhA+sWvWzlrLQtR7XkauvDAXQP1Eb5GFL2deJN7XXpC9jpBYRCMmV9Pm5?= =?iso-8859-1?q?57H4Umze3shvlFBaD1gEBktDr0uE4rs9Zsfd8/7b5/0aDO6Eq1XFGVdm8oDs?= =?iso-8859-1?q?FxM8Sop1/DBzd3tEgktWX77M4FzeCc4OagUG1al3QZ6Acv15sf+3tnSOMogq?= =?iso-8859-1?q?+bvHMBO5IGkfV8n10GoZU/p7EswujdNBNQZc5j3feYqHUU/Ijs1TElCX3pyk?= =?iso-8859-1?q?3yfhN5XtmlSX0A76t27u9cAf40Fm5fEffsQxxBqUzEPsJxcR0+TfBCUCqXcC?= =?iso-8859-1?q?yhTGjaB18q3CNDCIn4cI3JS3Xr8lHbpMPJJgZfgO1pcU4f1oJlXWIaTGt3UV?= =?iso-8859-1?q?YM2muCC+vUxYEd5Ll4DbHOcCo1+3RTVHsEiOcgkdHGdkF9IAa6VOH974pWNa?= =?iso-8859-1?q?viNEmm3gon/WSf6Y1gbJYYFysNYyaomcI7kf3/eDJimYnixaoZMyZFok9xB0?= =?iso-8859-1?q?JHc+Xpu5kCXukLKAS0Ho4mbTjH22Ctpvp9nXmkOTaOkufuDug2iLPE+sG2S3?= =?iso-8859-1?q?J5BgeRiN1AqlxX1ljSygdwVEYpH4s+BMfOoprsDy4UT8p0NLP6+dnMNSLqPn?= =?iso-8859-1?q?ClqOt8NO03ORev1zj9BAWZMYhBtkuodl4EtCP+Nww6uG9TXe5YMsqliDeaC+?= =?iso-8859-1?q?SQtDecnNKnUQ820tcQPawQt42ZVZJojca4IAklJiJuKsnlITPF4dwFqaegbZ?= =?iso-8859-1?q?dzglo0Kib2K6m/n7Grz1ensS5t1sSz4S7QbS77NwQ+OQz6YN5AopX+Og8brS?= =?iso-8859-1?q?QLgI2d76bRdVvHjUnGWditkH1RnA3Us57hDZ2oY88aIdG5fH81uO7NWA+BO3?= =?iso-8859-1?q?KLyqoM7TEvJar+T6DJ05Ygey9y+5V2+Ys/VukINhvtT6QpNJku82tdbco4of?= =?iso-8859-1?q?Sl8dc+C4RhYaqOP8u1vZRAcDntixGDGbmSp6ue4q9kYB5kQaoM9ris35ZcvR?= =?iso-8859-1?q?hnyn+bu5rWgTQLVaHnkbC+LgRKtiVl2kxSf69WC9s3ts5q+ivE2iUGgNyeRE?= =?iso-8859-1?q?WlfSgJCzxAThcf1kHiMDXv+J8au/2gwqZUUR+Ru2F4T41p1XrsDJSrGpFJws?= =?iso-8859-1?q?1FIRML7qA03lLhY0/rfeCl4oAtvP5LKEIGCTyEMoWbvcGJLAsXBWJwXd8A7B?= =?iso-8859-1?q?33bu0W+VV2uxk8VEa206iMz5rKc/77GLZEYrGhGZJcx3c263jlwJlS9kDUTI?= =?iso-8859-1?q?MwIUrE9qTNZ4wrSpNmvT56tGPyCt6h/h6sHp/Pi3PJTq+9qzYCBrGl0UrRM0?= =?iso-8859-1?q?gIoFjw3IOC6+vn7y43hNKRodXKzdgpeFj7fVw3nDqtPPwFH751fzaNfBhnrx?= =?iso-8859-1?q?VEZS+xncoFY9Gpy/aJMmaZQ3vfQphXDqYfcEXFt0gTCrs=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR10MB6510.EURPRD10.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?quTwNi3bqSxWb+Wf4ezp+Zf?= =?iso-8859-1?q?BGjTUoUAPT8WJGFuWVzYGkDoi/E908nJVkideyWzHNWKFzxb3sx7mE4HVkCo?= =?iso-8859-1?q?8MxUHwmvDbM5WVDbEiViol5sr5zrTY+Wbr4X6qzWMzJ+7RrUJ2YPJ1eYTCaJ?= =?iso-8859-1?q?ys+EeM11gVgMFqlips/o26GPEnhCj27cV2324RKS0WarwiL8yFOCLtMhAa41?= =?iso-8859-1?q?qbZC7IkZ+MOQD9s4e95vc1jShV5d0J+THbOu3rwgle7DDXJ1P0RTWEyqbLPE?= =?iso-8859-1?q?p6oFwZFjMTy9S1rTTNqyFryiUwffMGEteodqPQK9RrZa1+GWSvIi4h7RGxUp?= =?iso-8859-1?q?iByNQ/SLUlCzRwVJz/pJdq1bJrBJgybDA2dtG+2ouk/qCSlRqK4L0MFMZKLR?= =?iso-8859-1?q?G5SR3DPflKmswNGOKlnb6A5JEBbB/XWe9shgjL6ZpIcKh1CYL+g7+m1Pk6ek?= =?iso-8859-1?q?mPYrwWmkXwPGntOF6u3ubp3cPTTXZ3nvYbdC/Ddx7pIFI6iVpJYUlP1RkjC2?= =?iso-8859-1?q?lP3BWn0qnRWsx/UPi8BRqnpj0WeDF4UZpU0OqmVI+EgcogaRHrfC9F//Kfuy?= =?iso-8859-1?q?ztqfb78Elqum+66zgt8YB+YJN4FieqPS3IPFXdczm7+ZYH6k2SvmAylsn/NO?= =?iso-8859-1?q?ZvJTXoy7ttjCiB0Je0eR0edZKC2rjXH9ht44Lb1Z7AcMddwGnAwR/MOQvy4/?= =?iso-8859-1?q?lZNM4M7g8goI+QxywVbC/6aY0e6Pp4mgirTV56vrv0Dx3NL3Vber1LdXBUB7?= =?iso-8859-1?q?WsPgo6Az7tH3SK94+mo2Lr6+ugmJUKPrIDP5IyQoFdl9ODgCVlpQiXIT4q5w?= =?iso-8859-1?q?vLEPVZciTmRAfcu6Pf1+cTumSxV1LiIw+Mj3Dfw7/LjWSHXmYkFIO/F4cz03?= =?iso-8859-1?q?Qx7yccCPxlflI3FB3K8Js55PCGqmYQGa37lOFRpD3GXI+tUl+r1QOBguzT3p?= =?iso-8859-1?q?1KZc2Kah0KadsgB1xarX8+vS6sdQ3KRl0h6Of6Ml6OO66+eXWsxeqf2EsDvy?= =?iso-8859-1?q?S6lFmJW49j6B/URvJ1a1mV0qtJ2b0ToL85aH7eCHb9P27qb1toCTi+0SJ5uw?= =?iso-8859-1?q?UYD0eQDoVYpNnwpzsNPExdmQG7qCyx7TiFMX4JV51JfyPwJjWSf4LZAzGri7?= =?iso-8859-1?q?NLZNv+YpB87B8Tm5vlnSm47H43p6tMktRVpc6wx/KolgL4G8uexpn/bqIiHn?= =?iso-8859-1?q?sbmEoJZy5or+cdRshLTGpKhi/fUPG71/KoVtcz6/o+l05BvteG91Y7SjE3uf?= =?iso-8859-1?q?6RG82MEdYFTqNkfhl4xIww12pr6H2B+YhG6eu/4D7BB7spJsO7gJLZVB8lFP?= =?iso-8859-1?q?aYjAx8S7Sg9JW+pcJpkLCfIXU1HVB+fBKSLSeTZufiVJ7wrj5PoAfBEW7Oom?= =?iso-8859-1?q?aYA/RZoiQxOKHcC/JAYpMVMIaaStBkmLe5g3JW0zOh7WlMbLAB5t+SfdhBrg?= =?iso-8859-1?q?BM+TnC23KPfr8XykoDBCyLhqamdF2dpafbuR1igjfKiY3F+pr/y81aJKr7sU?= =?iso-8859-1?q?nrJKNiExU2SH5ENy7IZk661qTEpAAZxbKxXptvKig6N9gF9FKPGeawro3a7S?= =?iso-8859-1?q?oVJA+tNfOdeWcLUM6eeSmdOMFlsl9glnL22lEckLRGUz99+7gaWTgQQk=3D?= Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 X-OriginatorOrg: bshg.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DU0PR10MB6510.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: e52093dc-a4e6-4db8-7335-08dd921d02dd X-MS-Exchange-CrossTenant-originalarrivaltime: 13 May 2025 12:52:25.6087 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0ae51e19-07c8-4e4b-bb6d-648ee58410f4 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: jY9nKV+4oDGWV+osZm1kQiCDfV+JXfDRY/3GI/VFi0YszALZ451hfVVN+BxkHEYqvU7d9FZTOelwYKCulZ4rVg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR10MB3836 X-Original-Sender: michael.bode@bshg.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@bshg.com header.s=selector2 header.b=s08JX1i1; arc=pass (i=1 spf=pass spfdomain=bshg.com dkim=pass dkdomain=bshg.com dmarc=pass fromdomain=bshg.com); spf=pass (google.com: domain of michael.bode@bshg.com designates 2a01:111:f403:c201::7 as permitted sender) smtp.mailfrom=michael.bode@bshg.com; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bshg.com X-Original-From: "Bode Michael (BSH GDE-EDSD7)" Reply-To: "Bode Michael (BSH GDE-EDSD7)" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , Hi Dario, the rationale behind this is the following: 1. We need to use SPL to allow a selection of DRAM settings according to its size. With DCD table in flash this would not work 2. NXP provides the DRAM register settings that are generated from an Excelsheet. The Excelsheet does not provide C-code, it just provides the pure DRAM data. Although calculating the right settings programmatically would be much more systematic, we need to use the hard-coded values as they are already tested well from our hardware department. I already tried to find out the binary differences between this proper DRAM init and just using the values but unfortunately, I failed. Probably it will be possible to upstream this hard-coded approach but if the community denies to accept this maybe we could also have another look into the C-routines that Do a proper initialization. In the end it needs to be binary the same. Just as a comment ... Br, Michael (Bode) Mit freundlichen Grüßen / Kind regards, Michael Bode OS, BSH GDE-EDSD5 BSH Hausgeräte GmbH, Im Gewerbepark B10, 93059 Regensburg, Deutschland Michael.Bode@bshg.com; www.bsh-group.com BSH Hausgeräte GmbH, Carl-Wery-Str. 34, 81739 München; Vorsitzender des Aufsichtsrats: Dr. Christian Fischer; Geschäftsführung: Dr. Matthias Metz (Vorsitzender), Dr. Alexander Dony, Rudolf Klötscher, Dr. Thorsten Lücke, Lars Schubert; Sitz: MünchenAmtsgericht München, HRB 75534; WEEE-Reg.-Nr. DE 57986696 Diese Mitteilung ist ausschließlich für den beabsichtigten Empfänger bestimmt. Sie kann Betriebs- oder Geschäftsgeheimnisse oder sonstige vertrauliche Informationen enthalten. Jede(r) unberechtigte Gebrauch, Kopie, Weitergabe oder Veröffentlichung ist untersagt. Sollten Sie diese E-Mail irrtümlich erhalten haben, benachrichtigen Sie uns bitte sofort durch Antwortmail und löschen Sie diese E-Mail nebst etwaigen Anlagen und einschließlich aller angefertigten Kopien von Ihrem System. -----Ursprüngliche Nachricht----- Von: Dario Binacchi Gesendet: Dienstag, 13. Mai 2025 14:31 An: linux-amarula@amarulasolutions.com Cc: michael@amarulasolutions.com; dario.binacchi@amarulasolutions.com; Bode Michael (BSH GDE-EDSD7) ; Holesch Simon (BSH GDE-EDSD7) Betreff: [PATCH 1/4] board: bsh: imx6ulz_smm_m2: Match SPL DDR settings to DCD table From: Michael Trimarchi When using SPL on i.mx6 we frequently notice some DDR initialization mismatches between the SPL code and the non-SPL code. As the non-SPL code have been tested for long time and proves to be reliable, let's configure the DDR in the exact same way as the non-SPL case. The idea is simple: just use the DCD table and write directly to the DDR registers. Signed-off-by: Michael Trimarchi Signed-off-by: Dario Binacchi --- arch/arm/include/asm/arch-mx6/mx6-ddr.h | 2 + arch/arm/mach-imx/mx6/ddr.c | 3 + board/bsh/imx6ulz_smm_m2/spl.c | 235 +++++++++++++++++------- 3 files changed, 178 insertions(+), 62 deletions(-) } -static void imx6ul_spl_dram_cfg(void) -{ - mx6ul_dram_iocfg(mem_ddr.width, &mx6_ddr_ioregs, &mx6_grp_ioregs); - mx6_dram_cfg(&ddr_sysinfo, &mx6_mmcd_calib, &mem_ddr); -} - void board_init_f(ulong dummy) { ccgr_init(); + + /* DDR initialization */ + spl_dram_init(); + arch_cpu_init(); timer_init(); setup_iomux_uart(); preloader_console_init(); - imx6ul_spl_dram_cfg(); } void reset_cpu(void) -- 2.43.0 To unsubscribe from this group and stop receiving emails from it, send an email to linux-amarula+unsubscribe@amarulasolutions.com. diff --git a/arch/arm/include/asm/arch-mx6/mx6-ddr.h b/arch/arm/include/asm/arch-mx6/mx6-ddr.h index ad9c1ac906a3..bd3ff65bcd96 100644 --- a/arch/arm/include/asm/arch-mx6/mx6-ddr.h +++ b/arch/arm/include/asm/arch-mx6/mx6-ddr.h @@ -457,6 +457,8 @@ struct mx6_mmdc_calibration { u32 p1_mpwrdlctl; /* lpddr2 zq hw calibration */ u32 mpzqlp2ctl; + /* MDC Duty Cycle Control Register */ + u32 mpdccr; }; /* configure iomux (pinctl/padctl) */ diff --git a/arch/arm/mach-imx/mx6/ddr.c b/arch/arm/mach-imx/mx6/ddr.c index 5a1258e002d2..749ceee0cdbf 100644 --- a/arch/arm/mach-imx/mx6/ddr.c +++ b/arch/arm/mach-imx/mx6/ddr.c @@ -1444,6 +1444,9 @@ void mx6_ddr3_cfg(const struct mx6_ddr_sysinfo *sysinfo, mmdc0->mpdgctrl1 = calib->p0_mpdgctrl1; mmdc0->mprddlctl = calib->p0_mprddlctl; mmdc0->mpwrdlctl = calib->p0_mpwrdlctl; + if (calib->mpdccr) + mmdc0->mpdccr = calib->mpdccr; + if (sysinfo->dsize > 1) { MMDC1(mpwldectrl0, calib->p1_mpwldectrl0); MMDC1(mpwldectrl1, calib->p1_mpwldectrl1); diff --git a/board/bsh/imx6ulz_smm_m2/spl.c b/board/bsh/imx6ulz_smm_m2/spl.c index 724841b57456..0fa510446813 100644 --- a/board/bsh/imx6ulz_smm_m2/spl.c +++ b/board/bsh/imx6ulz_smm_m2/spl.c @@ -31,70 +31,184 @@ static void setup_iomux_uart(void) imx_iomux_v3_setup_multiple_pads(uart4_pads, ARRAY_SIZE(uart4_pads)); } -static struct mx6ul_iomux_grp_regs mx6_grp_ioregs = { - .grp_addds = 0x00000028, - .grp_ddrmode_ctl = 0x00020000, - .grp_b0ds = 0x00000028, - .grp_ctlds = 0x00000028, - .grp_b1ds = 0x00000028, - .grp_ddrpke = 0x00000000, - .grp_ddrmode = 0x00020000, - .grp_ddr_type = 0x000c0000, +struct dram_cfg_param { + unsigned int reg; + unsigned int val; }; -static struct mx6ul_iomux_ddr_regs mx6_ddr_ioregs = { - .dram_dqm0 = 0x00000028, - .dram_dqm1 = 0x00000028, - .dram_ras = 0x00000028, - .dram_cas = 0x00000028, - .dram_odt0 = 0x00000028, - .dram_odt1 = 0x00000028, - .dram_sdba2 = 0x00000000, - .dram_sdclk_0 = 0x00000028, - .dram_sdqs0 = 0x00000028, - .dram_sdqs1 = 0x00000028, - .dram_reset = 0x000c0028, +struct dram_timing_info { + const struct dram_cfg_param *ddrc_cfg; + unsigned int ddrc_cfg_num; }; -static struct mx6_mmdc_calibration mx6_mmcd_calib = { - .p0_mpwldectrl0 = 0x00000000, - .p0_mpwldectrl1 = 0x00100010, - .p0_mpdgctrl0 = 0x414c014c, - .p0_mpdgctrl1 = 0x00000000, - .p0_mprddlctl = 0x40403a42, - .p0_mpwrdlctl = 0x4040342e, -}; +static const struct dram_cfg_param ddr_ddrc_cfg_128mb[] = { + // IOMUX + + //DDR IO TYPE: + { 0x020e04b4, 0x000C0000 }, // IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE + { 0x020e04ac, 0x00000000 }, // IOMUXC_SW_PAD_CTL_GRP_DDRPKE + + //CLOCK: + { 0x020e027c, 0x00000028 }, // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDCLK_0 + + //ADDRESS: + { 0x020e0250, 0x00000028 }, // IOMUXC_SW_PAD_CTL_PAD_DRAM_CAS + { 0x020e024c, 0x00000028 }, // IOMUXC_SW_PAD_CTL_PAD_DRAM_RAS + { 0x020e0490, 0x00000028 }, // IOMUXC_SW_PAD_CTL_GRP_ADDDS + + //Control: + { 0x020e0288, 0x000C0028 }, // IOMUXC_SW_PAD_CTL_PAD_DRAM_RESET + { 0x020e0270, 0x00000000 }, // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDBA2 - + // DSE can be configured using Group + // Control Register: IOMUXC_SW_PAD_CTL_GRP_CTLDS + + { 0x020e0260, 0x00000028 }, // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDODT0 + { 0x020e0264, 0x00000028 }, // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDODT1 + { 0x020e04a0, 0x00000028 }, // IOMUXC_SW_PAD_CTL_GRP_CTLDS + + //Data Strobes: + { 0x020e0494, 0x00020000 }, // IOMUXC_SW_PAD_CTL_GRP_DDRMODE_CTL + { 0x020e0280, 0x00000028 }, // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS0 + { 0x020e0284, 0x00000028 }, // IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS1 + + //Data: + { 0x020e04b0, 0x00020000 }, // IOMUXC_SW_PAD_CTL_GRP_DDRMODE + { 0x020e0498, 0x00000028 }, // IOMUXC_SW_PAD_CTL_GRP_B0DS + { 0x020e04a4, 0x00000028 }, // IOMUXC_SW_PAD_CTL_GRP_B1DS + + { 0x020e0244, 0x00000028 }, // IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM0 + { 0x020e0248, 0x00000028 }, // IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM1 + + //============================================================================= + // DDR Controller Registers + //============================================================================= + // Manufacturer:ISSI + // Device Part Number:IS43TR16640BL-125JBLI + // Clock Freq.: 400MHz + // Density per CS in Gb: 1 + // Chip Selects used:1 + // Number of Banks:8 + // Row address: 13 + // Column address: 10 + // Data bus width16 + //============================================================================= + { 0x021b001c, 0x00008000 }, // MMDC0_MDSCR, set the Configuration + // request bit during MMDC set up + + //============================================================================= + // Calibration setup. + //============================================================================= + { 0x021b0800, 0xA1390003 }, // DDR_PHY_P0_MPZQHWCTRL, + // enable both one-time & periodic HW ZQ calibration. + + // For target board, may need to run write leveling calibration to fine tune these settings. + { 0x021b080c, 0x00000000 }, // + + //Read DQS Gating calibration + { 0x021b083c, 0x41480148 }, // MPDGCTRL0 PHY0 + + //Read calibration + { 0x021b0848, 0x40403A3E }, // MPRDDLCTL PHY0 + + //Write calibration + { 0x021b0850, 0x4040362E }, // MPWRDLCTL PHY0 + + //read data bit delay: 3 is the reccommended default value, although out of reset value is 0 + { 0x021b081c, 0x33333333 }, // MMDC_MPRDDQBY0DL + { 0x021b0820, 0x33333333 }, // MMDC_MPRDDQBY1DL + + //write data bit delay: + { 0x021b082c, 0xF3333333 }, // MMDC_MPWRDQBY0DL + { 0x021b0830, 0xF3333333 }, // MMDC_MPWRDQBY1DL + + //DQS&CLK Duty Cycle + { 0x021b08c0, 0x00944009 }, // [MMDC_MPDCCR] MMDC Duty Cycle Control Register + + // Complete calibration by forced measurement: + { 0x021b08b8, 0x00000800 }, // DDR_PHY_P0_MPMUR0, frc_msr + //============================================================================= + // Calibration setup end + +//===================================================================== +======== + + //MMDC init: + { 0x021b0004, 0x0002002D }, // MMDC0_MDPDC + { 0x021b0008, 0x1B333030 }, // MMDC0_MDOTC + { 0x021b000c, 0x2B2F52F3 }, // MMDC0_MDCFG0 + { 0x021b0010, 0xB66D0B63 }, // MMDC0_MDCFG1 + { 0x021b0014, 0x01FF00DB }, // MMDC0_MDCFG2 + + //MDMISC: RALAT kept to the high level of 5. + //MDMISC: consider reducing RALAT if your 528MHz board design allow that. + //Lower RALAT benefits: + //a. better operation at low frequency, for LPDDR2 freq < 100MHz, change RALAT to 3 + //b. Small performence improvment + { 0x021b0018, 0x00211740 }, // MMDC0_MDMISC + { 0x021b001c, 0x00008000 }, // MMDC0_MDSCR, set the Configuration request bit during + // MMDC set up + { 0x021b002c, 0x000026D2 }, // MMDC0_MDRWD + { 0x021b0030, 0x002F1023 }, // MMDC0_MDOR + { 0x021b0040, 0x00000043 }, // Chan0 CS0_END + { 0x021b0000, 0x82180000 }, // MMDC0_MDCTL -static struct mx6_ddr_sysinfo ddr_sysinfo = { - .dsize = 0, - .cs1_mirror = 0, - .cs_density = 32, - .ncs = 1, - .bi_on = 1, - .rtt_nom = 1, - .rtt_wr = 0, - .ralat = 5, - .walat = 1, - .mif3_mode = 3, - .rst_to_cke = 0x23, /* 33 cycles (JEDEC value for DDR3) - total of 500 us */ - .sde_to_rst = 0x10, /* 14 cycles (JEDEC value for DDR3) - total of 200 us */ - .refsel = 1, - .refr = 3, + { 0x021b0890, 0x00400000 }, // MPPDCMPR2 + + //Mode register writes + { 0x021b001c, 0x02808032 }, // MMDC0_MDSCR, MR2 write, CS0 + { 0x021b001c, 0x00008033 }, // MMDC0_MDSCR, MR3 write, CS0 + { 0x021b001c, 0x00048031 }, // MMDC0_MDSCR, MR1 write, CS0 + { 0x021b001c, 0x15208030 }, // MMDC0_MDSCR, MR0write, CS0 + { 0x021b001c, 0x04008040 }, // MMDC0_MDSCR, ZQ calibration command sent to device on CS0 + + // {0x021b001c,0x0200803A}, // MMDC0_MDSCR, MR2 write, CS1 + // {0x021b001c,0x0000803B}, // MMDC0_MDSCR, MR3 write, CS1 + // {0x021b001c,0x00048039}, // MMDC0_MDSCR, MR1 write, CS1 + // {0x021b001c,0x15208038}, // MMDC0_MDSCR, MR0write, CS1 + // {0x021b001c,0x04008048}, // MMDC0_MDSCR, ZQ calibration command sent to device on CS1 + + { 0x021b0020, 0x00007800 }, // MMDC0_MDREF + + { 0x021b0818, 0x00000227 }, // DDR_PHY_P0_MPODTCTRL + + { 0x021b0004, 0x0002552D }, // MMDC0_MDPDC now SDCTL power down enabled + + { 0x021b0404, 0x00011006 }, // MMDC0_MAPSR ADOPT power down enabled, + // MMDC will enter automatically to self-refresh + // while the number of idle cycle reached. + + { 0x021b001c, 0x00000000 }, // MMDC0_MDSCR, clear this register + // (especially the configuration bit as initialization + // is complete) }; -static struct mx6_ddr3_cfg mem_ddr = { - .mem_speed = 1333, - .density = 2, - .width = 16, - .banks = 8, - .rowaddr = 13, - .coladdr = 10, - .pagesz = 2, - .trcd = 1350, - .trcmin = 4950, - .trasmin = 3600, +struct dram_timing_info dram_timing_128mb = { + .ddrc_cfg = ddr_ddrc_cfg_128mb, + .ddrc_cfg_num = ARRAY_SIZE(ddr_ddrc_cfg_128mb), }; +static void ddr_cfg_write(const struct dram_timing_info +*dram_timing_info) { + int i = 0; + const struct dram_cfg_param *ddrc_cfg = dram_timing_info->ddrc_cfg; + const int ddrc_cfg_num = dram_timing_info->ddrc_cfg_num; + + for (i = 0; i < ddrc_cfg_num; i++) { + debug("Writing 0x%x to register 0x%x\n", ddrc_cfg->val, + ddrc_cfg->reg); + writel(ddrc_cfg->val, ddrc_cfg->reg); + ddrc_cfg++; + } +} + +static void spl_dram_init(void) +{ + struct mmdc_p_regs *mmdc0 = (struct mmdc_p_regs *)MMDC_P0_BASE_ADDR; + + clrbits_le32(&mmdc0->mdctl, 1 << 31); /* clear SDE_0 */ + clrbits_le32(&mmdc0->mdctl, 1 << 30); /* clear SDE_1 */ + + ddr_cfg_write(&dram_timing_128mb); +} + static void ccgr_init(void) { struct mxc_ccm_reg *ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR; @@ -108,20 +222,17 @@ static void ccgr_init(void) writel(0xFFFFFFFF, &ccm->CCGR6);